mulesoft/salesforce-connector — Issue #19: upsert-bulk operation issue
Author: jonathansnd
Created: 2012-01-03 22:59:04+00:00
State: open

It looks like the bulk upsert operation is not specifying the external id for the job operation. I'm getting the following error:

Exception stack is:
1. InvalidJob : External ID was blank for My_External_Field__c. An External ID must be specified for upsert. (com.sforce.async.AsyncApiException)
com.sforce.async.RestConnection:116 (null)

Root Exception stack trace:
[AsyncApiException exceptionCode='InvalidJob'
exceptionMessage='External ID was blank for My_External_Field__c. An External ID must be specified for upsert.'
]

at com.sforce.async.RestConnection.parseAndThrowException(RestConnection.java:116)
at com.sforce.async.RestConnection.createOrUpdateJob(RestConnection.java:100)
at com.sforce.async.RestConnection.createJob(RestConnection.java:80)
at org.mule.modules.salesforce.SalesforceModule.createJobInfo(SalesforceModule.java:217)
at org.mule.modules.salesforce.SalesforceModule.upsertBulk(SalesforceModule.java:388)
at org.mule.modules.salesforce.config.UpsertBulkMessageProcessor.process(UpsertBulkMessageProcessor.java:467)
at org.mule.processor.AsyncInterceptingMessageProcessor.process(AsyncInterceptingMessageProcessor.java:90)
at org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:55)
at org.mule.processor.AbstractFilteringMessageProcessor.process(AbstractFilteringMessageProcessor.java:41)
at org.mule.construct.AbstractPipeline$1.process(AbstractPipeline.java:138)
at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:190)
at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:163)
at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:150)
at org.mule.transport.http.HttpMessageReceiver$HttpWorker.doRequest(HttpMessageReceiver.java:270)
at org.mule.transport.http.HttpMessageReceiver$HttpWorker.processRequest(HttpMessageReceiver.java:229)
at org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:161)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)

Here's the relevant portion of my mule-config file: