You need to sign in to do that
Don't have an account?
Guru sfdc
HandelrTrigger help
Hi Team,
Can anyone please help me to from new trigger logic to existing trigger handler trigger.
We have created one trigger and one apex class related to Account. But the problem is we don't want to create every time new trigger. We have a trigger called "Account Trigger" contains below Logic:
Account Trigger which is having old one:
Trigger Account Trigger on Account (before insert, before update, before delete, after insert, after update, after delete, after undelete)
{
AccountTriggerHandler handler = new AccountTriggerHandler(Trigger.isExecuting, Trigger.size, Trigger.old, Trigger.new, Trigger.oldmap, Trigger.newmap);
AccountTriggerHandlerAlwaysOn handlerAlwaysOn = new AccountTriggerHandlerAlwaysOn(Trigger.isExecuting, Trigger.size, Trigger.old, Trigger.new, Trigger.oldmap, Trigger.newmap);
if(Trigger.isDelete && Trigger.isAfter)
handlerAlwaysOn.onAfterDelete();
if(Trigger.isDelete && Trigger.isBefore)
handlerAlwaysOn.onBeforeDelete();
if(Trigger.isInsert && Trigger.isBefore)
handlerAlwaysOn.onBeforeInsert();
if(Trigger.isUpdate && Trigger.isBefore)
handlerAlwaysOn.onBeforeUpdate();
if(Trigger.isInsert && Trigger.isAfter)
handlerAlwaysOn.onAfterInsert();
if(Trigger.isUpdate && Trigger.isAfter)
handlerAlwaysOn.onAfterUpdate();
if(Trigger.isInsert && Trigger.isBefore)
handler.onBeforeInsert();
if(Trigger.isUPdate && Trigger.isBefore)
handler.onBeforeUpdate();
if(Trigger.isInsert && Trigger.isAfter)
handler.OnAfterInsert();
if(Trigger.isUpdate && Trigger.isAfter)
handler.OnAfterUpdate();
if(Trigger.isUndelete && Trigger.isAfter)
handler.onAfterUndelete();
}
Account Trigger which is created new One:
Trigger AccountType on Account (after update){
{
AccountTypecls acpt = new AccountTypecls();
if(AccountTypecls.Aptcalc)
acpt.AccountTypecalc(Trigger.new,trigger.newmap,trigger.oldmap);
}
}
Hear i want to include my newly created trigger to old trigger handler. Please help us.
Thanks
Can anyone please help me to from new trigger logic to existing trigger handler trigger.
We have created one trigger and one apex class related to Account. But the problem is we don't want to create every time new trigger. We have a trigger called "Account Trigger" contains below Logic:
Account Trigger which is having old one:
Trigger Account Trigger on Account (before insert, before update, before delete, after insert, after update, after delete, after undelete)
{
AccountTriggerHandler handler = new AccountTriggerHandler(Trigger.isExecuting, Trigger.size, Trigger.old, Trigger.new, Trigger.oldmap, Trigger.newmap);
AccountTriggerHandlerAlwaysOn handlerAlwaysOn = new AccountTriggerHandlerAlwaysOn(Trigger.isExecuting, Trigger.size, Trigger.old, Trigger.new, Trigger.oldmap, Trigger.newmap);
if(Trigger.isDelete && Trigger.isAfter)
handlerAlwaysOn.onAfterDelete();
if(Trigger.isDelete && Trigger.isBefore)
handlerAlwaysOn.onBeforeDelete();
if(Trigger.isInsert && Trigger.isBefore)
handlerAlwaysOn.onBeforeInsert();
if(Trigger.isUpdate && Trigger.isBefore)
handlerAlwaysOn.onBeforeUpdate();
if(Trigger.isInsert && Trigger.isAfter)
handlerAlwaysOn.onAfterInsert();
if(Trigger.isUpdate && Trigger.isAfter)
handlerAlwaysOn.onAfterUpdate();
if(Trigger.isInsert && Trigger.isBefore)
handler.onBeforeInsert();
if(Trigger.isUPdate && Trigger.isBefore)
handler.onBeforeUpdate();
if(Trigger.isInsert && Trigger.isAfter)
handler.OnAfterInsert();
if(Trigger.isUpdate && Trigger.isAfter)
handler.OnAfterUpdate();
if(Trigger.isUndelete && Trigger.isAfter)
handler.onAfterUndelete();
}
Account Trigger which is created new One:
Trigger AccountType on Account (after update){
{
AccountTypecls acpt = new AccountTypecls();
if(AccountTypecls.Aptcalc)
acpt.AccountTypecalc(Trigger.new,trigger.newmap,trigger.oldmap);
}
}
Hear i want to include my newly created trigger to old trigger handler. Please help us.
Thanks
Let us know if this helps :)
Thanks,
Amit Singh
Thank you for your help. When we are saving trigger getting Error: Compile Error: Method does not exist or incorrect signature: [AccountTypecls].AccountTypecls(List<Account>, Map<Id,Account>, Map<Id,Account>) .Can you please help me for this
Thanks
Have you created the method like below in "AccountTypecls" class? Error is due to that method signature "AccountTypecls(List<Account>, Map<Id,Account>, Map<Id,Account>)" is not defined into the class.
Thanks,
Amit
public void AccountTypecalc(List<Account> aclist,map<id,Account> newmap,map<id,Account> oldmap). is this correct ?
Thanks
Thanks,
Amit Singh.
Thanks
Thanks
Please check below class and help me.
public class Accounttypecls{
public static Boolean Aptcalc = true;
public static Boolean Aptcalc1 = false;
public static Boolean Aptcalc2 = false;
public void AccountPartnerTypecalc(List<Account> aclist,map<id,Account> newmap,map<id,Account> oldmap)
{
set<id> accidset = new set<id>();
set<string> ulprntidset = new set<string>();
string dulprnt;
map<string,List<Account>> accmap = new map<string,List<Account>>();
system.debug('*********'+aclist.size());
for(Account acc: aclist)
{
accidset.add(acc.id);
// if(acc.GE_Global_Ultimate_Reporting_Account__c!=Null) //GE_Digital_Ultimate_Parent_ID__c
// Ultimate_Parent_ID__c
ulprntidset.add(acc.GE_Digital_Ultimate_Parent_ID__c);
dulprnt= acc.GE_Digital_Ultimate_Parent_ID__c;
system.debug('*********'+dulprnt);
}
system.debug('*********'+dulprnt);
List<Account> hiracclist = new List<Account>();
List<Account> aclist1 = [select id, name,Partner_Status__c,Is_Partner__c,Account_Type__c,Tier_2__c,Parentid,GE_Digital_Ultimate_Parent_ID__c from Account where GE_Digital_Ultimate_Parent_ID__c =:dulprnt AND Parentid!=null AND id NOT IN:accidset ];
system.debug('*********'+aclist1.size());
for(Account a : aclist1)
{
if(accmap.containskey(a.GE_Digital_Ultimate_Parent_ID__c))
accmap.get(a.GE_Digital_Ultimate_Parent_ID__c).add(a);
else
{
List<Account> alist = new List<Account>();
alist.add(a);
accmap.put(a.GE_Digital_Ultimate_Parent_ID__c,alist);
}
}
for(Account acc: [select id, name,Partner_Status__c,Is_Partner__c,Account_Type__c,Parentid,Tier_2__c,GE_Digital_Ultimate_Parent_ID__c from Account where ID IN :accidset ])
{
string acctype='';
if(accmap.get(acc.GE_Digital_Ultimate_Parent_ID__c)!=null)
{
/* if(accmap.get(acc.GE_Digital_Ultimate_Parent_ID__c).contains(acc)){
accmap.get(acc.GE_Digital_Ultimate_Parent_ID__c).set(0, acc);
accmap.get(acc.GE_Digital_Ultimate_Parent_ID__c).remove(0);
}*/
for(Account acchr : accmap.get(acc.GE_Digital_Ultimate_Parent_ID__c))
{
//acchr.Is_Partner__c= acc.Is_Partner__c;
if(acc.Is_Partner__c)
acchr.Account_Type__c = 'Partner';
else
acchr.Account_Type__c= '';
hiracclist.add(acchr);
}
if(acc.Is_Partner__c)
{
if(acc.parentid!=null)
Aptcalc1 =true;
acc.Account_Type__c= 'Partner';
hiracclist.add(acc);
}
else{
if(acc.parentid!=null)
Aptcalc2 =true;
acc.Account_Type__c= '';
hiracclist.add(acc);
}
}
else{
if(acc.Is_Partner__c)
{
acc.Account_Type__c= 'Partner';
hiracclist.add(acc);
}
else{
acc.Account_Type__c= ' ';
hiracclist.add(acc);
}
}
}
Account a= [select id, name,Partner_Status__c,Is_Partner__c,Account_Type__c,Parentid,Tier_2__c,GE_Digital_Ultimate_Parent_ID__c from Account where ID =:dulprnt];
if(Aptcalc1)
{
a.Account_Type__c= 'Partner';
hiracclist.add(a);
}
else if(Aptcalc2)
{
a.Account_Type__c= '';
hiracclist.add(a);
}
Aptcalc = false;
update hiracclist;
}
}
Thanks
Replace above code and cheers :)
Thanks,
Amit
Thank you. It was my mistake. Now code was succefully saved. But result is not updating. Can you help me any mistakes i have made in above code.
Thanks