PowerDialogs Solution

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.

Admin: Manage the available PowerDialogs for the users

Leave a Reply

Your email address will not be published. Required fields are marked *