Let us start with some of the key points about the embedded canvas app
- The embedded canvas app is now generally available. During preview.
- The embedded canvas app supported sub grid control in preview, which is now no longer available.
- The canvas app custom control is only supported for the Unified Interface Web client type. It doesn’t support Phone and Tablet client types.
- We can only have 1 canvas app on the form. We can have multiple embedded canvas app but only 1 of them could be enabled.
- It is recommended to have an embedded canvas app on a required field else it will not refresh on any change in the data on the host model-driven form.
- The embedded app can only be created from the host model-driven form.
- The existing canvas app cannot be used as an embedded canvas app.
To create the canvas app custom control, select the controls tab in the Field Properties dialog, and click on Add Control.
Select Canvas app in App Control dialog.
- The Canvas app will have Web client selected as default and Phone and Tablet option will be greyed out.
- Entity Name shows the name of the field that is associated with it.
- App ID will be populated when the app is created.
Clicking on Customize opens the PowerApps Studio.
We can see the canvas app form control added to the canvas app.
We can see the fields for city, name, and phone already added to it.
ModelDrivenFormIntegration is a special control that is responsible for bringing the contextual data from the form to the embedded canvas app.
Using Edit Fields option, we can add, remove, edit, reorder the fields of the data source.
Just for the simplicity let us keep the app as it is.
Click on File à Save à The cloud (Save to PowerApps)
On a successful save, we can see the App ID generated.
Uncheck Display label on the form, save and publish the customization.
Changing the value in the Phone field in the form and saving the form changes the value inside the canvas app form control.
To Edit the canvas form control, we need to follow the same steps, open the field properties, controls tab and click on Customize
After making the changes inside PowerApps studio, save and publish the changes.
The other Dynamics CRM User say poweruser2 will get the below error message when they open the same form if the app is not shared with them.
The app can be shared with specific users, security groups or everyone within the organization. The users should have appropriate security roles to access the entities and also appropriate permissions on the cloud services that are being used as part of the canvas app.
There are no privileges specific to the canvas app within Dynamics 365 CE
To share the app, Navigate to File and select Share option
Here we searched for the user, made him Co-owner and assigned security roles which will give him access to Accounts entity.
We can see the embedded canvas app rendered properly in this case for the poweruser2
In this post, we covered some of the key points about the embedded canvas app along with steps to create, update and share it (although we just used the OOB generated app here), I would recommend to check out the videos by Shane Young to learn about PowerApps and different scenarios that we could implement.
Hope it helps..
3 thoughts on “How to – Embed a canvas app on a model-driven app in Dynamics 365”