Introduction
The only supported way of transferring customizations from one CRM organization to another has been through Solutions. The concept of Solution when first released in CRM 2011 was a breakthrough considering before then there was no concept of IP protection. With Solution Management came the concept of Managed and Unmanaged Solutions.
Managed a way to protect your IP with an easy concept of install and uninstall.
Unmanaged more what was to be used in DEV environments.
Managed Solutions created dependencies for them and soon it was realized that Unmanaged was the way to go unless you are an ISV and packaging a solution and want to protect your IP.
But even though Solution management was better than methods that existed prior to CRM 2011, and became the norm for ISV solutions, it still had scope for huge improvements to avoid customer customization conflicts with ISV solutions. Over the past two versions there were not major improvements made in solution management but with 2016 the solution management has been totally revamped. Much greater control over what you want to include in your solution.
Solution Components
In the earlier versions, when you added an entity to the solution, it by default included all the entity components like fields, relations, business rules and even entity properties like, Auditing or Enable for Mobile etc. You did not have control over what you included and quite often the customers would themselves make customizations their end like say enable Auditing or Enable for Mobile etc. The entity properties are usually customized by the customers depending on their requirements and importing a managed solution would overwrite it without the customer’s knowledge L
Now when you add an entity to a solution, the following window comes up allowing you to select the components of the entity that you want included in the solution.
All of the components that are included in an entity are listed out for you to choose what you want included. Notice the two checkbox at the top,
Include entity metadata: it will include entity properties like Auditing, Mobile, Quick Create settings etc.
Add All Assets: this will include all components by default in the solution. Note once you have included all assets in a solution you are not allowed to remove any components from the solution so be careful about the choice you make.
Note: To bring back the above screen after you have clicked on finish and added the entity to the solution use the Add Subcomponents button.
I had selected only 2 fields so in the screen below you will see only those 2 fields listed for the entity no other components were selected.
We now make change to the first name to increase the length to 155 and the auditing is not enabled for this entity in this organization.
Now when this solution is exported, it should only overwrite the two fields in the destination org. No changes should be reflected in the entity metadata in the destination org.
Here is how the first name field and audit settings looks like in destination org before the solution import.
This is what the solution looks like now
Now when you import the managed solution to this org, it should neither override the City length nor the Auditing settings
The Audit settings were not modified. Now here is what the first name looks like after import
Conclusion
So only the items you intended to take to the other system are affected by the import. No other items are overwritten. Something that the earlier solution framework did not provide. Apart from the ability to pick and choose, the solution management now goes a step further to provide feature to create Patches for your solution, which is a common practice in product life cycle. We will check that in our next blog.
No need to purchase Bing Maps Licenses for Dynamics CRM. Read more about this on our product page.
Hi Inogic, Great this article, really usefull for me because I am starting up now in Dynamics CRM.
I have a question: when I select Add All Assets, Am i includinf Forms and Views? Or Do I have to select Add all metadata?
When you select Add All Assets, the flag Include entity metadata gets selected automatically.
But it’s not the other way round i.e. selecting Include entity metadata will not select Add All Assets automatically.
And yes, when you are selecting Add All Assets it will include all the components of that respective entity in your solution. This means it will include all the Forms, Fields, Relationships, Business Rules, etc.
But again that’s not the case with Include entity metadata. Even if this flag Include entity metadata is set to true, only the selected components will get included in your solution and not all the components.
Hope this helps.
Thanks!