2

Using dataloader from the command line, I'm trying to override the property-value pair I've specified in the process-conf.xml with that specified on the command line.

I'm hoping to get this to work as described in the section Property value interactions in this dataloader documentation https://developer.salesforce.com/page/Using_Data_Loader_from_the_command_line - which states

Any property-value pairs included as part of the command line are used in place of any other specifications in the other files.

The details:

In the process-conf.xml I have the following property-value pair specified:

entry key="dataAccess.name" value="D:\Batch\Salesforce\Data\DataToSF\Store__c.csv"

When I run dataloader from the command line as follows this works as expected and loads data from the Store__c.csv:

cmd> process.bat D:\Batch\Salesforce\DataLoaderConfig Upsert_Store__c

However if I then rename the csv to be Store__c_20160702.csv and try to load the file using the following command (i.e. including the additional parameter which I expect to override the dataAccess.name property-value pair specified in the process-conf.xml):

cmd> process.bat D:\Batch\Salesforce\DataLoaderConfig Upsert_Store__c dataAccess.name=D:\Batch\Salesforce\Data\DataToSF\Store__c_20160702.csv

It still looks for Store__c.csv (apparently still wanting to use the value in the process-conf.xml) and not the Store__c_20160702.csv which I've specified on the command line.

Can someone tell me what I'm doing wrong - is the syntax on the command line incorrect or is something else wrong with what I'm trying to do?

For those interested the requirement here is essentially to process files with a datetime suffix from a powershell script calling dataloader - and hence want to be able to parse the filename as an argument to the dataloader command (rather than using the filename hard-coded in process-conf.xml)

Many thanks in advance to anyone who can help with this. I've had a good search on google, but to no avail as yet.

0

If you look at process.bat file (for me its C:\Program Files (x86)\salesforce.com\Data Loader\bin), you'll see that only two parameters are supported.

Add right after if not [%2]==[] set PROCESS_OPTION=process.name=%2 (line 25)

if not [%3]==[] copy "%~f3" "D:\Batch\Salesforce\Data\DataToSF\Store__c.csv"

Now if you specify third parameter as file name, process.bat will overwrite your source

cmd> process.bat D:\Batch\Salesforce\DataLoaderConfig Upsert_Store__c D:\Batch\Salesforce\Data\DataToSF\Store__c_20160702.csv
1
  • Many thanks Ilya for showing me what the issue was. Jul 4 '16 at 8:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.