Hey guys, today in this post we are going to learn about Write Apex Trigger to check If Account Active fields selected “Yes” and Related Opportunities Stage has “Closed Lost” then display error message in Salesforce.
Final Output →
Other related post that would you like to learn in Salesforce
Create Apex Trigger →
Step 1:- Create Apex Controller : AccountTrigger.apxt
SFDX:Create Apex Trigger>> New >> AccountTrigger.apxt
AccountTrigger.apxt [Apex Trigger]
|
TRIGGER AccountTrigger ON Account (BEFORE UPDATE, after UPDATE) {
IF(TRIGGER.isBefore && TRIGGER.isUpdate){
accountTriggerHandler.checkRelOptStage(TRIGGER.new);
}ELSE IF(TRIGGER.isAfter){
}
}
Create Trigger Handler Controller →
Step 2:- Create Apex Controller : accountTriggerHandler.apxc
SFDX:Create Apex Trigger>> New >> accountTriggerHandler.apxc
accountTriggerHandler.apxc [Trigger Handler]
|
public class accountTriggerHandler {
public static void checkRelOptStage(List<Account> accList){
Map<Id, List<Opportunity>> oppMapList = NEW Map<Id, List<Opportunity>>();
set<Id> setId = NEW set<Id>();
FOR(Account acc:accList){
setId.add(acc.Id);
}
List<Account> accObjList = [SELECT Id, Name, Active__c, (SELECT Id, Name, StageName FROM Opportunities) FROM Account WHERE Id IN:setId];
FOR(Account acc2:accObjList){
oppMapList.put(acc2.Id, acc2.Opportunities);
}
set<String> setStr = NEW set<String>();
List<Opportunity> optList = [SELECT Id, Name, StageName, AccountId FROM Opportunity WHERE AccountId=:oppMapList.keySet()];
FOR(Opportunity Opp:optList){
setStr.add(Opp.StageName);
}
FOR(Account acc3:accList){
IF(acc3.Active__c == 'Yes' && (setStr.contains('Closed Lost'))){
acc3.AddError('Related Opportunity has a Close Lost');
}
}
}
}
Further post that would you like to learn in Salesforce
How do I know if my Salesforce account is active?
In Salesforce, you can check if a user is enabled by navigating to the 'Users' page in the Setup menu and finding the specific user you want to check. The 'Active' column will indicate whether the user is enabled (checked) or disabled (unchecked).
What is Apex trigger vs trigger?
Apex Triggers are more powerful and flexible tools for automating processes and performing custom actions in Salesforce. Unlike Record Triggered Flow, Apex Triggers require coding and are typically created by developers or admins with programming experience.
Why use Apex triggers?
Salesforce Apex Trigger is a procedure in a database that is automatically invoked whenever a special event in the database occurs. Triggers enable you to perform custom actions before or after events to records in Salesforce, such as insertions, updates, or deletions.
Related Topics | You May Also Like
Our Free Courses →
👉 Get Free Course →
📌 Salesforce Administrators 📌 Salesforce Lightning Flow Builder 📌 Salesforce Record Trigger Flow Builder |
👉 Get Free Course →
📌 Aura Lightning Framework 📌 Lightning Web Component (LWC) 📌 Rest APIs Integration |