Courage is fear holding on a minute longer. George S. Patton
Don’t try to avoid failure, make sure you recover #HoskWisdom
Stage for upgrade is useful functionality which allows you delete customisations and components from managed solutions, this post talks about solutions, holding solutions, stage for upgrade and bugs
Solutions
Before you can understand holding solutions and stage for upgrade you need to understand solutions. start with these posts
- Understanding Solutions and how they work
- Introduction to solutions
- Use solutions for your customizations
Microsoft Dynamics 365 uses managed solutions to copy customizations from one Dynamics 365 environment to another (e.g. Development –>Test –> SIT –> UAT –> production). Managed solutions make customizations non editable in the target Dynamics 365 environment.
key points
- Solution is they are additive and they can only add customisations.
- When you delete a solution it removes the data too.
below are some interesting post I have written on solutions, best practices and problems
- CRM 2013 – Managed solution problems with out of sync solutions
- Questions on Microsoft Dynamics CRM solutions and environments
- CRM 2016 – What’s the best way to organise solutions in Microsoft Dynamics CRM
CRM 2016 – Release management, Solution packager and why you should automate your deployment - Best practices for manual Dynamics 365 Deployments
Holding solutions
To remove unwanted customisations you needed to use a holding solution to temporarily hold customisations whilst you deleted one solution, an updated solution is imported the customisations removed.
This post walks through the process How to – Delete Components from Managed Solution in Dynamics CRM 2016 without using Holding Solution
Microsoft has simplified this process by automating the holding solution process and having a stage for upgrade checkbox (which uses a holding solution in the background), read this post for more details
This post covers stage for upgrade and patching – Solution Patching in Microsoft Dynamics CRM 2016
Microsoft documentation – Create patches to simplify solution updates
Problems
There is a bug in the stage for upgrade functionality/holding solution process which fails to import the solution or fails to apply the solution upgrade. The error happens during the import of the solution and you can’t import a solution into the environment. We can consistently recreate this if any of the entities has an SLA enabled.
There have been other problems with stage for upgrade and removing customisations but we can’t work out what the problem is because we can’t see the SQL environment.
You can reset the Dynamics 365 CRM instance, import solutions and data on a clean Dynamics 365 CRM instance. The Capgemini Dynamics team store code and CRM customisations in source control, giving the ability to create solutions with the latest customisation and deploy solutions into an environment. The deployment scripts can import configuration data with different data for sprint and dev environments.
This approach is OK for sandbox environments (DEV, test, etc) but if this happened in production it causes major problems because the environment cannot be reset without loosing all the data.
Resetting Dynamics 365 environments
We have problems resetting sandbox environments it becomes stuck and the only way to resolve the problem is wait for Microsoft to run an SQL script (which they do around midnight) which fixes the environment. It’s frustrating we have to wait a whole day, particularly when we have had it twice on one day.
If Microsoft wants to promote Dynamics 365 online and enterprise projects (which use multiple Dynamics 365 instances) then it must provide the tools necessary to manage multiple environments and allow enterprise projects to be delivered using Dynamics 365.
picture from here