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
fiona gentryfiona gentry 

Trigger for LookUp not working

Hi,

I have a requirement Whenever HiringManager record is deleted,want to delete the Position as well ,Both HiringManager(Parent) and Position(Child) are custom objects,Position having lookup with HiringManager

In essence i cant  make this relationship of HiringManager(Parent) and Position(Child) like master detail but i want to achieve the functionity like whenever parent is deleted child should also get deleted

here is trigger code
trigger DeleteChild on HiringManager__c (before delete) {
    
    if(Trigger.isBefore && Trigger.isDelete){
        
        List<Position__c> lstPostns = [Select id,HiringManager__r.Name From Position__c Where id IN : Trigger.OldMap.KeySet() ];
        
        if(!lstPostns.isEmpty()){
            
            for(Position__c postns : lstPostns)
            {
                postns.id	= null;
                
            }
            
            upsert lstPostns;
        }
        
    }

}

Can you suggest what is goin wrong on above trigger

Regards

Fiona
Best Answer chosen by fiona gentry
CharuDuttCharuDutt
Hii Fiona
Try Below Code
Method 1:
trigger DeleteChild on HiringManager__c (before delete) {
	set<Id>ManagerIdSet = new Set();
	for(HiringManager__c hm :trigger.new){
	ManagerIdSet.Ad(hm.Id);
	}
	List<Position__c> lstPostns = [Select id,HiringManager__r.Name From Position__c Where HiringManager__c IN : ManagerIdSet ];
	if(lstPostns.size()>0){
	delete lstPostns;
	}
}

###################################################################################################################
Method 2

trigger DeleteChild on HiringManager__c (before delete) {
        if(Trigger.isBefore && Trigger.isDelete){
        List<Position__c> lstPostns = [Select id,HiringManager__r.Name From Position__c Where HiringManager__c IN : Trigger.OldMap.KeySet() ];
        if(!lstPostns.isEmpty()){  
            delete lstPostns;
        } 
    }
}
Please Mark It As Best Asnwer If It Helps
Thank You!