You need to sign in to do that
Don't have an account?
ch ranjith
when parent deleted child should delete Please help in this code
trigger master on parent__c (after delete)
{
set<id> set1=new set<id>();
list<child__C> chdellist=new list<child__C>();
for(parent__c p:trigger.old)
{
set1.add(p.id);
}
list<child__c> chlist=[select id,name,ref_parent__c from child__c where ref_parent__c in:set1];
system.debug(chlist);
for(parent__c p:trigger.old)
{
for(child__C c:chlist)
{
if(p.id==c.ref_parent__c)
system.debug(p.name+' '+c.name);
{
chdellist.add(c);
}
}
}
delete chdellist;
}
{
set<id> set1=new set<id>();
list<child__C> chdellist=new list<child__C>();
for(parent__c p:trigger.old)
{
set1.add(p.id);
}
list<child__c> chlist=[select id,name,ref_parent__c from child__c where ref_parent__c in:set1];
system.debug(chlist);
for(parent__c p:trigger.old)
{
for(child__C c:chlist)
{
if(p.id==c.ref_parent__c)
system.debug(p.name+' '+c.name);
{
chdellist.add(c);
}
}
}
delete chdellist;
}
{
list<parent__C> pnewlist=new list<parent__C>();
set<id> set1=new set<id>();
for(parent__C p:trigger.old)
{
set1.add(p.id);
}
list<child__C> chlist=[select id,name,ref_parent__c from child__C where ref_parent__c in:set1];
delete chlist;
}
All Answers
You can go for master detail relationship between two objects .why you need a trigger?
I need three master detail relationship in one object so i one more master detail relationship apart from salesforce standard functionlaity so i was created one look up with the help triggers its should behave like master
so please help me
{
list<child__C> chdellist=new list<child__C>();
for(parent__c p:trigger.old)
{
list<child__c> chlist=[select id,name,ref_parent__c from child__c where ref_parent__cin:p.id];
if(chlist.size()>0)
{
chdellist.add(chlist);
}
delete chdellist;
}
this will wok i guess
trigger masterdelete on parent__c (after delete)
{
list<parent__C> pnewlist=new list<parent__C>();
set<id> set1=new set<id>();
for(parent__C p:trigger.old)
{
set1.add(p.id);
}
list<child__C> chlist=new list<child__C>();
list<parent__c> plist=[select id,name,(select id,name from Parent__c.childs__r) from parent__c where id in:set1];
for(parent__c p1:plist)
{
for(child__C c1:p1.childs__r)
{
chlist.add(c1);
}
}
delete chlist;
}
You can create your child list using a soql query from the parent keyset and eliminate the for loops:
trigger masterdelete on parent__c (after delete)
{
list<parent__C> pnewlist=new list<parent__C>();
set<id> set1=new set<id>();
List<child__c> chlist = new List<child__c>([SELECT Id, Name FROM child__c WHERE ref_parent__c IN :trigger.oldMap.keySet()]);
system.debug(chlist);
delete chlist;
}
The child records is not retrieving in tge chlist why?
Help me soon
{
list<parent__C> pnewlist=new list<parent__C>();
set<id> set1=new set<id>();
for(parent__C p:trigger.old)
{
set1.add(p.id);
}
list<child__C> chlist=[select id,name,ref_parent__c from child__C where ref_parent__c in:set1];
delete chlist;
}