How to get started with Power Platform Solutions: Canvas Apps
Deploying app from one environment to another environment is the most problematic area in SDLC. If development is not taken place in a well-organized setup then the deployment is not going to be that easy. Especially working in the SaaS, we need to follow the product standards to get the expected output.
Solutions are the Power Platform way of transporting app from one environment to another, it will hold all the power platform components and their references in one place. Solutions are used to implement application lifecycle management in the Power Platform.
Create a new Solution => Add a new publisher if there aren’t any,
Every solution has a publisher, The publisher is the owner of the components created inside the solution and the ownership can be transferred from one solution to another but not across publishers.
A created solution will look like the below screenshot.
This is how the updated solution looks like and all the components are segregated into their respective category. The advantage of creating everything inside the solution is we can move all the components from one environment to another in one installment.
The other advantage is connection references and Environment variables.
In Power Automate each action is bound to run on owner connection. while deploying, the connections will change to the current user’s account, So if the flow is configured to run on another connection for specific actions it should be changed manually.
For this scenario, the solution enforces to use connection references, we can map a particular user account for each reference. Either we can create a reference and select it in the action or while creating the action the reference will be automatically created.
Here we are creating Outlook and SharePoint references
Inside the flow select the menu of that action and click connections it will list all the references created in that environment.
All the environment-specific things like tables, sites, lists, etc, should be mapped to an environment variable, So that when transporting it will be easier to map the destination artifacts.
Here we are capturing the site and list values in variables, when creating the list variable notice that we are selecting the “SharePoint Site” variable in the Site dropdown.
The environment variables will be available in the dynamic value selection inside the flow.
To use the variables inside the canvas app, we should “Turn on” a “Automatically create environment variables when adding data sources” setting in the canvas studio.
This will not work for the already added datasource.
So this practice should be followed once you add a datasource to the app otherwise the existing data source should be deleted and that datasource should be added again.
Here once the site URL is entered automatically the corresponding list is loaded as it is mapped when creating the variable.
Create a custom security role for the solution, So while sharing the app it will set the permission level for the users.
It will be most suited to model-driven apps or if dataverse is used as a database.
Existing apps and flows can also be added to solutions, but to apply the environment variables to existing will require rework and For flow, it will not show the connection reference only the individual connection will be shown which was used to create the outside solution.
If an app created outside is added to the solution, we don’t need to add its dependants individually, we have to select the app and click “Add required components” it will load all the dependants.
The instant flows created outside the solutions cannot be added to solutions. Even the flow is added inside the canvas app it will not be added inside the solution, it is a known limitation.
Please post your queries in the comment section. Happy Building 🙂