I am currently using a powershell script to run a data loader command line insert job. The process appears to run correctly, and shows all records successfully inserted. However, when referenced in salesforce, the created record has all blank fields, except for the name, which is set to its salesforce ID. Moreover, when I try to insert records with invalid fields, they are still reported as successfully inserted, with the same result.
If I do the same operation in the data loader UI, using the same input CSV and mapping file, the records are successfully inserted and records with invalid fields are rejected.
Here is my process-conf.xml
file (with some fields redacted):
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="orgPreferenceInsert"
class="com.salesforce.dataloader.process.ProcessRunner"
singleton="false">
<description>{description} </description>
<property name="name" value="orgPreferenceInsert"/>
<property name="configOverrideMap">
<map>
<entry key="process.operation" value="insert"/>
<entry key="sfdc.username" value="{username}" />
<entry key="sfdc.password" value="{password}" />
<entry key="process.encryptionKeyFile" value="{key file}" />
<entry key="sfdc.entity" value="{field name}"/>
<entry key="sfdc.externalIdField" value="Id" />
<entry key="process.mappingFile" value="{mapping file}"/>
<entry key="process.outputError" value="{output error file}" />
<entry key="process.outputSuccess" value="{output success file}" />
<entry key="dataAccess.name" value="{input csv file}"/>
<entry key="dataAccess.type" value="csvRead"/>
</map>
</property>
</bean>
</beans>
Here is the config.properties
file:
#Loader Config
#Thu Sep 10 09:37:47 PDT 2009
sfdc.endpoint=https://test.salesforce.com
sfdc.loadBatchSize=200
sfdc.timeoutSecs=540
sfdc.timezone=PDT
sfdc.debugMessages=false
sfdc.debugMessagesFile={debug file path}