You need to sign in to do that
Don't have an account?
Nandhini s 11
Where am i going wrong
I have written the below trigger to update Number of child opportunity in parent opportunity record. But it's not working,
trigger NoOfChildOppty on Opportunity (after insert,after update,after delete,after undelete) {
set<id> oId = new set<id>();
List<opportunity> oppty = new List<opportunity>();
if(!trigger.isDelete)
{
for(opportunity o: trigger.new)
{
oId.add(o.Parent_Opportunity__r.id );
}}
else
{
for(opportunity o: trigger.old)
{
oId.add(o.Parent_Opportunity__r.id );
} }
for(opportunity op: [select id,No_Of_child_Oppty__c from opportunity where id =: oId])
{
List<opportunity> opp = [select id from opportunity where Parent_Opportunity__r.id=: op.id];
op.No_Of_child_Oppty__c = opp.size();
oppty.add(op);
}
update oppty;
}
trigger NoOfChildOppty on Opportunity (after insert,after update,after delete,after undelete) {
set<id> oId = new set<id>();
List<opportunity> oppty = new List<opportunity>();
if(!trigger.isDelete)
{
for(opportunity o: trigger.new)
{
oId.add(o.Parent_Opportunity__r.id );
}}
else
{
for(opportunity o: trigger.old)
{
oId.add(o.Parent_Opportunity__r.id );
} }
for(opportunity op: [select id,No_Of_child_Oppty__c from opportunity where id =: oId])
{
List<opportunity> opp = [select id from opportunity where Parent_Opportunity__r.id=: op.id];
op.No_Of_child_Oppty__c = opp.size();
oppty.add(op);
}
update oppty;
}
Here if you insert Opportunity related to parent Opportunity, Firstly we count total opportunity related to that Parent Opportunity and then update it's field No_Of_child_Oppty__c to that count.
Try this code:
Trigger: Trigger Handler:
I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.
Thanks,
Ajay Dubedi