You need to sign in to do that
Don't have an account?
Null Pointer Exception using parent relationship reference.
I have a custom object (DM__C that is a child of Opportunity (lookup relationship). I am trying to update values on my custom object (DM__C) based on the user fields on the owner of the parent opportunity object. When I try using the opportunity relationship (DM_opportunity_ID__r.ownerid), I receive the following error message:
System.NullPointerException: Attempt to de-reference a null object: Trigger.NSPUserValuesUpdate: line 27, column 77
The line it is erroring on is: salesChannelFromUser = ownerMap.get(nsp.DM_Opportunity_ID__r.OwnerId).BMG_Sales_Channel__c;
How can I reference the parent relationship without getting this error?
trigger NSPUserValuesUpdate on DM__c (before insert, before update) {
if (Trigger.isInsert || Trigger.isUpdate) {
Set<Id> ownerIds = new Set<Id>();
for (dm__c nsp : Trigger.New) {
ownerIds.add(nsp.DM_Opportunity_ID__r.OwnerId);
}
System.debug('ownerIds: ' + ownerIds);
Map<Id, User> ownerMap = new Map<Id, User>([Select Id, BMG_Sales_Channel__c,vp__c,director__c from User where Id in :ownerIds]);
System.debug('ownerMap: ' + ownerMap);
String salesChannelFromUser;
String salesChannelFromUserVp;
String salesChannelFromUserDir;
for (dm__c nsp : Trigger.New) {
salesChannelFromUser = ownerMap.get(nsp.DM_Opportunity_ID__r.OwnerId).BMG_Sales_Channel__c;
salesChannelFromUserVp = ownerMap.get(nsp.OwnerId).vp__c;
salesChannelFromUserDir = ownerMap.get(nsp.OwnerId).director__c;
if (Trigger.isInsert) {
nsp.BMG_Sales_Channel__c = salesChannelFromUser;
nsp.vp__c = salesChannelFromUserVp;
nsp.director__c = salesChannelFromUserDir;
}
else if (Trigger.isUpdate) {
if (nsp.BMG_Sales_Channel__c != salesChannelFromUser
|| nsp.vp_test__c != salesChannelFromUserVp
|| nsp.director_test__c != salesChannelFromUserDir) {
nsp.BMG_Sales_Channel__c = salesChannelFromUser;
nsp.vp_test__c = salesChannelFromUserVp;
nsp.director_test__c = salesChannelFromUserDir;
}
}
}
}
}
Thanks, in advance, for your help.
Hi i think,
There is no value returned in map. before that line put one line.
that is
if(ownerMap.get(nsp.DM_Opportunity_ID__r.OwnerId)!=null)
put the system.debug(ownerMap); check in debug log whether it getting value or not.
put this line before where you getting error