我正在使用MuleSoft和SalesForce开发POC,并试图提高流量效率。目前,在创建一组案例后,我正在执行另一个查询以获取所有创建的案例的ID。我注意到在创建之后转储有效负载时,每个创建的案例的ID作为SaveResult列表的一部分返回,但是格式看起来不容易被引用为地图。由于在创建之后返回了ID,所以如果我可以从SaveResult解析它,我可以避免额外的查询来获取ID。
这是在Mule中以#[payload]返回的示例:
[[SaveResult errors='{[0]}'id='500c0000002IDQnAAO' success='true'], [SaveResult errors='{[0]}' id='500c0000002IDQoAAO' success='true']]
看起来在Apex中您可以引用这些,但我不知道在Mule中是否存在等效方式,或者在Groovy等受支持的脚本引擎之一中是否存在。如果我无法访问这些值,我是否可以使用Groovy字符串操作来查找开始标记为“id ='”且结束标记为“'”的所有内容然后加入它们?
答案 0 :(得分:0)
这只是有效载荷的字符串表示。 create操作返回SaveResults列表。您可以使用MEL / MVEL轻松访问这些内容。这是一个抓住所有ID并将它们作为流变量放入新列表的示例:
<sfdc:create ... />
<expression-component>
flowVars.ids = (Id in payload)
</expression-component>
<logger level="INFO" message="Ids = #[flowVars.ids]" />
你应该看到类似的东西:Ids = ['xxxx','yyyy','zzzz']
答案 1 :(得分:0)
您确定这不仅仅是toString()
对象列表的SaveResult
吗?
如果是,您应该能够results.id