Salesforce mule db2 sfdc帐户数据加载

Salesforce mule db2 sfdc帐户数据加载,salesforce,mule,Salesforce,Mule,我的Java代码是: public class Db2sfdc { public Map<String, Object> getPayloadData(@Payload String src){ HashMap<String, Object> sfdcFields = new HashMap<String, Object>(); Map<String, Object> payloadMa

我的Java代码是:

public class Db2sfdc {      
    public Map<String, Object> getPayloadData(@Payload String src){     
        HashMap<String, Object> sfdcFields = new HashMap<String, Object>();
        Map<String, Object> payloadMap = new HashMap<String, Object>();
        List<Map<String, Object>> objects = new ArrayList<Map<String,Object>>();
        sfdcFields.put("Client_Alert_Description__c", "Mule interation");
        sfdcFields.put("Client_Status_Reason__c","POC update");
        sfdcFields.put("Credit_Terms__c", "POC Terms");
        objects.add(sfdcFields);
        payloadMap.put("type", "Account");
        payloadMap.put("objects", objects);
        return payloadMap ;
    }
控制台错误:

ERROR 2015-05-11 18:58:38,090 [[sfdc].connector.http.mule.default.receiver.04] org.mule.retry.notifiers.ConnectNotifier: Failed to connect/reconnect: Work Descriptor. Root Exception was: null. Type: class com.sforce.soap.partner.fault.InvalidFieldFault
ERROR 2015-05-11 18:58:38,094 [[sfdc].connector.http.mule.default.receiver.04] org.mule.exception.DefaultMessagingExceptionStrategy: 
********************************************************************************
Message               : Failed to invoke upsert. Message payload is of type: HashMap
Code                  : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
1. null (com.sforce.soap.partner.fault.InvalidFieldFault)
  sun.reflect.NativeConstructorAccessorImpl:-2 (null)
2. [InvalidFieldFault [ApiQueryFault [ApiFault  exceptionCode='INVALID_FIELD'
 exceptionMessage='No such column 'Client_Alert_Description__c' on entity 'Account'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.'
]
 row='-1'
 column='-1'
]
]
 (java.lang.RuntimeException)
  org.mule.modules.salesforce.api.SalesforceExceptionHandlerAdapter:69 (null)
3. Failed to invoke upsert. Message payload is of type: HashMap (org.mule.api.MessagingException)
  org.mule.devkit.processor.DevkitBasedMessageProcessor:128 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
[InvalidFieldFault [ApiQueryFault [ApiFault  exceptionCode='INVALID_FIELD'
 exceptionMessage='No such column 'Client_Alert_Description__c' on entity 'Account'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.'
]
 row='-1'
 column='-1'
]
]

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************

正如错误消息中给出的,我没有在列表中包含完整的字段,这些字段是在sfdc中创建/更新帐户所必需的。 我的最终代码是:

public List<Map<String, Object>> getPayloadData(@Payload String src){
        Map<String, Object> sfdcFields = new HashMap<String, Object>();
        List<Map<String, Object>> accountList = new ArrayList<Map<String,Object>>();    
        sfdcFields.put("ID", "001m000000In0p5AAB");
        sfdcFields.put("Current_WSE_Count__c", "20");
        accountList.add(sfdcFields);
        return accountList ;
}
public List getPayloadData(@Payload String src){
Map sfdcFields=new HashMap();
List accountList=new ArrayList();
sfdcFields.put(“ID”,“001m000000In0p5AAB”);
sfdcFields.put(“当前计数”、“20”);
accountList.add(sfdcFields);
返回帐户列表;
}
用于更新的Mule流:

 <sfdc:update config-ref="Salesforce__Basic_authentication"  type="Account" doc:name="Salesforce">
            <sfdc:objects ref="#[payload]"/>
 </sfdc:update>

public List<Map<String, Object>> getPayloadData(@Payload String src){
        Map<String, Object> sfdcFields = new HashMap<String, Object>();
        List<Map<String, Object>> accountList = new ArrayList<Map<String,Object>>();    
        sfdcFields.put("ID", "001m000000In0p5AAB");
        sfdcFields.put("Current_WSE_Count__c", "20");
        accountList.add(sfdcFields);
        return accountList ;
}
 <sfdc:update config-ref="Salesforce__Basic_authentication"  type="Account" doc:name="Salesforce">
            <sfdc:objects ref="#[payload]"/>
 </sfdc:update>