5

我正在使用 Salesforce REST API 创建案例。我将 SuppliedEmail 字段分配给创建案例的用户的电子邮件,以及所有其他必要的字段。该案例已在 Salesforce 中正确创建,但未触发为其设置的自动响应规则。我已经验证该规则有效且处于活动状态,该规则的所有条件都已满足,因此这不是规则不匹配的问题。

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

需要明确的是,我正在/sobjects/Case使用案例本身的 JSON 值作为请求正文向 URI 发出 POST 请求。

有没有办法EmailHeader.triggerAutoResponseEmail使用 REST API 将字段设置为 true,也许通过请求正文中的一些附加字段?

4

3 回答 3

2

好吧,更少的复杂性几乎总是以更少的功能为代价。API 标头的丢失就是其中之一。至少在 Java 中,您可以使用许多可用的工具包正确使用 WSDL,在 .NET 中,WCF 几乎是无用的,因为 MS 认为 SOAP 标头并不酷(该死的标准)。

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

于 2012-05-03T07:58:03.040 回答
2

有可能的。

您需要将 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,您可以在实际提交案例之前对其进行设置。在这里,将其注入案例创建过程的唯一方法是使用新选项更新刚刚创建的案例。但显然,执行案例插入需要两次以上的事务。

于 2014-01-09T15:06:47.667 回答
0

not able to comment (yet) but i wasnt able to get the dml options to trigger the auto-response rules. i ended up just creating the email in apex, which may hit the email limit in an extreme case. the one difference was that i wasnt using the dml through a trigger on the case, i was using it in the rest class that was creating the case, setting case options and inserting using dml.insert(case, options). case was being created, auto response rules not firing

于 2015-09-11T22:21:40.487 回答