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.
Create an encryption key file by entering the following command given below
encrypt.bat —k [path to key file]
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”
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.
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:
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