यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
कार्रवाई पूर्व इवेंट प्लगइन कार्रवाइयों के लिए एक अवरोधन तंत्र प्रदान करता है, जिसे नई प्रविष्टि, अपडेट और हटाने की कार्रवाइयों के अनुरोध सबमिट होने के बाद, लेकिन संसाधित होने से पहले ट्रिगर किया जा सकता है।
यदि ट्रिगर किए गए वर्कफ़्लो में 'वर्कफ़्लो समाप्त करें' नोड निष्पादित होता है, या यदि कोई अन्य नोड निष्पादित होने में विफल रहता है (किसी त्रुटि या अन्य अपूर्णता के कारण), तो फ़ॉर्म कार्रवाई को रोक दिया जाएगा। अन्यथा, निर्धारित कार्रवाई सामान्य रूप से निष्पादित की जाएगी।
'प्रतिक्रिया संदेश' नोड के साथ इसका उपयोग करके आप क्लाइंट को वापस भेजे जाने वाले प्रतिक्रिया संदेश को कॉन्फ़िगर कर सकते हैं, ताकि क्लाइंट को उचित संकेत मिल सकें। कार्रवाई पूर्व इवेंट का उपयोग व्यवसाय सत्यापन या तर्क जांच के लिए किया जा सकता है, ताकि क्लाइंट द्वारा सबमिट किए गए बनाने, अपडेट करने और हटाने जैसे कार्रवाई अनुरोधों को स्वीकृत या अवरोधित किया जा सके।
वर्कफ़्लो बनाते समय, प्रकार 'कार्रवाई पूर्व इवेंट' चुनें:

एक अवरोधन वर्कफ़्लो के ट्रिगर में, सबसे पहले कार्रवाई के अनुरूप संग्रह को कॉन्फ़िगर करना होता है:

फिर अवरोधन मोड चुनें। आप केवल इस वर्कफ़्लो से बंधे कार्रवाई बटन को अवरोधित करना चुन सकते हैं, या इस संग्रह के लिए सभी चयनित कार्रवाइयों को अवरोधित करना चुन सकते हैं (इससे कोई फर्क नहीं पड़ता कि यह किस फ़ॉर्म से आता है, और संबंधित वर्कफ़्लो को बांधने की आवश्यकता नहीं है):

वर्तमान में समर्थित कार्रवाई प्रकार 'बनाना', 'अपडेट करना' और 'हटाना' हैं। एक साथ कई कार्रवाई प्रकार चुने जा सकते हैं।
यदि ट्रिगर कॉन्फ़िगरेशन में 'केवल तभी अवरोधन ट्रिगर करें जब इस वर्कफ़्लो से बंधा कोई फ़ॉर्म सबमिट किया जाए' मोड चुना गया है, तो आपको फ़ॉर्म इंटरफ़ेस पर वापस जाना होगा और संबंधित कार्रवाई बटन पर इस वर्कफ़्लो को बांधना होगा:

वर्कफ़्लो कॉन्फ़िगरेशन बांधें में, संबंधित वर्कफ़्लो चुनें। आमतौर पर, ट्रिगरिंग डेटा के लिए डिफ़ॉल्ट संदर्भ, 'पूरा फ़ॉर्म डेटा', पर्याप्त होता है:

कार्रवाई पूर्व इवेंट से बांधे जाने वाले बटन वर्तमान में केवल बनाने या अपडेट करने वाले फ़ॉर्म में 'सबमिट' (या 'सहेजें'), 'डेटा अपडेट करें' और 'हटाएँ' बटन का समर्थन करते हैं। 'वर्कफ़्लो ट्रिगर करें' बटन समर्थित नहीं है (इसे केवल 'कार्रवाई के बाद के इवेंट' से बांधा जा सकता है)।
एक 'कार्रवाई पूर्व इवेंट' में, दो शर्तें हैं जिनके कारण संबंधित कार्रवाई को रोक दिया जाएगा:
अवरोधन की शर्तें पूरी होने के बाद, संबंधित कार्रवाई अब निष्पादित नहीं की जाएगी। उदाहरण के लिए, यदि ऑर्डर सबमिशन को रोक दिया जाता है, तो संबंधित ऑर्डर डेटा नहीं बनाया जाएगा।
एक 'कार्रवाई पूर्व इवेंट' प्रकार के वर्कफ़्लो में, विभिन्न कार्रवाइयों के लिए ट्रिगर से विभिन्न डेटा को वर्कफ़्लो में चर के रूप में उपयोग किया जा सकता है:
| कार्रवाई प्रकार \ चर | ऑपरेटर | ऑपरेटर भूमिका पहचानकर्ता | कार्रवाई पैरामीटर: 'ID' | कार्रवाई पैरामीटर: 'सबमिट किया गया डेटा ऑब्जेक्ट' |
|---|---|---|---|---|
| एक रिकॉर्ड बनाएँ | ✓ | ✓ | - | ✓ |
| एक रिकॉर्ड अपडेट करें | ✓ | ✓ | ✓ | ✓ |
| एकल या एकाधिक रिकॉर्ड हटाएँ | ✓ | ✓ | ✓ | - |
कार्रवाई पूर्व इवेंट में 'ट्रिगर डेटा / कार्रवाई पैरामीटर / सबमिट किया गया डेटा ऑब्जेक्ट' चर डेटाबेस से वास्तविक डेटा नहीं है, बल्कि कार्रवाई के साथ सबमिट किए गए पैरामीटर हैं। यदि आपको डेटाबेस से वास्तविक डेटा की आवश्यकता है, तो आपको वर्कफ़्लो के भीतर 'डेटा क्वेरी करें' नोड का उपयोग करके उसे क्वेरी करना होगा।
इसके अतिरिक्त, हटाने की कार्रवाई के लिए, कार्रवाई पैरामीटर में 'ID' एक एकल मान होता है जब एक एकल रिकॉर्ड को लक्षित किया जाता है, लेकिन यह एक ऐरे होता है जब कई रिकॉर्ड को लक्षित किया जाता है।
ट्रिगर कॉन्फ़िगर करने के बाद, आप वर्कफ़्लो में संबंधित निर्णय तर्क को अनुकूलित कर सकते हैं। आमतौर पर, आप 'शर्त' नोड के शाखा मोड का उपयोग करेंगे ताकि विशिष्ट व्यावसायिक शर्तों के परिणामों के आधार पर यह तय किया जा सके कि 'वर्कफ़्लो समाप्त करें' या नहीं, और एक पूर्व-निर्धारित 'प्रतिक्रिया संदेश' वापस करें:

इस बिंदु पर, संबंधित वर्कफ़्लो का कॉन्फ़िगरेशन पूरा हो गया है। अब आप ऐसे डेटा को सबमिट करने का प्रयास कर सकते हैं जो वर्कफ़्लो के शर्त नोड में कॉन्फ़िगर की गई शर्तों को पूरा नहीं करता है, ताकि अवरोधन तर्क को ट्रिगर किया जा सके। तब आप वापस भेजा गया प्रतिक्रिया संदेश देख सकते हैं:

यदि 'वर्कफ़्लो समाप्त करें' नोड में 'सफलता' स्थिति के साथ बाहर निकलने के लिए कॉन्फ़िगर किया गया है, और जब यह नोड निष्पादित होता है, तो कार्रवाई अनुरोध को अभी भी रोक दिया जाएगा, लेकिन वापस भेजा गया प्रतिक्रिया संदेश 'सफलता' (न कि 'त्रुटि') स्थिति के साथ प्रदर्शित होगा:

ऊपर दिए गए बुनियादी निर्देशों को मिलाकर, आइए हम 'ऑर्डर सबमिशन' परिदृश्य को एक उदाहरण के रूप में लेते हैं। मान लीजिए कि हमें उपयोगकर्ता द्वारा ऑर्डर सबमिट करते समय उनके द्वारा चुने गए सभी उत्पादों के स्टॉक की जांच करनी है। यदि किसी भी चयनित उत्पाद का स्टॉक अपर्याप्त है, तो ऑर्डर सबमिशन को रोक दिया जाएगा, और एक संबंधित संकेत संदेश वापस किया जाएगा; वर्कफ़्लो प्रत्येक उत्पाद की जांच के लिए लूप करेगा जब तक कि सभी उत्पादों का स्टॉक पर्याप्त न हो जाए, जिस बिंदु पर यह आगे बढ़ेगा और उपयोगकर्ता के लिए ऑर्डर डेटा बनाएगा।
अन्य चरण निर्देशों में समान हैं। हालांकि, चूंकि एक ऑर्डर में कई उत्पाद शामिल होते हैं, इसलिए डेटा मॉडलिंग करते समय 'ऑर्डर' <-- M:1 -- 'ऑर्डर आइटम' -- 1:M --> 'उत्पाद' का कई-से-कई संबंध जोड़ने के अलावा, आपको 'कार्रवाई पूर्व इवेंट' वर्कफ़्लो में एक 'लूप' नोड भी जोड़ना होगा, जिसका उपयोग प्रत्येक उत्पाद के स्टॉक की पर्याप्तता की पुनरावृत्ति से जांच करने के लिए किया जाएगा:

लूप के लिए ऑब्जेक्ट को सबमिट किए गए ऑर्डर डेटा से 'ऑर्डर आइटम' ऐरे के रूप में चुना गया है:

लूप के भीतर शर्त नोड का उपयोग यह निर्धारित करने के लिए किया जाता है कि लूप में वर्तमान उत्पाद ऑब्जेक्ट का स्टॉक पर्याप्त है या नहीं:

अन्य कॉन्फ़िगरेशन बुनियादी उपयोग में समान हैं। जब अंततः ऑर्डर सबमिट किया जाता है, यदि किसी भी उत्पाद का स्टॉक अपर्याप्त है, तो ऑर्डर सबमिशन को रोक दिया जाएगा, और एक संबंधित संकेत संदेश वापस किया जाएगा। परीक्षण के दौरान, कई उत्पादों के साथ एक ऑर्डर सबमिट करने का प्रयास करें, जहाँ एक का स्टॉक अपर्याप्त है और दूसरे का स्टॉक पर्याप्त है। आप वापस भेजा गया प्रतिक्रिया संदेश देख सकते हैं:

जैसा कि आप देख सकते हैं, प्रतिक्रिया संदेश में पहले उत्पाद 'iPhone 15 pro' के स्टॉक की कमी का संकेत नहीं दिया गया है, बल्कि केवल दूसरे उत्पाद 'iPhone 14 pro' के स्टॉक की कमी का संकेत दिया गया है। ऐसा इसलिए है क्योंकि लूप में, पहले उत्पाद का स्टॉक पर्याप्त है, इसलिए इसे रोका नहीं गया, जबकि दूसरे उत्पाद का स्टॉक अपर्याप्त है, जिसने ऑर्डर सबमिशन को रोक दिया।
कार्रवाई पूर्व इवेंट स्वयं अनुरोध प्रसंस्करण चरण के दौरान इंजेक्ट किया जाता है, इसलिए यह HTTP API कॉल के माध्यम से ट्रिगर होने का भी समर्थन करता है।
वर्कफ़्लो जो स्थानीय रूप से एक कार्रवाई बटन से बंधे हैं, आप उन्हें इस प्रकार कॉल कर सकते हैं (उदाहरण के तौर पर posts संग्रह के 'बनाएँ' बटन का उपयोग करके):
जिसमें URL पैरामीटर triggerWorkflows वर्कफ़्लो की कुंजी है; कई वर्कफ़्लो कुंजियाँ अल्पविराम से अलग की जाती हैं। यह कुंजी वर्कफ़्लो कैनवास के शीर्ष पर वर्कफ़्लो नाम पर माउस को घुमाकर प्राप्त की जा सकती है:

उपरोक्त कॉल करने के बाद, संबंधित posts संग्रह के लिए कार्रवाई पूर्व इवेंट ट्रिगर होगा। संबंधित वर्कफ़्लो के सिंक्रोनस रूप से संसाधित होने के बाद, डेटा सामान्य रूप से बनाया और वापस किया जाएगा।
यदि कॉन्फ़िगर किया गया वर्कफ़्लो 'समाप्ति नोड' तक पहुँचता है, तो तर्क इंटरफ़ेस कार्रवाई के समान है: अनुरोध को रोक दिया जाएगा, और कोई डेटा नहीं बनाया जाएगा। यदि समाप्ति नोड की स्थिति विफल के रूप में कॉन्फ़िगर की गई है, तो वापस भेजा गया प्रतिक्रिया स्थिति कोड 400 होगा; यदि सफल होता है, तो 200 होगा।
यदि समाप्ति नोड से पहले 'प्रतिक्रिया संदेश' नोड भी कॉन्फ़िगर किया गया है, तो उत्पन्न संदेश भी प्रतिक्रिया परिणाम में वापस किया जाएगा, जिसमें त्रुटि के समय की संरचना इस प्रकार है:
'समाप्ति नोड' को सफलता के लिए कॉन्फ़िगर करने पर संदेश संरचना इस प्रकार है:
चूंकि वर्कफ़्लो में कई 'प्रतिक्रिया संदेश' नोड जोड़े जा सकते हैं, इसलिए वापस भेजा गया संदेश डेटा संरचना एक ऐरे है।
यदि कार्रवाई पूर्व इवेंट को वैश्विक मोड में कॉन्फ़िगर किया गया है, तो HTTP API को कॉल करते समय संबंधित वर्कफ़्लो को निर्दिष्ट करने के लिए triggerWorkflows URL पैरामीटर का उपयोग करने की आवश्यकता नहीं है। बस संबंधित संग्रह कार्रवाई को कॉल करने से यह ट्रिगर हो जाएगा।
HTTP API कॉल के माध्यम से कार्रवाई पूर्व इवेंट को ट्रिगर करते समय, आपको वर्कफ़्लो की सक्षम स्थिति पर भी ध्यान देना होगा और यह भी देखना होगा कि संग्रह कॉन्फ़िगरेशन मेल खाता है या नहीं, अन्यथा कॉल सफल नहीं हो सकती है या त्रुटि हो सकती है।