Insert, Update, Delete Trigger Events Apex Trigger-এর প্রধান ইভেন্ট, যা Salesforce ডেটাবেজে রেকর্ড সেভ বা পরিবর্তন করার সময় নির্দিষ্ট কার্যক্রম সম্পাদন করতে সহায়ক। প্রতিটি ইভেন্টে Before এবং After Trigger ব্যবহার করা যায়, যা ইভেন্টের সময় অনুযায়ী আলাদা কার্যক্রম সম্পন্ন করে।
১. Insert Trigger Events
Insert Trigger তখন কার্যকর হয়, যখন নতুন কোনো রেকর্ড Salesforce ডেটাবেজে তৈরি হয়। Insert Trigger-এর মাধ্যমে রেকর্ডে নতুন ডেটা সেট করা যায় এবং ডেটা যাচাই করা যায়।
Insert Trigger Events এর ধরন:
- Before Insert: রেকর্ড সেভ হওয়ার আগে কার্যকর হয়। এটি সাধারণত নতুন ডেটা যাচাই বা ডিফল্ট মান সেট করতে ব্যবহৃত হয়।
- After Insert: রেকর্ড সেভ হওয়ার পরে কার্যকর হয়। এটি সাধারণত সম্পর্কিত অন্যান্য রেকর্ড আপডেট করতে ব্যবহৃত হয়।
উদাহরণ: Before Insert Trigger
trigger AccountBeforeInsert on Account (before insert) {
for (Account acc : Trigger.new) {
if (acc.Industry == null) {
acc.Industry = 'Technology'; // ডিফল্ট মান সেট করা হচ্ছে
}
}
}
- এখানে before insert Trigger ব্যবহার করে নতুন
Accountরেকর্ডেরIndustryফিল্ডে ডিফল্ট মানTechnologyসেট করা হয়েছে, যদিIndustryফিল্ড ফাঁকা থাকে।
২. Update Trigger Events
Update Trigger তখন কার্যকর হয়, যখন একটি বিদ্যমান রেকর্ডে কিছু পরিবর্তন বা আপডেট করা হয়। Update Trigger-এর মাধ্যমে ডেটা যাচাই করা এবং সম্পর্কিত অন্যান্য রেকর্ড আপডেট করা যায়।
Update Trigger Events এর ধরন:
- Before Update: রেকর্ড আপডেট করার আগে কার্যকর হয়। এটি সাধারণত ডেটা যাচাই ও রেকর্ডের কিছু ফিল্ডের মান আপডেট করতে ব্যবহৃত হয়।
- After Update: রেকর্ড আপডেট করার পরে কার্যকর হয়। এটি সাধারণত সম্পর্কিত রেকর্ড আপডেট বা নোটিফিকেশন পাঠাতে ব্যবহৃত হয়।
উদাহরণ: After Update Trigger
trigger ContactAfterUpdate on Contact (after update) {
Map<Id, Account> accountMap = new Map<Id, Account>();
for (Contact con : Trigger.new) {
if (con.AccountId != null) {
Account acc = new Account(Id = con.AccountId);
acc.Last_Contacted__c = Date.today();
accountMap.put(acc.Id, acc);
}
}
update accountMap.values();
}
- এখানে after update Trigger ব্যবহার করে
Contactঅবজেক্টের রেকর্ড আপডেট করার পরে সংশ্লিষ্টAccountরেকর্ডেরLast_Contacted__cফিল্ডে বর্তমান তারিখ সেট করা হচ্ছে।
৩. Delete Trigger Events
Delete Trigger তখন কার্যকর হয়, যখন একটি রেকর্ড Salesforce ডেটাবেজ থেকে মুছে ফেলা হয়। Delete Trigger-এর মাধ্যমে রেকর্ড ডিলিট করার আগে বা পরে নির্দিষ্ট কার্যক্রম সম্পন্ন করা যায়।
Delete Trigger Events এর ধরন:
- Before Delete: রেকর্ড ডিলিট করার আগে কার্যকর হয়। এটি সাধারণত ডেটা যাচাই বা অন্য কোন শর্ত পূরণের জন্য ব্যবহৃত হয়।
- After Delete: রেকর্ড ডিলিট করার পরে কার্যকর হয়। এটি সাধারণত সম্পর্কিত রেকর্ড বা লগ আপডেট করার জন্য ব্যবহৃত হয়।
উদাহরণ: Before Delete Trigger
trigger AccountBeforeDelete on Account (before delete) {
for (Account acc : Trigger.old) {
System.debug('Deleting Account: ' + acc.Name);
}
}
- এখানে before delete Trigger ব্যবহার করা হয়েছে, যা
Accountরেকর্ড ডিলিট করার আগেAccountএর নাম প্রিন্ট করে।
Trigger Context Variables in Insert, Update, and Delete
Trigger Context Variables Trigger-এর বিভিন্ন ইভেন্টের সময় প্রয়োজনীয় ডেটা এবং প্রসঙ্গ প্রদান করে। কিছু গুরুত্বপূর্ণ Context Variables:
- Trigger.new: নতুন রেকর্ডসমূহের লিস্ট রাখে, যা insert এবং update ইভেন্টে ব্যবহৃত হয়।
- Trigger.old: পুরাতন রেকর্ডসমূহের লিস্ট রাখে, যা update এবং delete ইভেন্টে ব্যবহৃত হয়।
- Trigger.isInsert: যদি Trigger insert ইভেন্টে কাজ করে, তাহলে
trueরিটার্ন করে। - Trigger.isUpdate: যদি Trigger update ইভেন্টে কাজ করে, তাহলে
trueরিটার্ন করে। - Trigger.isDelete: যদি Trigger delete ইভেন্টে কাজ করে, তাহলে
trueরিটার্ন করে।
সারসংক্ষেপ:
- Insert Trigger Events: নতুন রেকর্ড তৈরি হলে before insert এবং after insert ইভেন্ট চালিত হয়।
- Update Trigger Events: বিদ্যমান রেকর্ড আপডেট হলে before update এবং after update ইভেন্ট চালিত হয়।
- Delete Trigger Events: রেকর্ড ডিলিট হলে before delete এবং after delete ইভেন্ট চালিত হয়।
Trigger Events Salesforce প্ল্যাটফর্মে ডেটা প্রসেসিং এবং অটোমেশন সহজ করে এবং ডেটাবেজ ইভেন্টের উপর ভিত্তি করে বিভিন্ন লজিক প্রয়োগ করতে সহায়ক।
Read more