As a replacement for the old and deprecated Process Dialogs, Canvas Apps in combination with a Power Automate Flow can be used to achieve a similar functionality.
But I don’t like the default approach to put the Canvas Apps on the entity form. For this I created an easy to use implementation to show a Canvas App or html-webresource in a dialog from a model driven app.
Open an entity and click on PowerDialogs from the form ribbon menu
and choose the appropriate PowerDialog
The PowerDialog will open now
CanvasApp as PowerDialog
Html-webresource as PowerDialog
Admin: Create CanvasApp and/or html-webresources
Available parameters in CanvasApp:
entityId, entityType, lcid, dialogId, dialogTitle, crmUrl, crmAppId
Param("entityId")
Available parameters in html-webresource:
entityId, entityType, lcid, dialogId, dialogTitle
function getParams(): any { let queryString = location.search.substring(1); let params: any = { }; queryString = decodeURIComponent(queryString.substring(5)); let queryStringParts = queryString.split("&"); for (let i = 0; i < queryStringParts.length; i++) { let pieces = queryStringParts[i].split("="); params[pieces[0]] = decodeURIComponent(pieces[1]); } return params; } var params = getParams(); var entityId = params.entityId;
Notes:
- Note your available licenses for PowerApps! If you’re using the PowerApps-per-app-Plan then you should create your PowerDialogs in a Html-webresource.
- From the CanvasApp there is no possibility to communicate with the parent Model-driven-form.
- When creating a html-webresource you can use parent.Xrm and parent.formContext and it’s recommended to implement Fluent UI for better look & feel and user experience.