java - 在Mule中使用Arraylist查询Salesforce

标签 java salesforce mule esb

我们正在尝试使用 where 语句中的 ArrayList 来查询 Salesforce。

下面是我们在 where 子句中尝试使用 ArrayList 时遇到的错误。

我们针对 Salesforce 使用的查询:

Select Id,Billing_Number__c from Call_Log__c where Id in #[flowVars.successlist] 

successlist 包含值 ['a1o90000001msXwAAI', 'a1o90000001msXxAAI']

错误消息:

Message: Failed to invoke query. Message payload is of type: ArrayList

如何解决此错误?

最佳答案

遗憾的是,您无法使用 ArrayList 作为 Salesforce(或数据库)查询中的参数。您必须使用脚本组件动态创建查询。

试试这个:

        <scripting:script engine="Groovy">
<![CDATA[def sb = new StringBuilder()
sb.append('Select Id,Billing_Number__c from Call_Log__c')
if (flowVars.successlist != null && !flowVars.successlist.empty) {
    sb.append(' where Id in (\'')
    for (i in 0 .. flowVars.size()) {
        if (i > 0) sb.append('\',\'')
        sb.append(flowVars.successlist[i])
    }
    sb.append('\')')
}
flowVars.query = sb.toString()]]>
        </scripting:script>  
        <sfdc:query query="#[flowVars.query]" doc:name="Salesforce - Query"/>

如果您使用数据库,则必须将查询类型设置为动态:

        <db:select doc:name="Database">
            <db:dynamic-query><![CDATA[#[flowVars.query]]]></db:dynamic-query>
        </db:select>

关于java - 在Mule中使用Arraylist查询Salesforce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29930058/

相关文章:

java - 使用 Mule 发送格式化邮件

java - 如何使用 JAXB 将 XML 转换为对象

java - Spring 响应实体 : use constructor or static builder?

java - 将 .war 文件部署到 linux 上的 tomcat 服务器

java - 使用 GSON 从包含 JSON 映射的 JSON 对象创建 Java 对象

azure - Azure ACS 是否像 Salesforce 一样支持 saml 2.0 IdP?

Visual Studio 代码中的 Git 表示即使没有更改文件也会被修改

c# - 硬删除 Salesforce 中的自定义字段

java - 在 Mule 表达式语言中使用导入 Java 类

xml - 有没有办法将 xml 转换为 json 而不使用 mule esb 中的 java 代码?