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
satheesh k 18satheesh k 18 

custom setting object

HI All,

Depending on country field i want to update manager field on account object.
I have maintain country name and manager detains in custom setting object.

Now i want to get the data from custom setting. 

I have completed this task through trigger , using  "before insert and before update" event.

But i want to complete this task through trigger , using "after insert and after update" event

I have tried this way  :

trigger StateManager1 on Account(after insert, after update)
 {
     Map<String ,StateManager__c> mp=StateManager__c.getAll();
     Set<String> bcKeySet = new Set<String>();
     bcKeySet = mp.keyset();
     Set<Id> setIds=new Set<Id>();
     List<Account> lisAcc=[select id ,name ,Manager__c ,Country__c  from Account where id In : trigger.newMap.keyset()];
     List<Account> acc=new List<Account>();
     for(Account a : lisAcc)
     {
         if(bcKeySet.contains(a.Country__c ))
         {
       
             if(Trigger.isupdate && mp.get(a.Country__c).ManagerName__c!=a.Country__c)
             {
                 a.Manager__c =mp.get(a.Country__c).ManagerName__c;
                 acc.add(a);
             }
             if(Trigger.isinsert)
             {
                 a.Manager__c =mp.get(a.Country__c).ManagerName__c;
                 acc.add(a);
             }
         }
     }
     Update acc;
     
 }
 
 
But i am getting below error :

Error:Apex trigger StateManager1 caused an unexpected exception, contact your administrator: StateManager1: execution of AfterUpdate caused by: System.DmlException: Update failed. First exception on row 0 with id 0012800000R91HiAAJ; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, StateManager1: maximum trigger depth exceeded Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi] Account trigger event AfterUpdate for [0012800000R91Hi]: []: Trigger.StateManager1: line 26, column 1

Please help me how will complete by using after events

Thanks
​Satheesh
Best Answer chosen by satheesh k 18
Lokeswara ReddyLokeswara Reddy
It looks like the code results in updating records recursively,
Please refer the link on How to avoid Recursive trigger
https://help.salesforce.com/apex/HTViewSolution?id=000133752&language=en_US

All Answers

Tavva Sai KrishnaTavva Sai Krishna
Hi sathessk,

Change the trigger events to before insert and before update.

Regards,
Sai Krishna Tavva
Lokeswara ReddyLokeswara Reddy
It looks like the code results in updating records recursively,
Please refer the link on How to avoid Recursive trigger
https://help.salesforce.com/apex/HTViewSolution?id=000133752&language=en_US
This was selected as the best answer
satheesh k 18satheesh k 18
Hi Lokeswara Reddy,

Thank you very much

Thanks
Satheesh