In this post we will briefly discuss about types of solutions available in Microsoft Dynamics CRM and some important points to be remembered while working with Solutions.
There are two types of solutions in Dynamics CRM:
1. Managed Solution: It prevents the solution from being modified in the environment to which it is imported.
2. Unmanaged Solutions: It allows for the solution to be modified after it is imported.
It is recommended that users deploying normal customization changes should do so using unmanaged solutions. Managed solutions are great for ISV’s who are selling their intellectual property and don’t want it to be modified by their customers.
Challenge with using managed solution for normal customizations is that there are some level of customization changes that are required to be made even in a CRM production environment, such as view, chart, and dashboard changes. Also, maintaining a managed solution requires that you preserve an unmanaged copy of that solution somewhere, since that is the only way you can update the solution or delete components.
Removal of a Managed solution does following things:
1. Removes all custom entities and components contained within the solution i.e. entities, web resources, processes.
2. Removes all customizations to system entities contained within the solution i.e. fields, views.
3. Deletes the data that is held within these custom entities and fields.
4. Any personal views/charts/dashboards in any custom entities will be lost.
When you import a solution, custom entity object type codes value changes in the database. If you have any reports or custom development that calls records using the OTC, this may break them. It is recommend to call hyperlinks using the entity name rather than OTC. Also you may find that some processes, such as workflows, cannot be published. This can happen because they reference a record that does not exist.
We usually perform a round of validation after every import of a solution just to be sure that we have deployed everything correctly. Below are some brief components that should also be validated.
1. CRM UI comparison: Verify that all custom forms behave the way they did before by checking create, update, and saving of a record.
2. Security role assignments: Import of unmanaged version of the solution restores the security roles, but it does not links them to the appropriate users as it was in the source environment.
3. Duplicate detection rules and Audit settings: Import of a solution disables auditing and un-publish duplicate detection rules.
Hope this helps!