我有一个表达式组件,它创建一个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>
请告知是否有其他方法可以采取此措施。
答案 0 :(得分:1)
根据the connector's JavaDoc,delete
方法具有此签名:
public List<DeleteResult> delete (List<String> ids)
因此,请更改表达式组件以输出List<String>
而不是String[]
。