我试图在Mule ESB (与Salesforce连接)的where子句中使用Mule变量的查询。
SELECT id FROM Account WHERE CX_ID__c = '"flowvars.orgpayload.CXM_ID+"' LIMIT 1但我在这里不会犯什么错误。任何关于如何在查询中使用flow变量的指针都会有所帮助。谢谢!
发布于 2015-06-02 22:53:21
流变量可以通过MEL访问,可以使用flowVars.VAR_NAME、flowVars['VAR_NAME'] (如果该变量包含与MEL语法冲突的字符)或直接使用VAR_NAME (如果您还没有将流变量的默认绑定禁用为顶级MEL变量)。
在您的示例中,由于流变量名为orgpayload.CXM_ID,因此.使其与MVEL语法发生冲突。所以您不能使用flowVars.orgpayload.CXM_ID,而是必须使用flowVars['orgpayload.CXM_ID']。
PS。梅尔对大小写很敏感。当你想要flowvars时,你输入了flowVars
发布于 2015-06-03 03:38:13
在你的情况下,我会受到类似的打击
SELECT id FROM Account WHERE CX_ID__c = '#[flowVars['orgpayload.CXM_ID']]' LIMIT 1除了上述内容之外,您还应该考虑使用参数化查询而不是动态查询,因为动态查询容易出现SQL注入攻击,并且与参数化查询相比性能较差。
请参阅此文档
https://stackoverflow.com/questions/30607638
复制相似问题