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
Iswarya SekarIswarya Sekar 

how to bulkify this code? Please help me!!

public class UpdateUser {
    Public static void method1(List<case> caseList){
        set<id> parentcaseId = new set<Id>();
        for(case cs:caseList){
            if(cs.Defect__c != null){
                parentcaseId.add(cs.Defect__c);
            }
        }
        
        List<Case> caseslistold = [SELECT Id, OwnerId FROM Case WHERE Id in : parentcaseId];
        for(Id csIdtoUpdate:parentcaseId){
            for(Case cas:caseslistold){
                for(case cs:caseList){
                    cs.Product_Lead__c=cas.ownerId;
                }
            }
        }
    }
}
 
trigger updateUsertrig on Case (before insert, before Update) {
    if((trigger.isInsert && trigger.isBefore) || (trigger.isUpdate && trigger.isBefore))
UpdateUser.method1(trigger.new);
}

 
Iswarya SekarIswarya Sekar
Can anyone help me? Its urgent !!
Prashant Pandey07Prashant Pandey07
Hi Iswarya,

You can try below code and let me know if that work for you. 
public class UpdateUser {
    Public static void method1(Map<Id,case> OldMap,Map<Id,case> NewMap){
   
                   for(case cs:NewMap.Values()){
                   if(Oldmap.get(cs.Id).Product_Lead__c!=Newmap.get(cs.Id).Product_Lead__c){

                    cs.Product_Lead__c=cs.ownerId;
                    }
                  
                }
            }
}
 
trigger updateUsertrig on Case (before insert, before Update) {
    if((trigger.isInsert && trigger.isBefore) || (trigger.isUpdate && trigger.isBefore))
UpdateUser.method1(trigger.new);
}

--
Thanks,
Prashant
Prashant Pandey07Prashant Pandey07
Small update in the trigger.
 
trigger updateUsertrig on Case (before insert, before Update) {
    if((trigger.isInsert && trigger.isBefore) || (trigger.isUpdate && trigger.isBefore))
     
UpdateUser.method1(Trigger.oldMap,Trigger.NewMap);
}

--
Thanks,
Prashant
Amit Chaudhary 8Amit Chaudhary 8
Try to update your trigger like below
public class UpdateUser {
    Public static void method1(List<case> caseList){
        set<id> parentcaseId = new set<Id>();
        for(case cs:caseList){
            if(cs.Defect__c != null){
                parentcaseId.add(cs.Defect__c);
            }
        }
        
        Map<Id,Case> mapOldCase = new Map<Id,Case>( [SELECT Id, OwnerId FROM Case WHERE Id in : parentcaseId] );
		
		for(case cs:caseList){
			if(cs.Defect__c != null && mapOldCase.containsKey(cs.Defect__c)){
				cs.Product_Lead__c=cas.ownerId;
			}	
		}
    }
}

Let us know if this will help you