function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
GatorGator 

System.NullPointer Exception

I'm hitting the system null pointer problem on line 5 when I try to delete a RepSplit__c record:

 

 

line 5 starts here: 

---------------------

for(RepSplit__c oppp : Trigger.New)
{
obJoppp.add(oppp.Opportunity__c);
}

 

 

 

Full code:

---------------------

trigger createnewRecordsUnderOpp on RepSplit__c (after insert, after update, after delete)

{

 

// locates the related Opportunity and deletes all RepRevShare records that are related to it
Set<Id> obJoppp = new Set<Id>();
for(RepSplit__c oppp : Trigger.New)
{
obJoppp.add(oppp.Opportunity__c);
}
List<RepRevShare__c> objecRepRevShare = [select id from RepRevShare__c where Opportunity__c in : obJoppp];
delete objecRepRevShare;

 

// locates the related Opportunity and creates a new set of RepRevShare records to be related to it
Set<Id> obJopp = new Set<Id>();
for(RepSplit__c opp : Trigger.New)
{
obJopp.add(opp.Opportunity__c);
}

List<RepRevShare__c> objRepRevShare = new List<RepRevShare__c>();
List<RepSplit__c> objRepsplit = [select id,Name,Opportunity__c, SplitPercent__c, Rep__c from RepSplit__c where Opportunity__c in : obJopp];
List<OppPayment__c> objOppPayment = [select id, Name, Opportunity__c, Opp_Product__c, Date__c, Amount__c, Booked__c from OppPayment__c where Opportunity__c in : obJopp];

for(RepSplit__c objRepSp : objRepsplit){
for(OppPayment__c objOppPay : objOppPayment){
RepRevShare__c objRepRevSharel = new RepRevShare__c();
objRepRevSharel.Name = objRepSp.Name + objOppPay.Name ;
objRepRevSharel.Opportunity__c = objRepSp.Opportunity__c ;
objRepRevSharel.Percent__c = objRepSp.SplitPercent__c ;
objRepRevSharel.Rep__c = objRepSp.Rep__c ;
objRepRevSharel.Date__c = objOppPay.Date__c ;
objRepRevSharel.Booked__c = objOppPay.Booked__c ;
objRepRevSharel.OppPayAmount__c = objOppPay.Amount__c ;
objRepRevShare.add(objRepRevSharel);
}}

insert(objRepRevShare);
}

GatorGator

I've updated code to include context variables -- cannot perform Trigger.new on a delete trigger.  

 

so now I have this. seems to be correct:

 

if(Trigger.isDelete){
for(Opp_Product__c oppp : Trigger.Old)
{ obJoppp.add(oppp.Opportunity__c); }

}
else{
for(Opp_Product__c oppp : Trigger.New)
{ obJoppp.add(oppp.Opportunity__c); }

}