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
niharnihar 

I have created an opportunity record and related task also... when i change the picklist stage field value in opportunity record the task should be completed

how can i achieve it???
Best Answer chosen by nihar
GhanshyamChoudhariGhanshyamChoudhari
trigger opptoTask on Opportunity (after update) {
    Map<Id, Opportunity> changed = new Map<Id, Opportunity>();
    for (Opportunity oso : Trigger.new) {
        Opportunity old = Trigger.oldMap.get(oso.Id);
        if (oso.StageName != old.StageName) {
            changed.put(oso.Id, oso);
        }
    }
    if (changed.size() > 0) {
        List<Task> updatetask = new List<Task>();
        for (Task detail : [
            SELECT Id, status,WhatId
            FROM Task
            WHERE WhatId IN :changed.keySet()
        ]) {
            Opportunity oso = changed.get(detail.WhatId);
            detail.status = 'Completed';
            updatetask.add(detail);            
        }
        update updatetask;
    }    
}

 

All Answers

Pradeep SinghPradeep Singh
Hi, You can do this using process builder.
GhanshyamChoudhariGhanshyamChoudhari
trigger opptoTask on Opportunity (after update) {
    Map<Id, Opportunity> changed = new Map<Id, Opportunity>();
    for (Opportunity oso : Trigger.new) {
        Opportunity old = Trigger.oldMap.get(oso.Id);
        if (oso.StageName != old.StageName) {
            changed.put(oso.Id, oso);
        }
    }
    if (changed.size() > 0) {
        List<Task> updatetask = new List<Task>();
        for (Task detail : [
            SELECT Id, status,WhatId
            FROM Task
            WHERE WhatId IN :changed.keySet()
        ]) {
            Opportunity oso = changed.get(detail.WhatId);
            detail.status = 'Completed';
            updatetask.add(detail);            
        }
        update updatetask;
    }    
}

 
This was selected as the best answer