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

Triggers Salesforce:我可以将任务完成与字段更新关联起来吗?,triggers,salesforce,apex-code,Triggers,Salesforce,Apex Code,我正在尝试查看是否有可能更新Opportunity中的字段,并在某人完成相关任务时选中复选框true。有办法做到这一点吗?我认为跨对象工作流无法做到这一点,因为任务的WhatId字段是一个多态键。如果我是对的,您将不得不在任务上使用触发器。我认为跨对象工作流无法做到这一点,因为任务的WhatId字段是一个多态键。如果我是对的,您将不得不在任务中使用触发器。正如Jeremy所说,您将需要一个触发器,代码将看起来像我没有检查字段名等。因此,请将其视为几乎真实的伪代码 trigger TaskAfte

我正在尝试查看是否有可能更新Opportunity中的字段,并在某人完成相关任务时选中复选框true。有办法做到这一点吗?

我认为跨对象工作流无法做到这一点,因为任务的WhatId字段是一个多态键。如果我是对的,您将不得不在任务上使用触发器。

我认为跨对象工作流无法做到这一点,因为任务的WhatId字段是一个多态键。如果我是对的,您将不得不在任务中使用触发器。

正如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;
}

希望这是一些帮助

正如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;
}

希望这是一些帮助

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

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


它被称为Easy Workflow,AppExchange上有一个应用程序,允许您使用标准对象执行此操作

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


它被称为简易工作流

我试图避免为它编写触发器,但它看起来可能是唯一的解决方案。ThanksCross对象工作流?这怎么可能?我试图避免为它编写触发器,但看起来这可能是唯一的解决方案。ThanksCross对象工作流?这怎么可能?这是一个很好的问题,尽管看起来您已经有了答案,但我还是建议您使用askforce来回答twitter问题,或者访问并利用我们的社区来获得答案。希望有帮助!Nathan@salesforce.com主动邀请用户访问你的网站,而远离我们的网站,这也许不是最明智的做法。不过,如果您能加入我们并在这里回答有关salesforce的问题,我们将非常高兴。这是一个很好的问题,尽管看起来您已经有了答案,但我还是建议您使用askforce来回答twitter问题,或者访问并利用我们的社区来获得答案。希望有帮助!Nathan@salesforce.com主动邀请用户访问你的网站,而远离我们的网站,这也许不是最明智的做法。不过,如果您能加入我们并回答有关salesforce的问题,我们将非常高兴。