You need to sign in to do that
Don't have an account?
Ayyagari Ramesh
How to bulkify the apex code related to process builder
I have written an invocable apex class for process builder to update th owner change of accounts and related Opportunity, contracts and quotes on custom object and its working fine. Now i need to bulkify the code. what are the changes required in below code ?
below code :
public class RequestPortalRecords
{
@InvocableMethod
public static void ReqChange(List<Request_Portal__c> rp)
{
system.debug('entered raghav' +rp);
Set<Id> accountIds=new Set<Id>();
Id ownerid;
list<Account> updateAccOwnerList = new list<Account>();
list<Opportunity> updateoppList = new list<Opportunity>();
list<SBQQ__Quote__c> updateqsList = new list<SBQQ__Quote__c>();
list<contract> updatecrList=new list<contract>();
for(Request_Portal__c r : rp)
{
accountIds.add(r.Account_Name__c);
ownerid=r.New_Owner__c;
system.debug('accountIds'+accountIds+' ownerid'+ ownerid);
}
//updaTE ACCOUNT
List<Account> accList=[Select id,ownerid from account where id=:accountIds];
system.debug('accList'+accList.size());
for(Account acc:accList){
acc.ownerid=ownerid;
updateAccOwnerList.add(acc);
}
system.debug('updateAccOwnerList'+updateAccOwnerList.size());
if(updateAccOwnerList.size()>0){
update updateAccOwnerList;
}
//update opportunities
List<Opportunity> oppList=[Select id,Ownerid,AccountId from Opportunity Where AccountId = :accountIds ];
system.debug('opplist'+oppList.size());
for(Opportunity op: opplist){
op.ownerid=ownerid;
updateoppList.add(op);
}
system.debug('updateoppList'+updateoppList);
if(!updateoppList.isEmpty())
update updateoppList;
//update Quote
List<SBQQ__Quote__c> qsList=[Select id,Ownerid from SBQQ__Quote__c where SBQQ__Account__c = :accountIds];
for(SBQQ__Quote__c qs: qsList){
qs.ownerid=ownerid;
updateqsList.add(qs);
}
system.debug('updateqsList'+updateqsList);
if(!updateqsList.isEmpty())
update updateqsList;
//contract
List<Contract> crList=[Select id,Ownerid from Contract where AccountId = :accountIds];
for(Contract qs: crList){
qs.ownerid=ownerid;
updatecrList.add(qs);
}
system.debug('updatecrList'+updatecrList);
if(!updatecrList.isEmpty())
update updatecrList;
}
}
below code :
public class RequestPortalRecords
{
@InvocableMethod
public static void ReqChange(List<Request_Portal__c> rp)
{
system.debug('entered raghav' +rp);
Set<Id> accountIds=new Set<Id>();
Id ownerid;
list<Account> updateAccOwnerList = new list<Account>();
list<Opportunity> updateoppList = new list<Opportunity>();
list<SBQQ__Quote__c> updateqsList = new list<SBQQ__Quote__c>();
list<contract> updatecrList=new list<contract>();
for(Request_Portal__c r : rp)
{
accountIds.add(r.Account_Name__c);
ownerid=r.New_Owner__c;
system.debug('accountIds'+accountIds+' ownerid'+ ownerid);
}
//updaTE ACCOUNT
List<Account> accList=[Select id,ownerid from account where id=:accountIds];
system.debug('accList'+accList.size());
for(Account acc:accList){
acc.ownerid=ownerid;
updateAccOwnerList.add(acc);
}
system.debug('updateAccOwnerList'+updateAccOwnerList.size());
if(updateAccOwnerList.size()>0){
update updateAccOwnerList;
}
//update opportunities
List<Opportunity> oppList=[Select id,Ownerid,AccountId from Opportunity Where AccountId = :accountIds ];
system.debug('opplist'+oppList.size());
for(Opportunity op: opplist){
op.ownerid=ownerid;
updateoppList.add(op);
}
system.debug('updateoppList'+updateoppList);
if(!updateoppList.isEmpty())
update updateoppList;
//update Quote
List<SBQQ__Quote__c> qsList=[Select id,Ownerid from SBQQ__Quote__c where SBQQ__Account__c = :accountIds];
for(SBQQ__Quote__c qs: qsList){
qs.ownerid=ownerid;
updateqsList.add(qs);
}
system.debug('updateqsList'+updateqsList);
if(!updateqsList.isEmpty())
update updateqsList;
//contract
List<Contract> crList=[Select id,Ownerid from Contract where AccountId = :accountIds];
for(Contract qs: crList){
qs.ownerid=ownerid;
updatecrList.add(qs);
}
system.debug('updatecrList'+updatecrList);
if(!updatecrList.isEmpty())
update updatecrList;
}
}
All Answers