如何使用外部服务中的数据更新新联系人?

问题描述

我正在使用Salesforce Lightning模式,并希望使用配置而非代码方法。我定义了外部服务。

我要实现的方案如下:

  1. 用户在Salesforce中创建联系人
  2. 使用来自新联系人的一些数据自动调用外部Web服务
  3. 从外部服务中检索相关数据
  4. 使用数据更新联系人

我的第一个尝试是创建一个记录触发流程,该流程在创建新的联系人实体时被激活。然后,该流程能够在触发一个调用我的外部服务的Action之前分配相关的变量。我遇到的问题是,出现了错误“'您有未提交的工作待处理。请先提交或回滚,然后再调用'错误”,这引起了我这篇文章https://help.salesforce.com/articleView?id=000328873&type=1&mode=1

所以据我所知,问题是我无法在由联系人创建触发的流中调用外部服务。

因此,然后我研究了创建一个调用流程的流程。该过程是从“记录更改时”开始的过程,该记录被设置为已创建的联系人记录。然后,该过程应该调用我的Flow,它将执行实际的外部服务调用

  1. 我采用这种方法是否正确?
  2. 如何将变量信息从流程传递到流程?

感谢您的见识

解决方法

之所以存在限制,是因为您要创建一条新记录=您正在临时锁定数据库表(或者可能不是整个表,可能只是1行)。但是您无法控制数据库,要让操作等待120秒才能成功/失败/超时。外部系统调用必须是独立的异步操作。

在流程构建器中,有立即和基于时间的操作。尝试将流程设置为基于时间的,即使将其设置为联系人创建后的0分钟也是如此。或者也许在流程中,还有一些方法可以做类似的事情,因为我将它们用于严肃的东西已经有一段时间了。