You need to sign in to do that
Don't have an account?
![Gator Gator](https://dfc-org-production.my.site.com/img/userprofile/default_profile_45_v2.png)
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);
}
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); }
}