You need to sign in to do that
Don't have an account?

Invalid field Id for AggregateResult
Hi All -
I am getting the following error for a rollup trigger that I have written and I am not sure how to solve it.
Error is on line 45 of the code:
RollUpUnitAmounts - Unable to update Engagement__c. Exception encountered Invalid field Id for AggregateResult
The code is:
trigger RollUpUnitAmounts on Product__c (after insert, after update, after undelete, after delete) { Product__c[] products; if (trigger.isDelete) { products = Trigger.old; } else { products = Trigger.new; } Set<Id> set_EngageIds = new Set<Id>(); for (Product__c p:products) { if (p.Engagement__c != null) { set_EngageIds.add(p.Engagement__c); } } List<Engagement__c> engagList; Map<ID, Engagement__c> engagMap; try{ Map<Id,Engagement__c> engtuMap = new Map<Id,Engagement__c>(); Map<Id,Engagement__c> toBeUpdated = new Map<Id,Engagement__c>(); String engagementId = ''; for (Engagement__c e : (engagList = [SELECT id,Total_Units__c from Engagement__c where id IN:set_EngageIds])) { engagMap = new Map<ID, Engagement__c>(engagList); e.Total_Units__c = 0; engagementId = e.Id; List<AggregateResult> aresults = [select SUM(Units__c)totalUnit from Product__c where id in :set_EngageIds]; if (aresults!=null && aresults.size()>0) { for (AggregateResult ar : aresults) { Engagement__c parentEngagement = engagMap.get(String.valueOf(ar.get('Id'))); if (parentEngagement!=null) { if (ar.get('parentEngagement') != null) { parentEngagement.Total_Units__c = Double.valueOf(String.valueOf(ar.get('parentEngagement'))).intValue(); } break; } engtuMap.put(parentEngagement.Id,parentEngagement); } } if(engtuMap.values().size()>0) { toBeUpdated.putAll(engtuMap); } } if(toBeUpdated.size()>0) { update toBeUpdated.values(); } else { if(engagMap.size()>0) { update engagMap.values(); } } } catch (Exception e) { System.debug('\n\n>> RollUpUnitAmounts - Unable to update Engagement__c.\nException encountered ' + e.getMessage()); } }
Thank you for any assistance you can provide.
RollUpUnitAmounts - Unable to update Engagement__c. Exception encountered Invalid field Id for AggregateResult
Changed Code a bit to:
This solved the issue.