function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
ATT.ax1917ATT.ax1917 

How to bulkify a simple trigger with an SQL query?

Hello, I'm quite new to the bulkifying idea and need to bulkify the following sinmple trigger, which just updates a field on a parent object:

 

trigger Approval_Actions on Approval__c (after update) {
    List<Approval__c> app = trigger.new;
    Opportunity opp = [select Approval_Date__c from Opportunity where Id =: app[0].Opportunity__c LIMIT 1];
    if(app[0].Status__c == 'Approval GRANTED'){
       opp.Approval_Date__c = date.today();
    }
    update opp;
}

 

The problem is: how to bulkify it without having an SQL query in a loop?

Best Answer chosen by Admin (Salesforce Developers) 
Saikishore Reddy AengareddySaikishore Reddy Aengareddy

trigger Approval_Actions on Approval__c (after update) {

List<opportunity> opps = new List<opportunity>();
for(Approval__c a : trigger.new){
if(a.status__c == 'Approval GRANTED')
opps.add(new opportunity(id=a.opportunity__c,Approval_Date__c=date.today()));
}
if(opps.size()>0)
update opps;
}

All Answers

Saikishore Reddy AengareddySaikishore Reddy Aengareddy

trigger Approval_Actions on Approval__c (after update) {

List<opportunity> opps = new List<opportunity>();
for(Approval__c a : trigger.new){
if(a.status__c == 'Approval GRANTED')
opps.add(new opportunity(id=a.opportunity__c,Approval_Date__c=date.today()));
}
if(opps.size()>0)
update opps;
}

This was selected as the best answer
ATT.ax1917ATT.ax1917
Perfect, thank you very much.