我想看看当有人完成相关任务时,是否有可能在机会中更新一个字段(一个复选框被选中为true)。有办法做到这一点吗?
我不认为这可以用跨对象工作流完成,因为Task
的WhatId
字段是一个"多态键"。如果我是对的,你必须在Task
上使用触发器。
正如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;
}
希望这是一些帮助!