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