Salesforce Dataloader Commandline in use: Familiar territory, shorter route

The Salesforce Dataloader: A brief refresher

Those of you accustomed to the traditional Salesforce data migration routine might be all too familiar with the DataLoader, a module for updating, fetching and handling Records in bulk. For an analogy, it’s the Salesforce-equivalent of an expedited data frame or CSV consolidation solution to remove redundancies and map Fields.

How’s DL-CL, any different?

It helps to think of the Dataloader Commandline as the Dataloader’s faster command-line cousin with reduced login authorizations, automated scheduling, and managed encryption keys to the advantage of Admins.

A demonstration

Here we’ve demonstrated the use of the module in two ways.

In one, we include CSV Records for intended export data to a folder path daily, where the path is referenced by a configuration file run by batch code that copies and saves into Salesforce.

Alternatively, we could run a .bat file with a path to the export-data location through Windows Task Scheduler to schedule the export.

Here’s the routine laid out for you in steps:

Step 1. Install Data loader:

Step 2. Setup path for "Zulu OpenJDK" in System variables:

Example:- C:\Program Files\Zulu\Zulu-<version>\bin

Path:- C:\Program Files\Zulu\zulu-11\bin

Step 3. Create the Encryption Key File:

  • Open up a command prompt window.
  • Navigate to the Data Loader \bin directory.

Example:- “C:\Users\{userName}\dataloader\version\bin.”

  • In my case the data loader bin folder path is

“C:\Users\vikas\dataloader\version\bin.”

  • Create an encryption key file by entering the following command given below

encrypt.bat —k [path to key file]

Salesforce data loader

The above example creates a key.txt file. Do note the key file path.

In this example where the key file is created the path is:

“C:\Users\vikas\dataloader\v48.0.0\bin\key.txt”

Salesforce data loader

Step 4. Create the Encrypted Password:

Set the encrypted password using the key file you generated in the previous step by entering the following command.

encrypt.bat –e <password> <key file path>

Next, replace <password> with the password you use to log in to Salesforce. Then, replace <key file path> with the file path you created in the previous step.

Generated Encrypted password:

“a10ad806afa37f1d07cbe09c9272bc8d1edb763ca8e1928a45f91ce5ae13609dabd2b2d3691132eae19218c834732e0e”

 

Now, copy the generated encrypted password.( You’ll use this value in a later on.)

Step 5. Create the Field Mapping File:

In this step, you create a mapping file with an .sdl file extension. On each line of the mapping file, pair a data source with its destination.

Example:

We’re inserting accounts so we created a file named “accountInsertMap.sdl”

Code:

Note: This is a data insert, so the data source is to the left of the ‘equals’ operator, while the destination field is to the right.

Step 6. Create the Configuration File:

The process-conf.xml file contains information the Data Loader needs to process the data.

Each <bean> within the process-conf.xml file refers to a single process such as an insert, upsert, or export. For that reason, the file can contain multiple processes. In this step, you’ll edit the file to insert accounts into Salesforce.

First, make a copy of the process-conf.xml file from the \samples\conf directory. Be sure to maintain a copy of the original. It has examples of other types of Data Loader processing, like upserts and exports. Subsequently, open the file in a text editor, and replace the contents with the following XML:

XML Source Code:

Step 7. Import the Data:

Now that setup’s come together, hop over to run Data Loader from the command line and insert some new accounts.

To do this, create a CSV file for inserted accounts. In our case, the filename is ‘insertAccounts’.

Now, within a command prompt, pass the following command:

process.bat “<file path to process-conf.xml>” <process name>

Replace <file path to process-conf.xml> with the path to the directory that holds process-conf.xml. Here, the process-conf.xml file path is:

‘C:\Users\vikas\dataloader\v48.0.0\bin\

Replace <process name> with the process specified in process-conf.xml.

For us, that’s ‘accountInsert’

For reference, our command should look something like this:

process.bat “C:\Users\vikas\dataloader\v48.0.0\bin\” accountInsert.

Finally, once the process runs, the command prompt window displays success and error messages. You can also check the log files insertAccounts_success.csv and insertAccounts_error.csv.

Once executed successfully, the insertAccounts_success.csv file should contain Records that you imported, along with the ID and status of each Record.

In Conclusion

In the above section, we went over alternative command-line methods for system administrators to Send over data through Salesforce with greatly reduced login busywork.

For more suggestions on workarounds, best practices, and practical business-specific customizations for Salesforce system admins, reach out to us at sales@hicglobalsolutions.com

Our Location worldwide
India
3rd Floor, A-10, Pegasus Tower, Sector 68, Noida, Uttar Pradesh 201301 +91-1203117884
SR Tower 2nd Floor Hydel Gate Haldwani Uttarakhand 263126 +91-5946359996
USA
333 West Brown Deer Road Unit G – 366 Milwaukee WI, USA 53217 +1(262) 310-7818
UK
7 Bell Yard, London, WC2A 2JR +44 20 3239 9428
Canada
HIC Global Solutions INC
43 Lafferty Lane, Richmond Hill, L4C 3N8, CA +1(262) 310-7818