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
Naveen KvpNaveen Kvp 

how to avoid null ponter exception in following trigger?

trigger updatepicklistlist on Orderc__c (after insert,after  Update,after delete) {
  Map<id,Account> mapAcc=new Map<id,Account>();
  set<id> accids=new set<id>();
list<Orderc__c> lstorder=new list<Orderc__c>();
      for(Orderc__c ord:trigger.new){
       accids.add(ord.Party_Name__c);
   }
     for(Orderc__c ord:trigger.old){
       accids.add(ord.Party_Name__c);
   }
for(account acc:[select id,Status__c,Discount__c from  account where id =: accids]) 
      {
     mapAcc.put(acc.id,acc);
         
     System.debug('List of Acccounts@@@@@@@@@@@@@@@@@@'+mapAcc);
      }
  if(accids.Size()>0)
  {
      for(Orderc__c o:Trigger.New)
      {
          if(mapAcc.get(o.Party_Name__c) .Discount__c==Null)
          {
             o.addError('Please Enter Discount in Account'); 
          }
          else
          {
             mapAcc.get(o.Party_Name__c) .Status__C='Existing';  
          }
       
        
      }
   
  }
Update mapAcc.values();
}
NK@BITNK@BIT
This would be because you are not checking for this condition:
if(mapAcc.get(o.Party_Name__c) != null)

before this condition: if(mapAcc.get(o.Party_Name__c) .Discount__c==Null)
This would be causing this error.
rohitsfdcrohitsfdc
Hello Naveen, 
Replace your code with the code below

trigger updatepicklistlist on Orderc__c (after insert,after  Update,after delete) {
  Map<id,Account> mapAcc=new Map<id,Account>();
  set<id> accids=new set<id>();
list<Orderc__c> lstorder=new list<Orderc__c>();
      for(Orderc__c ord:trigger.new){
       accids.add(ord.Party_Name__c);
   }
     for(Orderc__c ord:trigger.old){
       accids.add(ord.Party_Name__c);
   }
for(account acc:[select id,Status__c,Discount__c from  account where id =: accids]) 
      {
     mapAcc.put(acc.id,acc);
         
     System.debug('List of Acccounts@@@@@@@@@@@@@@@@@@'+mapAcc);
      }
  if(accids.Size()>0)
  {
      for(Orderc__c o:Trigger.New)
      {
if(mapAcc.get(o.Party_Name__c)!=null)
          if(mapAcc.get(o.Party_Name__c) .Discount__c==Null)
          {
             o.addError('Please Enter Discount in Account'); 
          }
          else
          {
             mapAcc.get(o.Party_Name__c) .Status__C='Existing';  
          }
       
        
      }
   
  }
Update mapAcc.values();
}

If that helps you, please mark this as best answer
SarfarajSarfaraj
trigger updatepicklistlist on Orderc__c (after insert, after  Update, after delete) 
{
	set<Id> accids=new set<id>();
	list<Orderc__c> lstorder=new list<Orderc__c>();
	if(Trigger.isDelete)
		for(Orderc__c ord:trigger.old)
			if(ord.Party_Name__c != null)
			{
				accids.add(ord.Party_Name__c);
				lstorder.add(ord);
			}
	else
		for(Orderc__c ord:trigger.new)
			if(ord.Party_Name__c != null)
			{
				accids.add(ord.Party_Name__c);
				lstorder.add(ord);
			}
	if(accids.Size()>0)
	{
		Map<Id, Account> mapAcc = new Map<Id, Account>([select Id, Status__c, Discount__c From  Account where Id = :accids]);
		for(Orderc__c o : lstorder)
		{
			if(mapAcc.get(o.Party_Name__c).Discount__c == Null)
				o.addError('Please Enter Discount in Account'); 
			else
				mapAcc.get(o.Party_Name__c).Status__C = 'Existing';  
		}
		update mapAcc.values();
	}
}

Vatsal KothariVatsal Kothari
Hi,

Below is the updated code:
trigger updatepicklistlist on Orderc__c (after insert,after  Update,after delete) {
	Map<Id,Account> mapAcc = new Map<Id,Account>();
	Set<Id> accIds = new Set<Id>();
	List<Orderc__c> lstorder = new List<Orderc__c>();
	
	for(Orderc__c ord:trigger.new){
		if(ord.Party_Name__c != null){
			accIds.add(ord.Party_Name__c);
		}
	}
	
	if(Triiger.isUpdate){
		for(Orderc__c ord:trigger.old){
			if(ord.Party_Name__c != null){
				accIds.add(ord.Party_Name__c);
			}
		}
	}
	
	if(!accIds.isEmpty()){
		for(Account acc : [select id,Status__c,Discount__c from Account where Id IN: accIds]) 
		{
			if(acc.Id != null){
				mapAcc.put(acc.id,acc);
				System.debug('List of Acccounts@@@@@@@@@@@@@@@@@@'+mapAcc);
			}
		}
		
		if(!mapAcc.isEmpty()){
		{
			for(Orderc__c o : Trigger.New)
			{
				if(mapAcc.containsKey(o.Party_Name__c) && mapAcc.get(o.Party_Name__c).Discount__c == null)
				{
					o.addError('Please Enter Discount in Account'); 
				}
				else
				{
					if(mapAcc.containsKey(o.Party_Name__c)){
						mapAcc.get(o.Party_Name__c).Status__C='Existing';  
					}
				}
			}
			update mapAcc.values();
		}
	}
}
If this solves your problem, kindly mark it as the best answer.

Thanks,
Vatsal