How to do deployment via Solutions in Power Platform
Deploying artifacts from one environment to another is an integral part of application life cycle management. Solutions are the Microsoft recommended way to do the development for easing out the deployment part. The problems which we faced in the Export and Import Flows and App are addressed here and no need to modify the JSON before deployment, everything is configurable in solutions.
Kindly check our previous post on how to work in a solution before proceeding further because we will be referring to some examples from that post.
Once all the development activities are completed a solution check has to be run to see what are issues in the components. No need to wait till the development completion, periodically it should be run and there should be no issues.
In this case, 7 issues were found, all the issues should be fixed before exporting.
Let see what we have in the issues, most of them are medium severity issues most of them are accessible label changes.
After adding the accessible labels and changing the screen all issues are resolved.
Publish the changes to export the latest version.
- Managed – Solutions exported as managed cannot be edited after depolyed, It is used in UAT, Prod environments.
- Unmanaged – Unmanaged solutions are used in the developement environment, If it is deleted only the container is deleted all other components will be moved to default solution.
Before exporting the solution, delete the Environment variable values, So that while importing the package it will ask to select the variable values. Here we are deleting the SharePoint current site value and list value.
Current value will override the default value, If there is no current value then the default value will come into the picture. So in the default value map the dev environment value so even if we delete the current value dev references will work properly
Publish the solution once the variables are deleted.
First, we will export the solution as unmanaged and deploy it in the QA environment.
Import the solution in the QA environment, It will ask to update the connection reference and update the environment variables with the destination site URL and list.
Once the deployment is completed, automatically the list name will be mapped with the destination list in both app and flow. This solves the problem of what we faced while importing the apps and flows separately outside solutions.
After deployment, if we see the datasource the variable is updated with the destination list.
But if we failed to delete the environment variable values before exporting and importing to the destination environment it will not show the wizard to update the variables. All the variables will be pointing to the old values mapped in the dev environment
But if it is an unmanaged solution, we can update the environment variables in the solutions after deployment. If it is a managed solution then after deployment there is no option to update the variable.
Everything is the same as we did for unmanaged solutions, except that we cannot directly edit any component after deployment inside the solution.
Export the solution as managed and import it to the QA environment. As we see after deployment it is showing a message that we cannot edit a managed solution.
There are three actions when deploying a solution on top of other one.
- Update – It will replace the old one with new one.
- Upgrade – It will upgrade to latest version and delete components which are not available in the new one.
- Stage to Upgrade – It will upgrade to latest version but the old solution will not deleted, user has apply the upgrade.
Let’s add a new screen in the dev environment and some functionality to the existing screen.
Import the solution to the QA environment and select the mode as “Update”
Solution is deployed and all the functionalities are working as expected.
Let’s delete the attachment control and deploy it in the QA.
Here the whole solution is not replaced, only the attachment control is deleted from the solution.
Staged for Upgrade
Here we deleted the calendar control and tried deploying.
As expected the calendar control is deleted after deployment, But there were two versions of the solution.
If we have a dependency with the old one or some process is still pending with the old solution this approach can be followed, once it is completed select the “Apply Upgrade” option in the new solution.
Once the solution is deployed while sharing with the user, select the customized user role we created for this solution.
Solutions play an important role in the ALM of Power Platform. This is a basic process of deploying with solutions there are more concepts in the solution we will touch base later.
Kindly check with us if there are any queries in deployment using the solution.
Please post your queries in the comment section, Happy Building 🙂