如何在 Mule 查询中使用流变量

How to use flowvariable in a Mule Query

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

SELECT id FROM Account WHERE CX_ID__c = '"flowvars.orgpayload.CXM_ID+"' LIMIT 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

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

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

除上述之外,您还应考虑使用参数化查询而不是动态查询,因为动态查询容易出现SQL injection attacks 并且与 参数化 查询相比性能较低。

参考这个document