将阵列有效负载传递给Mule Salesforce Connector会产生错误

时间:2013-12-02 14:47:01

标签: mule

我有一个表达式组件,它创建一个string数组类型的对象,用于处理对salesforce的删除请求。但是每当它超出表达时,流程就会失败。

我在控制台上看到的错误是:

  

找不到变换器将“SimpleDataType {type = [Ljava.lang.String;,mimeType =' / '}”转换为“CollectionDataType {type = java.util.List,itemType = java.lang.Object,mimeType =' / '}“。

 <sub-flow name="DeleteAspenOrderInfo" doc:name="DeleteAspenOrderInfo">
    <expression-component doc:name="Expression">    ArrayList queryresponse =flowVars['DeleteOidList'];
int size=queryresponse.size();
String[] idArray=new String[size];
int i=0;
for(HashMap map  : queryresponse) 
{
String aValue = map.get("Id");
idArray[i]=aValue;
i++;
}

payload= idArray;</expression-component>
    <sfdc:delete config-ref="SalesforceConnector" doc:name="Salesforce">
        <sfdc:ids ref="#[payload]"/>
    </sfdc:delete>
    <custom-transformer class="com.aspen.transformer.AOIDeleteTransformer" doc:name="Java"/>
</sub-flow>

请告知是否有其他方法可以采取此措施。

1 个答案:

答案 0 :(得分:1)

根据the connector's JavaDocdelete方法具有此签名:

public List<DeleteResult> delete (List<String> ids)

因此,请更改表达式组件以输出List<String>而不是String[]