Salesforce - 通过API创建案例后触发自动响应规则

时间:2012-05-02 22:20:16

标签: java email rest salesforce

我正在使用Salesforce REST API创建一个Case。我将SuppliedEmail字段分配给创建案例的用户的电子邮件,以及所有其他必要字段。在salesforce中正确创建了案例,但未触发为其设置的自动响应规则。我已经验证规则是否正常工作,规则的所有条件都已满足,因此这不是规则不匹配的问题。

问题是,在通过API创建案例后,salesforce没有评估/触发自动响应规则。通过SOAP API,您可以使用EmailHeader设置它,但我找不到通过REST API设置它的方法。

要清楚我正在对URI /sobjects/Case发出POST请求,并将案例本身的JSON值作为请求正文。

有没有办法使用REST API将EmailHeader.triggerAutoResponseEmail字段设置为true,可能是通过请求正文中的其他字段?

3 个答案:

答案 0 :(得分:1)

嗯,较少的复杂性几乎总是以较少的功能为代价。 API标头丢失就是其中之一。至少在Java中,你可以使用许多可用的工具包正确地使用WSDL,在.NET中,WCF几乎是无用的,因为MS认为SOAP头不酷(标准被诅咒)。

因此,要么使用WSDL / SOAP,要么创建一个工作流规则,该规则将触发案例创建并将电子邮件发送到所需的地址。

答案 1 :(得分:1)

有可能。

您需要将REST API与APEX代码结合起来,以及它将如何运作。假设我们有一个基于REST API的案例创建功能按预期工作。您在APEX中需要做的就是添加一个触发器来处理以下功能:

trigger AfterCaseInsert on Case (after insert) {

    if (trigger.isAfter && trigger.isInsert) {

        List<Case> newlyInsertedCases = [SELECT Id From Case WHERE Id IN :trigger.new];

        Database.DMLOptions autoResponseOptions = new Database.DMLOptions();
        autoResponseOptions.EmailHeader.triggerAutoResponseEmail = true;

        for (Case c : newlyInsertedCases ) {
            Database.update(c, autoResponseOptions); 
        }   

    }
}

必须修改DMLOptions EmailHeader选项。如果使用WSDL / SOAP,则可以在实际提交案例之前进行设置。在这里,将其注入案例创建过程的唯一方法是使用新选项更新刚创建的案例。但显然,执行案例插入需要两次以上的交易。

答案 2 :(得分:0)

无法评论(但)我无法获取dml选项来触发自动回复规则。我最终只是在顶点创建了电子邮件,在极端情况下可能会达到电子邮件限制。一个区别是我没有通过案例中的触发器使用dml,我在创建案例的其余类中使用它,设置案例选项并使用dml.insert(case,options)插入。正在创建案例,自动响应规则未触发