यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
सिस्टम में उपयोगकर्ताओं द्वारा किए गए सभी डेटा परिवर्तन आमतौर पर किसी ऑपरेशन के माध्यम से पूरे होते हैं, जिसका विशिष्ट रूप आमतौर पर किसी बटन पर क्लिक करना होता है। यह बटन किसी फ़ॉर्म में सबमिट बटन हो सकता है या किसी डेटा ब्लॉक में ऑपरेशन बटन हो सकता है। ऑपरेशन के बाद की घटना का उपयोग इन बटनों के ऑपरेशन के साथ संबंधित वर्कफ़्लो को जोड़ने के लिए किया जाता है, ताकि उपयोगकर्ता के ऑपरेशन सफलतापूर्वक पूरा होने के बाद एक विशिष्ट प्रक्रिया ट्रिगर हो सके।
उदाहरण के लिए, जब आप डेटा जोड़ते या अपडेट करते हैं, तो आप बटन के "वर्कफ़्लो बाइंड करें" विकल्प को कॉन्फ़िगर कर सकते हैं। ऑपरेशन पूरा होने के बाद, जुड़ा हुआ वर्कफ़्लो ट्रिगर हो जाएगा।
कार्यान्वयन के स्तर पर, चूंकि ऑपरेशन के बाद की घटना का प्रबंधन मिडलवेयर लेयर (Koa का मिडलवेयर) पर होता है, इसलिए NocoBase के HTTP API कॉल भी परिभाषित ऑपरेशन के बाद की घटनाओं को ट्रिगर कर सकते हैं।
यह एक बिल्ट-इन प्लगइन है, इंस्टॉलेशन की आवश्यकता नहीं है।
वर्कफ़्लो बनाते समय, प्रकार के रूप में "ऑपरेशन के बाद की घटना" चुनें:

ऑपरेशन के बाद की घटनाओं के लिए, बनाते समय आप निष्पादन मोड को "सिंक्रोनस" या "एसिंक्रोनस" भी चुन सकते हैं:

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

फिर ट्रिगर मोड चुनें, जो या तो लोकल या ग्लोबल हो सकता है:

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

ट्रिगर होने के बाद, आप इस संबंधित डेटा का सीधे प्रक्रिया में उपयोग कर सकते हैं।
लोकल ट्रिगर मोड में ऑपरेशन के लिए, वर्कफ़्लो कॉन्फ़िगर होने के बाद, आपको उपयोगकर्ता इंटरफ़ेस पर वापस जाना होगा और संबंधित डेटा ब्लॉक के फ़ॉर्म ऑपरेशन बटन पर वर्कफ़्लो को बाइंड करना होगा।
“सबमिट” बटन (जिसमें “डेटा सेव करें” बटन शामिल है) के लिए कॉन्फ़िगर किए गए वर्कफ़्लो, उपयोगकर्ता द्वारा संबंधित फ़ॉर्म सबमिट करने और डेटा ऑपरेशन पूरा होने के बाद ट्रिगर होंगे।

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


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

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

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

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

उपरोक्त कॉल सफल होने के बाद, संबंधित posts संग्रह की ऑपरेशन के बाद की घटना ट्रिगर हो जाएगी।
चूंकि बाहरी कॉल को भी उपयोगकर्ता पहचान पर आधारित होने की आवश्यकता है, इसलिए HTTP API के माध्यम से कॉल करते समय, सामान्य इंटरफ़ेस से भेजे गए अनुरोधों की तरह ही, प्रमाणीकरण जानकारी प्रदान की जानी चाहिए, जिसमें Authorization रिक्वेस्ट हेडर या token पैरामीटर (लॉगिन पर प्राप्त टोकन), और X-Role रिक्वेस्ट हेडर (उपयोगकर्ता का वर्तमान भूमिका नाम) शामिल है।
यदि आपको इस ऑपरेशन में एक-से-एक संबंध डेटा (कई-से-कई अभी समर्थित नहीं है) के लिए एक घटना को ट्रिगर करने की आवश्यकता है, तो आप पैरामीटर में ! का उपयोग करके संबंध फ़ील्ड के ट्रिगर डेटा को निर्दिष्ट कर सकते हैं:
उपरोक्त कॉल सफल होने के बाद, संबंधित categories संग्रह की ऑपरेशन के बाद की घटना ट्रिगर हो जाएगी।
यदि घटना को ग्लोबल मोड में कॉन्फ़िगर किया गया है, तो आपको संबंधित वर्कफ़्लो को निर्दिष्ट करने के लिए URL पैरामीटर triggerWorkflows का उपयोग करने की आवश्यकता नहीं है। संबंधित संग्रह ऑपरेशन को सीधे कॉल करने से यह ट्रिगर हो जाएगा।
जैसा कि नीचे दिए गए चित्र में दिखाया गया है:

ऑपरेशन के बाद की घटनाएं और संग्रह घटनाएं समान हैं कि वे दोनों डेटा परिवर्तन के बाद ट्रिगर होने वाली प्रक्रियाएं हैं। हालांकि, उनके कार्यान्वयन के स्तर अलग-अलग हैं। ऑपरेशन के बाद की घटनाएं API स्तर पर होती हैं, जबकि संग्रह घटनाएं संग्रह में डेटा परिवर्तन के लिए होती हैं।
संग्रह घटनाएं सिस्टम की अंतर्निहित परत के करीब होती हैं। कुछ मामलों में, एक घटना के कारण होने वाला डेटा परिवर्तन दूसरी घटना को ट्रिगर कर सकता है, जिससे एक श्रृंखला प्रतिक्रिया बन सकती है। विशेष रूप से जब कुछ संबंधित संग्रहों में डेटा वर्तमान संग्रह के ऑपरेशन के दौरान भी बदलता है, तो संबंधित संग्रह से संबंधित घटनाएं भी ट्रिगर हो सकती हैं।
संग्रह घटनाओं के ट्रिगर में उपयोगकर्ता से संबंधित जानकारी शामिल नहीं होती है। इसके विपरीत, ऑपरेशन के बाद की घटनाएं उपयोगकर्ता के अंत के करीब होती हैं और उपयोगकर्ता के ऑपरेशन का परिणाम होती हैं। वर्कफ़्लो के संदर्भ में उपयोगकर्ता से संबंधित जानकारी भी शामिल होगी, जो उपयोगकर्ता के ऑपरेशन से संबंधित प्रक्रियाओं को संभालने के लिए उपयुक्त है। NocoBase के भविष्य के डिज़ाइन में, ट्रिगरिंग के लिए उपयोग की जा सकने वाली अधिक ऑपरेशन के बाद की घटनाओं का विस्तार किया जा सकता है, इसलिए उपयोगकर्ता के ऑपरेशन के कारण डेटा परिवर्तन वाली प्रक्रियाओं को संभालने के लिए ऑपरेशन के बाद की घटनाओं का उपयोग करना अधिक अनुशंसित है।
एक और अंतर यह है कि ऑपरेशन के बाद की घटनाओं को विशिष्ट फ़ॉर्म बटनों से स्थानीय रूप से बाइंड किया जा सकता है। यदि कई फ़ॉर्म हैं, तो कुछ फ़ॉर्म सबमिशन घटना को ट्रिगर कर सकते हैं जबकि अन्य नहीं। दूसरी ओर, संग्रह घटनाएं पूरे संग्रह में डेटा परिवर्तन के लिए होती हैं और उन्हें स्थानीय रूप से बाइंड नहीं किया जा सकता है।