MultiDatePick यूज़र गाइड
हर कंपोनेंट, हर सेटिंग और हर पेच, उसी क्रम में जिसमें एडमिन उनसे मिलता है। Apex की ज़रूरत नहीं।
विषय-सूची
- तीन कंपोनेंट
- रिकॉर्ड संरचनाएँ
- Setup Wizard वॉकथ्रू
- Permission set और एक्सेस
- Click to Save बनाम Flow-Managed Save
- स्थिति के रंग और संपादन मोड
- व्यू: एक कंपोनेंट, पाँच लेआउट
- संसाधन बुकिंग और क्षमता
- यूज़र क्या चुन सकें, इसकी सीमा
- तारीखें, समय और संसाधन ब्लॉक करना
- सार्वजनिक guest पेज
- आम पेच (FAQ)
- Flow रेसिपी
- ऑब्जेक्ट और फ़ील्ड मैपिंग
- सभी प्रॉपर्टी का संदर्भ
- सुरक्षा और एक्सेसिबिलिटी
- सवाल / बग
1. तीन कंपोनेंट: कब कौन-सा
MultiDatePick में एक साझा आधार पर बने तीन Lightning Web Component हैं। वह चुनें जो आपके डेटा से मेल खाए।
Date
बिल्डर में नाम: MultiDatePick - Dates
एक साथ कई तारीखें चुनें। RSVP, हाज़िरी, छुट्टी, ब्लैकआउट तारीखों और छुट्टियों के कैलेंडर के लिए सबसे अच्छा।
Date Time
बिल्डर में नाम: MultiDatePick - Dates & Times
तारीखें और साथ में टाइम स्लॉट। क्लास, अपॉइंटमेंट, ट्रेनिंग ब्लॉक और शिफ़्ट के लिए सबसे अच्छा।
Booking
बिल्डर में नाम: MultiDatePick - Resource Booking
तारीखें, समय और एक संसाधन। रूम, उपकरण, लोग और क्षमता वाली किसी भी चीज़ के लिए सबसे अच्छा।
फ़ीचर तुलना
फ़ीचर एक के ऊपर एक जुड़ते हैं। Date में जो कुछ है, वह Date Time और Booking में भी है। Date Time समय जोड़ता है। Booking संसाधन और क्षमता जोड़ता है।
| फ़ीचर | Date | Date Time | Booking |
|---|---|---|---|
| तीनों कंपोनेंट में उपलब्ध | |||
| तारीख चुनना | ✓ | ✓ | ✓ |
| पाँच व्यू | ✓ | ✓ | ✓ |
| स्थिति के रंग | ✓ | ✓ | ✓ |
| अवरुद्ध दिनांक | ✓ | ✓ | ✓ |
| मौजूदा रिकॉर्ड लोड करना | ✓ | ✓ | ✓ |
| संपादन मोड | ✓ | ✓ | ✓ |
| आवर्ती पैटर्न | ✓ | ✓ | ✓ |
| केवल Date Time और Booking | |||
| टाइम स्लॉट | ✓ | ✓ | |
| Sub-block रिकॉर्ड | ✓ | ✓ | |
| केवल Booking | |||
| संसाधन पिकर | ✓ | ||
| क्षमता बैज | ✓ | ||
2. रिकॉर्ड संरचनाएँ: कब कौन-सी
रिकॉर्ड संरचना यह तय करती है कि चयन किस तरह रिकॉर्ड में बदलता है। यह तीन अलग-अलग फ़ैसलों से बनती है, और हर मेल काम करता है।
Date: केवल तारीखें, समय नहीं।
Date Time / Booking: हर रिकॉर्ड का आरंभ और अंत समय होता है।
ऐड-ऑन: Consolidate Time Span चालू करें, तो पूरी समय-सीमा के लिए एक parent रिकॉर्ड बनता है, और उसके अंदर हर अंतराल के लिए एक sub-block चाइल्ड।
कोई नहीं: बिना संसाधन के Date, Date Time या Booking।
एक संसाधन: संसाधन ड्रॉपडाउन के साथ Booking।
कई संसाधन: चेकबॉक्स के साथ Booking, हर चुने गए संसाधन का एक रिकॉर्ड।
हर क्लिक पर: हर चुनी गई तारीख का अपना रिकॉर्ड। पाँच क्लिक, पाँच रिकॉर्ड।
हर रेंज पर: लगातार तारीखें आरंभ और अंत वाला एक रिकॉर्ड बन जाती हैं। End Date Field API Name सेट करें।
Setup Wizard छह संरचनाओं के नाम देता है: हर तारीख का एक रिकॉर्ड, हर तारीख रेंज का एक, हर टाइम ब्लॉक का एक, parent और sub-block, एक संसाधन और कई संसाधन।
उदाहरण: 3 सवालों के जवाब दें
हर स्थिति में तीन सवालों के जवाब दें और सही संरचना मिल जाएगी। Setup Wizard भी यही तीन सवाल पूछता है।
छुट्टी (PTO) का अनुरोध
क्या समय चाहिए? नहीं, केवल तारीखें।
क्या संसाधन पिकर चाहिए? नहीं।
क्या लगातार तारीखें जुड़नी चाहिए? हाँ। सोमवार से शुक्रवार की छुट्टी एक ही रिकॉर्ड होनी चाहिए।
→ हर रेंज पर: एक रिकॉर्ड, सोमवार से शुरू, शुक्रवार को खत्म।
कॉन्फ़्रेंस रूम आरक्षण
क्या समय चाहिए? हाँ, हर बुकिंग का आरंभ और अंत होता है।
क्या संसाधन पिकर चाहिए? हाँ, एक रूम चुनना है।
क्या लगातार तारीखें जुड़नी चाहिए? नहीं, हर बुकिंग अपना अलग रिकॉर्ड है।
→ एक संसाधन: हर तारीख × टाइम ब्लॉक का एक रिकॉर्ड, रूम से जुड़ा।
3 रूम में ट्रेनिंग
क्या समय चाहिए? हाँ, हर दिन वही आरंभ और अंत।
क्या संसाधन पिकर चाहिए? हाँ, चेकबॉक्स से कई रूम।
क्या लगातार तारीखें जुड़नी चाहिए? हाँ, ट्रेनिंग सोमवार से शुक्रवार तक चलती है।
→ कई संसाधन, हर रेंज पर: हर रूम का एक रिकॉर्ड, पूरे सप्ताह के लिए।
लंच ब्रेक के साथ पूरे दिन की ट्रेनिंग
क्या समय चाहिए? हाँ, सुबह 9 से शाम 5 बजे तक, बीच में लंच।
क्या संसाधन पिकर चाहिए? नहीं।
क्या अंतराल का रिकॉर्ड रखना है? हाँ, उसका अपना चाइल्ड रिकॉर्ड।
→ parent और sub-block: सुबह 9 से शाम 5 बजे तक एक parent, और लंच के लिए एक sub-block।
ग्रिड: हर संभव मेल
अपनी समय और संसाधन की ज़रूरत के हिसाब से पंक्ति चुनें। कॉलम इस पर निर्भर है कि End Date Field API Name सेट है या नहीं। हर खाना एक वैध सेटअप है।
| समय + संसाधन | हर क्लिक पर (End Date Field नहीं) |
हर रेंज पर (End Date Field सेट) |
|---|---|---|
| Date समय नहीं। Date कंपोनेंट। |
हर तारीख का एक रिकॉर्ड 1 तारीख → 1 रिकॉर्ड। किसके लिए: RSVP, हाज़िरी, रोज़ाना चेक-इन। |
हर तारीख रेंज का एक रिकॉर्ड लगातार तारीखें → आरंभ और अंत वाला 1 रिकॉर्ड। किसके लिए: छुट्टी, यात्रा, कई रातों का ठहराव। |
| Date Time हर रिकॉर्ड में एक टाइम ब्लॉक। Date Time कंपोनेंट। |
हर टाइम ब्लॉक का एक रिकॉर्ड 1 तारीख × 1 टाइम ब्लॉक = 1 रिकॉर्ड। किसके लिए: टाइमशीट, शिफ़्ट के हिस्से, ट्रेनिंग ब्लॉक। |
साझा टाइम ब्लॉक वाली रेंज। एक जैसे समय वाली लगातार तारीखें → 1 रिकॉर्ड। किसके लिए: हर दिन एक जैसे घंटों वाली कई दिनों की ट्रेनिंग। |
| Date Time + Consolidate Time Span parent रिकॉर्ड, और अंतरालों के लिए sub-block चाइल्ड |
parent और sub-block एक parent पूरी समय-सीमा को ढकता है। उसके अंदर का हर अंतराल एक sub-block चाइल्ड बनता है। किसके लिए: लंच ब्रेक वाली ट्रेनिंग, बीच में यात्रा वाले फ़ील्ड रूट। |
|
| Booking, एक संसाधन एक संसाधन ड्रॉपडाउन। Booking कंपोनेंट। |
एक संसाधन हर तारीख × टाइम ब्लॉक का 1 रिकॉर्ड, संसाधन से जुड़ा। किसके लिए: कॉन्फ़्रेंस रूम, ट्रेनर शेड्यूलिंग। |
एक संसाधन की रेंज। एक संसाधन पर लगातार तारीखें → हर रेंज का 1 रिकॉर्ड। किसके लिए: कई रातों के लिए रूम, कई दिनों के लिए उपकरण। |
| Booking, कई संसाधन संसाधन चेकबॉक्स (Allow Multiple Resources) |
कई संसाधन हर संसाधन × तारीख × टाइम ब्लॉक का 1 रिकॉर्ड। किसके लिए: एक साथ चलने वाली टीम मीटिंग, कई रूम में ट्रेनिंग। |
कई संसाधनों की रेंज। N संसाधनों पर लगातार तारीखें → N रिकॉर्ड, हर संसाधन का एक। किसके लिए: एक साथ 3 रूम में एक सप्ताह की ट्रेनिंग। |
| Booking + Consolidate Time Span parent बुकिंग, और अंतरालों के लिए sub-block चाइल्ड |
Booking parent और sub-block। पूरे दिन बुक एक संसाधन, जिसके ब्रेक भी रिकॉर्ड में दर्ज हैं। किसके लिए: मेंटेनेंस विंडो वाले लैब उपकरण। |
|
निचोड़: तीनों फ़ैसलों का कोई भी मेल काम करता है। अगर आपकी स्थिति किसी नामित पैटर्न में नहीं आती, तो हर फ़ैसला अलग से सेट करें, बाकी कंपोनेंट संभाल लेगा।
3. Setup Wizard वॉकथ्रू
Setup Wizard एक कॉन्फ़िगरेशन एक बार सहेजता है। किसी भी पेज या Flow स्क्रीन पर Config Name में उसका नाम लिखें, और वह प्लेसमेंट उसी को इस्तेमाल करेगा। कॉन्फ़िगरेशन बदलें, तो हर प्लेसमेंट अपने आप बदल जाता है।
- 1 नाम और प्रकार
- 2 ऑब्जेक्ट और फ़ील्ड
- 3 समय फ़ील्ड
- 4 स्थिति और प्रदर्शन
- 5 समीक्षा करें और सहेजें
शुरुआत चुनें
नया बनाएँ टैब में दो रास्ते हैं। मुझे चरण-दर-चरण मार्गदर्शन दें तीन सवाल पूछकर कंपोनेंट और संरचना चुनता है। सभी गुण कॉन्फ़िगर करें हर सेटिंग खोल देता है। उसके बगल में दो और टैब हैं: सहेजे गए कॉन्फ़िगरेशन को बदलने के लिए मौजूदा कॉन्फ़िगरेशन, और Config Library से कॉन्फ़िगरेशन पेस्ट करने के लिए आयात।
स्टेप 1: नाम और प्रकार
कंपोनेंट (Date, Date Time या Booking) चुनें और कॉन्फ़िगरेशन को नाम दें। यही नाम आप बाद में Config Name में लिखेंगे। इसी स्टेप में व्यू भी तय होते हैं: डिफ़ॉल्ट व्यू, स्विचर में कौन-से व्यू दिखें, और टाइमलाइन व एजेंडा के विकल्प।
स्टेप 2: ऑब्जेक्ट और फ़ील्ड
सबसे अहम स्टेप। वह ऑब्जेक्ट चुनें जिसमें रिकॉर्ड रहते हैं, उसका तारीख फ़ील्ड, और parent तक वापस जाने वाला relationship फ़ील्ड। वैकल्पिक फ़ील्ड रेंज, संसाधन, क्षमता, sub-block और अवरुद्ध तारीखें जोड़ते हैं। Booking कॉन्फ़िगरेशन यहीं संसाधन ऑब्जेक्ट, क्षमता फ़ील्ड और व्यावसायिक घंटे भी सेट करते हैं।
स्टेप 3: समय फ़ील्ड
केवल Date Time और Booking। आरंभ और अंत समय फ़ील्ड मैप करें, फिर Time Interval (समय अंतराल) सेट करें (कोई भी अंतराल चलता है; आम तौर पर 15, 30 या 60 मिनट), सबसे पहला और सबसे आखिरी समय, डिस्प्ले मोड, और टकराव होने पर क्या हो।
स्टेप 4: स्थिति और प्रदर्शन
स्थिति फ़ील्ड और रंग, छिपाने वाली स्थितियाँ, यूज़र कौन-सी स्थितियाँ चुन सकते हैं, होवर फ़ील्ड, संपादन मोड, रिकॉर्ड का नाम, बटन लेबल, कैलेंडर का आकार और Max Dates Allowed (अधिकतम चयन) जैसी सीमाएँ।
स्टेप 5: समीक्षा करें और सहेजें
सारांश जाँचें, लाइव प्रीव्यू आज़माएँ, फिर कॉन्फ़िगरेशन सहेजें पर क्लिक करें। विज़र्ड 30 से 60 सेकंड में कॉन्फ़िगरेशन आपके लिए डिप्लॉय कर देता है। पूरा होने पर चाहें तो विवरण जोड़ें।
मौजूदा कॉन्फ़िगरेशन और आयात
सहेजे गए कॉन्फ़िगरेशन मौजूदा कॉन्फ़िगरेशन में दिखते हैं: किसी पर क्लिक करके उसे बदलें या एक्सपोर्ट करें। आयात टैब किसी भी Config Library कार्ड का JSON या किसी दूसरे org का एक्सपोर्ट लेता है।
4. Permission set और एक्सेस
पैकेज के साथ चार permission set आते हैं। इन्हें Setup में Permission Sets से असाइन करें।
| परमिशन सेट | किसे मिले | Setup Wizard | कैलेंडर इस्तेमाल करना |
|---|---|---|---|
| MultiDatePick - Setup | कॉन्फ़िगरेशन बनाने वाले एडमिन | ✓ हाँ | नहीं |
| MultiDatePick - User | कैलेंडर इस्तेमाल करने वाले सभी लोग | नहीं | ✓ हाँ |
| MultiDatePick - All Access | एडमिन जो इन्हें बनाते भी हैं और इस्तेमाल भी करते हैं | ✓ हाँ | ✓ हाँ |
| MultiDatePick - Guest | सार्वजनिक Experience Cloud साइट का guest user | नहीं | ✓ देखना और बुक करना |
कंपोनेंट हर यूज़र की अपनी अनुमतियों से चलते हैं, इसलिए यूज़र को आपके ऑब्जेक्ट और फ़ील्ड का एक्सेस भी चाहिए:
- ऑब्जेक्ट: जिस ऑब्जेक्ट में रिकॉर्ड सहेजे जाते हैं उस पर Read और Create, और कैलेंडर जिस भी संसाधन, बंदी या चाइल्ड ऑब्जेक्ट को पढ़ता है उस पर Read।
- फ़ील्ड, पढ़ने के लिए: कैलेंडर जो भी फ़ील्ड दिखाता है (तारीख, स्थिति, होवर फ़ील्ड)।
- फ़ील्ड, बदलने के लिए: वह हर फ़ील्ड जिसमें कैलेंडर लिखता है (तारीख, समय, स्थिति, दूसरी picklist, नाम फ़ील्ड, parent lookup)। जिस फ़ील्ड को यूज़र बदल नहीं सकता, उस पर सहेजना फ़ेल हो जाता है, भले ही पढ़ना काम करे।
- जुड़े हुए रिकॉर्ड: नया रिकॉर्ड जिस parent और संसाधन की ओर इशारा करता है, उन पर कम से कम Read।
हर त्रुटि संदेश और उसका कारण समस्या निवारण: एक्सेस एरर पर है। guest साइट के लिए कुछ अतिरिक्त स्टेप चाहिए: सार्वजनिक guest पेज देखें।
5. Click to Save बनाम Flow-Managed Save
सहेजने के दो तरीके हैं। प्लेसमेंट के हिसाब से एक चुनें।
Click to Save
कंपोनेंट रिकॉर्ड खुद लिखता है। चार सेटिंग भरें और उसका अपना सहेजें बटन दिखने लगता है। क्लिक करें और चाइल्ड रिकॉर्ड बन जाते हैं। न Flow एलिमेंट, न कोड।
कहाँ इस्तेमाल करें: Record Page, App Page, Home Page, Experience साइट, और parent रिकॉर्ड वाली Flow स्क्रीन।
Flow-Managed Save
कंपोनेंट चयन आपके Flow को सौंप देता है। साथ आने वाला Parse Date Entries from JSON एक्शन इस्तेमाल करें, फिर अपने Loop और Create Records एलिमेंट।
कहाँ इस्तेमाल करें: उन Flow स्क्रीन पर जहाँ पूरा नियंत्रण चाहिए: अप्रूवल, शर्तों वाले रिकॉर्ड, अतिरिक्त वैलिडेशन।
Click to Save: चार सेटिंग
Setup Wizard इन्हें भर देता है। चारों में मान हो, तो सहेजें बटन दिखने लगता है।
| सेटिंग | इसमें क्या होता है | API नाम |
|---|---|---|
| Child Object API Name | वह ऑब्जेक्ट जिसमें रिकॉर्ड सहेजे जाते हैं | relatedObjectApiName |
| Date Field API Name | उस ऑब्जेक्ट पर तारीख फ़ील्ड | dateFieldApiName |
| Relationship Field API Name | parent रिकॉर्ड तक वापस जाने वाला lookup | relationshipFieldApiName |
| Parent Record Id या Static Parent Record Id | parent रिकॉर्ड। Record Page पर यह अपने आप भर जाता है। Flow में Parent Record Id बाँधें। App, Home और Experience पेज पर Id को Static Parent Record Id में लिखें। | recordId / staticRecordId |
कोई पेज कौन-सा parent रिकॉर्ड इस्तेमाल करता है, और कब उसे Flow में चुनना बेहतर है, यह App, Home और Experience पेज में बताया गया है।
Flow-Managed Save: आउटपुट
चारों सेटिंग खाली छोड़ें। सहेजें बटन छिप जाता है और चयन इन Flow आउटपुट से बाहर आता है:
| आउटपुट | इसमें क्या है | कंपोनेंट |
|---|---|---|
| Selected Dates (Output) | तारीखों का टेक्स्ट कलेक्शन (YYYY-MM-DD) | Date, Date Time |
| Date Ranges JSON (Output) | लगातार तारीखें रेंज में समूहित | Date, Date Time |
| Dates With Times JSON (Output) | हर तारीख अपने समय के साथ | Date Time |
| Successful Bookings Count / Conflict Dates | Booking के अपने सहेजने के बाद के नतीजे | Booking |
JSON को Parse Date Entries from JSON को दें। यह एक सूची लौटाता है जिस पर आप Loop चला सकते हैं; हर आइटम में from date, to date, start time, end time और संसाधन Id होती है। स्टेप-बाय-स्टेप: Flow रेसिपी।
सहेजना केवल जोड़ता है
Click to Save केवल नए रिकॉर्ड बनाता है। किसी तारीख का चयन हटाने से सहेजा गया रिकॉर्ड कभी डिलीट नहीं होता, इसलिए गलत क्लिक से डेटा नहीं खोता। रिकॉर्ड बदलने या हटाने के लिए संपादन मोड या related list इस्तेमाल करें।
6. स्थिति के रंग और संपादन मोड
स्थिति के रंग और फ़िल्टर
अपने ऑब्जेक्ट की किसी भी picklist से रिकॉर्ड को रंग दें, कुछ मान छिपाएँ, और तय करें कि end user क्या चुन सकें।
| सेटिंग | यह क्या करता है | API नाम |
|---|---|---|
| Status Field | वह picklist जिससे रंग तय होते हैं, जैसे Confirmed / Tentative / Cancelled। | statusField |
| Status Colors | हर मान का एक रंग, जैसे Confirmed:#22C55E, Tentative:#fbbf24। अपने आप बने रंगों के लिए खाली छोड़ें। | statusColors |
| Status Color Display | रंग कहाँ दिखें: कैलेंडर, ग्रिड या दोनों। बिना रंगों वाले साफ़ ग्राहक पेज के लिए इसे खाली छोड़ें। | statusColorDisplay |
| Ignored Statuses | इन मानों वाले रिकॉर्ड (जैसे No-Show,Cancelled) कैलेंडर और क्षमता की गिनती, दोनों से छिपा देता है। | hideBookingsWithStatus |
| Selectable Statuses | तय करता है कि end user कौन-से मान चुन सके, जैसे केवल Requested, जबकि स्टाफ़ को सभी दिखते हैं। | selectableStatuses |
संपादन मोड
Enable Edit Mode चालू करें और संपादित करें बटन दिखने लगता है। संपादन मोड में यूज़र:
- मौजूदा रिकॉर्ड को उनकी तारीख और स्थिति के साथ कार्ड के रूप में देख सकते हैं
- तारीखों पर क्लिक करके उनके रिकॉर्ड संपादन सेट में जोड़ सकते हैं
- तारीख, समय, संसाधन या स्थिति बदल सकते हैं, और रिकॉर्ड अपडेट हो जाता है
- दो क्लिक की पुष्टि से डिलीट कर सकते हैं, ताकि गलती से कुछ न हटे
7. व्यू: एक कंपोनेंट, पाँच लेआउट
हर कंपोनेंट पाँच लेआउट बनाता है। ये सभी उन्हीं फ़ील्ड मैपिंग से वही रिकॉर्ड पढ़ते हैं, वही टकराव के नियम, अवरुद्ध तारीखें और व्यावसायिक घंटे मानते हैं, और एक ही तरह सहेजते हैं। व्यू बदलने से केवल रिकॉर्ड का रूप बदलता है, उनका मतलब नहीं।
पाँच व्यू, और हर एक किस सवाल का जवाब देता है
| दृश्य (View) | सवाल | लेआउट | बदलाव कर सकते हैं? |
|---|---|---|---|
| कैलेंडर | 14 तारीख को क्या है? | एक बार में एक महीना, हर दिन स्थिति के रंग। | हाँ। यही डिफ़ॉल्ट है। |
| टाइमलाइन | कौन-सा संसाधन खाली है, और कब? | किनारे पर संसाधन, ऊपर तारीखें। कई दिनों के रिकॉर्ड एक बार के रूप में। | हाँ |
| सप्ताह | गुरुवार दोपहर 2 बजे कौन खाली है? | सात दिन आड़े, व्यावसायिक घंटे खड़े। दिनों और घंटों पर एक साथ ड्रैग करें। | हाँ |
| उपयोग | कौन क्षमता से अधिक बुक है? | हर संसाधन की हर दिन इस्तेमाल हुई क्षमता का हीटमैप। | नहीं, केवल पढ़ने के लिए |
| एजेंडा | आगे क्या है? | अगले 60 दिनों की क्रम से सूची। | नहीं, केवल पढ़ने के लिए |
सेटिंग
| सेटिंग | डिफ़ॉल्ट | यह क्या करता है |
|---|---|---|
| Viewview | कैलेंडर | वह लेआउट जिस पर कंपोनेंट खुलता है। |
| Available ViewsavailableViews | खाली | स्विचर कौन-से व्यू दिखाए, जैसे calendar,timeline,agenda। खाली छोड़ें तो पाँचों दिखते हैं। आपका डिफ़ॉल्ट व्यू हमेशा शामिल रहता है, इसलिए केवल अतिरिक्त व्यू लिखें। |
| Timeline Window (Days)timelineWindowDays | 14 | टाइमलाइन एक बार में कितने दिन दिखाए। पूरे महीने में हर बुकिंग लगभग बीस पिक्सेल चौड़ी रह जाती है और उसका लेबल कट जाता है। पूरे महीने के लिए 0 सेट करें। अंदर वाले तीर एक विंडो आगे बढ़ाते हैं, बाहर वाले एक महीना। |
| Resource RowsresourceViewFilter | all | booked केवल वही संसाधन दिखाता है जिनकी दिख रही अवधि में बुकिंग है। लंबी सूची छोटी करने का सबसे अच्छा तरीका, क्योंकि खाली पंक्ति कोई जानकारी नहीं देती। कहीं भी कुछ बुक न हो, तो फिर से हर संसाधन दिखता है। |
| Max View ResourcesmaxViewResources | 0 (सभी) | टाइमलाइन और उपयोग व्यू कितनी संसाधन पंक्तियाँ दिखाएँ, इसकी सीमा, सबसे व्यस्त पहले। गिनती फिर भी हर चीज़ की होती है। Resource Rows बेहतर है, जो केवल खाली पंक्तियाँ छिपाता है। |
| Agenda FieldsagendaFields | खाली | एजेंडा की हर पंक्ति पर अतिरिक्त फ़ील्ड, चार तक। खाली छोड़ें तो Hover Popover Fields ही इस्तेमाल होते हैं। तारीख, समय और नाम पंक्ति पर पहले से होते हैं। |
| Capacity FieldcapacityField | खाली | यह व्यू की सेटिंग नहीं है, लेकिन उपयोग व्यू को कच्ची गिनती की जगह प्रतिशत दिखाने के लिए इसकी ज़रूरत होती है। |
हर पेज पर अलग व्यू
व्यू हर प्लेसमेंट की अपनी सेटिंग है, इसलिए वही रिकॉर्ड हर जगह अलग दिख सकते हैं। एक इंस्टॉल, फ़ील्ड मैपिंग का एक सेट।
| प्लेसमेंट | दृश्य (View) | उपलब्ध दृश्य (Available Views) |
|---|---|---|
| रिक्रूटर का इंटरव्यू पेज | सप्ताह | calendar,agenda |
| फ़ैसिलिटीज़ का रूम बुकिंग पेज | कैलेंडर | timeline,utilization |
| शिफ़्ट मैनेजर का रोस्टर | टाइमलाइन | week,agenda |
| ऑपरेशंस की दीवार वाली स्क्रीन | एजेंडा | utilization,timeline |
| सार्वजनिक Experience Cloud पेज | कैलेंडर | खाली, या छोटा रखें |
संपादन मोड हर व्यू में काम करता है
Enable Edit Mode चालू होने पर संपादन बटन हर व्यू में दिखता है। टाइमलाइन, सप्ताह या एजेंडा में किसी रिकॉर्ड पर क्लिक करें और वह संपादन सेट में जुड़ जाता है, ठीक मासिक कैलेंडर की तारीख की तरह। टाइमलाइन से एक साथ स्थिति बदलना बिलकुल कैलेंडर जैसा ही काम करता है।
टाइमलाइन: सिमटी हुई पंक्तियाँ
जब किसी संसाधन की बुकिंग ओवरलैप होती हैं, तो उसकी पंक्ति एक पट्टी में सिमट जाती है जिस पर N एक साथ चिप होती है। तीर पर क्लिक करने से हर बुकिंग की अपनी लेन खुलती है। सिमटी हुई पंक्तियों पर भी ड्रैग, होवर और क्लिक काम करते हैं।
टाइमलाइन: ड्रैग करके रीशेड्यूल करें
Enable Edit Mode चालू हो, तो टाइमलाइन की बार ड्रैग होती हैं। बुकिंग को दूसरे दिनों पर ले जाने के लिए बीच से पकड़ें। आरंभ या अंत बदलने के लिए किनारा पकड़ें। बार दिखाती है कि वह कहाँ जाएगी, और छोड़ते ही सहेज लेती है। Day ज़ूम में यही तरीके समय बदलते हैं।
केवल रूम नहीं, लोगों को भी शेड्यूल करें
Resource Object API Name कोई भी ऑब्जेक्ट ले सकता है। इसे User पर सेट करें, तो टाइमलाइन रोस्टर बन जाती है, सप्ताह व्यू शिफ़्ट ग्रिड, और उपयोग व्यू टीम की क्षमता का डैशबोर्ड।
- User पर कोई स्टैंडर्ड क्षमता फ़ील्ड नहीं होता। उपयोग व्यू में प्रतिशत देखने के लिए एक कस्टम फ़ील्ड जोड़ें (जैसे Daily Capacity)।
- Business Hours Start Field और Business Hours End Field को User के फ़ील्ड से मैप करें, तो सप्ताह ग्रिड हर व्यक्ति के अपने घंटों के हिसाब से चलता है।
Config Library में दो तैयार उदाहरण हैं: टीम क्षमता योजना और स्टाफ़ शिफ़्ट रोस्टर।
8. संसाधन बुकिंग और क्षमता (Booking कंपोनेंट)
एक संसाधन
यूज़र ड्रॉपडाउन से एक संसाधन चुनते हैं। टाइम ग्रिड उस संसाधन की बुकिंग और क्षमता लोड करता है।
कई संसाधन
Allow Multiple Resources चालू करें, तो ड्रॉपडाउन चेकबॉक्स बन जाता है। ग्रिड केवल वही स्लॉट दिखाता है जो हर चुने गए संसाधन पर खाली हों, और सहेजें सबको एक साथ बुक करता है।
क्षमता
कई बुकिंग को एक स्लॉट साझा करने दें, लाइव 3/5 बैज के साथ। भरा हुआ स्लॉट और बुकिंग नहीं लेता।
| सेटिंग | यह क्या करता है | API नाम |
|---|---|---|
| Capacity Field | संसाधन पर एक नंबर फ़ील्ड, जैसे Capacity = 5। | capacityField |
| Show Availability Count | X/Y बैज दिखाता है। | showAvailabilityCount |
| Capacity Aggregation | Combined (डिफ़ॉल्ट) चुने गए संसाधनों की बुकिंग और क्षमता जोड़ता है: 5-5 क्षमता वाले दो रूम 0/10 दिखाते हैं। Distinct कई संसाधनों पर बुक हुए एक इवेंट को एक ही बार गिनता है और सबसे बड़ी एकल क्षमता लेता है: 4 रूम में एक क्लास 1/5 दिखाती है, 4/20 नहीं। | capacityAggregation |
टकराव
Conflict Behavior तय करता है कि चुना गया स्लॉट पहले से भरा हो तो क्या हो। Conflict Look-Ahead Days तय करता है कि कितने दिन आगे तक जाँच हो (डिफ़ॉल्ट 360)।
| मान | क्या होता है | किसके लिए सबसे अच्छा |
|---|---|---|
| Block (डिफ़ॉल्ट) | भरा हुआ स्लॉट चुना नहीं जा सकता, और सहेजना रुक जाता है, टकराव हाइलाइट होकर दिखते हैं। | ज़्यादातर बुकिंग पेज |
| Skip | खाली स्लॉट सहेज लेता है और भरे हुए छोड़ देता है। छोड़ी गई तारीखें Conflict Dates (Output) में वापस आती हैं। | कई तारीखों में जो भी अब तक खाली है, उसे पकड़ लेना |
| Allow | कोई टकराव जाँच नहीं। बुकिंग क्षमता से आगे जा सकती हैं। | जान-बूझकर ओवरबुकिंग |
बंदी हमेशा भारी पड़ती है। अवरुद्ध स्लॉट पर कुछ नहीं सहेजा जाता, Allow के साथ भी नहीं।
9. यूज़र क्या चुन सकें, इसकी सीमा
तय करें कि एक व्यक्ति कितना चुन सकता है, तारीखों से या टाइम स्लॉट से।
| सेटिंग | यह क्या करता है | API नाम |
|---|---|---|
| Max Dates Allowed Booking में: Max Dates Per Booking | यूज़र ज़्यादा से ज़्यादा कितनी तारीखें चुन सकता है। 0 का मतलब कोई सीमा नहीं। | maxSelections |
| Max Time Slots | सभी तारीखों को मिलाकर ज़्यादा से ज़्यादा कितने टाइम स्लॉट। 0 का मतलब कोई सीमा नहीं। हर व्यक्ति का एक अपॉइंटमेंट रखना हो तो 1 डालें। | maxTimeSlotSelection |
| Earliest / Latest Selectable Date | तय तारीखों से बाहर की तारीखें धूसर कर देता है। | minDate / maxDate |
| Book Up To / Minimum Notice | एक चलती हुई विंडो: ज़्यादा से ज़्यादा N दिन आगे तक, कम से कम N घंटे पहले सूचना। | maxDaysAhead / minNoticeHours |
| Buffer Between Bookings | हर बुकिंग के बाद तैयारी का समय खाली रखता है। | bufferMinutes |
| Add to Calendar | सहेजने के बाद, अभी सहेजी गई हर चीज़ के लिए एक .ics फ़ाइल। | showAddToCalendar |
| Allow Past Dates | बंद हो, तो केवल आज और आगे की तारीखें। Date और Date Time में डिफ़ॉल्ट रूप से चालू, Booking में बंद। | allowPastDates |
10. तारीखें, समय और संसाधन ब्लॉक करना (बंदी)
कोई भी कैलेंडर किसी दूसरे ऑब्जेक्ट से बंदी (closures) पढ़ सकता है और उनसे ढकी तारीखें, टाइम स्लॉट या संसाधन धूसर कर सकता है, ताकि यूज़र केवल तभी बुक करें जब आप खुले हों। कुछ सेटिंग को बंदी वाले ऑब्जेक्ट की ओर इशारा करें, बाकी कंपोनेंट संभाल लेता है। पूरे दिन का ब्लॉक तीनों कंपोनेंट में काम करता है। समय और संसाधन के ब्लॉक के लिए Date Time या Booking का टाइम ग्रिड चाहिए।
ब्लॉक करना बनाम छिपाना: फ़र्क क्या है?
दोनों सुनने में एक जैसे लगते हैं, पर काम उलटा करते हैं। ब्लॉक करना उपलब्धता छीन लेता है: स्लॉट दिखता है, पर बुक नहीं हो सकता। छिपाना रिकॉर्ड को नज़र से हटा देता है, जिससे उनके स्लॉट खाली हो जाते हैं।
| ब्लॉक करना (बंदी) | छिपाना (स्थिति से) | |
|---|---|---|
| यह क्या नियंत्रित करता है | कौन-सी तारीखें, समय और संसाधन बुक हो सकते हैं | कौन-से सहेजे गए रिकॉर्ड दिखें |
| सेटिंग | Blocked Dates Object और उसके तारीख, समय और संसाधन फ़ील्ड | Ignored Statuses |
| किससे चलता है | बंदी या छुट्टियों की सूची: उसका अपना ऑब्जेक्ट, या फ़िल्टर किया हुआ आपका बुकिंग ऑब्जेक्ट | खुद रिकॉर्ड पर एक स्थिति मान |
| यूज़र को क्या दिखता है | स्लॉट दिखता है, पर कटा हुआ, धूसर और क्लिक न होने वाला | रिकॉर्ड कैलेंडर से गायब |
| क्षमता पर असर | उपलब्धता घटाता है | उपलब्धता खाली करता है: छिपा हुआ रिकॉर्ड गिनती में नहीं आता |
| डेटा | कोई बुकिंग नहीं है; आप उसे वर्जित चिह्नित कर रहे हैं | रिकॉर्ड Salesforce में बने रहते हैं |
| किसके लिए | छुट्टियाँ, मेंटेनेंस विंडो, बंद रूम या क्षेत्र | Cancelled या Rejected बुकिंग, जो ग्रिड में भीड़ न करें और क्षमता में न गिनी जाएँ |
- Ignored Statuses = Cancelled → बुकिंग गायब हो जाती है और उसका स्लॉट खुल जाता है।
- Blocked Dates Object = आपका बुकिंग ऑब्जेक्ट, Status = Cancelled पर फ़िल्टर → बुकिंग अपनी तारीख को ब्लॉक करती है, ताकि उसे कोई दोबारा बुक न करे।
अवरुद्ध तारीखों की सेटिंग
| सेटिंग | यह क्या करता है | API नाम |
|---|---|---|
| Blocked Dates Object | बंदी रखने वाला ऑब्जेक्ट, जैसे Office Closure ऑब्जेक्ट या आपका बुकिंग ऑब्जेक्ट। इसे सेट करते ही ब्लॉकिंग चालू हो जाती है। | blockedDatesSourceObject |
| Blocked Dates Date Field | उस ऑब्जेक्ट पर तारीख फ़ील्ड। | blockedDatesDateField |
| Blocked Dates Start / End Time Field | वैकल्पिक समय फ़ील्ड। दिन के कुछ हिस्से के ब्लॉक के लिए दोनों सेट करें; पूरे दिन के लिए खाली छोड़ें। Date Time और Booking। | blockedDatesStartTimeField / blockedDatesEndTimeField |
| Blocked Dates Resource Field | वैकल्पिक lookup, जो बंदी को एक संसाधन तक सीमित करता है। खाली हो तो बंदी हर संसाधन पर लागू होती है। Booking। | blockedDatesResourceField |
| Blocked Dates Filter Field / Value | वैकल्पिक दायरा, जैसे Region = North या Status = Cancelled। इसी से बंदी की एक टेबल कई कैलेंडर के काम आती है। | blockedDatesFilterField / blockedDatesFilterValue |
ब्लॉकिंग के तीन स्तर
- पूरा दिन: बिना समय वाली बंदी पूरी तारीख धूसर कर देती है। तीनों कंपोनेंट। बंद तारीख बंद ही रहती है, भले उस पर पहले से बुकिंग हों।
- दिन का कुछ हिस्सा: आरंभ और अंत समय वाली बंदी केवल उन्हीं स्लॉट को ब्लॉक करती है। बाकी दिन बुक हो सकता है। तारीख चुनने पर अवरुद्ध स्लॉट दिखते हैं।
- एक संसाधन: किसी संसाधन की ओर इशारा करने वाली बंदी केवल उसी संसाधन को बंद करती है। एक संसाधन वाले व्यू में स्लॉट कटा हुआ दिखता है। संयुक्त व्यू में उस पर कोने में छोटा निशान लगता है और खुले संसाधनों पर वह बुक हो सकता है।
टाइम ग्रिड इस्तेमाल कर रहे हैं? तो आपको दिन के हिस्से वाले ब्लॉक चाहिए। पूरे दिन के ब्लॉक केवल तारीख वाले पिकर के लिए ठीक हैं।
बंदी ऑब्जेक्ट के दो पैटर्न
- वही ऑब्जेक्ट, स्थिति से चिह्नित: Blocked Dates Object को अपने बुकिंग ऑब्जेक्ट पर रखें और Status = Cancelled पर फ़िल्टर करें, ताकि रद्द बुकिंग बंदी का काम भी करें। सबसे आसान, लेकिन उस ऑब्जेक्ट के हर कैलेंडर में ये साझा होती हैं। Config Library में छुट्टियों का ध्यान रखने वाली अपॉइंटमेंट बुकिंग कॉन्फ़िगरेशन देखें।
- बंदी का अलग ऑब्जेक्ट: एक Office Closure ऑब्जेक्ट जिसमें तारीख, वैकल्पिक आरंभ और अंत समय, Region फ़ील्ड और वैकल्पिक संसाधन lookup हो। हर कैलेंडर अपने क्षेत्र से फ़िल्टर करता है, और कोई बंदी एक संसाधन को निशाना बना सकती है। समय के हिसाब से संसाधन बंदी कॉन्फ़िगरेशन देखें।
अगर लोग अपना समय खुद ब्लॉक करें (जैसे कोई मालिक अपनी सुबह ब्लॉक करे), तो किसी आंतरिक पेज या साइट पर एक Date Time कंपोनेंट लगाएँ जो बंदी ऑब्जेक्ट में सहेजे।
अवरुद्ध स्लॉट कैसे बर्ताव करते हैं
- रूप: पूरी तरह बंद स्लॉट कटा हुआ और धूसर दिखता है। जो स्लॉट केवल कुछ चुने गए संसाधनों के लिए बंद है, उस पर कोने का निशान होता है।
- चयन: पूरी तरह बंद स्लॉट पर न क्लिक हो सकता है, न ड्रैग।
- सहेजना: बंद संसाधन, तारीख और समय पर कुछ नहीं सहेजा जाता। कई संसाधनों में केवल बंद वाला छूटता है; खुले वाले फिर भी बुक होते हैं।
बंदी की एक टेबल, कई कैलेंडर
बंदी ऑब्जेक्ट में एक टैग फ़ील्ड (Region, Location, Building) रखें और वही फ़ील्ड अपने संसाधनों पर भी। फिर हर कैलेंडर अपने संसाधन दिखाने के लिए Resource Filter Field / Value और अपनी बंदी पढ़ने के लिए Blocked Dates Filter Field / Value इस्तेमाल करता है।
11. सार्वजनिक guest पेज (Experience Cloud)
Experience Cloud साइट पर कंपोनेंट लगाएँ और कोई भी बिना लॉगिन बुक कर सकता है। guest के रूप में टेस्ट करने से पहले पाँचों स्टेप पूरे करें।
- ऑब्जेक्ट अनुमतियाँ। साइट के guest user को हर ऑब्जेक्ट पर Read दें, और अगर guest सबमिट करते हैं तो Create भी। Salesforce guest को कभी रिकॉर्ड बदलने या डिलीट करने नहीं देता, इसलिए बदलने, रद्द करने और डिलीट करने वाले पेज लॉगिन किए यूज़र के लिए रखें।
- कंपोनेंट जिस भी फ़ील्ड को छूता है, हर उस पर Field-level security, संसाधन के व्यावसायिक घंटों वाले फ़ील्ड और बंदी के समय फ़ील्ड समेत। एक भी फ़ील्ड छूटा, तो संसाधन या बंदी की query रुक जाती है।
- एक guest sharing rule (Read), ताकि guest रिकॉर्ड देख सके। rule लागू होने के लिए ऑब्जेक्ट का external org-wide default Private होना चाहिए। metadata के रूप में डिप्लॉय किए गए rule के लिए Setup के Sharing Settings में एक बार Recalculate पर क्लिक करना होता है।
- साइट के guest user पर MultiDatePick - Guest अनुमति सेट। इसमें वह Apex class एक्सेस है जिसके ज़रिए कंपोनेंट अपना डेटा लोड करता है।
- साइट को Activate करें। Publish करना और Activate करना अलग-अलग स्टेप हैं।
- guest को कौन-सा रिकॉर्ड दिखता है: सार्वजनिक पेज Static Parent Record Id इस्तेमाल करता है, इसलिए हर guest एक ही parent (एक ऑफ़िस, लोकेशन या संसाधन) पर बुक करता है। हर विज़िटर का अलग रिकॉर्ड चाहिए, तो URL पैरामीटर वाले Flow से चलाएँ। हर यूज़र का सच में अलग कैलेंडर चाहिए, तो लॉगिन किए यूज़र चाहिए।
- Contacts और Accounts: Salesforce इन पर guest एक्सेस बहुत सीमित रखता है। guest की बुकिंग किसी कस्टम ऑब्जेक्ट पर करें, या authenticated साइट इस्तेमाल करें।
- एक पेज पर कई कंपोनेंट: ये आपस में लाइव सिंक नहीं होते। इनके बीच रिफ़्रेश का संकेत रखें, ताकि एक में किया गया ब्लॉक अगले में दिखे।
प्लेसमेंट के स्टेप App, Home और Experience पेज पर हैं। पूरी बनी हुई साइट का उदाहरण Experience Cloud Booking पर है।
12. आम पेच (FAQ)
कोई बैनर दिख रहा है, सहेजें बटन गायब है या कैलेंडर खाली है? Troubleshooting में हर संदेश स्क्रीनशॉट और समाधान के साथ है।
- मेरे स्थिति के रंग लागू नहीं हो रहे
- तीन चीज़ें जाँचें। (a) क्या Status Field picklist का बिलकुल सही API नाम है? इसमें छोटे-बड़े अक्षर मायने रखते हैं। (b) क्या Status Colors बिना उद्धरण चिह्नों के
Value:#hex, Value:#hexफ़ॉर्मेट में है?'Confirmed':'#22C55E'इसे चुपचाप तोड़ देता है। (c) क्या रिकॉर्ड में उस picklist का कोई मान सच में है? - रिकॉर्ड अनपेक्षित नामों से सहेजे जा रहे हैं
- Record Name Field (रिकॉर्ड नाम फ़ील्ड) जाँचें: फ़ील्ड छोटा हो तो लंबे नाम कट जाते हैं। Append Date to Record Name जाँचें: चालू हो तो हर नाम में चुनी गई तारीख और समय जुड़ जाते हैं।
- क्षमता ग्रिड से Cancelled रिकॉर्ड कैसे छिपाऊँ?
- Ignored Statuses को
Cancelledपर सेट करें, याCancelled,Rejectedजैसी सूची पर। ये कैलेंडर और क्षमता की गिनती, दोनों से हट जाते हैं। - ब्लॉक करने और छिपाने में क्या फ़र्क है?
- ब्लॉक करना (बंदी) किसी तारीख, समय या संसाधन को दिखता हुआ पर बुक न होने वाला रखता है: छुट्टियाँ, मेंटेनेंस, बंद रूम। छिपाना Cancelled जैसे रिकॉर्ड को कैलेंडर और क्षमता से हटा देता है, जिससे स्लॉट खाली हो जाता है। ब्लॉक करना बनाम छिपाना देखें।
- संपादन बटन नहीं दिख रहा
- Enable Edit Mode चालू करें। तीनों कंपोनेंट में बस यही एक शर्त है। Status Field वैकल्पिक है; वह केवल एडिटर में स्थिति ड्रॉपडाउन जोड़ता है। अगर बटन फिर भी न दिखे, तो पेज या कॉन्फ़िगरेशन में Enable Edit Mode बंद है।
- मुझे केवल कुछ संसाधन चाहिए (रूम, उपकरण नहीं)
- Resource Filter Field और Resource Filter Value इस्तेमाल करें। एक मान: फ़ील्ड
Active__c, मानtrue। कई मान (OR):North,South। कई फ़ील्ड (AND): फ़ील्डType__c;Active__c, मानConference Room;true। - इसकी सेटिंग Time Display Mode है: Grid या Dropdown। Grid मोड में हर तारीख एक ही ग्रिड साझा करती है। हर तारीख का अलग समय चाहिए, तो Dropdown चुनें और Allow Different Times Per Date चालू करें।
- Flow-Managed Save से Click to Save पर कैसे जाऊँ?
- Parent Record Id, Child Object API Name, Date Field API Name और Relationship Field API Name भरें। Parse Date Entries from JSON एक्शन और रिकॉर्ड बनाने वाला loop हटा दें। अब कंपोनेंट का अपना सहेजें बटन रिकॉर्ड लिखता है।
- बिना विवरण वाला त्रुटि toast आता है
- ब्राउज़र का developer console खोलें और
[MDP:ERROR]से शुरू होने वाली लाइनें देखें। पूरी त्रुटि हमेशा वहाँ लॉग होती है, भले toast छोटा हो।
13. Flow रेसिपी
यहाँ सब कुछ Flow Builder में बनता है। कोई Apex नहीं।
चुनी गई तारीखों पर Loop चलाएँ
- Date Time कंपोनेंट वाली एक Screen जोड़ें। Click to Save की सेटिंग खाली छोड़ें।
- स्क्रीन के बाद Parse Date Entries from JSON एक्शन जोड़ें। उसे Dates With Times JSON (Output) दें।
- एक्शन की सूची पर Loop चलाएँ। हर आइटम में from date, to date, start time और end time होते हैं।
- loop के अंदर मानों को एक रिकॉर्ड वेरिएबल में असाइन करें और उसे एक कलेक्शन में जोड़ें। loop के बाद रिकॉर्ड एक ही बार में बनाएँ।
पहली और आखिरी तारीख parent पर रोल-अप करें
चाहते हैं कि parent पर चाइल्ड की सबसे पहली और सबसे आखिरी तारीख दिखे? अपने डेटा के हिसाब से बिना कोड वाला तरीका चुनें।
| आपका सेटअप | यह करें |
|---|---|
| Master-detail relationship | parent पर दो Roll-Up Summary फ़ील्ड जोड़ें: तारीख फ़ील्ड का MIN और तारीख फ़ील्ड का MAX। हो गया। |
| Lookup relationship | चाइल्ड पर एक Record-Triggered Flow (after save)। उसी parent के चाइल्ड ऑब्जेक्ट पर Get Records, तारीख के बढ़ते क्रम में, केवल पहला रिकॉर्ड। यही घटते क्रम में दोबारा करें। दोनों तारीखों से parent की आरंभ और अंत तारीख अपडेट करें। |
Flow के और पैटर्न: Screen Flow गाइड।
14. ऑब्जेक्ट और फ़ील्ड मैपिंग
हर कंपोनेंट पेज पर ऑब्जेक्ट और फ़ील्ड मैपिंग का पूरा आरेख है:
कंपोनेंट किसी भी ऑब्जेक्ट के साथ काम करते हैं। पैकेज के सैंपल ऑब्जेक्ट (Schedule, Event, Resource, Sub Block) केवल डिफ़ॉल्ट हैं। सेटिंग को सही फ़ील्ड वाले अपने कस्टम या स्टैंडर्ड ऑब्जेक्ट की ओर इशारा करें।
15. सभी प्रॉपर्टी का संदर्भ
तीनों कंपोनेंट की हर सेटिंग, उसी लेबल से जो आपको Lightning App Builder, Experience Builder और Flow Builder में दिखता है। हर लेबल के नीचे API नाम है।
सभी प्रॉपर्टी 100+ प्रॉपर्टी खोलने के लिए क्लिक करें: खोजने योग्य
| प्रॉपर्टी | Date | Date Time | Booking | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|---|---|---|
| सेटअप | ||||||
Config NameconfigName | ✓ | ✓ | ✓ | String | खाली | वैकल्पिक: Setup Wizard से बने Config__mdt रिकॉर्ड का DeveloperName। सेट होने पर उस कॉन्फ़िगरेशन की सभी फ़ील्ड/ऑब्जेक्ट सेटिंग डिफ़ॉल्ट के रूप में लागू होती हैं। यहाँ सेट की गई टेक्स्ट और नंबर प्रॉपर्टी कॉन्फ़िगरेशन को ओवरराइड करती हैं। चेकबॉक्स हमेशा कॉन्फ़िगरेशन से आते हैं: बिना टिक वाला बॉक्स और कभी सेट न किया गया बॉक्स, दोनों में फ़र्क नहीं किया जा सकता। |
| व्यू | ||||||
Viewview | ✓ | ✓ | ✓ | String | calendar | कौन-सा रेंडरर इस्तेमाल हो। calendar मासिक ग्रिड है (डिफ़ॉल्ट)। timeline संसाधनों को पंक्तियों में और तारीखों को कॉलम में दिखाता है। week दिन-और-घंटे का ग्रिड है। utilization क्षमता का हीटमैप है, केवल पढ़ने के लिए। agenda समय के क्रम में सूची है, केवल पढ़ने के लिए। |
Available ViewsavailableViews | ✓ | ✓ | ✓ | String | खाली | स्विचर में दिए जाने वाले व्यू की कॉमा से अलग सूची, जैसे calendar,timeline,agenda। पाँचों देने के लिए खाली छोड़ें। ऊपर वाला डिफ़ॉल्ट View हमेशा शामिल रहता है। |
Timeline Window (Days)timelineWindowDays | ✓ | ✓ | ✓ | Integer | 14 | टाइमलाइन व्यू एक बार में कितने दिन दिखाए। पूरे महीने में हर बुकिंग लगभग बीस पिक्सेल चौड़ी रह जाती है और हर लेबल कट जाता है, इसलिए डिफ़ॉल्ट 14 है। पूरा महीना दिखाने के लिए 0 सेट करें। |
Timeline ZoomtimelineZoom | ✓ | ✓ | ✓ | String | week | टाइमलाइन व्यू का शुरुआती ज़ूम: day (एक दिन के घंटे), week (Timeline Window) या month। देखते समय यूज़र ज़ूम बदल सकते हैं। |
Timeline Group By FieldtimelineGroupByField | ✓ | ✓ | ✓ | String | खाली | संसाधन ऑब्जेक्ट पर किसी फ़ील्ड का API नाम (जैसे Building__c), जिससे टाइमलाइन की पंक्तियाँ क्षमता पट्टी वाले हेडर के नीचे समूहित हों। एक सीधी सूची के लिए खाली छोड़ें। |
Max View ResourcesmaxViewResources | ✓ | ✓ | ✓ | Integer | 0 | टाइमलाइन और उपयोग व्यू ज़्यादा से ज़्यादा कितनी संसाधन पंक्तियाँ दिखाएँ, सबसे व्यस्त पहले। इससे संसाधनों की लंबी सूची किसी भी व्यू को न पढ़ी जा सकने वाली दीवार नहीं बनाती। |
Agenda FieldsagendaFields | ✓ | ✓ | ✓ | String | खाली | एजेंडा व्यू की हर पंक्ति पर रिकॉर्ड नाम के बाद दिखाए जाने वाले फ़ील्ड, कॉमा से अलग। Hover Fields दोबारा इस्तेमाल करने के लिए खाली छोड़ें। तारीख, समय और रिकॉर्ड नाम वाले फ़ील्ड अपने आप छोड़ दिए जाते हैं, क्योंकि पंक्ति उन्हें पहले से दिखाती है। |
Resource RowsresourceViewFilter | ✓ | ✓ | ✓ | String | all | टाइमलाइन और उपयोग व्यू में किन संसाधनों की पंक्ति बने। all हर संसाधन दिखाता है; booked केवल उन्हें जिनकी मौजूदा विंडो में बुकिंग है। संसाधनों की लंबी सूची छोटी करने का यही बेहतर तरीका है, क्योंकि खाली पंक्ति छिपाने से कुछ नहीं खोता। |
| डिस्प्ले और लेआउट | ||||||
Button Labellabel | ✓ | ✓ | ✓ | String | Date: Select Dates; Date Time: Select Dates & Times; Booking: Book Resource | तारीख पिकर खोलने वाले बटन पर दिखने वाला टेक्स्ट। उदाहरण: 'तारीखें चुनें' या 'तारीखें जोड़ें' |
Calendar TitlemodalTitle | ✓ | ✓ | ✓ | String | Date: Select Dates; Date Time: Select Dates & Times; Booking: Book Resource | कैलेंडर modal के ऊपर दिखने वाला शीर्षक। |
Show Inline (Always Visible)इस नाम से भी: Show Inline (No Button)showInline | ✓ | ✓ | ✓ | Boolean | true | ON होने पर कैलेंडर बिना बटन क्लिक किए हमेशा दिखता है। OFF होने पर एक बटन कैलेंडर को popup में खोलता है। |
Two-Month ViewtwoMonthView | ✓ | ✓ | ✓ | Boolean | false | ON होने पर रेंज आसानी से चुनने के लिए दो महीने अगल-बगल दिखते हैं। OFF होने पर एक बार में एक महीना। |
Calendar SizecalendarSize | ✓ | ✓ | ✓ | String | medium | कैलेंडर का कुल आकार तय करता है। मान्य मान: tiny, xsmall (Very Small), small, medium, large। डिफ़ॉल्ट medium है। utility bar, sidebar और डैशबोर्ड टाइल के लिए tiny या xsmall, तंग जगह के लिए small, ज़्यादातर लेआउट के लिए medium, और टच के अनुकूल अनुभव के लिए large। |
Day Header FormatdayHeaderFormat | ✓ | ✓ | ✓ | String | 3 | सप्ताह के दिनों के हेडर की लंबाई। मान्य मान: 3, 2, 1। डिफ़ॉल्ट 3 है। 3 = SUN MON TUE, 2 = SU MO TU, 1 = S M T। |
Week Starts on MondayweekStartsOnMonday | ✓ | ✓ | ✓ | Boolean | false | ON होने पर कैलेंडर का सप्ताह सोमवार से शुरू होता है (ISO मानक)। OFF होने पर सप्ताह रविवार से शुरू होता है (US मानक)। |
Show Recurring Pattern ButtonshowRecurringPattern | ✓ | ✓ | ✓ | Boolean | true | ON होने पर एक बटन दिखता है जिससे यूज़र किसी अंत तारीख तक सभी कार्यदिवस, सप्ताहांत या सप्ताह के खास दिन जल्दी से चुन सकते हैं। |
Show Selection SummaryshowSelectedSummary | ✓ | ✓ | ✓ | Boolean | true | ON होने पर सारांश दिखता है कि कितनी और कौन-सी तारीखें चुनी गई हैं। |
Show Done Button in Inline ModeshowDoneButtonInline | ✓ | ✓ | ✓ | Boolean | false | ON होने पर और Show Inline चालू हो, तो एक हो गया (Done) बटन दिखता है जो कैलेंडर को सारांश व्यू में समेट देता है। |
Show In-Component ToastshowSuccessToast | ✓ | ✓ | ✓ | Boolean | false | कंपोनेंट के अंदर सफलता/त्रुटि का toast दिखाता है (Experience साइट पर ज़रूरी, जहाँ स्टैंडर्ड toast नहीं दिखता)। रिकॉर्ड पेज पर भी काम करता है। |
Show Add to Calendar After SavingshowAddToCalendar | ✓ | ✓ | ✓ | Boolean | false | सफलतापूर्वक सहेजने के बाद “कैलेंडर में जोड़ें” बटन एक कैलेंडर फ़ाइल (.ics) डाउनलोड करता है, जिसमें अभी सहेजे गए हर रिकॉर्ड का एक इवेंट होता है। यह Outlook, Google Calendar और Apple Calendar में खुलती है और Experience Cloud guest के लिए भी काम करती है। केवल तारीख वाले रिकॉर्ड पूरे दिन के इवेंट बनते हैं; समय वाले रिकॉर्ड अपना समय रखते हैं। |
Calendar File Location FieldcalendarLocationField | ✓ | String | खाली | संसाधन ऑब्जेक्ट पर किसी फ़ील्ड का API नाम, जिसका मान “कैलेंडर में जोड़ें” फ़ाइल में हर इवेंट का Location बनता है, जैसे किसी रूम का पता, या खुद रूम के लिए Name। जब संसाधन लोग हों, जैसे सलाहकार या टेक्नीशियन, तो खाली छोड़ें: उनका नाम इवेंट के शीर्षक में पहले से है, और व्यक्ति कोई जगह नहीं होता। Show Add to Calendar After Saving ज़रूरी है। | ||
Success Toast Message (optional)successToastMessage | ✓ | ✓ | ✓ | String | खाली | सफलतापूर्वक सहेजने पर वैकल्पिक कस्टम संदेश। खाली हो तो डिफ़ॉल्ट संदेश। |
| चयन के नियम | ||||||
Requiredrequired | ✓ | ✓ | ✓ | Boolean | false | ON होने पर Flow के अगली स्क्रीन पर जाने से पहले यूज़र को कम से कम एक तारीख चुननी होगी। |
Max Dates Allowedइस नाम से भी: Max Dates Per BookingmaxSelections | ✓ | ✓ | ✓ | Integer | 0 | यूज़र ज़्यादा से ज़्यादा कितनी तारीखें चुन सकता है। 0 = असीमित। |
Max Time SlotsmaxTimeSlotSelection | ✓ | ✓ | Integer | 0 | यूज़र कुल मिलाकर (सभी तारीखों में) ज़्यादा से ज़्यादा कितने टाइम स्लॉट चुन सकता है। 0 = असीमित। | |
Allow Past DatesallowPastDates | ✓ | ✓ | ✓ | Boolean | Date: true; Date Time: true; Booking: false | ON होने पर यूज़र कोई भी बीती तारीख चुन सकते हैं। OFF होने पर केवल आज और आगे की तारीखें चुनी जा सकती हैं। |
Earliest Selectable Dateइस नाम से भी: Earliest Bookable DateminDate | ✓ | ✓ | ✓ | Date | खाली | यूज़र जो सबसे पहली तारीख चुन सकते हैं। इससे पहले की तारीखें धूसर रहती हैं। उसी दिन की बुकिंग रोकनी हो, तो इसकी जगह Minimum Notice इस्तेमाल करें: वह घड़ी के साथ आगे बढ़ता है। |
Latest Selectable Dateइस नाम से भी: Latest Bookable DatemaxDate | ✓ | ✓ | ✓ | Date | खाली | यूज़र जो सबसे आखिरी तारीख चुन सकते हैं। इसके बाद की तारीखें धूसर रहती हैं। |
Book Up To (Days Ahead)maxDaysAhead | ✓ | ✓ | ✓ | Integer | 0 | चलती हुई बुकिंग विंडो: आखिरी चुनी जा सकने वाली तारीख आज से इतने दिन आगे है, और यह हर दिन आगे खिसकती है। 0 का मतलब कोई सीमा नहीं। अगर Latest Selectable Date भी सेट है, तो दोनों में से जो पहले आए वही लागू होता है। |
Minimum Notice (Hours)minNoticeHours | ✓ | ✓ | ✓ | Integer | 0 | जो कुछ अभी से इतने घंटों के अंदर शुरू होता है, उसे न चुना जा सकता है न सहेजा। पहले के दिन धूसर रहते हैं, और कट-ऑफ़ वाले दिन शुरुआती टाइम स्लॉट बंद हो जाते हैं। सहेजते समय दोबारा जाँच होती है, इसलिए रात भर खुला छोड़ा गया पेज भी नोटिस विंडो के अंदर बुक नहीं कर सकता। 0 का मतलब कोई न्यूनतम सीमा नहीं। |
Pre-Selected DatesdefaultDates | ✓ | ✓ | ✓ | String[] | खाली | कैलेंडर खुलते समय पहले से चुनी हुई तारीखें। ISO फ़ॉर्मेट (YYYY-MM-DD) में दें। |
Blocked DatesdisabledDates | ✓ | ✓ | ✓ | String[] | खाली | खास तारीखें जिन्हें चुना नहीं जा सकता (धूसर दिखती हैं)। छुट्टियों या ब्लैकआउट तारीखों के लिए इस्तेमाल करें। ISO फ़ॉर्मेट (YYYY-MM-DD) में दें। |
Only These Dates Are SelectableavailableDates | ✓ | ✓ | ✓ | String[] | खाली | सेट होने पर केवल यही तारीखें चुनी जा सकती हैं: बाकी सब धूसर रहती हैं। ISO फ़ॉर्मेट (YYYY-MM-DD) में दें। तब काम का है जब मान्य तारीखें आपके Flow में किसी और स्रोत से आती हों। |
Auto-Jump to First Available DateautoJumpToFirstAvailable | ✓ | ✓ | ✓ | Boolean | false | ON होने पर और 'Only These Dates Are Selectable' सेट हो, तो कैलेंडर अपने आप पहली उपलब्ध तारीख वाले महीने पर खुलता है। |
Allow Whole-Day (No Times)allowWholeDayNoTimes | ✓ | ✓ | Boolean | false | चालू होने पर बिना टाइम स्लॉट के चुनी गई तारीख पूरे दिन का रिकॉर्ड सहेजती है (पूरा दिन ब्लॉक या बुक करती है)। टाइम स्लॉट वाली तारीखें समय वाले रिकॉर्ड के रूप में सहेजी जाती हैं। | |
| रिकॉर्ड और सहेजना | ||||||
Parent Record IdrecordId | ✓ | ✓ | ✓ | String | खाली | सेट होने पर कंपोनेंट Click to Save मोड में चलता है और इस parent से जुड़े चाइल्ड रिकॉर्ड लिखता है। Get Records या recordCreate आउटपुट से एक रिकॉर्ड Id दें (जैसे {!recordVar.Id})। स्टैंडर्ड parser+loop+create पैटर्न के लिए खाली छोड़ें। |
Static Parent Record IdstaticRecordId | ✓ | ✓ | ✓ | String | खाली | खास स्थिति: इस कैलेंडर को एक ही parent रिकॉर्ड से बाँधने के लिए Record Id सीधे लिख दें। Record Page, App Page (static id ज़रूरी), Home Page (static id ज़रूरी) और Experience Site (static id ज़रूरी) पर काम करता है। Record Page पर खाली छोड़ें: पेज का रिकॉर्ड अपने आप डाल दिया जाता है। |
Parent Record Id FieldparentRecordIdField | ✓ | ✓ | ✓ | String | खाली | केवल तब चाहिए जब यह कंपोनेंट parent से अलग किसी दूसरे ऑब्जेक्ट के रिकॉर्ड पेज पर हो। असली parent की ओर इशारा करने वाले lookup फ़ील्ड का API नाम डालें। कंपोनेंट parent ऑब्जेक्ट के पेज पर हो तो खाली छोड़ें। |
Child Object API Nameइन नामों से भी: Related Booking Object API Name; Child Object API Name (for preload)relatedObjectApiName | ✓ | ✓ | ✓ | String | खाली | उस ऑब्जेक्ट का API नाम जिसमें हर चुनी गई तारीख एक रिकॉर्ड के रूप में सहेजी जाती है। उदाहरण: Appointment__c, Schedule_Entry__c। Click to Save के लिए ज़रूरी। |
Date Field API Nameइस नाम से भी: Date Field API Name (for preload)dateFieldApiName | ✓ | ✓ | ✓ | String | खाली | चाइल्ड ऑब्जेक्ट पर उस Date फ़ील्ड का API नाम जो चुनी गई तारीख रखता है। उदाहरण: Event_Date__c, Start_Date__c |
End Date Field API Nameइस नाम से भी: End Date FieldendDateField | ✓ | ✓ | ✓ | String | खाली | चाइल्ड ऑब्जेक्ट पर End Date फ़ील्ड का API नाम। सेट होने पर लगातार चुनी गई तारीखें हर तारीख के अलग रिकॉर्ड की जगह आरंभ और अंत तारीख वाले एक रिकॉर्ड में जुड़ जाती हैं। उदाहरण: End_Date__c |
Relationship Field API Nameइस नाम से भी: Parent Record Relationship FieldrelationshipFieldApiName | ✓ | ✓ | ✓ | String | खाली | चाइल्ड ऑब्जेक्ट पर उस lookup फ़ील्ड का API नाम जो parent रिकॉर्ड से जोड़ता है। उदाहरण: Account__c, Contact__c, Order__c |
Load Existing Datesइस नाम से भी: Load Existing BookingspreloadExistingDates | ✓ | ✓ | ✓ | Boolean | true | ON होने पर मौजूदा चाइल्ड रिकॉर्ड query करता है और लोड होते ही उनकी तारीखें कैलेंडर में दिखाता है। Child Object, Date Field और Relationship Field ज़रूरी हैं। |
Existing Dates Modeइस नाम से भी: Existing Bookings ModepreloadMode | ✓ | ✓ | ✓ | String | editable | लोड की गई तारीखें कैसे दिखें। केवल तब लागू जब Load Existing Dates ON हो। मान्य मान: editable, readonly। डिफ़ॉल्ट: editable। editable = तारीखें चुनी हुई होती हैं और बदली जा सकती हैं। readonly = तारीखें धूसर दिखती हैं और हटाई नहीं जा सकतीं। Flow में यह फ़्री-टेक्स्ट इनपुट के रूप में दिखता है, इसलिए इनमें से कोई एक मान ठीक वैसा ही लिखें। |
Save Button LabelsaveButtonLabel | ✓ | ✓ | ✓ | String | सहेजें | Click to Save मोड में सहेजें बटन का टेक्स्ट। उदाहरण: 'तारीखें सहेजें', 'चयन की पुष्टि करें' |
Record Name FieldrecordNameField | ✓ | ✓ | ✓ | String | खाली | चाइल्ड ऑब्जेक्ट पर उस टेक्स्ट फ़ील्ड का API नाम जिसमें रिकॉर्ड का लेबल सहेजा जाता है। सेट होने पर यूज़र को लेबल लिखने के लिए एक टेक्स्ट इनपुट दिखता है। |
Default Record NamedefaultRecordName | ✓ | ✓ | ✓ | String | खाली | रिकॉर्ड नाम का इनपुट पहले से भर देता है। यूज़र इसे चलते समय बदल सकते हैं। उदाहरण: 'PTO Day', 'Team Meeting'। |
Append Date/Time to Record Nameइस नाम से भी: Append Date to Record NameappendDateTimeToName | ✓ | ✓ | ✓ | Boolean | true | ON होने पर रिकॉर्ड नाम में तारीख जोड़ देता है। |
| स्थिति और संपादन | ||||||
Status FieldstatusField | ✓ | ✓ | ✓ | String | खाली | चाइल्ड ऑब्जेक्ट पर picklist/स्थिति फ़ील्ड का API नाम। कॉन्फ़िगर होने पर रिकॉर्ड नाम इनपुट के साथ एक स्थिति ड्रॉपडाउन दिखता है, ताकि यूज़र तारीखें चुनते समय स्थिति दे सकें। Status Colors, Ignored Statuses, Status Field Label और Enable Edit Mode के लिए ज़रूरी। उदाहरण: Status__c |
Status ColorsstatusColors | ✓ | ✓ | ✓ | String | खाली | स्थिति मानों और hex रंगों की कॉमा से अलग मैपिंग। फ़ॉर्मेट: Value:#hex। स्थिति के रंग कैलेंडर के तारीख वाले खानों पर दिखते हैं। Status Field ज़रूरी है। उदाहरण: Confirmed:#22C55E, Tentative:#fbbf24, Pending:#60a5fa, Cancelled:#a1a8b5 |
Status Color DisplaystatusColorDisplay | ✓ | ✓ | ✓ | String | Date: calendar; Date Time: both; Booking: both | स्थिति के रंग कहाँ दिखें। Dates कंपोनेंट में केवल 'calendar' उपलब्ध है: कैलेंडर के तारीख वाले खाने अपनी स्थिति के रंग में दिखते हैं। |
Ignored Statusesइस नाम से भी: Ignored StatuseshideBookingsWithStatus | ✓ | ✓ | ✓ | String | खाली | स्थिति मानों की कॉमा से अलग सूची, जिनके रिकॉर्ड कैलेंडर से छिपाए जाते हैं। छिपे रिकॉर्ड दिखाए नहीं जाते, पर Salesforce में बने रहते हैं। Status Field ज़रूरी है। उदाहरण: Cancelled, Rejected |
Selectable Statuses (Status Picker)selectableStatuses | ✓ | ✓ | ✓ | String | खाली | बुकिंग का स्थिति पिकर कौन-से मान सेट कर सकता है, कॉमा से अलग। सभी की अनुमति (बैक-ऑफ़िस) के लिए खाली छोड़ें। जैसे ग्राहक साइट के लिए 'Scheduled'। अगर ठीक एक ही स्थिति चुनी जा सकती है, तो वह अपने आप चुन ली जाती है और पिकर छिप जाता है। Status Field ज़रूरी है। |
Second Picklist FieldsecondStatusField | ✓ | ✓ | ✓ | String | खाली | वैकल्पिक दूसरे picklist फ़ील्ड का API नाम, जिसे यूज़र सहेजते समय चुनता है (जैसे Reason__c)। इसके रंग नहीं होते: कैलेंडर के रंग statusField तय करता है। इसे दिखाने के लिए Hover Popover Fields में जोड़ें। Flow, App Builder और Communities में काम करता है। |
Second Picklist LabelsecondStatusFieldLabel | ✓ | ✓ | ✓ | String | खाली | दूसरे picklist ड्रॉपडाउन का वैकल्पिक लेबल। खाली हो तो कंपोनेंट फ़ील्ड के API नाम को पढ़ने लायक बना देता है। |
Selectable Second-Picklist ValuesselectableSecondStatuses | ✓ | ✓ | ✓ | String | खाली | दूसरी picklist के उन मानों की वैकल्पिक कॉमा से अलग सूची जिन्हें यूज़र चुन सकता है। सभी के लिए खाली छोड़ें। ठीक एक मान हो, तो वह अपने आप चुन लिया जाता है और पिकर छिप जाता है। |
Status Field LabelstatusFieldLabel | ✓ | ✓ | ✓ | String | खाली | end user को दिखने वाले स्थिति ड्रॉपडाउन का वैकल्पिक लेबल। यहाँ फ़ील्ड का API नाम न डालें: यह केवल दिखने वाला लेबल है। खाली हो तो कंपोनेंट Status Field के API नाम को अपने आप पढ़ने लायक बना देता है। |
Hover Popover FieldshoverFields | ✓ | ✓ | ✓ | String | खाली | फ़ील्ड API नामों की कॉमा से अलग सूची, जो मौजूदा रिकॉर्ड वाली कैलेंडर तारीख पर होवर करने पर दिखते हैं। फ़ील्ड Child Object से query होते हैं। relationship फ़ील्ड सपोर्टेड हैं। डेटा केवल तब दिखता है जब मौजूदा रिकॉर्ड लोड हों (Load Existing Dates से)। उदाहरण: Name, Status__c, Notes__c। होवर popover बंद करने के लिए खाली छोड़ें। |
Enable Edit ModeenableEditMode | ✓ | ✓ | ✓ | Boolean | true | ON होने पर यूज़र मौजूदा तारीखों पर क्लिक करके तारीख या स्थिति बदल सकते हैं, या रिकॉर्ड डिलीट कर सकते हैं। Status Field और Status Colors, दोनों का कॉन्फ़िगर होना ज़रूरी है। |
Edit Button LabeleditButtonLabel | ✓ | ✓ | ✓ | String | खाली | संपादन मोड टॉगल बटन का कस्टम लेबल। खाली छोड़ें तो डिफ़ॉल्ट 'Edit Dates' (दिनांक संपादित करें) होता है। |
Edit Record DisplayeditRecordDisplay | ✓ | ✓ | ✓ | String | खाली | कॉमा से अलग keywords, जो तय करते हैं कि संपादन मोड की रिकॉर्ड सूची में कौन-से फ़ील्ड किस क्रम में दिखें। Keywords: name, status, time, date, resource। खाली होने पर डिफ़ॉल्ट: name, status, time। उदाहरण: name, date, status |
| टाइम स्लॉट | ||||||
Time Display ModetimeDisplayMode | ✓ | String | grid | समय कैसे दिखाया जाए। मान्य मान: grid, dropdown। डिफ़ॉल्ट: grid। grid = स्लॉट का विज़ुअल ग्रिड, जिसमें यूज़र क्लिक या ड्रैग करके टाइम ब्लॉक चुनते हैं। dropdown = lightning-input टाइम पिकर। dropdown मोड में साझा या हर तारीख के अलग पिकर के लिए Allow Different Times Per Date इस्तेमाल करें। Flow में यह फ़्री टेक्स्ट के रूप में दिखता है, इसलिए इनमें से कोई एक मान ठीक वैसा ही लिखें। | ||
Time Interval (Minutes)इस नाम से भी: Time Slot Interval (Minutes)timeInterval | ✓ | ✓ | Integer | 30 | टाइम स्लॉट के बीच के मिनट। कोई भी पूर्ण संख्या चलती है; आम तौर पर 15, 30 या 60 मिनट। उदाहरण: 30 से 9:00, 9:30, 10:00 दिखते हैं। | |
Earliest TimeminTime | ✓ | String | 09:00 | टाइम सिलेक्टर में दिखने वाला सबसे पहला समय। 24 घंटे का फ़ॉर्मेट (HH:mm) इस्तेमाल करें। उदाहरण: 08:00 = सुबह 8:00, 13:00 = दोपहर 1:00। रात 12:00 बजे से शुरू करने के लिए खाली छोड़ें। | ||
Latest TimemaxTime | ✓ | String | 18:00 | टाइम सिलेक्टर में दिखने वाला सबसे आखिरी समय। 24 घंटे का फ़ॉर्मेट (HH:mm) इस्तेमाल करें। उदाहरण: 17:00 = शाम 5:00, 20:00 = रात 8:00। रात 11:30 पर खत्म करने के लिए खाली छोड़ें। | ||
Start Time Fieldइस नाम से भी: Start Time Field API NamestartTimeField | ✓ | String | खाली | चाइल्ड ऑब्जेक्ट पर स्लॉट के आरंभ समय के लिए Time फ़ील्ड का API नाम। उदाहरण: Start_Time__c | ||
End Time Fieldइस नाम से भी: End Time Field API NameendTimeField | ✓ | String | खाली | चाइल्ड ऑब्जेक्ट पर स्लॉट के अंत समय के लिए Time फ़ील्ड का API नाम। उदाहरण: End_Time__c | ||
Allow Different Times Per DateallowDifferentTimes | ✓ | ✓ | Boolean | false | ON होने पर और Time Display Mode 'dropdown' हो, तो हर तारीख का अपना टाइम पिकर होता है (सप्ताह के हिसाब से समूहित)। OFF होने पर सभी तारीखें एक ही समय साझा करती हैं। Time Display Mode 'grid' हो तो इसका कोई असर नहीं। | |
Enable End TimeenableEndTime | ✓ | Boolean | true | ON होने पर Start Time के साथ अलग End Time ड्रॉपडाउन दिखता है। JSON आउटपुट में startTime और endTime दोनों आते हैं। केवल dropdown मोड (Time Display Mode = 'dropdown') में लागू। grid मोड में कोई असर नहीं। | ||
Group Time Slots by PeriodgroupTimeSlotsByPeriod | ✓ | ✓ | Boolean | false | ON होने पर टाइम स्लॉट सुबह, दोपहर और शाम के हिस्सों में बँट जाते हैं। OFF (डिफ़ॉल्ट) होने पर एक सीधा ग्रिड दिखता है। केवल तब लागू जब Time Display Mode 'grid' हो। | |
Time Grid OnlytimeGridOnly | ✓ | ✓ | Boolean | false | ON होने पर कैलेंडर पूरी तरह छिप जाता है और एक तय तारीख के लिए केवल टाइम स्लॉट ग्रिड दिखता है। यूज़र टाइम स्लॉट चुनता है; रिकॉर्ड Click to Save से host रिकॉर्ड पर सहेजे जाते हैं (तारीख चुनने का स्टेप नहीं)। तारीख Time Grid Date से आती है, वह न हो तो Time Grid Date Field से, वरना आज की। | |
Time Grid DatetimeGridDate | ✓ | ✓ | String | खाली | Time Grid Only ON होने पर तय तारीख के लिए वैकल्पिक ISO तारीख (YYYY-MM-DD)। सबसे ऊँची प्राथमिकता। Time Grid Date Field से पढ़ने या आज की तारीख लेने के लिए खाली छोड़ें। | |
Time Grid Date FieldtimeGridDateField | ✓ | ✓ | String | खाली | Time Grid Only ON होने पर (रिकॉर्ड पेज पर) host रिकॉर्ड के उस Date फ़ील्ड का वैकल्पिक API नाम, जिससे तारीख पढ़ी जाए। केवल तब इस्तेमाल होता है जब Time Grid Date खाली हो। उदाहरण: Appointment_Date__c | |
Disable Time Slot Grid (Full-Day Mode)disableTimeSlotGrid | ✓ | Boolean | false | ON होने पर पूरे दिन की बुकिंग के लिए टाइम स्लॉट ग्रिड छिप जाता है, जहाँ केवल तारीख मायने रखती है। OFF (डिफ़ॉल्ट) होने पर समय के हिसाब से बारीक बुकिंग के लिए टाइम स्लॉट ग्रिड दिखता है। | ||
| संसाधन और क्षमता | ||||||
Resource Object API NameresourceObjectApiName | ✓ | String | खाली | बुक किए जा सकने वाले संसाधनों को रखने वाले ऑब्जेक्ट का API नाम। हर रिकॉर्ड = ड्रॉपडाउन में दिखने वाला एक संसाधन। उदाहरण: Room__c, Equipment__c, Vehicle__c, Staff__c | ||
Resource Name FieldresourceNameField | ✓ | String | Name | संसाधन का दिखने वाला नाम रखने वाले फ़ील्ड का API नाम। आम तौर पर 'Name'। | ||
Resource Filter Field (optional)resourceFilterField | ✓ | String | खाली | संसाधन ऑब्जेक्ट पर उस फ़ील्ड का API नाम जिससे पिकर में दिखने वाले संसाधन सीमित होते हैं। Resource Filter Value के साथ इस्तेमाल करें। कई फ़ील्ड जोड़ने (AND) के लिए ';' लगाएँ। उदाहरण: 'Active__c' (एक boolean फ़ील्ड), 'Type__c' (एक picklist), 'Type__c;Building__c' (AND से जुड़े दो फ़ील्ड)। हर संसाधन दिखाने के लिए खाली छोड़ें। | ||
Resource Filter Value (optional)resourceFilterValue | ✓ | String | खाली | फ़िल्टर फ़ील्ड का मान जो मेल खाना चाहिए। एक ही फ़ील्ड के मानों के बीच ',' = OR (IN clause)। मानों के बीच ';' = कई फ़ील्ड में AND (Resource Filter Field में फ़ील्ड की संख्या से मेल खाना चाहिए)। उदाहरण: 'true': Active=true। 'Conference Room': Type=Conference Room। 'North,South': Building IN North या South। 'Conference Room;North': Type=Conference Room AND Building=North। 'Conference Room;North,South': Type=Conference Room AND Building IN North या South। | ||
Business Hours Start FieldbusinessHoursStartField | ✓ | String | खाली | संसाधन ऑब्जेक्ट पर उस Time फ़ील्ड का API नाम जो बताता है कि संसाधन हर दिन कब से उपलब्ध है। उदाहरण: Business_Hours_Start__c (सुबह 8:00 के लिए 08:00:00.000Z)। पूरे कॉन्फ़िगर किए गए अंतराल के टाइम स्लॉट के लिए खाली छोड़ें। | ||
Business Hours End FieldbusinessHoursEndField | ✓ | String | खाली | संसाधन ऑब्जेक्ट पर उस Time फ़ील्ड का API नाम जो हर दिन का आखिरी उपलब्ध समय बताता है। उदाहरण: Business_Hours_End__c (शाम 6:00 के लिए 18:00:00.000Z)। | ||
Allow Multiple Resourcesइस नाम से भी: Allow Booking Multiple ResourcesallowMultipleResources | ✓ | Boolean | false | ON होने पर यूज़र चेकबॉक्स से कई संसाधन चुनकर सबको एक साथ बुक कर सकते हैं। टाइम ग्रिड केवल वही स्लॉट दिखाता है जो सभी चुने गए संसाधनों पर उपलब्ध हों। उदाहरण: एक ही समय पर एक रूम और एक प्रोजेक्टर बुक करना। | ||
Allow No Resourceइस नाम से भी: Allow Save Without Picking a ResourceallowNoResource | ✓ | Boolean | false | ON होने पर यूज़र बिना कोई संसाधन चुने सहेज सकते हैं: सहेजे गए रिकॉर्ड का संसाधन lookup खाली (null) रहता है। यह बंदी या ब्लैकआउट लिखने वालों के लिए है, जहाँ खाली संसाधन का मतलब है 'सब पर लागू'। जो कैलेंडर प्रति-संसाधन फ़िल्टर (blockedDatesResourceField) से बंदी पढ़ते हैं, वे null संसाधन को पूरे क्षेत्र पर लागू मानते हैं, इसलिए allowNoResource के साथ यह 'वैकल्पिक सलाहकार दायरा' पैटर्न देता है। सामान्य बुकिंग के लिए, जहाँ संसाधन हमेशा चुनना ज़रूरी है, इसे OFF (डिफ़ॉल्ट) रखें। | ||
Booking Object API NameresourceBookingObject | ✓ | String | खाली | उस ऑब्जेक्ट का API नाम जिसमें बुकिंग रिकॉर्ड बनते हैं। हर संसाधन की हर तारीख का एक रिकॉर्ड। उदाहरण: Room_Booking__c, Equipment_Reservation__c | ||
Booking Date FieldbookingDateField | ✓ | String | खाली | बुकिंग ऑब्जेक्ट पर Date फ़ील्ड का API नाम। Date टाइप होना चाहिए (DateTime नहीं)। उदाहरण: Booking_Date__c | ||
Booking Resource FieldbookingResourceField | ✓ | String | खाली | बुकिंग ऑब्जेक्ट पर संसाधन की ओर इशारा करने वाले lookup फ़ील्ड का API नाम। उदाहरण: Room__c (Room_Booking__c से Room__c तक lookup) | ||
Booking Start Time FieldbookingStartTimeField | ✓ | String | खाली | बुकिंग ऑब्जेक्ट पर आरंभ समय के Time फ़ील्ड का API नाम। उदाहरण: Start_Time__c। बिना टाइम स्लॉट वाली केवल तारीख की बुकिंग के लिए खाली छोड़ें। | ||
Booking End Time FieldbookingEndTimeField | ✓ | String | खाली | बुकिंग ऑब्जेक्ट पर अंत समय के Time फ़ील्ड का API नाम। उदाहरण: End_Time__c। सिस्टम चुने गए स्लॉट से अंत समय निकालता है। | ||
Book Button LabelresourceBookButtonLabel | ✓ | String | Book | बुकिंग की पुष्टि करने वाले बटन का टेक्स्ट। उदाहरण: 'अभी बुक करें', 'आरक्षित करें', 'बुकिंग कन्फ़र्म करें' | ||
Capacity FieldcapacityField | ✓ | String | खाली | संसाधन ऑब्जेक्ट पर उस Number फ़ील्ड का API नाम जो हर टाइम स्लॉट में ज़्यादा से ज़्यादा एक साथ होने वाली बुकिंग तय करता है। सेट होने पर स्लॉट पर X/Y बैज दिखता है और भरने तक स्लॉट उपलब्ध रहता है। ट्रेनिंग रूम, hot desk या क्लास रजिस्ट्रेशन के लिए आदर्श। हर स्लॉट में एक बुकिंग के लिए खाली छोड़ें। उदाहरण: Capacity__c | ||
Capacity Aggregation (multi-resource)capacityAggregation | ✓ | String | Combined | केवल क्षमता बुकिंग मोड (Capacity Field ज़रूरी)। कई संसाधन चुने जाने पर X/Y क्षमता कैसे गिनी जाए, यह तय करता है। COMBINED (डिफ़ॉल्ट) बुकिंग और क्षमता दोनों को जोड़ता है: तब सबसे अच्छा जब हर संसाधन अलग इन्वेंटरी हो (जैसे 5-5 क्षमता वाले 4 रूम में 4 रिकॉर्ड = 4/20)। DISTINCT अलग-अलग इवेंट गिनता है (संसाधनों में एक ही तारीख + आरंभ समय + अंत समय वाले रिकॉर्ड एक गिने जाते हैं) और किसी एक संसाधन की सबसे बड़ी क्षमता लेता है: तब सबसे अच्छा जब एक इवेंट एक साथ कई संसाधनों पर हो (4 रूम में 4 रिकॉर्ड = 1/5)। | ||
Show Availability CountshowAvailabilityCount | ✓ | Boolean | true | ON होने पर संसाधन पैनल में उपलब्धता का विवरण दिखता है (जैसे '3/5 दिन उपलब्ध')। इससे यूज़र बुक करने से पहले सबसे अच्छा संसाधन चुन पाते हैं। Resource Object API Name कॉन्फ़िगर होना ज़रूरी है। | ||
| टकराव | ||||||
Conflict BehaviorconflictBehavior | ✓ | ✓ | String | block | चुनी गई तारीखों का समय मौजूदा रिकॉर्ड से टकराए तो क्या हो, यह तय करता है। 'block' (डिफ़ॉल्ट): सहेजना रुक जाता है और टकराने वाली तारीखें हाइलाइट होती हैं। 'skip': सहेजना होता है, पर टकराने वाली तारीखें छोड़ दी जाती हैं। 'allow': कोई टकराव जाँच नहीं। केवल grid-shared मोड में लागू (Time Display Mode='grid' + Allow Different Times Per Date=OFF)। | |
Buffer Between Bookings (Minutes)bufferMinutes | ✓ | ✓ | Integer | 0 | हर मौजूदा बुकिंग के बाद सफ़ाई या तैयारी के लिए खाली रखे जाने वाले मिनट; Booking में हर संसाधन के लिए अलग। जो समय बफ़र के अंदर शुरू होता, उसे हर उस जगह भरा हुआ माना जाता है जहाँ उपलब्धता दिखती है (टाइम ग्रिड, क्षमता की गिनती, सप्ताह व्यू में ड्रैग) और सहेजते समय भी, और आगे क्या हो यह Conflict Behavior तय करता है। उदाहरण: 15 डालने पर एक ही रूम में दो मीटिंग के बीच पंद्रह मिनट रहते हैं। | |
Conflict Look-Ahead DaysconflictLookAheadDays | ✓ | ✓ | Integer | 360 | टाइम स्लॉट के टकराव जाँचने और उपलब्धता लोड करने के लिए कितने दिन आगे तक देखा जाए। डिफ़ॉल्ट: 360। ज़्यादा डेटा वाले ऑब्जेक्ट पर बेहतर परफ़ॉर्मेंस के लिए इसे घटाएँ। | |
| Sub-block | ||||||
Consolidate Time SpanconsolidateTimeSpan | ✓ | ✓ | Boolean | false | ON होने पर चुने गए टाइम स्लॉट पहले स्लॉट के आरंभ से आखिरी स्लॉट के अंत तक एक ही अवधि के रूप में आउटपुट होते हैं। चुने गए स्लॉट के बीच के अंतराल अपने आप नारंगी हो जाते हैं और sub-block के रूप में दर्ज होते हैं। उन शेड्यूलिंग स्थितियों के लिए जहाँ पूरी शिफ़्ट की अवधि (जैसे सुबह 9 से शाम 5) चाहिए और ब्रेक अलग से दर्ज करने हों। केवल grid मोड में लागू। | |
Sub-Block Button LabelsubBlockModeButtonLabel | ✓ | ✓ | String | खाली | सेट होने पर एक टॉगल बटन जुड़ता है जिससे यूज़र स्लॉट को खुद sub-block (नारंगी) चिह्नित कर सकते हैं। काम की अवधि के किनारे वाले sub-block के लिए उपयोगी। केवल अपने आप नारंगी होने के लिए खाली छोड़ें। उदाहरण: 'ब्रेक के रूप में चिह्नित करें', 'लंच के रूप में चिह्नित करें'। Consolidate Time Span का ON होना ज़रूरी है। | |
Show Sub-Block Toggle ButtonshowSubBlockButton | ✓ | ✓ | Boolean | false | ON होने पर टाइम ग्रिड के हेडर में sub-block टॉगल बटन दिखता है। Consolidate Time Span ON और Sub-Block Button Label सेट होना ज़रूरी है। | |
Sub-Block Object API NamesubBlockObjectApiName | ✓ | ✓ | String | खाली | sub-block रिकॉर्ड के चाइल्ड ऑब्जेक्ट का API नाम। उदाहरण: Work_Break__c। Consolidate Time Span ON और Click to Save मोड (Parent Record Id सेट) ज़रूरी है। | |
Sub-Block Parent Lookup FieldsubBlockParentLookupField | ✓ | ✓ | String | खाली | sub-block ऑब्जेक्ट पर parent रिकॉर्ड से जोड़ने वाला lookup फ़ील्ड। उदाहरण: Shift__c। Sub-Block Object सेट हो तो ज़रूरी। | |
Sub-Block Date FieldsubBlockDateField | ✓ | ✓ | String | खाली | sub-block ऑब्जेक्ट पर तारीख फ़ील्ड। उदाहरण: Break_Date__c। Sub-Block Object सेट हो तो ज़रूरी। | |
Sub-Block Start Time FieldsubBlockStartTimeField | ✓ | ✓ | String | खाली | sub-block ऑब्जेक्ट पर आरंभ समय फ़ील्ड। उदाहरण: Break_Start__c। Sub-Block Object सेट हो तो ज़रूरी। | |
Sub-Block End Time FieldsubBlockEndTimeField | ✓ | ✓ | String | खाली | sub-block ऑब्जेक्ट पर अंत समय फ़ील्ड। उदाहरण: Break_End__c। Sub-Block Object सेट हो तो ज़रूरी। | |
Sub-Block Name FieldsubBlockNameField | ✓ | ✓ | String | खाली | sub-block ऑब्जेक्ट पर लेबल रखने वाला टेक्स्ट फ़ील्ड। उदाहरण: Break_Name__c। Sub-Block Object सेट हो तो ज़रूरी। | |
| अवरुद्ध तारीखें | ||||||
Blocked Dates ObjectblockedDatesSourceObject | ✓ | ✓ | ✓ | String | खाली | उस ऑब्जेक्ट का API नाम जिससे वे तारीखें query की जाती हैं जिन्हें चुनने से रोकना है। उदाहरण: Public_Holiday__c |
Blocked Dates Date FieldblockedDatesDateField | ✓ | ✓ | ✓ | String | खाली | अवरुद्ध तारीखों वाले ऑब्जेक्ट पर Date फ़ील्ड का API नाम। Blocked Dates Object सेट होना ज़रूरी है। |
Blocked Dates Start Time FieldblockedDatesStartTimeField | ✓ | ✓ | ✓ | String | खाली | वैकल्पिक: अवरुद्ध ऑब्जेक्ट पर वह Time फ़ील्ड जो दिन के कुछ हिस्से वाली बंदी का आरंभ बताता है। जब Start और End Time दोनों फ़ील्ड सेट हों और किसी अवरुद्ध रिकॉर्ड में दोनों मान हों, तो उस तारीख पर केवल वही समय-सीमा बंद होती है (बाकी बुक हो सकता है)। पूरे दिन की ब्लॉकिंग के लिए खाली छोड़ें। |
Blocked Dates End Time FieldblockedDatesEndTimeField | ✓ | ✓ | ✓ | String | खाली | वैकल्पिक: अवरुद्ध ऑब्जेक्ट पर वह Time फ़ील्ड जो दिन के कुछ हिस्से वाली बंदी का अंत बताता है। Blocked Dates Start Time Field के साथ इस्तेमाल होता है। |
Blocked Dates Resource FieldblockedDatesResourceField | ✓ | ✓ | ✓ | String | खाली | वैकल्पिक: किसी मौजूदा बंदी को एक संसाधन तक सीमित करता है। अवरुद्ध ऑब्जेक्ट पर lookup/संसाधन फ़ील्ड का API नाम दें; जब किसी अवरुद्ध रिकॉर्ड का संसाधन कैलेंडर में चुने गए संसाधन से मेल खाता है, तो उस समय-सीमा के लिए केवल वही संसाधन बंद होता है। खाली छोड़ें तो हर बंदी सभी संसाधनों पर लागू होती है (पूरे क्षेत्र पर)। ब्लॉकिंग खुद Blocked Dates Source Object से चालू होती है, इस फ़ील्ड से नहीं। केवल संसाधन बुकिंग में मायने रखता है। |
Blocked Dates Filter FieldblockedDatesFilterField | ✓ | ✓ | ✓ | String | खाली | वैकल्पिक: अवरुद्ध ऑब्जेक्ट पर फ़िल्टर फ़ील्ड। दो मोड: (a) value मोड: Blocked Dates Filter Value सेट हो, तो अवरुद्ध रिकॉर्ड को <field> = <value> से सीमित करता है (जैसे Status__c = Cancelled)। (b) parent-scope मोड: Filter Value खाली हो, तो इस फ़ील्ड को मौजूदा रिकॉर्ड का lookup मानता है और <field> = recordId से सीमित करता है। हर जगह ब्लॉक करने के लिए खाली छोड़ें। |
Blocked Dates Filter ValueblockedDatesFilterValue | ✓ | ✓ | ✓ | String | खाली | वैकल्पिक: Blocked Dates Filter Field को किस मान से फ़िल्टर करें। सेट होने पर अवरुद्ध रिकॉर्ड का <filterField> = <filterValue> से मेल खाना ज़रूरी है (जैसे Status__c = Cancelled)। इससे एक ही टेबल में कई तरह के ब्लॉक साथ रह सकते हैं: हर कैलेंडर चुनता है कि उस पर कौन-सी श्रेणी लागू हो। |
| Flow आउटपुट | ||||||
Output Date Ranges as JSONoutputAsJson | ✓ | ✓ | Boolean | false | ON होने पर Date Ranges JSON आउटपुट में लगातार तारीखें रेंज में समूहित होकर भरी जाती हैं। रेंज पर loop चलाने के लिए MultiDatePickParser एक्शन इस्तेमाल करना हो तो ज़रूरी। | |
Selected Dates (Output)selectedDates | ✓ | ✓ | String[] | खाली | आउटपुट: ISO फ़ॉर्मेट (YYYY-MM-DD) में सभी चुनी गई तारीखों का array। अपने Flow में रिकॉर्ड बनाने या अगली स्क्रीन को देने के लिए इस्तेमाल करें। | |
Date Ranges JSON (Output)selectedDateRangesJson | ✓ | ✓ | String | खाली | आउटपुट: रेंज में समूहित लगातार तारीखों का JSON। केवल तब भरा जाता है जब 'Output Date Ranges as JSON' ON हो। Flow में loop के लिए MultiDatePickParser को दें। | |
Dates With Times JSON (Output)selectedDatesWithTimesJson | ✓ | String | खाली | आउटपुट: हर तारीख और उसके चुने गए समय वाली JSON string। अपने Flow में loop के लिए MultiDatePickParser को दें। | ||
Sub-Blocks JSON (Output)subBlocksJson | ✓ | String | खाली | आउटपुट: हर तारीख की sub-block (अंतराल/ब्रेक) अवधियों का JSON। केवल तब भरा जाता है जब Consolidate Time Span ON हो। चाइल्ड रिकॉर्ड बनाने के लिए Flow loop में इस्तेमाल करें। | ||
Successful Bookings Count (Output)bookingSuccessCount | ✓ | Integer | खाली | आउटपुट: सफलतापूर्वक बने बुकिंग रिकॉर्ड की संख्या। अपने Flow में पुष्टि संदेश दिखाने के लिए इस्तेमाल करें। | ||
Conflict Dates (Output)bookingConflictDates | ✓ | String[] | खाली | आउटपुट: उन तारीखों की सूची जिन पर मौजूदा आरक्षण से टकराव के कारण बुकिंग नहीं बन सकी। | ||
आपके फ़िल्टर या खोज से कोई प्रॉपर्टी मेल नहीं खाती।
16. सुरक्षा और एक्सेसिबिलिटी
- Salesforce AppExchange Security Review पास।
- 100% नेटिव। आपका डेटा आपके Salesforce org में ही रहता है। कोई बाहरी सर्वर नहीं, कोई callout नहीं। Trust और Security देखें।
- हमेशा आपकी अनुमतियाँ। हर पढ़ना और सहेजना यूज़र के अपने एक्सेस से चलता है, इसलिए हर रिकॉर्ड पर ऑब्जेक्ट अनुमतियाँ, field-level security और sharing लागू रहती हैं।
- सुलभ (Accessible)। WCAG 2.1 AA, axe-core से टेस्ट किया गया। पूरा VPAT 2.5।
- 9 भाषाएँ: अंग्रेज़ी, स्पैनिश, फ़्रेंच, जर्मन, जापानी, हिंदी, पुर्तगाली (ब्राज़ील), इतालवी, चीनी (सरलीकृत)।
17. सवाल या बग?
इस गाइड में कुछ छूटा है, या कुछ टूटा हुआ मिला? support@multidatepick.com पर ईमेल करें।
अपने org में देखने के लिए तैयार हैं?
$20 प्रति यूज़र प्रति माह, हर फ़ीचर शामिल, 30 दिन का फ़्री ट्रायल। जल्द ही Salesforce AppExchange पर।