कस्टम लकड़हारा
अपना खुद का लकड़हारा बनाना
मामले में जब त्रुटियों को खोजने के लिए ऊपर सूचीबद्ध उपकरण पर्याप्त नहीं हैं, तो आप हमेशा अपना खुद का लकड़हारा बना सकते हैं और उसमें अपनी सभी जरूरतों को लागू कर सकते हैं। उदाहरण के लिए, आइए एक लकड़हारा बनाते हैं जो उस उपयोगकर्ता के बारे में जानकारी जोड़ देगा जिसने इस घटना को ट्रिगर किया और घटना के सामान्य विवरण के अलावा इसके पहुंच स्तर।
लकड़हारा डेटा मॉडल
ऐसा करने के लिए, आइए डेटाबेस में एक मॉडल बनाकर शुरू करें। हमें तीन आवश्यक क्षेत्रों के साथ एक बहुत ही सरल मॉडल की आवश्यकता है।
- info (text) - घटना के बारे में सामान्य जानकारी
- user (integer) - उपयोगकर्ता आईडी
- access (array string) - उपयोगकर्ता समूह (कई हो सकते हैं)
लकड़हारा व्यवसाय प्रक्रिया
उसके बाद, हम डेटाबेस में लॉग लिखने के लिए एक व्यावसायिक प्रक्रिया बनाएंगे। इसका कार्य किसी भी घटना के बारे में जानकारी प्राप्त करना, उसे उपयोगकर्ता के बारे में जानकारी के साथ पूरक करना और अंतिम परिणाम को डेटाबेस में सहेजना होगा।
उपयोगकर्ता के बारे में जानकारी प्राप्त करने के लिए, प्रामाणिक का उपयोग Auth: Get current user ब्लॉक प्राप्त करें। ध्यान दें कि यह केवल एक उपयोगकर्ता मॉडल के रूप में परिणाम का प्रतिनिधित्व करने में सक्षम होगा यदि Middleware Token Auth को उस समापन बिंदु पर सक्षम किया गया था जिसने इसके निष्पादन को शुरू किया था।
हम परिणाम का विस्तार करने और आवश्यक फ़ील्ड प्राप्त करने के लिए Expand User का विस्तार करें का उपयोग करते हैं। हमारे मामले में, ये हैं ID , Login , और Groups । पहले दो का उपयोग करना काफी सामान्य है, आपको बस Login को मेल प्रारूप से एक मानक String ( To String ब्लॉक) में बदलने की आवश्यकता है।
उपयोगकर्ता समूहों के मामले में, स्थिति कुछ अधिक जटिल है। वे Enum प्रारूप में संग्रहीत हैं। यह एक एन्यूमरेटेड प्रकार है जो डेटाबेस में केवल पहचानकर्ताओं की एक सूची संग्रहीत करता है, न कि उनके टेक्स्ट मान को। हमारे मामले में, मान 1 व्यवस्थापकों के समूह ( Admins ) से मेल खाता है, और मान 2 उपयोगकर्ताओं के समूह ( Users ) से मेल खाता है।
हमारा काम इस पहचानकर्ता को डिक्रिप्ट करना और परिणाम को सुविधाजनक टेक्स्ट डेटा के रूप में लिखना है। इसके लिए आपको चाहिए:
- एक चर घोषित करें जिसमें उपयोगकर्ता समूहों के बारे में पाठ जानकारी लिखी जाएगी। आइए String Array का उपयोग करें और Set Variable ।
- लूप को For each loop प्रारंभ करें। यह उपयोगकर्ता के समूहों की एक सरणी प्राप्त करेगा और फिर, प्रत्येक पुनरावृत्ति में, अगले समूह को इसके टेक्स्ट मान में परिवर्तित करेगा और इसे सरणी में जोड़ देगा।
- Switch ब्लॉक का उपयोग करके, उपयोगकर्ता समूह की जांच करें और परिणाम के आधार पर, प्रक्रिया को आगे निर्देशित करें।
- String और Set Variable ब्लॉक का उपयोग करके, उपयोगकर्ता के समूह के आवश्यक मान को एक चर में संग्रहीत करें।
- एरे में परिणाम जोड़ने के लिए Append Array और Set Variable करें का उपयोग करें और इसे लूप की शुरुआत से पहले घोषित चर में स्टोर करें।
लूप के पूरा होने पर, आपको बिखरे हुए डेटा से अंतिम स्ट्रिंग बनाने के लिए Concat Strings (Multiple) ब्लॉक का उपयोग करना चाहिए, जिसे Text में परिवर्तित किया जाएगा और लॉग में लिखा जाएगा।
करने के लिए आखिरी चीज log मॉडल उत्पन्न करना और इसे डेटाबेस में लिखना है।
परिणामी बीपी इस तरह दिखना चाहिए:
लकड़हारा समापन बिंदु
व्यापार प्रक्रिया तैयार है। अब हमें इसके लिए एक एंडपॉइंट बनाने की जरूरत है। ऐसा करने के लिए, हम POST /log/ एंडपॉइंट की सिस्टम व्यवसाय प्रक्रिया को उस व्यवसाय प्रक्रिया से बदल देंगे जो अभी बनाई गई थी।
अब हमारा अपना लॉग जाने के लिए पूरी तरह से तैयार है। आप Basic functions व्यवसाय प्रक्रिया में मॉड्यूल की शुरुआत में लौट सकते हैं, और मानक लॉग को अपने द्वारा बनाए गए लॉग से बदल सकते हैं।
अब, जब भी गणना शुरू की जाती है, एक विशेष लॉग न केवल इस घटना के वास्तविक तथ्य के बारे में जानकारी दर्ज करेगा बल्कि यह भी कि किस उपयोगकर्ता ने किया था। हम Swagger में परिणाम की जांच कर सकते हैं।
बढ़िया, हमारा लॉग वास्तव में काम करता है। अब इसमें ईवेंट, उपयोगकर्ता के लॉगिन और उसके एक्सेस अधिकारों के बारे में जानकारी शामिल है।
संभावित त्रुटियां और अनुशंसित कार्रवाइयां
नतीजतन, हम त्रुटियों और कार्यों के संभावित रूपों को ठीक करने के लिए तैयार करते हैं।
- व्यवसाय प्रक्रिया में ही त्रुटियाँ। चरण-दर-चरण सत्यापन के लिए लॉग का उपयोग करने की अनुशंसा की जाती है। इस प्रकार, आप व्यवसाय प्रक्रिया के एक निश्चित ब्लॉक को लॉन्च करने के तथ्य और इनपुट और आउटपुट दोनों में ब्लॉक द्वारा उपयोग किए जाने वाले सभी मापदंडों की जांच कर सकते हैं।
- सर्वर को अनुरोध भेजने में त्रुटियाँ। ऐसा करने के लिए, ब्राउज़र में Developer Tools का उपयोग करें। आप इस तथ्य की जांच कर सकते हैं कि अनुरोध भेजा गया था, इसकी संरचना को पार्स करें, और प्राप्त प्रतिक्रिया देखें।
- अनुरोध विकृत हैं। पूरी तरह से परीक्षण, विभिन्न क्वेरी विकल्पों की जांच, और पैरामीटर संयोजनों के लिए Swagger का उपयोग करने की अनुशंसा की जाती है।
- अनुरोध का परिणाम सही ढंग से पार्स नहीं किया गया है। ऐसा होता है कि हम परिणाम की प्रतीक्षा कर रहे हैं जहां यह नहीं होना चाहिए। उदाहरण के लिए, हम डेटाबेस में डेटा जोड़ते हैं लेकिन उन्हें उस तालिका में अपडेट नहीं करते हैं जो इस डेटा को प्रदर्शित करती है। याद रखें कि प्रत्येक घटक को एक संबंधित व्यावसायिक प्रक्रिया की आवश्यकता होती है, और सुनिश्चित करें कि यह प्रक्रिया सही तरीके से कॉन्फ़िगर की गई है।