You need to sign in to do that
Don't have an account?
sai harish
Need help getting the Id in my Trigger
Hi. I need some help with my Trigger. I am trying to create a trigger on the child and get an AggregateResult from child and trying to update a parent field. (AcctSeedERP__Purchase_Order_Line__c), this is my child object which has a look up to AcctSeed__Project_Task__c. It works when I hard code the Id values. Please help me pass the parent Id values dynamically. Thanks in advance.
trigger Update_Commited_Subcontractor on AcctSeedERP__Purchase_Order_Line__c (after insert, after update) {
if((trigger.isinsert && trigger.isafter) || (trigger.isupdate && trigger.isafter)){
AcctSeedERP__Purchase_Order_Line__c pol = trigger.new[0];
AggregateResult[] ar = [Select sum(AcctSeedERP__Total__c)sum from AcctSeedERP__Purchase_Order_Line__c where AcctSeedERP__Project_Task__r.Id = :pol.Id ];
system.debug('AggregatedResult========>>>>>'+ ar);
Decimal sum = (Decimal) ar[0].get('sum');
system.debug('Sum======>>>>>>'+sum);
AcctSeed__Project_Task__c pb = new AcctSeed__Project_Task__c();
pb.Id = pb.Id;
pb.Commited_Sub__c = (Decimal) ar[0].get('sum');
update pb;
}
}
trigger Update_Commited_Subcontractor on AcctSeedERP__Purchase_Order_Line__c (after insert, after update) {
if((trigger.isinsert && trigger.isafter) || (trigger.isupdate && trigger.isafter)){
AcctSeedERP__Purchase_Order_Line__c pol = trigger.new[0];
AggregateResult[] ar = [Select sum(AcctSeedERP__Total__c)sum from AcctSeedERP__Purchase_Order_Line__c where AcctSeedERP__Project_Task__r.Id = :pol.Id ];
system.debug('AggregatedResult========>>>>>'+ ar);
Decimal sum = (Decimal) ar[0].get('sum');
system.debug('Sum======>>>>>>'+sum);
AcctSeed__Project_Task__c pb = new AcctSeed__Project_Task__c();
pb.Id = pb.Id;
pb.Commited_Sub__c = (Decimal) ar[0].get('sum');
update pb;
}
}
https://developer.salesforce.com/page/Trigger_Frameworks_and_Apex_Trigger_Best_Practices
https://developer.salesforce.com/page/Apex_Code_Best_Practices
Thank you for the reply. I tried to use your code. I am getting the following errors.
Grouped field should not be aggregated: AcctSeedERP__Total__c
I tried to group it by the project task. I used something like this.
[Select AcctSeedERP__Project_Task__c, sum(AcctSeedERP__Total__c)sum from AcctSeedERP__Purchase_Order_Line__c where AcctSeedERP__Project_Task__r.Id = :pol.Id group by AcctSeedERP__Project_Task__c]
Now I am getting an error saying
Method does not exist or incorrect signature: void AcctSeedERP__Project_Task__r() from the type AcctSeedERP__Purchase_Order_Line__c.
Any further help is appreciated. Thanks in advance.