Skip to main content
Arati Chirame が「#Apex」で質問
Hi all,

I want to update CustomAmmount(Custom field) on parent(Opportunity) when child(OpportunityLineItem) updated

but its not working in after delete event

Trigger:

trigger UpdateCustomAmmount on OpportunityLineItem (after insert, after update, after Undelete,after delete) {

    if(Trigger.isAfter && (Trigger.isInsert || Trigger.isUpdate || Trigger.isUnDelete))

    {

    UpdateCustomAmmount_Handler.updateAmmount(Trigger.new);

    }

    

   /if(Trigger.isAfter ||Trigger.isDelete)

    {

      UpdateCustomAmmount_Handler.updateAmmount(Trigger.old);  

    }

}

Contoller:

public class UpdateCustomAmmount_Handler {

    public static void updateAmmount(List<OpportunityLineItem> olt)

    {

       

        List<Id> listIds = new List<Id>();

        system.debug('list of opp ids---'+listIds);

        

        for (OpportunityLineItem childItem : olt) {

            listIds.add(childItem.OpportunityId);

        }

        

          list<Opportunity> parentOpp = new List<Opportunity>([SELECT id, Custom_Ammount__c, Name,(SELECT ID, TotalPrice FROM OpportunityLineItems) FROM Opportunity WHERE ID IN :listIds]);

          system.debug('list of opp with child---'+parentOpp); 

          

        for(Opportunity opp:parentOpp)

               {

                   opp.Custom_Ammount__c = 0;

            for(OpportunityLineItem item:opp.OpportunityLineItems)

            {

               

                opp.Custom_Ammount__c += item.TotalPrice; 

               }

            }

        If(parentOpp.size()>0){

            update parentOpp;  

        }    

    }

}

 
6 件の回答
  1. 2018年1月15日 12:32
    I am getting following error:

    Apex trigger UpdateCustomAmmount caused an unexpected exception, contact your administrator: UpdateCustomAmmount: execution of AfterInsert caused by: System.NullPointerException: Attempt to de-reference a null object: Class.UpdateCustomAmmount_Handler.updateAmmount: line 9, column 1  
0/9000