सेल्सफोर्स में ट्रिगर्स के बाद बनाम पहले कब उपयोग करें?

परिचय

ट्रिगर एक शीर्ष कोड है जिसे DML ईवेंट होने से पहले या बाद में निष्पादित किया जाता है। ट्रिगर पर्दे के पीछे एक वर्ग है और इसमें न्यू, न्यूमैप, ओल्ड और ओल्डमैप जैसे चर हैं। ट्रिगर होना चाहिए थोकीकृत. इसे एक ही तरह से एकल रिकॉर्ड के साथ-साथ एकाधिक रिकॉर्ड के लिए भी काम करना चाहिए।

सेल्सफोर्स में ट्रिगर्स की अवधारणा

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

इसका मतलब है कि ट्रिगर्स ऑब्जेक्ट-स्पेसिफिक होते हैं (ट्रिगर एक बार में एक ही ऑब्जेक्ट पर बनाया जा सकता है) और इवेंट-सेंट्रिक।

सेल्सफोर्स में ट्रिगर्स के प्रकार

Salesforce में हमारे पास मुख्य रूप से दो प्रकार के ट्रिगर होते हैं

1. ट्रिगर से पहले

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

2. ट्रिगर के बाद

इस प्रकार के ट्रिगर का उपयोग आमतौर पर तब किया जाता है जब किसी परिवर्तन के कारण डेटा को एक अलग ऑब्जेक्ट में अपडेट करने की आवश्यकता होती है।

डेटाबेस में अंतिम परिवर्तन किए जाने के बाद वे निष्पादित होते हैं।

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

सेल्सफोर्स में ट्रिगर्स के बाद बनाम बिफोर का उपयोग कब करें?

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

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

उदाहरण

उदाहरण 1

संपर्क पर संपर्क हटाने को ट्रिगर करें (हटाने से पहले) {//Trigger.old में उन संपर्कों की सूची है जो (संपर्क cc: Trigger.old) के लिए हटाए जा रहे हैं {if(cc.AccountId!= null){ cc.addError('आप हटा नहीं सकते संबद्ध खाता रखने वाले संपर्क'); } } }

 

उदाहरण 2

खाते पर ट्रिगर AccOppTrigger (सम्मिलित करने के बाद) {सूची oppRec = नई सूची (); for(खाता खाता : Trigger.new){ if(acc.Industry == 'Banking'){ अवसर opp = नया अवसर (नाम = acc.Name, स्टेजनाम = 'पूर्वेक्षण', AccountId = acc.Id, CloseDate = Date. आज ()। AddDays (15)); oppRec.add (opp); } } अगर (! oppRec.isEmpty ()) { oppRec डालें; } }

 

एक टिप्पणी छोड़ें

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.