You need to sign in to do that
Don't have an account?
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
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
Please refer the link on How to avoid Recursive trigger
https://help.salesforce.com/apex/HTViewSolution?id=000133752&language=en_US
All Answers
Change the trigger events to before insert and before update.
Regards,
Sai Krishna Tavva
Please refer the link on How to avoid Recursive trigger
https://help.salesforce.com/apex/HTViewSolution?id=000133752&language=en_US
Thank you very much
Thanks
Satheesh