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.

1 Answer 1

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. Commented Jul 4, 2016 at 8:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .