我正在使用Salesforce REST API创建一个Case。我将SuppliedEmail字段分配给创建案例的用户的电子邮件,以及所有其他必要字段。在salesforce中正确创建了案例,但未触发为其设置的自动响应规则。我已经验证规则是否正常工作,规则的所有条件都已满足,因此这不是规则不匹配的问题。
问题是,在通过API创建案例后,salesforce没有评估/触发自动响应规则。通过SOAP API,您可以使用EmailHeader设置它,但我找不到通过REST API设置它的方法。
要清楚我正在对URI /sobjects/Case
发出POST请求,并将案例本身的JSON值作为请求正文。
有没有办法使用REST API将EmailHeader.triggerAutoResponseEmail
字段设置为true,可能是通过请求正文中的其他字段?
答案 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)插入。正在创建案例,自动响应规则未触发