Utilities for Comparing Customizations and Transferring Configuration Data

Posted by Jim Steger on February 9, 2009  |  commentsComments (2)

We recently had the opportunity to collaborate with the Microsoft Product Team with two fantastic utilities, and I am happy to say they are now finally available! The two tools are:

  1. Customization Comparison Utility
  2. Configuration Data Utility

Customization Comparison Utility
The Customization Comparison Utility allows you to take two exported customization files (either xml or zip) and display all the differences between the files. You can review any two valid customization files and also export the results to Excel for additional analysis or documentation needs. Similar to many source control systems, the tool displays to you the following:

  • What is identical between the systems
  • What has changed between the systems
  • Exists in the source system, but not the target
  • Exists in the target system, but not the source


This tool can be extremely handy when reviewing or validating a system for changes or alterations from a base or development system prior to importing a new set of customizations. Independent Software Vendors (ISV) can use this tool to help manage their version releases to existing clients' systems. However, anyone using Dynamics CRM 4.0 with multiple environments (such as development, staging, and production) can quickly and easily log the differences between those environments for planning, troubleshooting, and documentation purposes. And since the tool merely looks at the customization files, it works for all deployment models, including CRM Online!

Configuration Data Utility
In most of our implementations, we use the power of Dynamics CRM entity extension capabilities to create configuration-based entities. This allows our clients to configure their system with data instead of requiring expensive and time-consuming code changes. One of the current dilemmas of this approach is when you need to apply your configuration data from one environment (such as development) to another environment (such as testing or production).

For instance, the Field Level Access example from the Programming Microsoft Dynamics CRM 4.0 book shows you how you can use a couple of custom entities with JavaScript to create a dynamic form. This approach allows a non-technical user to easily configure a form's security with custom data. However, once this is properly configured, there was no easy way to get the setup data from our development environment to our production deployment. Currently, you would need to write your own methods to extract and import the data or use a combination of export to excel and import processes. Now those challenges are a thing of the past! Enter the Configuration Data Utility!

The Configuration Data Utility allows you to quickly and easily transfer configuration-based data in one Microsoft CRM organization into another organization with a few simple steps. The utility steps you through a set of wizard steps that has you select the custom entities that contains the configuration data you wish to export. Once complete, the utility will create a single data file with the exported data, ready to imported into the destination environment.



When importing the data, if the application finds records that already exist in the destination system, it will simply update all of the information in the existing record. If data is in the destination system but does not appear in the Export Data File, the record will not be changed in the destination system. Lastly, if relationships to other records exist in the imported data, the application will first resolve by GUID and if no matching GUID is found, it will resolve by the primary attribute of the related entity record.

Also note the following:

  • The entities in the destination system must have the same schema as the source data system.
  • You also have the opportunity to save this configuration file to be reused, saving you additional time for repetitive exports/imports.
  • The tool preserves the source system's record id (GUID), which comes in convenient when referencing entities in Workflows rules. 
  • This utility IS NOT a replacement data migration tools and options out there. It is meant to migrate basic data setup between environments.
  • The import tool can be run in command-line mode, making it usable for installers as well.
  • At this time, the export/import tool is available for on-premise deployments only. However, since you have the source for this tool, you can quickly convert it for CRM Online.

Summary
These tools can be run on any machine (i.e. doesn't have to be the CRM server) that has .NET 3.5 installed and access to the CRM environment. Each tool contains a full users guide (currently located within the main project folder). And as mentioned briefly above, Microsoft also provides the source code for each of these utilities, allowing you to further extend them to fit your own needs!

While these tools were developed with ISV's in mind, they are extremely valuable for anyone implementing Microsoft Dynamics CRM 4.0. We have been using both internally for a few months now have been extremely handy numerous times.

Feel free to download these tools at:
http://msdn.microsoft.com/en-us/library/dd442453.aspx

Comments

  1. This is a great tool. But, I have noticed that after doing imports of customizations that CRM changes certain GUID ID values. For example, we created a new workflow on our development system. We exported that workflow and imported the workflow into production. To validate the import process, we exported all customizations from both development and production. I was surprised to notice that the new workflow showed up as 'different'. The only difference was the activeworkflowid. CRM must have assigned a new ID to the workflow during the import or publish steps.

    Is there a way to configure the tool to ignore certain ID differences like this?

    I've also noticed that whitespace differences show up in the comparison. Is there a way to ignore white space on differences?

    Posted by: JohnD  |  Apr 15, 2009 9:11:40 AM

  2. @JohnD,

    This is the standard behavior of Microsoft CRM Workflow Import....

    Anyhow nice tool.. good complement to CRM Customization Manager :)

    Posted by: Daniel Halan  |  Feb 27, 2010 9:14:29 AM

Post a Comment

  • *Required

Contact Us for a Quote, or Personalized Demonstrationof Microsoft Dynamics CRM for Your Business.

Contact Us