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
Naomi HarmonNaomi Harmon 

Help Solving System.NullPointerException Error

Hi there! I am extremely new to coding and need help fixing my Apex Trigger below. The Trigger is set up to populate a lookup field on the Lead object that points to my custom CampaignAdGroup__c object. I need help fixing it so that the lookup field ("Campaign_ad_group__c") is populated with a null value in the case that the "CampaignAdGroup_concatenate__c" on my lead record is populated but does not match any Name values in my CampaignAdGroup__c object. Any help is appreciated!

trigger campaignAdGroupLookup on Lead (before update, before insert) {     
        Set<String> campaignAdGroups = new Set<String>();
            for (Lead collectCampaignAdgroupFromLead : Trigger.new) {
            campaignAdGroups.add(collectCampaignAdgroupFromLead.CampaignAdGroup_concatenate__c);
             }           
        List<CampaignAdGroup__c> campaignadgroupList = [SELECT id, Name FROM CampaignAdGroup__c WHERE Name IN :campaignAdGroups];
        
        Map<String, CampaignAdGroup__c> campaignAdGroupNameToLeadMap = new Map<String, CampaignAdGroup__c>();
    
        for (CampaignAdGroup__c c : campaignadgroupList) {
            campaignAdGroupNameToLeadMap.put(c.Name, c);
        }
        for (Lead o : Trigger.new) {         
            if (o.CampaignAdGroup_concatenate__c != null) {
                o.Campaign_Ad_Group__c = campaignAdGroupNameToLeadMap.get(o.CampaignAdGroup_concatenate__c).id;
            }
            else {
                o.Campaign_Ad_Group__c = null;
            }
        }
        }
Amit Chaudhary 8Amit Chaudhary 8
Please update your code like below
trigger campaignAdGroupLookup on Lead (before update, before insert) 
{     
        Set<String> campaignAdGroups = new Set<String>();
		for (Lead collectCampaignAdgroupFromLead : Trigger.new) 
		{
			if( collectCampaignAdgroupFromLead.CampaignAdGroup_concatenate__c != null )
			{
				campaignAdGroups.add(collectCampaignAdgroupFromLead.CampaignAdGroup_concatenate__c);
			}	
		}
		
        List<CampaignAdGroup__c> campaignadgroupList = [SELECT id, Name FROM CampaignAdGroup__c WHERE Name IN :campaignAdGroups];
        
        Map<String, CampaignAdGroup__c> campaignAdGroupNameToLeadMap = new Map<String, CampaignAdGroup__c>();
    
        for (CampaignAdGroup__c c : campaignadgroupList) {
            campaignAdGroupNameToLeadMap.put(c.Name, c);
        }
        for (Lead o : Trigger.new) 
		{         
            if ( o.CampaignAdGroup_concatenate__c != null && campaignAdGroupNameToLeadMap.containsKey(o.CampaignAdGroup_concatenate__c) == true ) 
			{
                o.Campaign_Ad_Group__c = campaignAdGroupNameToLeadMap.get(o.CampaignAdGroup_concatenate__c).id;
            }
            else 
			{
                o.Campaign_Ad_Group__c = null;
            }
        }
}

Let us know if this will help you
 
Naomi HarmonNaomi Harmon
Thank you so much; that worked!
Amit Chaudhary 8Amit Chaudhary 8
Please mark the best answer and close this thread if your issue is resolved