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="<b>xxxxxxxxxxxxxx@xxx.dev</b>" />
<entry key="sfdc.password"
value="<b>XXXXXXXXXXXXXXXXXX</b>" />
<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="<b>xxxxxxxxxxxxxx@xxx.dev</b>" />
<entry key="sfdc.password"
value="<b>XXXXXXXXXXXXXXXXXX</b>" />
<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="<b>xxxxxxxxxxxxxx@xxx.QA</b>" />
<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="<b>xxxxxxxxxxxxxx@xxx.QA</b>" />
<entry key="sfdc.password"
value="<b>XXXXXXXXXXXXXXXXX</b>" />
<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>