logologo
शुरू करें
मार्गदर्शिका
विकास
प्लगइन
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
शुरू करें
मार्गदर्शिका
विकास
प्लगइन
API
logologo
वर्कफ़्लो
अवलोकन
क्विक स्टार्ट

ट्रिगर

अवलोकन
डेटा टेबल इवेंट
निर्धारित कार्य
ऑपरेशन से पहले का इवेंट
ऑपरेशन के बाद का इवेंट
कस्टम ऑपरेशन इवेंट
अनुमोदन
Webhook

नोड

अवलोकन

AI

LLM

फ्लो कंट्रोल

शर्त
बहु-शर्त शाखा
लूप
वैरिएबल
समानांतर शाखा
वर्कफ़्लो कॉल करें
प्रोसेस आउटपुट
JSON वैरिएबल मैपिंग
विलंब
समाप्त

गणना

गणना
तिथि गणना
JSON गणना

डेटा ऑपरेशन

डेटा जोड़ें
डेटा अपडेट करें
डेटा क्वेरी करें
डेटा हटाएँ
SQL ऑपरेशन

मैनुअल प्रोसेसिंग

मैनुअल प्रोसेसिंग
अनुमोदन
CC

एक्सटेंशन प्रकार

HTTP रिक्वेस्ट
JavaScript स्क्रिप्ट
सूचना
ईमेल भेजें
प्रतिक्रिया
प्रतिक्रिया संदेश
वैरिएबल
निष्पादन रिकॉर्ड
संस्करण प्रबंधन
उन्नत विकल्प

एक्सटेंशन विकास

अवलोकन
ट्रिगर प्रकार का विस्तार करें
नोड प्रकार का विस्तार करें
API संदर्भ
Previous Pageऑपरेशन से पहले का इवेंट
Next Pageकस्टम ऑपरेशन इवेंट
TIP

यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें

#ऑपरेशन के बाद की घटना

This feature is provided by the plugin «वर्कफ़्लो: ऑपरेशन के बाद की घटना»

#परिचय

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

उदाहरण के लिए, जब आप डेटा जोड़ते या अपडेट करते हैं, तो आप बटन के "वर्कफ़्लो बाइंड करें" विकल्प को कॉन्फ़िगर कर सकते हैं। ऑपरेशन पूरा होने के बाद, जुड़ा हुआ वर्कफ़्लो ट्रिगर हो जाएगा।

कार्यान्वयन के स्तर पर, चूंकि ऑपरेशन के बाद की घटना का प्रबंधन मिडलवेयर लेयर (Koa का मिडलवेयर) पर होता है, इसलिए NocoBase के HTTP API कॉल भी परिभाषित ऑपरेशन के बाद की घटनाओं को ट्रिगर कर सकते हैं।

#इंस्टॉलेशन

यह एक बिल्ट-इन प्लगइन है, इंस्टॉलेशन की आवश्यकता नहीं है।

#ट्रिगर कॉन्फ़िगरेशन

#वर्कफ़्लो बनाएँ

वर्कफ़्लो बनाते समय, प्रकार के रूप में "ऑपरेशन के बाद की घटना" चुनें:

Create Workflow_Post-Action Event Trigger

#निष्पादन मोड

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

Create Workflow_Select Synchronous or Asynchronous

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

#संग्रह कॉन्फ़िगर करें

वर्कफ़्लो कैनवास में प्रवेश करें, कॉन्फ़िगरेशन पॉपअप खोलने के लिए ट्रिगर पर क्लिक करें, और सबसे पहले बाइंड करने के लिए संग्रह चुनें:

Workflow Configuration_Select Collection

#ट्रिगर मोड चुनें

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

Workflow Configuration_Select Trigger Mode

इनमें से:

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

लोकल मोड में, वर्तमान में बाइंडिंग का समर्थन करने वाले ऑपरेशन बटन इस प्रकार हैं:

  • नए फ़ॉर्म के "सबमिट" और "सेव" बटन।
  • अपडेट फ़ॉर्म के "सबमिट" और "सेव" बटन।
  • डेटा पंक्तियों (टेबल, सूची, कानबन, आदि) में "डेटा अपडेट करें" बटन।

#ऑपरेशन प्रकार चुनें

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

#प्रीलोड किए गए संबंध डेटा चुनें

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

Workflow Configuration_Preload Association

ट्रिगर होने के बाद, आप इस संबंधित डेटा का सीधे प्रक्रिया में उपयोग कर सकते हैं।

#ऑपरेशन कॉन्फ़िगरेशन

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

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

Post-Action Event_Submit Button

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

Post-Action Event_Bind Workflow Configuration_Context Selection

Post-Action Event_Bind Workflow Configuration_Workflow Selection

ध्यान दें

वर्कफ़्लो को ऊपर दिए गए इंटरफ़ेस में चुने जाने से पहले सक्षम किया जाना चाहिए।

#उदाहरण

यहां एक नया ऑपरेशन बनाने के तरीके का उपयोग करके एक प्रदर्शन किया गया है।

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

सबसे पहले, हम निम्नलिखित फ़ील्ड के साथ एक "खर्च प्रतिपूर्ति" संग्रह बना सकते हैं:

  • प्रोजेक्ट का नाम: सिंगल लाइन टेक्स्ट
  • आवेदक: कई-से-एक (उपयोगकर्ता)
  • राशि: संख्या
  • स्थिति: सिंगल सेलेक्ट ("अनुमोदित", "प्रक्रियाधीन")

फिर, "ऑपरेशन के बाद की घटना" प्रकार का एक वर्कफ़्लो बनाएँ और ट्रिगर में संग्रह मॉडल को "खर्च प्रतिपूर्ति" संग्रह के रूप में कॉन्फ़िगर करें:

Example_Trigger Configuration_Select Collection

वर्कफ़्लो को सक्षम स्थिति में सेट करने के बाद, हम प्रक्रिया के विशिष्ट प्रसंस्करण नोड्स को बाद में कॉन्फ़िगर करने के लिए वापस आएंगे।

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

Example_Form Button Configuration_Bind Workflow

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

Example_Processing Flow

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

इस उदाहरण में प्रक्रिया को एक नियमित "सबमिट" बटन पर भी कॉन्फ़िगर किया जा सकता है। आप विशिष्ट व्यावसायिक परिदृश्य के आधार पर यह तय कर सकते हैं कि बाद की प्रक्रियाओं को निष्पादित करने से पहले एक रिकॉर्ड बनाना है या नहीं।

#बाहरी कॉल

ऑपरेशन के बाद की घटनाओं का ट्रिगर केवल उपयोगकर्ता इंटरफ़ेस ऑपरेशन तक ही सीमित नहीं है; इसे HTTP API कॉल के माध्यम से भी ट्रिगर किया जा सकता है।

ध्यान दें

HTTP API कॉल के माध्यम से ऑपरेशन के बाद की घटना को ट्रिगर करते समय, आपको वर्कफ़्लो की सक्षम स्थिति और संग्रह कॉन्फ़िगरेशन के मिलान पर भी ध्यान देना होगा, अन्यथा कॉल सफल नहीं हो सकता है या कोई त्रुटि हो सकती है।

ऑपरेशन बटन से स्थानीय रूप से जुड़े वर्कफ़्लो के लिए, आप इसे इस तरह कॉल कर सकते हैं (उदाहरण के तौर पर posts संग्रह के क्रिएट बटन का उपयोग करके):

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Hello, world!",
    "content": "This is a test post."
  }'
  "http://localhost:3000/api/posts:create?triggerWorkflows=workflowKey"

जहां URL पैरामीटर triggerWorkflows वर्कफ़्लो की कुंजी है, जिसमें कई वर्कफ़्लो को अल्पविराम से अलग किया जाता है। यह कुंजी वर्कफ़्लो कैनवास के शीर्ष पर वर्कफ़्लो नाम पर माउस को होवर करके प्राप्त की जा सकती है:

Workflow_Key_View Method

उपरोक्त कॉल सफल होने के बाद, संबंधित posts संग्रह की ऑपरेशन के बाद की घटना ट्रिगर हो जाएगी।

ध्यान दें

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

यदि आपको इस ऑपरेशन में एक-से-एक संबंध डेटा (कई-से-कई अभी समर्थित नहीं है) के लिए एक घटना को ट्रिगर करने की आवश्यकता है, तो आप पैरामीटर में ! का उपयोग करके संबंध फ़ील्ड के ट्रिगर डेटा को निर्दिष्ट कर सकते हैं:

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Hello, world!",
    "content": "This is a test post.",
    "category": {
      "title": "Test category"
    }
  }'
  "http://localhost:3000/api/posts:create?triggerWorkflows=workflowKey!category"

उपरोक्त कॉल सफल होने के बाद, संबंधित categories संग्रह की ऑपरेशन के बाद की घटना ट्रिगर हो जाएगी।

ध्यान दें

यदि घटना को ग्लोबल मोड में कॉन्फ़िगर किया गया है, तो आपको संबंधित वर्कफ़्लो को निर्दिष्ट करने के लिए URL पैरामीटर triggerWorkflows का उपयोग करने की आवश्यकता नहीं है। संबंधित संग्रह ऑपरेशन को सीधे कॉल करने से यह ट्रिगर हो जाएगा।

#अक्सर पूछे जाने वाले प्रश्न

#ऑपरेशन से पहले की घटना से अंतर

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

जैसा कि नीचे दिए गए चित्र में दिखाया गया है:

Action Execution Order

#संग्रह घटना से अंतर

ऑपरेशन के बाद की घटनाएं और संग्रह घटनाएं समान हैं कि वे दोनों डेटा परिवर्तन के बाद ट्रिगर होने वाली प्रक्रियाएं हैं। हालांकि, उनके कार्यान्वयन के स्तर अलग-अलग हैं। ऑपरेशन के बाद की घटनाएं API स्तर पर होती हैं, जबकि संग्रह घटनाएं संग्रह में डेटा परिवर्तन के लिए होती हैं।

संग्रह घटनाएं सिस्टम की अंतर्निहित परत के करीब होती हैं। कुछ मामलों में, एक घटना के कारण होने वाला डेटा परिवर्तन दूसरी घटना को ट्रिगर कर सकता है, जिससे एक श्रृंखला प्रतिक्रिया बन सकती है। विशेष रूप से जब कुछ संबंधित संग्रहों में डेटा वर्तमान संग्रह के ऑपरेशन के दौरान भी बदलता है, तो संबंधित संग्रह से संबंधित घटनाएं भी ट्रिगर हो सकती हैं।

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

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