In Microsoft Dynamics CRM 2011, you can use solutions to bundle and export customizations from one environment into a different Microsoft CRM system (perfect for moving from development to QA to production). You might assume that exporting the solutions from one system to another would provide a perfect duplicate of the original environment. However this is not always the case! We have found a few gotchas regarding importing solutions that I wanted to share. Specifically:
- Audit Settings
- View Status
- Default Views and Dashboards
Let’s explore each of these in more detail.
During the export process of a solution, you can now select which system settings you want to migrate between the two environments.
This flexibility to pick and choose is excellent. However, if you carefully compare the full list of System Settings to which settings you can export, you will notice that some of the options (such as Auditing) are missing:
What we found is that the Enable Auditing in the following areas checkboxes are transferred from one environment to another, without needing to select any of the system settings for export. However, the Start Auditing is not. When documenting the steps to perform a deployment, make sure that manually checking this important box if you are performing auditing on any of your entities is one of those steps.
A new feature with Microsoft Dynamics CRM 2011 is the ability to deactivate views. For example, I have customers who do not use Campaigns so the native Accounts: No Campaign Activities in the Last 3 Months view is irrelevant. To remove confusion for those end users, I simply deactivate this view. To do this, simply select the view you want to remove from the user interface and select Deactivate. As always, don’t forget to publish.
However what we found is that when you import solution into a target system, the deactivated views do NOT remain deactivated within the destination environment. Therefore, if you want to hide these views from the users, you will need to go into the target system and manually deactivate the views again (bummer). If you're writing up deployment notes, please remember to include this step!
Default Views and Dashboards
Microsoft Dynamics CRM allows administrators to specify the Default Views and Dashboards that users see when they navigate to a specific part of CRM. Unfortunately, similar to the inactive views gotcha we just explained, the default settings on views and dashboards do not import into new environments as you might exepect them to. Let's explain in a little more detail.
First, let’s look at what happens when you change default views on entities. In my example, I changed the default view on the Account entity in my development environment to Accounts: No Campaign Activities in the Last 3 Months. I then exported a solution containing the Account entity and imported it into an environment where the default Account system view was set to My Active Accounts. The result was two default system views for the Account entity!
Alternatively, when you import customizations with a different default dashboard, the imported solution ignores that setting entirely.
We were thinking that these were actually defects in the product but Microsoft support informed us otherwise. Apparently they think that the issue with duplicate default views is acceptable behavior since it really only affects users the first time that they view that entity. Each user has the option to set their own default view which overrides the default view (or views!) set by the administrator. The Microsoft CRM support team indicated that the issue with imported solutions ignoring default settings is (a-hem) “by design”. Again, users have the option to set their own default dashboard which overrides the system wide settings. Granted that's a little hinky and it requires an extra step by the user, but it does work.
I hope this helps smooth out some bumps with your deployments and we would love to hear any other gotchas that you would like to share!