• paulcrawford
  • NEWBIE
  • 0 Points
  • Member since 2007

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 2
    Replies
Hi,

I am having problems with the CLI on Apex Data Loader 14.0. In general, I can get it to work but there are certain issues. I have no problem with Insert and Update but I cannot get Upsert to work properly when it has to do an Insert nor can I get Extract to work properly. The Upsert problem is not so critical as I can always do Insert and Update separately but Extract is critical.

The following is the CLI output from running this batch file:

Batch file:

@echo off
c:
cd C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin
process ..\conf accountExtract


Output file (login info deleted):

2009-01-16 12:47:23,912 INFO [main] controller.Controller initLog (Controller.java:388) - The log has been initialized
2009-01-16 12:47:23,922 INFO [main] process.ProcessConfig getBeanFactory (ProcessConfig.java:78) - Loading process configuration from config file: C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\process-conf.xml
2009-01-16 12:47:23,972 INFO [main] xml.XmlBeanDefinitionReader loadBeanDefinitions (XmlBeanDefinitionReader.java:163) - Loading XML bean definitions from file [C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\process-conf.xml]
2009-01-16 12:47:24,022 INFO [main] core.CollectionFactory (CollectionFactory.java:66) - JDK 1.4+ collections available
2009-01-16 12:47:24,032 INFO [main] core.CollectionFactory (CollectionFactory.java:71) - Commons Collections 3.x available
2009-01-16 12:47:24,965 INFO [analysisExtract] controller.Controller initConfig (Controller.java:343) - The controller config has been initialized
2009-01-16 12:47:24,975 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:102) - Initializing process engine
2009-01-16 12:47:24,975 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:105) - Loading parameters
2009-01-16 12:47:24,975 INFO [analysisExtract] config.LastRun load (LastRun.java:101) - Last run info will be saved in file: C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\analysisExtract_lastRun.properties
2009-01-16 12:47:24,975 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:114) - Logging in to: https://www.salesforce.com
2009-01-16 12:47:24,985 INFO [analysisExtract] client.PartnerClient connectImpl (PartnerClient.java:156) - Beginning Partner Salesforce login ....
2009-01-16 12:47:25,006 INFO [analysisExtract] client.PartnerClient connectImpl (PartnerClient.java:165) - Salesforce login to https://www.salesforce.com/services/Soap/u/14.0 as user xxxxxxxxxxxx
2009-01-16 12:47:26,009 INFO [analysisExtract] dao.DataAccessObjectFactory getDaoInstance (DataAccessObjectFactory.java:51) - Instantiating data access object: C:\Program Files\salesforce.com\Apex Data Loader 14.0\conf\analysisExtract.csv of type: csvWrite
2009-01-16 12:47:26,009 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:119) - Checking the data access object connection
2009-01-16 12:47:26,009 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:124) - Setting field types
2009-01-16 12:47:26,822 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:128) - Setting object reference types
2009-01-16 12:47:30,715 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:132) - Creating Map
2009-01-16 12:47:30,715 INFO [analysisExtract] action.ActionFactory getActionInstance (ActionFactory.java:64) - Instantiating operation: extract
2009-01-16 12:47:30,715 INFO [analysisExtract] controller.Controller executeAction (Controller.java:125) - executing operation: extract
2009-01-16 12:47:31,136 INFO [analysisExtract] progress.NihilistProgressAdapter setSubTask (NihilistProgressAdapter.java:68) - Processed 500 of 621 total records. Rate: 0 records per hour. Estimated time to complete: 0 minutes and 0 seconds. There are 500 successes and 0 errors.
2009-01-16 12:47:31,337 INFO [analysisExtract] progress.NihilistProgressAdapter setSubTask (NihilistProgressAdapter.java:68) - Processed 621 of 621 total records. Rate: 11122000 records per hour. Estimated time to complete: 0 minutes and 0 seconds. There are 621 successes and 0 errors.
2009-01-16 12:47:31,337 INFO [analysisExtract] progress.NihilistProgressAdapter doneSuccess (NihilistProgressAdapter.java:55) - The extract has fully completed. There were 621 successful extracts and 0 errors.


Although it says it was successful, when you open the file analysisExtract.csv you get:

"ID"
""
""
""
""
""

with 621 empty strings (not just 5 as shown above).

Here is the bean that runs from process-conf.xml (login info deleted):



class="com.salesforce.lexiloader.process.ProcessRunner"
singleton="false">
analysisExtract downloads Analysis data from salesforce using 'extract' and puts them into a csv file.


























So apparently the code ran correctly (no errors) and did generate a csv file with 621 entries as expected but there was no data in any of them. Also what happened to the other fields requested in the SOQL call i.e. Account__c, Name, and Sampling_Date__c?

If I remove the "Id" field from the SOQL call then I get an error as in the following output file:

2009-01-16 13:00:58,796 INFO [main] controller.Controller initLog (Controller.java:388) - The log has been initialized
2009-01-16 13:00:58,806 INFO [main] process.ProcessConfig getBeanFactory (ProcessConfig.java:78) - Loading process configuration from config file: C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\process-conf.xml
2009-01-16 13:00:58,846 INFO [main] xml.XmlBeanDefinitionReader loadBeanDefinitions (XmlBeanDefinitionReader.java:163) - Loading XML bean definitions from file [C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\process-conf.xml]
2009-01-16 13:00:58,906 INFO [main] core.CollectionFactory (CollectionFactory.java:66) - JDK 1.4+ collections available
2009-01-16 13:00:58,906 INFO [main] core.CollectionFactory (CollectionFactory.java:71) - Commons Collections 3.x available
2009-01-16 13:00:59,829 INFO [analysisExtract] controller.Controller initConfig (Controller.java:343) - The controller config has been initialized
2009-01-16 13:00:59,839 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:102) - Initializing process engine
2009-01-16 13:00:59,839 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:105) - Loading parameters
2009-01-16 13:00:59,839 INFO [analysisExtract] config.LastRun load (LastRun.java:101) - Last run info will be saved in file: C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\analysisExtract_lastRun.properties
2009-01-16 13:00:59,839 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:114) - Logging in to: https://www.salesforce.com
2009-01-16 13:00:59,849 INFO [analysisExtract] client.PartnerClient connectImpl (PartnerClient.java:156) - Beginning Partner Salesforce login ....
2009-01-16 13:00:59,869 INFO [analysisExtract] client.PartnerClient connectImpl (PartnerClient.java:165) - Salesforce login to https://www.salesforce.com/services/Soap/u/14.0 as user xxxxxxxxxxx
2009-01-16 13:01:01,093 INFO [analysisExtract] dao.DataAccessObjectFactory getDaoInstance (DataAccessObjectFactory.java:51) - Instantiating data access object: C:\Program Files\salesforce.com\Apex Data Loader 14.0\conf\analysisExtract.csv of type: csvWrite
2009-01-16 13:01:01,093 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:119) - Checking the data access object connection
2009-01-16 13:01:01,093 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:124) - Setting field types
2009-01-16 13:01:01,996 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:128) - Setting object reference types
2009-01-16 13:01:05,909 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:132) - Creating Map
2009-01-16 13:01:05,909 INFO [analysisExtract] action.ActionFactory getActionInstance (ActionFactory.java:64) - Instantiating operation: extract
2009-01-16 13:01:05,909 INFO [analysisExtract] controller.Controller executeAction (Controller.java:125) - executing operation: extract
2009-01-16 13:01:05,909 ERROR [analysisExtract] csv.CSVFileWriter setColumnNames (CSVFileWriter.java:239) - Error opening CSV file for writing: header row (with column names) has to be provided
2009-01-16 13:01:05,919 ERROR [analysisExtract] progress.NihilistProgressAdapter doneError (NihilistProgressAdapter.java:51) - Error opening CSV file for writing: header row (with column names) has to be provided

See http://forums.sforce.com/sforce/board/message?board.id=scontrols&message.id=1930&query.id=22853#M1930
for a similar but different problem with Data Loader 12.0.

Can anyone shed some light on this?

If we can solve this one I would like to attack the problem with the Upsert failing on Insert as well.

Thanks for your help.

Paul Crawford
Hi,

I am having problems with the CLI on Apex Data Loader 14.0. In general, I can get it to work but there are certain issues. I have no problem with Insert and Update but I cannot get Upsert to work properly when it has to do an Insert nor can I get Extract to work properly. The Upsert problem is not so critical as I can always do Insert and Update separately but Extract is critical.

The following is the CLI output from running this batch file:

Batch file:

@echo off
c:
cd C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin
process ..\conf accountExtract


Output file (login info deleted):

2009-01-16 12:47:23,912 INFO [main] controller.Controller initLog (Controller.java:388) - The log has been initialized
2009-01-16 12:47:23,922 INFO [main] process.ProcessConfig getBeanFactory (ProcessConfig.java:78) - Loading process configuration from config file: C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\process-conf.xml
2009-01-16 12:47:23,972 INFO [main] xml.XmlBeanDefinitionReader loadBeanDefinitions (XmlBeanDefinitionReader.java:163) - Loading XML bean definitions from file [C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\process-conf.xml]
2009-01-16 12:47:24,022 INFO [main] core.CollectionFactory (CollectionFactory.java:66) - JDK 1.4+ collections available
2009-01-16 12:47:24,032 INFO [main] core.CollectionFactory (CollectionFactory.java:71) - Commons Collections 3.x available
2009-01-16 12:47:24,965 INFO [analysisExtract] controller.Controller initConfig (Controller.java:343) - The controller config has been initialized
2009-01-16 12:47:24,975 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:102) - Initializing process engine
2009-01-16 12:47:24,975 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:105) - Loading parameters
2009-01-16 12:47:24,975 INFO [analysisExtract] config.LastRun load (LastRun.java:101) - Last run info will be saved in file: C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\analysisExtract_lastRun.properties
2009-01-16 12:47:24,975 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:114) - Logging in to: https://www.salesforce.com
2009-01-16 12:47:24,985 INFO [analysisExtract] client.PartnerClient connectImpl (PartnerClient.java:156) - Beginning Partner Salesforce login ....
2009-01-16 12:47:25,006 INFO [analysisExtract] client.PartnerClient connectImpl (PartnerClient.java:165) - Salesforce login to https://www.salesforce.com/services/Soap/u/14.0 as user xxxxxxxxxxxx
2009-01-16 12:47:26,009 INFO [analysisExtract] dao.DataAccessObjectFactory getDaoInstance (DataAccessObjectFactory.java:51) - Instantiating data access object: C:\Program Files\salesforce.com\Apex Data Loader 14.0\conf\analysisExtract.csv of type: csvWrite
2009-01-16 12:47:26,009 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:119) - Checking the data access object connection
2009-01-16 12:47:26,009 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:124) - Setting field types
2009-01-16 12:47:26,822 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:128) - Setting object reference types
2009-01-16 12:47:30,715 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:132) - Creating Map
2009-01-16 12:47:30,715 INFO [analysisExtract] action.ActionFactory getActionInstance (ActionFactory.java:64) - Instantiating operation: extract
2009-01-16 12:47:30,715 INFO [analysisExtract] controller.Controller executeAction (Controller.java:125) - executing operation: extract
2009-01-16 12:47:31,136 INFO [analysisExtract] progress.NihilistProgressAdapter setSubTask (NihilistProgressAdapter.java:68) - Processed 500 of 621 total records. Rate: 0 records per hour. Estimated time to complete: 0 minutes and 0 seconds. There are 500 successes and 0 errors.
2009-01-16 12:47:31,337 INFO [analysisExtract] progress.NihilistProgressAdapter setSubTask (NihilistProgressAdapter.java:68) - Processed 621 of 621 total records. Rate: 11122000 records per hour. Estimated time to complete: 0 minutes and 0 seconds. There are 621 successes and 0 errors.
2009-01-16 12:47:31,337 INFO [analysisExtract] progress.NihilistProgressAdapter doneSuccess (NihilistProgressAdapter.java:55) - The extract has fully completed. There were 621 successful extracts and 0 errors.


Although it says it was successful, when you open the file analysisExtract.csv you get:

"ID"
""
""
""
""
""

with 621 empty strings (not just 5 as shown above).

Here is the bean that runs from process-conf.xml (login info deleted):



class="com.salesforce.lexiloader.process.ProcessRunner"
singleton="false">
analysisExtract downloads Analysis data from salesforce using 'extract' and puts them into a csv file.


























So apparently the code ran correctly (no errors) and did generate a csv file with 621 entries as expected but there was no data in any of them. Also what happened to the other fields requested in the SOQL call i.e. Account__c, Name, and Sampling_Date__c?

If I remove the "Id" field from the SOQL call then I get an error as in the following output file:

2009-01-16 13:00:58,796 INFO [main] controller.Controller initLog (Controller.java:388) - The log has been initialized
2009-01-16 13:00:58,806 INFO [main] process.ProcessConfig getBeanFactory (ProcessConfig.java:78) - Loading process configuration from config file: C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\process-conf.xml
2009-01-16 13:00:58,846 INFO [main] xml.XmlBeanDefinitionReader loadBeanDefinitions (XmlBeanDefinitionReader.java:163) - Loading XML bean definitions from file [C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\process-conf.xml]
2009-01-16 13:00:58,906 INFO [main] core.CollectionFactory (CollectionFactory.java:66) - JDK 1.4+ collections available
2009-01-16 13:00:58,906 INFO [main] core.CollectionFactory (CollectionFactory.java:71) - Commons Collections 3.x available
2009-01-16 13:00:59,829 INFO [analysisExtract] controller.Controller initConfig (Controller.java:343) - The controller config has been initialized
2009-01-16 13:00:59,839 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:102) - Initializing process engine
2009-01-16 13:00:59,839 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:105) - Loading parameters
2009-01-16 13:00:59,839 INFO [analysisExtract] config.LastRun load (LastRun.java:101) - Last run info will be saved in file: C:\Program Files\salesforce.com\Apex Data Loader 14.0\bin\..\conf\analysisExtract_lastRun.properties
2009-01-16 13:00:59,839 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:114) - Logging in to: https://www.salesforce.com
2009-01-16 13:00:59,849 INFO [analysisExtract] client.PartnerClient connectImpl (PartnerClient.java:156) - Beginning Partner Salesforce login ....
2009-01-16 13:00:59,869 INFO [analysisExtract] client.PartnerClient connectImpl (PartnerClient.java:165) - Salesforce login to https://www.salesforce.com/services/Soap/u/14.0 as user xxxxxxxxxxx
2009-01-16 13:01:01,093 INFO [analysisExtract] dao.DataAccessObjectFactory getDaoInstance (DataAccessObjectFactory.java:51) - Instantiating data access object: C:\Program Files\salesforce.com\Apex Data Loader 14.0\conf\analysisExtract.csv of type: csvWrite
2009-01-16 13:01:01,093 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:119) - Checking the data access object connection
2009-01-16 13:01:01,093 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:124) - Setting field types
2009-01-16 13:01:01,996 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:128) - Setting object reference types
2009-01-16 13:01:05,909 INFO [analysisExtract] process.ProcessRunner run (ProcessRunner.java:132) - Creating Map
2009-01-16 13:01:05,909 INFO [analysisExtract] action.ActionFactory getActionInstance (ActionFactory.java:64) - Instantiating operation: extract
2009-01-16 13:01:05,909 INFO [analysisExtract] controller.Controller executeAction (Controller.java:125) - executing operation: extract
2009-01-16 13:01:05,909 ERROR [analysisExtract] csv.CSVFileWriter setColumnNames (CSVFileWriter.java:239) - Error opening CSV file for writing: header row (with column names) has to be provided
2009-01-16 13:01:05,919 ERROR [analysisExtract] progress.NihilistProgressAdapter doneError (NihilistProgressAdapter.java:51) - Error opening CSV file for writing: header row (with column names) has to be provided

See http://forums.sforce.com/sforce/board/message?board.id=scontrols&message.id=1930&query.id=22853#M1930
for a similar but different problem with Data Loader 12.0.

Can anyone shed some light on this?

If we can solve this one I would like to attack the problem with the Upsert failing on Insert as well.

Thanks for your help.

Paul Crawford
We have the following situation
 
Opportunity - Custom Object (Service) - Custom Object (Billing Schedule).
 
I'm trying to PrintAnything to print information from 1 opportunity which may have many services, each of which may have many billing schedule records.
 
I've had not trouble getting the opportunity record information and the associated services (Service__c where Opportunity__c = '{Opportunity1.Id}'). The only way I have been able to retrieve the billing records is by individual queries for the services returned (Service_Billing_Information__c where Service__c = '{Service__c3.Id.0}' and Service_Billing_Information__c where Service__c = '{Service__c3.Id.1}').  Writing the query as Service_Billing_Information__c where Service__c = '{Service__c3.Id.n}' does not work.
 
 
  • February 20, 2007
  • Like
  • 0