如何在Mule查询中使用flowvariable

时间:2015-06-02 22:22:16

标签: mule datamapper

我试图在Mule ESB(与Salesforce连接)的where子句中使用带有flowvariable的查询

SELECT id FROM Account WHERE CX_ID__c = '"flowvars.orgpayload.CXM_ID+"' LIMIT 1

但我在这里没有收到错误。有关如何在查询中使用流变量的任何指针都会有所帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

可以通过MEL访问流变量,包括flowVars.VAR_NAMEflowVars['VAR_NAME'](如果变量包含与MEL语法冲突的字符)或直接VAR_NAME(如果您尚未禁用默认值)将流量变量绑定为顶级MEL变量)。

在您的情况下,由于流变量名为orgpayload.CXM_ID,因此.使其与MVEL语法冲突。因此,您无法使用flowVars.orgpayload.CXM_ID,而是必须使用flowVars['orgpayload.CXM_ID']

PS。 MEL区分大小写。您想要flowvars

时输入flowVars

答案 1 :(得分:1)

在你的情况下,我会有类似的打击

SELECT id FROM Account WHERE CX_ID__c = '#[flowVars['orgpayload.CXM_ID']]' LIMIT 1

除了上述内容之外,您还应考虑使用参数化查询而不是动态查询,因为动态查询容易SQL injection attacks,并且在比较时性能较差参数化查询。

请参阅此document