You need to sign in to do that
Don't have an account?
Attempt to de-reference a null object
Hi
while I am uploading the data from dataloader I am getting the following error.
ContractPremiumUpdate: execution of AfterUpdate
caused by: System.NullPointerException: Attempt to de-reference a null object
Trigger.ContractPremiumUpdate: line 38, column 8
Code:
trigger ContractPremiumUpdate on Contract ( after update) {
Set<Id> accid = new Set<Id>();
// List<Account> listacc = new List<Account>();
for (Contract c : Trigger.new) {
accid.add(c.AccountId);
}
//listacc.clear();
Map<ID,Account> listacc = new Map<ID,Account>{}; //NOTE: NOW, WE ARE INSTANTIATING A MAP, INSTEAD OF A LIST
Map<ID,Account> acc = new Map<ID, Account>([Select a.Id,a.Premiumaccount__c, a.Name From Account a where a.id IN :accid limit 1 ]);
// Account acc = [Select a.Premiumaccount__c, a.Name, a.Id From Account a where a.id IN :accid limit 1 ];
for (Integer i=0;i<trigger.new.size();i++){
if((trigger.new[i].Post_Deal_Qualit_t__c == 'Gold' ||
trigger.new[i].Post_Deal_Qualit_t__c == 'Silber' ||
trigger.new[i].Post_Deal_Qualit_t__c == 'Platin'))
{
Account tmpLead = acc.Get(trigger.new[i].AccountId);
tmpLead.Premiumaccount__c = 'Premium Partner';
listacc.put(tmpLead.id,tmpLead);
}
}
update listacc.values();
}
Kindly help me in this. This is very urgent.
Thanks
Raj
I think below line is giving the problem
trigger ContractPremiumUpdate on Contract ( after update) {
Set<Id> accid = new Set<Id>();
// List<Account> listacc = new List<Account>();
for (Contract c : Trigger.new) {
accid.add(c.AccountId);
}
//listacc.clear();
Map<ID,Account> listacc = new Map<ID,Account>{}; //NOTE: NOW, WE ARE INSTANTIATING A MAP, INSTEAD OF A LIST
Map<ID,Account> acc = new Map<ID, Account>([Select a.Id,a.Premiumaccount__c, a.Name From Account a where a.id IN :accid limit 1 ]);
// Account acc = [Select a.Premiumaccount__c, a.Name, a.Id From Account a where a.id IN :accid limit 1 ];
for (Integer i=0;i<trigger.new.size();i++){
if((trigger.new[i].Post_Deal_Qualit_t__c == 'Gold' ||
trigger.new[i].Post_Deal_Qualit_t__c == 'Silber' ||
trigger.new[i].Post_Deal_Qualit_t__c == 'Platin'))
{
if(acc.containsKey(trigger.new[i].AccountId)){
Account tmpLead = acc.Get(trigger.new[i].AccountId);
tmpLead.Premiumaccount__c = 'Premium Partner';
listacc.put(tmpLead.id,tmpLead);
}
}
}
update listacc.values();
}
It seems that the data for the required fields is missing and due to that error is showing up.