MSCRM 3.0 allows you to Export customizations from one system and Import those same customizations into another system.  This is handy should you have separate development and test environments and need to move configurations between the two.

You can also Export customizations such as the Site Map and ISV.Config file, perform required modifications, and Import the altered files back into the same system.

However, there are a few caveats to keep in mind when performing these processes:

  • Imported customizations are not automatically published, so you mush manually publish the changes.
  • If you are making sweeping changes to the system, i.e., making many entity modificiations, it is sometimes necessary to Publish those changes immediately after the Import, in order for the system to become fully aware of them.

I have seen instances where I was unable to edit an Entity after Import. I first had to Publish that Entity, then edit it.

  • If you export a large number of Entities ( or All of them ), the Import may fail with a SQL error if you choose to Import All Customizations. The work around it to just select all of the Entities then select More Actions, Import Selected Customizations.
  • Relationships between Entities are not maintained unless you export all of the related Entities together.For example, let's say you have a custom Entity called Jobs that is related to an Entity called Time.  If you Export Jobs from one CRM system, and Import it into another CRM system, the Relationship with the Time Entity will be lost, because the information was not Exported from the original CRM system. Even if you later Exported and Imported the Time Entity, the Relationship would still not exist.Exporting both Jobs and Time Entities will ensure that the relationships will be maintained during the process.
  • There are two Entities that, if improperly altered, can cause the MSCRM system to fail to load and/or function properly: Site Map and ISV.Config.  If you have made massive changes to the CRM system and are Importing the entire system, you wish way to perform a two-stage Import and Import those two Entities in the second stage.
  • If you import customizations including an ISV.Config file that contains errors, the import will succeed, but Microsoft CRM will not start, and the following error will be displayed “SiteMap error.”Workaround: In your browser, open
    http://[microsoft_crm_servername]/tools/systemcustomization/
    ImportCustomizations/importCustomizations.aspx

    and import a corrected ISV.Config file.
  • If you are moving your configuration from a Development CRM system to an existing Production CRM system and have changed the Type of an Attribute ( say from a nvarchar to an int ), you will need to delete the Attribute from the Entity on the Production CRM system before you attempt the Import. Otherwise, the Import will more than likely fail because the Import will not alter the Attribute Type and SQL Server will generate an error when it finds an nvarchar when it expects an int.

Note: I am going to assume that I don't need to tell you that you'll loose data when you delete the Attribute - so plan ahead for that.