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
jasonrtaylorjasonrtaylor 

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.

 

super developersuper developer

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.

Radhika

super developersuper developer

put this line before where you getting error