Wednesday 29 February 2012

Spring bean variables with data loader command line

If you use Apex Data Loader from the command line, you will know that changing usernames, passwords, and environments is a bit painful if you have more than one bean in your process-conf.xml file. Adding variables should be easy but getting the syntax right without an IDE is not. I couldn't find much help on the web so a Java guru colleague came through with the following fix.

In the head of the process-conf.xml file, below the <beans> tag and above the first <bean>, add the following code to declare a "user" variable with a specified Salesforce username:

<bean id="user" class="java.lang.String">
<constructor-arg value="yourusername"/>
</bean>

Then in the map entries replace

<entry key="sfdc.username" value="yourusername"/>

with the following code:

<entry>
<key> <value>sfdc.username</value></key>
<ref bean="user" />
</entry>


Do the same in each of the process beans, and use the same technique to declare variables for your environment, encrypted password, and output folders.

To share a properties file external to your process-conf.xml file, use the Spring PropertyPlaceholderConfigurer as detailed in this techno.blog.

Thanks to Jeremy for the tips and syntax.

No comments:

Post a Comment