将Json数组无须转换为m子中的SOQL格式

时间:2018-11-01 17:06:25

标签: mule dataweave

按如下所示转换Json格式

输入:

["100555809","100000001"]

转换为以下格式,以便可以通过在salesforce连接器中为转换后的输出分配一些流变量来将其用于SOQL查询中。

输出:

('100555809','100000001')

1 个答案:

答案 0 :(得分:1)

假设您的输入是有效负载,并且您想要一个字符串作为输出,则需要使用map将所有ID括在单引号中,然后使用joinBy将它们结合成一个字符串。最后,将结果包装在括号中:

%dw 1.0
%output application/java

%var ids = payload

// Wrap ids in single quotes and join them into a string
%function formatIds(ids)
  ids 
    map ((id) -> "'$(id)'")
    joinBy ","

%function transformForSOQL(ids)
  "($(formatIds(ids)))"
---
transformForSOQL(ids)

不确定SOQL是否存在相同的漏洞,但如果这样,则在生成这样的动态查询值时要小心“ SOQL”注入。