You need to sign in to do that
Don't have an account?

how to solve System.NullPointerException: Attempt to de-reference a null object Trigger.updateContact: line 34, column 1: []
- trigger updateContact on Opportunity (after insert,after update) {
- if(Trigger.isInsert || Trigger.isUpdate ){
- Map<Id, Opportunity> oppMap = new Map<Id, Opportunity>();
- List<Id> contactIdList = new List<Id>();
- Map<Id, Contact> mapcontact = new Map<Id, Contact>();
- Map<Id, List<Contact>> opptyContactMap = new Map<Id, List<Contact>>();
- for(Opportunity opp : Trigger.new){
- oppMap.put(opp.Id, opp);
- }
- //Contact[] contactList = [ SELECT Id, Nurture_Path__c FROM Contact WHERE Id IN ( SELECT ContactId FROM OpportunityContactRole WHERE OpportunityId IN: oppMap.keySet()) ];
- OpportunityContactRole[] opptyConRole = [SELECT ContactId, OpportunityId FROM OpportunityContactRole
- WHERE OpportunityId IN: oppMap.keySet()];
- Map<Id, List<ID>> opptyContIdMap = new Map<Id, List<ID>>();
- for(OpportunityContactRole ocr : opptyConRole){
- if(opptyContIdMap.containsKey(ocr.OpportunityId))
- contactIdList = opptyContIdMap.get(ocr.OpportunityId);
- else
- contactIdList = new List<Id>();
- contactIdList.add(ocr.ContactId);
- opptyContIdMap.put(ocr.OpportunityId, contactIdList);
- }
- for(Opportunity oppty : oppMap.values() ) {
- system.debug('opptyContIdMap==>'+opptyContIdMap);
- if(opptyContIdMap != NULL && !opptyContIdMap.isEmpty() ){
- if(oppty.stageName.contains('Prospecting')){
- for(Id idr : opptyContIdMap.get(oppty.Id)){
- Contact con = new contact(id = idr);
- if(!mapcontact.containsKey(con.id)){
- con.Nurture_Path__c = 'PreQual Op Nurture';
- mapcontact.put(con.id, con);
- }
- }
- }
- else{
- for(Id idr : opptyContIdMap.get(oppty.Id)){
- Contact con = new contact(id = idr);
- if(!mapcontact.containsKey(con.id)){
- con.Nurture_Path__c = '';
- mapcontact.put(con.id, con);
- }
- }
- }
- }
- }
- List<Contact> conToUpdate = mapcontact.values();
- if(conToUpdate!= NULL && !conToUpdate.isEmpty())
- update conToUpdate;
- }
- }
My Requirement is -:
1.IF contact is associated to an opportunity and opportunity stage = "PreQual" THEN update "Nurture Path" field to "PreQual Op Nurture"
2.IF contact associated to an opportunity and opportunity state = "Qualified", "Discovery", "Solution Overview", "Scoping", "Proposal", "Pending Approval","Won", "Closed Lost", or "Cancelled" THEN clear out "Nurture Path" Field to <None>
above trigger is working fine, but when i update Bulkify Opportunity at that time it will throw above error msg in test class