You need to sign in to do that
Don't have an account?

Issue with Configuring Appexchange data loader CLI
I am a newbie, This is the command I m executing
c:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\bin>process.bat "C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\conf" csvAccountExtractProcess
Not sure how to resolve this error and the error I m getting is
2011-06-28 00:47:41,686 INFO [main] controller.Controller initLog (Controller.java:367) - The log has been initialized2011-06-28 00:47:41,691 INFO [main] process.ProcessConfig getBeanFactory (ProcessConfig.java:78) - Loading process configuration from config file: C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\conf\process-conf.xml2011-06-28 00:47:41,735 INFO [main] xml.XmlBeanDefinitionReader loadBeanDefinitions (XmlBeanDefinitionReader.java:163) - Loading XML bean definitions from file [C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\conf\process-conf.xml]2011-06-28 00:47:41,761 INFO [main] core.CollectionFactory <clinit> (CollectionFactory.java:66) - JDK 1.4+ collections available2011-06-28 00:47:41,770 INFO [main] core.CollectionFactory <clinit> (CollectionFactory.java:71) - Commons Collections 3.x available2011-06-28 00:47:41,825 INFO [csvAccountExtract] controller.Controller initConfig (Controller.java:328) - The controller config has been initialized2011-06-28 00:47:41,829 INFO [csvAccountExtract] process.ProcessRunner run (ProcessRunner.java:90) - Initializing process engine2011-06-28 00:47:41,830 INFO [csvAccountExtract] process.ProcessRunner run (ProcessRunner.java:93) - Loading parameters2011-06-28 00:47:42,762 INFO [csvAccountExtract] config.LastRun load (LastRun.java:101) - Last run info will be saved in file: C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\conf\csvAccountExtract_lastRun.properties2011-06-28 00:47:42,774 INFO [csvAccountExtract] process.ProcessRunner run (ProcessRunner.java:101) - Logging in to: https://login.salesforce.com2011-06-28 00:47:42,783 INFO [csvAccountExtract] client.PartnerClient login (PartnerClient.java:448) - Beginning Partner Salesforce login ....2011-06-28 00:47:42,803 INFO [csvAccountExtract] client.PartnerClient loginInternal (PartnerClient.java:488) - Salesforce login to https://login.salesforce.com/services/Soap/u/22.0 as user xxx@hotmail.com2011-06-28 00:47:43,530 INFO [csvAccountExtract] dao.DataAccessObjectFactory getDaoInstance (DataAccessObjectFactory.java:51) - Instantiating data access object: C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\OutputFiles\extract.csv of type: csvWrite2011-06-28 00:47:43,564 INFO [csvAccountExtract] process.ProcessRunner run (ProcessRunner.java:106) - Checking the data access object connection2011-06-28 00:47:43,569 INFO [csvAccountExtract] process.ProcessRunner run (ProcessRunner.java:111) - Setting field types2011-06-28 00:47:44,464 INFO [csvAccountExtract] process.ProcessRunner run (ProcessRunner.java:115) - Setting object reference types2011-06-28 00:47:45,310 INFO [csvAccountExtract] process.ProcessRunner run (ProcessRunner.java:119) - Creating Map2011-06-28 00:47:45,350 FATAL [main] process.ProcessRunner topLevelError (ProcessRunner.java:211) - Unable to run process csvAccountExtractjava.lang.RuntimeException: java.lang.IllegalArgumentException: Cannot parse empty string at com.salesforce.dataloader.process.ProcessRunner.run(ProcessRunner.java:136) at com.salesforce.dataloader.process.ProcessRunner.run(ProcessRunner.java:74) at com.salesforce.dataloader.process.ProcessRunner.main(ProcessRunner.java:226)Caused by: java.lang.IllegalArgumentException: Cannot parse empty string at com.salesforce.dataloader.mapping.SOQLInfo.getTrimmed(SOQLInfo.java:162) at com.salesforce.dataloader.mapping.SOQLInfo.access$000(SOQLInfo.java:38) at com.salesforce.dataloader.mapping.SOQLInfo$SOQLFieldInfo.<init>(SOQLInfo.java:52) at com.salesforce.dataloader.mapping.SOQLInfo$SOQLFieldInfo.<init>(SOQLInfo.java:72) at com.salesforce.dataloader.mapping.SOQLMapper.putPropertyEntry(SOQLMapper.java:98) at com.salesforce.dataloader.mapping.Mapper.putPropertyFileMappings(Mapper.java:129) at com.salesforce.dataloader.mapping.Mapper.putPropertyFileMappings(Mapper.java:124) at com.salesforce.dataloader.mapping.Mapper.<init>(Mapper.java:76) at com.salesforce.dataloader.mapping.SOQLMapper.<init>(SOQLMapper.java:57) at com.salesforce.dataloader.controller.Controller.createMapper(Controller.java:179) at com.salesforce.dataloader.process.ProcessRunner.run(ProcessRunner.java:120) ... 2 more
Process-conf.xml is
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <bean id="csvAccountExtractProcess" class="com.salesforce.dataloader.process.ProcessRunner" singleton="false"> <description>csvAccountExtract job gets account info from salesforce and saves info into a CSV file."</description> <property name="name" value="csvAccountExtract"/> <property name="configOverrideMap"> <map> <entry key="sfdc.debugMessages" value="false"/> <entry key="sfdc.debugMessagesFile" value="c:\dataloader\samples\status\sfdcSoapTrace.log"/> <entry key="sfdc.endpoint" value="https://login.salesforce.com"/> <entry key="sfdc.username" value="xxx@abc.com"/> <!-- password below has been encrypted using key file, therefore it will not work without the key setting: process.encryptionKeyFile the password is not a valid encrypted value, please generate the real value using encrypt.bat utility --> <entry key="sfdc.password" value="f9ffa659b6f79c1993e42d748778"/><entry key="process.encryptionKeyFile" value="C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\conf\sforcekey.key"/> <entry key="sfdc.timeoutSecs" value="600"/> <entry key="sfdc.loadBatchSize" value="200"/> <entry key="sfdc.entity" value="Account"/> <entry key="sfdc.extractionRequestSize" value="500"/> <entry key="sfdc.extractionSOQL" value="Select Id, Name, Type, ParentId, Phone, AccountNumber, Website, Sic, AnnualRevenue, NumberOfEmployees, TickerSymbol, Oracle_Id__c FROM Account"/> <entry key="process.operation" value="extract"/> <entry key="process.mappingFile" value="C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\samples\conf\accountExtractMap.sdl"/> <entry key="dataAccess.type" value="csvWrite"/> <entry key="dataAccess.name" value="C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\OutputFiles\extract.csv"/> </map> </property> </bean></beans>
Any help will be greatly appreciated.
Can you post your process.bat?
Thanks Ray, I was trying different options and was able to solve the issue I had. The reason it was erroring out was because of the columns being mapped in .sdl file. I tried with couple of columns in process-conf.xml file and mapped the same columns only in .sdl file and it worked. Thanks again. I was able to successfully extract the data to a .csv file.
Is there any blog or an article which lists down step-by-step process for configuring the CLI dataloader to load data into SQL Server 2005/2008?
I tried to extract the data to a SQL Server Database the command fails with the following error and I did move the sqljdbc.jar file to the same location as the dataloader.jar file. Not sure how the process-conf.xml works with database-conf.xml. I can post the database-conf.xml if needed
Command I m executing is
c:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\bin>process.bat "C:\
Program Files (x86)\salesforce.com\Apex Data Loader 22.0\conf" databaseAccountEx
tractProcess
2011-06-30 20:50:11,642 INFO [databaseAccountExtract] process.ProcessRunner run
(ProcessRunner.java:106) - Checking the data access object connection
2011-06-30 20:50:11,644 ERROR [databaseAccountExtract] database.DatabaseContext
initConnection (DatabaseContext.java:87) - Database error encountered during con
necting for database configuration: updateAccount. Sql error: Cannot load JDBC
driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'.
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.m
icrosoft.jdbc.sqlserver.SQLServerDriver'
Process.bat
@echo off
if not [%1]==[] goto run
echo.
echo Usage: process ^<configuration directory^> ^[process name^]
echo.
echo configuration directory -- directory that contains configuration files,
echo i.e. config.properties, process-conf.xml, database-conf.xml
echo.
echo process name -- optional name of a batch process bean in process-conf.xml,
echo for example:
echo.
echo process ../myconfigdir AccountInsert
echo.
echo If process name is not specified, the parameter values from config.properties
echo will be used to run the process instead of process-conf.xml,
echo for example:
echo.
echo process ../myconfigdir
echo.
goto end
:run
set PROCESS_OPTION=
if not [%2]==[] set PROCESS_OPTION=process.name=%2
..\_jvm\bin\java.exe -cp ..\sqljdbc.jar;..\DataLoader.jar -Dsalesforce.config.dir=%1 com.salesforce.dataloader.process.ProcessRunner %PROCESS_OPTION%
:end
Here is the process-conf.xml file
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="databaseAccountExtractProcess"
class="com.salesforce.dataloader.process.ProcessRunner"
singleton="false">
<description>DatabaseAccountExtract job gets account info from salesforce and updates or inserts info into database."</description>
<property name="name" value="databaseAccountExtract"/>
<property name="configOverrideMap">
<map>
<entry key="sfdc.debugMessages" value="false"/>
<entry key="sfdc.debugMessagesFile" value="c:\dataloader\samples\status\sfdcSoapTrace.log"/>
<entry key="sfdc.endpoint" value="https://login.salesforce.com"/>
<entry key="sfdc.username" value="xxx@abc.com"/>
<!-- password below has been encrypted using key file, therefore it will not work without the key setting: process.encryptionKeyFile
the password is not a valid encrypted value, please generate the real value using encrypt.bat utility -->
<entry key="sfdc.password" value="f9ffa659b6f79c1993e42d74877899"/>
<entry key="process.encryptionKeyFile" value="C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\conf\sforcekey.key"/>
<entry key="sfdc.timeoutSecs" value="600"/>
<entry key="sfdc.loadBatchSize" value="200"/>
<entry key="sfdc.entity" value="Account"/>
<entry key="sfdc.extractionRequestSize" value="500"/>
<entry key="sfdc.extractionSOQL" value="Select Id, Name, Phone FROM Account"/>
<entry key="process.operation" value="extract"/>
<entry key="process.mappingFile" value="C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\samples\conf\accountExtractToDbMap.sdl"/>
<entry key="dataAccess.type" value="databaseWrite"/>
<entry key="dataAccess.name" value="updateAccount"/>
</map>
</property>
</bean>
</beans>
Any help will be appreciated. Thanks.