function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Tommy WoodhouseTommy Woodhouse 

Salesforce Command line Dataloader - Passing Parameters to Process-conf.xml

Hi everyone, 

My currrent situation is I have process-conf.xml, with multiple environments and multiple orgs eg. dev and QA
Then an entry for each Object(Account, Opportunity) that I may be inserting for Automation.
 

<bean id="insert-account-dev3" class="com.salesforce.dataloader.process.ProcessRunner"	singleton="false">
		<description>Insert Account Records used by automated regression
			tests.</description>
		<property name="name" value="insert-account-dev3" />
		<property name="configOverrideMap">
			<map>
				<entry key="sfdc.endpoint" value="https://test.salesforce.com" />
				<entry key="sfdc.username" value="xxxxxxxxxxxxxx@xxx.dev" />
				<entry key="sfdc.password"
					value="XXXXXXXXXXXXXXXXXX" />
				<entry key="dataAccess.type" value="csvRead" />
			</map>
		</property>
	</bean>
	
	<bean id="delete-account-dev3" class="com.salesforce.dataloader.process.ProcessRunner"	singleton="false">
		<description>Delete Account records used by automated regression
			tests.</description>
		<property name="name" value="delete-account-dev3" />
		<property name="configOverrideMap">
			<map>
				<entry key="sfdc.endpoint" value="https://test.salesforce.com" />
				<entry key="sfdc.username" value="xxxxxxxxxxxxxx@xxx.dev" />
				<entry key="sfdc.password"
					value="XXXXXXXXXXXXXXXXXX" />
				<entry key="dataAccess.type" value="csvRead" />
			</map>
		</property>
	</bean>
	
		<bean id="insert-account-QA" class="com.salesforce.dataloader.process.ProcessRunner"	singleton="false">
		<description>Insert Account Records used by automated regression
			tests.</description>
		<property name="name" value="insert-account-QA" />
		<property name="configOverrideMap">
			<map>
				<entry key="sfdc.endpoint" value="https://test.salesforce.com" />
				<entry key="sfdc.username" value="xxxxxxxxxxxxxx@xxx.QA" />
				<entry key="sfdc.password"
					value="XXXXXXXXXXXXXXXXXXXXX" />
				<entry key="dataAccess.type" value="csvRead" />
			</map>
		</property>
	</bean>
	
	<bean id="delete-account-QA" class="com.salesforce.dataloader.process.ProcessRunner"	singleton="false">
		<description>Delete Account records used by automated regression
			tests.</description>
		<property name="name" value="delete-account-QA" />
		<property name="configOverrideMap">
			<map>
				<entry key="sfdc.endpoint" value="https://test.salesforce.com" />
				<entry key="sfdc.username" value="xxxxxxxxxxxxxx@xxx.QA" />
				<entry key="sfdc.password"
					value="XXXXXXXXXXXXXXXXX" />
				<entry key="dataAccess.type" value="csvRead" />
			</map>
		</property>
	</bean>
	
	
	etc....
currently what I find at the moment to be a problem is if passwords expire or change, I will then have to change my process-conf in multiple places.

Is there anyway to Parameterize, it perhaps 
having a seperate file like so
 
devUserName=xxxxxxxxxxx@xxxx.dev
devToken=xxxxxxxxxxxxxxxxxx
qaUserName=xxxxxxxxxxx@xxxx.QA
qaToken=xxxxxxxxxxxxxx
etc.(Other Orgs)
Then having beans 
<bean id="insert-account-dev" class="com.salesforce.dataloader.process.ProcessRunner"	singleton="false">
		<description>Insert Account Records used by automated regression
			tests.</description>
		<property name="name" value="insert-account-dev" />
		<property name="configOverrideMap">
			<map>
				<entry key="sfdc.endpoint" value="https://test.salesforce.com" />
				<entry key="sfdc.username" value="devUserName" />
				<entry key="sfdc.password"
					value="devToken" />
				<entry key="dataAccess.type" value="csvRead" />
			</map>
		</property>
	</bean>

I've search frantically but havent seemed to find a solution to my problem and hopefully anyone might be able to help, thanks very much in advance