如何在 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_NAME
、flowVars['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
我正在尝试在 Mule ESB 的 where 子句中使用带有 flowvariable 的查询(与 Salesforce 连接)
SELECT id FROM Account WHERE CX_ID__c = '"flowvars.orgpayload.CXM_ID+"' LIMIT 1
但我在这里没有收到错误。关于如何在查询中使用流变量的任何指示都会有所帮助。谢谢!
流变量可通过 MEL 访问,使用 flowVars.VAR_NAME
、flowVars['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