Salesforce:我可以将任务完成与字段更新相关联吗?

时间:2011-11-29 22:26:58

标签: triggers salesforce apex-code

当有人完成相关任务时,我正试图查看是否可以更新Opportunity中的某个字段(要选中复选框为true)。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:3)

我不认为这可以通过跨对象工作流来完成,因为WhatId的{​​{1}}字段是“多态键”。如果我是对的,你必须在Task上使用触发器。

答案 1 :(得分:1)

正如Jeremy所说,你需要一个触发器,代码看起来就像(我没有检查字段名称等等所以把它视为几乎真实的伪代码)!

trigger TaskAfterInsertUpdate on Task (after update, after insert)
{
    list<opportunity> liOpportunities = new list<opportunity>();
    list<id> liIDs = new list<id>();

    for(Task sTask : trigger.new)
    {
        if(sTask.Status == 'Complete' && ('' + sTask.WhatId).startsWith('006'))
        {
            liIDs.add(sTask.WhatId);
        }
    }

    for(Opportunity sOppty : [select Id, CheckBoxField__c from Opportunity where Id in : liIDS])
    {
        sOppty.CheckBoxField__c = true;
        liOpportunities.add(sOppty);
    }

    update liOpportunities;
}

希望这有一些帮助!

答案 2 :(得分:0)

AppExchange上有一个应用程序,允许您使用标准对象执行此操作。

当完成与该对象相关的任务时,它将允许您在记录(帐户,潜在客户,机会,案例等)上触发工作流操作。

https://appexchange.salesforce.com/listingDetail?listingId=a0N30000000q5khEAA

它称为Easy Workflow http://www.easyworkflow.co/