Back in November I released my Alexander Development Dynamics Configuration Data Mover tool, and I received a tremendous amount of positive feedback. Since then I've been asked several times why someone would want to use my tool instead of the Configuration Migration tool that is included in the CRM SDK, and so I've decided to summarize the four main advantages my tool has over the SDK tool.
- My tool allows you to specify a filter so you only copy a subset of records. The SDK tool copies all records.
- My tool allows you specify ad-hoc GUID replacements/translations when moving between systems. This lets you maintain lookup relationships to records that have different GUIDs in the target organization.
- My tool has a command line component so you can automate synchronization jobs. This would be useful if you wanted to schedule a job to periodically push data from a template organization to your dev, QA, staging and production organizations so all GUIDs always match.
- Migrating configuration data with the SDK tool requires two steps - export data to a file, then import from a file. My tool supports reading from a source organization and writing directly to a target organization in a single step.
Regarding that last point, while it's definitely useful to be able to do an immediate point-to-point sync, there may be scenarios in which the tool cannot simultaneously connect to both the source and target organizations or when it would be advantageous to export to a file and then import from that file later. That's why my latest version of the tool supports exporting to/importing from a file. The exported data is stored in a JSON format, and you set the file as a source or target by specifying the full path to the file in the source or target parameters instead of using the normal CRM simplified connection string.
Here's an explanation of the various settings and parameters:
- Source - Simplified CRM connection string for source organization OR full path to source data file in the form of "FILE=C:\datadirectory\datafile.json."
- Target - Simplified CRM connection string for target organization OR full path to target data file in the form of "FILE=C:\datadirectory\datafile.json."
- Save connection details? - If checked, connection details should be saved in configuration file. Note, connection details are unencrypted.
- Map root business unit GUID? - If checked, the job will automatically change any GUID references from the source organization root business unit to the target organization root business unit.
- Map base currency GUID? - If checked, the job will automatically change any GUID references from the source organization base currency to the target organization base currency.
- Job steps - A list of steps for each distinct entity transfer operation.
- Step name - Sets the name of the selected job step. The step name is used in logging outputs.
- Step FetchXML query - The FetchXML query that determines which records and specific attributes will be transfered.
- Update-only step? - If checked, the step will not attempt a create operation if the update attempt fails.
- GUID mappings - List of GUIDs in the source organization that will be replaced with GUIDs in the target organization.
Getting the Dynamics CRM Configuration Data Mover
The source code is available in my GitHub repository here.
A compiled version can be downloaded here.