How to – Create an Automated low-code plug-in (Dataverse) (experimental)


In the previous post, where we installed the Dataverse Accelerator app and saw how to write basic low-code Instant Plugins.

Here we’d look at the Automated low-code Plugins.

Select the New Plugin option in the Dataverse Accelerator app to create Automate Plugins.

We get the option to select the table, the event, define the behavior of the plugin using Power FX, specify pre or post-operation, and the solution as shown below.

To keep it simple, we have created a plugin on pre-operation that checks for null, the email address field in the Contact record on Create, and if blank throws an error.

On trying to create a contact record without an email address, we get the exception as specified in the plugin.

That’s all we are done with our plugin.

Now interestingly if we check our solution specified, we will not find our plugin there. We need to add them to the solution manually right now, here we need to look for FxExpression.

Read more about it here – https://debajmecrm.com/how-to-write-plugins-in-dataverse-using-low-code-powerfx-functions/

And all the details here

Hope it helps..

Advertisements

How to – Create an Instant low-code plug-in (Dataverse) (experimental)


Low-code plug-in is a new experimental feature released by Microsoft, for early adopters, not meant to be used in production. As per Microsoft, “the experimental features can change radically or completely disappear at any time“.

There are 2 types of low-code plug-ins we can write – Instant and Automated.

Instant plug-ins are triggered manually and support parameters, whereas automated plug-in as the name suggests, runs when a particular event (create, update, or delete) occurs on a table and they do not support parameters.

As a prerequisite, we need to first install the Dataverse Accelerator

We can install it from Admin Center >> Resources >> Dynamics 365 Apps

Or from the App Source, look for Dataverse Accelerator and click Get in now.

https://appsource.microsoft.com/en-us/product/dynamics-365/microsoftpowercatarch.dataversekit1?exp=kyyw

Specify the Environment to start the installation. (Should take around 5 minutes)

Open the Dataverse Accelerator App.

Click on + New plugin for the Instant Plugins

Provide the display name and the description for the plugin, and also select the appropriate solution.

We can specify optional Input and Output parameters along with the Expression that uses Power FX formulas to define the logic for the plugin.

Our sample plugin takes City as the Input Parameter and returns the total number of contact records having that same city.

Save the plugin and click on Test.

Provide the value for the input parameter and click on Run.

We can see the status as Success and the output parameter Result having a value of 4.

This completes our plugin.

Now to use it, click on the Integrate tab.

The tab provide us the required details.

We can copy the Power FX expression and use it inside the Canvas App.

We get the output as expected.

Below we are calling it from within the Power Automate Flow from a Perform an unbound action

The result –

Get more details and Check out the known limitations

Hope it helps..

Advertisements

Try the new modern look for the Model-driven app (Preview)


The new modern refreshed look for the Model-driven app can be enabled from Maker Portal >> Model-driven App (Edit) >> Settings >> Upcoming – Try the new look and feel (preview)

The new look makes use of the latest Fluent UI React Components

Or now we see the option to Try the new look in the app itself in the command bar.

Let us look at the changes

  • Grids now have the checkboxes added to it

(open the image in new tab to view it clearly)

  • Infinite scrolling
  • The same grid is applied to Sub Grid and Associated Grids
  • Forms now have a new Command Bar, refreshed BPF, Sections, etc.
  • Form fields now have a background, icon placement, stying changes, etc.

Get all the details here

Hope it helps..

Advertisements

Based on entity behavior for SharePoint Folder – Dynamics 365 / Dataverse


After enabling Server-Based SharePoint Integration,

inside Document Management Settings, we can specify folder structure to be based on the entity either Account or Contact.

Here we have opted for Account-based first.

We can see the following folders created on the SharePoint site, that take the table or entity name.

And the records folder for Accounts created with AccountName_GUID format.

And if we open any Contact record >> Files / Documents tab, that will create the account parent folder (if not already created) and the contact folders inside it as shown below.

And if we create the contact record without having an account associated

That will create the folder for the record inside Contact Folder without the Parent Account folder created. (as there was no account associated)

For Case Records, we have the case folders created inside Account folders.

Now let us select the Contact based structure

The contact records are created inside the Contact folder, the account associated is not considered.

For Case also it is same.

For Building, a custom table, which is a child of Contact, we have the Building folder created inside the Contact folder.

Now let us keep Based on entity option unchecked

This creates the corresponding record’s folder inside the table parent folder.

Account –

Contact –

Check some of the interesting articles on SharePoint and Dynamics 365 Integration.

Hope it helps..

Advertisements

Dynamics CRM Web API C# Auto Refresh Access Token while performing API request to CDS


Dynamics CRM's avatarxrm CRM Dynamics

As we know to connect to CDS WEB API from C# application we first need to acquire access token and validity of that is 1 hour. While performing small number of requests this will be sufficient. However when we want to run long running process we will get HTTP 400 error when token expires.

To overcome this issue, The recommended approach is to implement a class derived from DelegatingHandler which will be passed to the constructor of the HttpClient. This handler will allow you to override the HttpClient.SendAsync method so that ADAL will call the AcquireToken method with each request sent by the http client.

Step – 1

Create new class in your project and add below code.

/// <summary> ///Custom HTTP message handler that uses OAuth authentication through ADAL. /// </summary> class OAuthMessageHandler : DelegatingHandler { private UserCredential _credential; private AuthenticationContext _authContext = new AuthenticationContext("https://login.microsoftonline.com/common", false); private string _clientId…

View original post 394 more words

Extend access token lifetime