Skip to main content

DumpIT - Migrate / Clone Salesforce Org - Data

How complicated can it be to clone data from one Salesforce Org to another? It can take from minutes to weeks depending on the number of objects and relationships between them.

I am glad to share a tool I developed which may save you a lot of time. DumpIT comes as an executable jar file which helps to clone data from one Salesforce Org to another. Recently Salesforce released a feature to clone a Sandbox but it has its own limitations and cannot always be used.

How to use DumpIT?

Prerequisite - You must have Java installed and setup on your local machine. Try running "Java -v" command on your command prompt to make sure its all setup and working. 

Step 1: Download the tool

  1. Download the tool from this link https://crossdoor.io/dumpit/
  2. Create a folder on your local machine and place all the three downloaded items in that folder. You will see these three items:
  • results folder: Success and Error files are placed on this folder on execution, for each object. You can use this folder OR any other folder on your local machine by specifying the folder path in build.properties.
  • build.properties: This is where you configure the tool.
  • DumpIT.jar: This is the executable jar file (THE tool itself).

Step 2: Configure build.properties

Open build.properties file and setup the source and target Orgs and which all objects needs to be cloned. build.properties is explained below in more details. 

Step 3: Create a field on target Objects

Create a new custom field on all the objects for which we want to move the data. Make sure the API name is exactly as mentioned below with the same case. 
  • Field Label: Dump Id
  • API Name: Dump_Id__c 
  • Type: Text (18)
  • Unique: true
  • External Id: true

Step 4: Run It

1. Open the command prompt and go to the folder path where you have downloaded the tool.
2. Type this command to run it: *java -jar DumpIT.jar*

build.properties

The current version has some basic functionality but I working on adding more advanced options in the future. The current options are:

Credentials of the Source and Target Orgs.


  • source.username=Username of the source Salesforce Org
  • source.password=password+securitytoken of the source Org
  • source.serverURL=https://login.salesforce.com
  • target.username=Username of the target Salesforce Org
  • target.password=password+securitytoken of the target Org
  • target.serverURL=https://test.salesforce.com
Comma-separated API Names of the Objects you want to clone data. THE SEQUENCE MATTERS. Please make sure the sequence in which the objects are listed is from Parent to Children.

  • process.objects =  Account, Contact, Opportunity

In case you want to push selective records, you can add SOQL conditions for a specific object. You can do that using the given format  --Object API Name.where--. Make sure to escape the ='s in the condition. Example for Account is given below:

 Account.where =  Rating\\= 'Hot' AND Industry \\= 'Information Technology'


Path of the folder where you want to place the Success and Error files, you can set the path to the result folder downloaded with the tool above.


 process.statusOutputDirectory = /Users/gulshanmiddha/Desktop/dumpit/results/


Make sure the API names mentioned above are all case sensitive. You can copy them from Salesforce UI OR using workbench.


Disclaimer - This tool modifies data in your target Org. Please test it on Sandboxes or Developer Orgs before using it on Production.

Comments

  1. Hi, nice tool. Is there a way to exclude fields from being merged?

    ReplyDelete
  2. Hi, I'm trying to execute this for some of the CPQ objects looks like its doing good for all the object except one PricebookEntry object its not inserting/upserting records the error file shows the "Pricebook2Id: Required fields are missing: [Pricebook2Id]", the dependencies objects are loaded succesfully, Any idea what I'm missing?

    ReplyDelete
  3. Looks like there a bug in this tool, it doesn't preserve the RecordType of a given sObject. Has this been reported before?

    ReplyDelete

Post a Comment

Popular posts from this blog

Autocomplete Lookups for Salesforce1

We all are seeing that Salesforce1 is evolving with every passing day and there is yet lot to be done. One of the many items is a custom lookup field on a Visualforce page. Lightning design systems do provide us with the CSS we can use to create lookup fields the logic has to be written by the developer. Below is a basic example that can be used to implement the basic autocomplete version of the lookup field. The auto complete text box is implemented using the CSS provided by Salesforce1  lightning design . The Visualforce page uses Visualforce remoting to fetch records based on the user input. A call to the controller method is made every time a keyup event is fired and the results are updated.

Exporting Files/Attachments from Salesforce

While working on a Salesforce migration project where I was asked to export a set of attachments from one Salesforce Org to another, I developed this tool. The customer had millions of attachments in their source Org and only a few thousands had to be migrated. What are the existing options in the market? Few of the existing options suggested by different people were: Use Weekly Export. I could use it but I only had to export a few thousand attachments from millions and I can only run it once a week. Use dataloader.io. The free version only allows me to extract limited records on a day. Where can I download this from? I developed a JAR file which did the job for me and wanted to share it with everyone.  Download URL: https://www.crossdoor.io/sfdcfiles/ There are 2 files build.properties SFDCFiles.jar First step is to setup build.properties with the Org credentials and SOQL to extract data from. How to run this? To run this Jar file execute the below command on yo