You need to sign in to do that
Don't have an account?
vinod kumar 364
onAfterUpdate in my triggerhandler is not working
I have my triggerhandler for Inventory, what I am doing in that triggerhandler is storing aggregate results here and querying Quantity's sum From Inventory I'm putting into Items.Quantity utilised. Hereafter onAfterInsert and onAfterUpdate is working fine, but OnAfterDelete is not working. public class InventoryObjectTriggerHandler { private boolean m_isExecuting = false; private integer BatchSize = 0; Map<Id,Items__c> UpdateMap = new Map<Id,Items__c>(); Set<Id> InvenIds = new Set<Id>(); public InventoryObjectTriggerHandler(boolean isExecuting, integer size){ m_isExecuting = isExecuting; BatchSize = size; } public void OnBeforeInsert(List<Inventory__c> newInventory){ } public void OnAfterInsert(List<Inventory__c> newInventory){ for(Inventory__c record : newInventory) { if (record.Items__c != null){ InvenIds.add(record.Items__c); } } List<AggregateResult> arlist = [SELECT Items__c , SUM(Quantity__c)sum FROM Inventory__c WHERE Items__c IN : InvenIds GROUP BY Items__c]; for(AggregateResult ar : arlist){ Items__c q=new Items__c(Id=(Id)ar.get('Items__c'), Quantity_Utilised__c=(Decimal)ar.get('sum')); UpdateMap.put(q.id,q); } if(!UpdateMap.isEmpty()){ update UpdateMap.values(); } } public void OnBeforeUpdate(Map<ID, Inventory__c> oldInventory, List<Inventory__c> updatedInventory, Map<ID, Inventory__c> InventoryMap){ } public void OnAfterUpdate(List<Inventory__c> oldInventory, List<Inventory__c> updatedInventory,Map<ID, Inventory__c> oldInventoryMap,Map<ID, Inventory__c> InventoryMap){ for(Inventory__c record : updatedInventory) { if (record.Items__c != null){ InvenIds.add(record.Items__c); } } List<AggregateResult> arlist = [SELECT Items__c , SUM(Quantity__c)sumMax FROM Inventory__c WHERE Items__c IN : InvenIds GROUP BY Items__c]; for(AggregateResult ar : arlist){ Items__c q=new Items__c(Id=(Id)ar.get('Items__c'), Quantity_Utilised__c=(Decimal)ar.get('sumMax')); UpdateMap.put(q.id,q); } if(!UpdateMap.isEmpty()){ update UpdateMap.values(); } } public void OnBeforeDelete(List<Inventory__c> qliToDelete, Map<ID, Inventory__c> quoteLineItemMap){ } public void OnAfterDelete(List<Inventory__c> deletedInv, Map<ID, Inventory__c> InventoryMap){ for(Inventory__c record : deletedInv) { if (record.Items__c != null){ InvenIds.add(record.Items__c); } } system.debug(InvenIds); List<AggregateResult> arlist = [SELECT Items__c , SUM(Quantity__c)sumMax FROM Inventory__c WHERE Items__c IN : InvenIds GROUP BY Items__c]; system.debug(arlist); for(AggregateResult ar : arlist){ Items__c q=new Items__c(Id=(Id)ar.get('Items__c'), Quantity_Utilised__c=0); system.debug(ar); UpdateMap.put(q.id,q); } system.debug(UpdateMap); if(!UpdateMap.isEmpty()){ update UpdateMap.values(); } } public void OnUndelete(List<Inventory__c> restoredQuoteLineItem){ } }