从MuleSoft连接器返回的SaveResult获取SFDC ID

时间:2013-12-12 17:04:01

标签: groovy salesforce mule

我正在使用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 ='”且结束标记为“'”的所有内容然后加入它们?

2 个答案:

答案 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