1
votes

We are a Housing Association. We use CRM 2016 SP1. Our Dev and QA environments are single server configuration and staging and production are multiple server config with load balancers. Our custom solutions in QA, staging and production are managed.

We needed to update a "Quick Find Active" view for two of our entities Person and Property with some extra search columns in our staging and production environments.

I added the new columns to those entities' views in Dev environment by going to Settings->Solutions->[custom solution]->Entities->[custom entity]->Views->Quick Find Active [entity]->Add Find Columns. I did the same for both entities.

To deploy the update to other environments as a patch, I exported a standalone solution file that only contained the Person and Property entities with the updated views. I then imported the solution file into the QA environment to test.

Having published the changes in QA after import, I checked the entities' Quick Find Active views in the default solution (Settings->Customization->Customize the system->[custom solution]->Entities->[custom entity]->Views). I noticed that the Property entity was updated with the changes but the Person entity was not. It made no sense.

Having spent some time to search the Internet for an answer to no avail, we decided to try out the patch solution in staging. So we exported the solution file but before publishing the changes we decided to check the update. To our surprise, both entities had been updated. So we did not publish the changes.

Happy with the result and blaming the problem on our QA environment, we decided to go ahead with the deployment to production. We imported the file and check the changes and noticed that this time around the opposite happened to our entities, i.e. The Person entity had been updated but the Property entity had not!

We tried publishing the changes but it made no difference. So at the end we gave up and had to complete the deployment by manually updating the views in production.

I am wondering if anyone else has experienced this oddity. Any help/suggestion is greatly appreciated.

2
Did you publish your customizations after importing the solution to the Staging environment?Henrik H
Henrik. Thanks for your answer. Yes I did. I updated my question to reflect that.seemorgh

2 Answers

2
votes

You mention that you are deploying managed solutions, and that your changes are not taking effect. The entities contained in the solution have previously been deployed to the target environments.

If you have previously made any modifications directly to the target environment (which would not seem improbable given that you did so this time), these changes will be in the unmanaged layer, which by default overrides changes in managed solutions:

Unmanaged and managed solutions from https://msdn.microsoft.com/en-us/library/gg334576.aspx#Anchor_4

MSDN says:

Because unmanaged customizations are considered ”above” any managed solution in terms of conflict resolution, organizations installing an update to a managed solution may not see their changes applied because of unmanaged modifications. An option exists to make sure that changes applied by an update to a managed solution are available.

When you release an update to a managed solution, the organization installing the update can select:

  • To preserve any customizations it has applied on top of your managed solution.

  • To overwrite any customizations it has applied on top of your managed solution.

In conclusion: Never make any modifications directly to your target environments if you are using managed solutions. It will cause you issues later.

0
votes

Thanks to Henrik who replied to my question and put me in the right direction. We managed to resolve this issue. Refer to this page to read the solution.