Enforce ConcurrencyBehavior on DataverseServiceClient

Celebrating the GA of DataverseServiceClient, let's talk about how to implement concurrency (if there are two users updating the same data at the same time, the system must ensure only the first update success and make fail the other) using an out-of-the-box feature. From Dataverse itself, we have UpdateRequest and DeleteRequest messages that have ConcurrencyBehavior … Continue reading Enforce ConcurrencyBehavior on DataverseServiceClient

Create Field Security Profile Programmatically in Dataverse

Recently, my friend (Low Ming Hua) told me about an interesting scenario related to Field Security Profile. He needs to enable lots of attributes and set the Field Permission to specific teams (he also shared with me his code and I modify it!). For those who don't know, we can enable Field-level security to control … Continue reading Create Field Security Profile Programmatically in Dataverse

How to test service protection API limits in Dataverse

When I read this documentation about Service protection API limits, I was curious about the easiest way to get the error to validate the code in the documentation and enhance it. I read the documentation and found out about Dataverse search, which has a stricter policy (one request per second) which means it is easier to test. Service protection … Continue reading How to test service protection API limits in Dataverse

How to use the getUserPrivilege function in Dataverse Client API

getUserPrivilege is a function that will return canRead, canCreate, and canUpdate. This function correlated with the Field Level Security feature makes it suitable to check if users have enough privilege to run our custom function on Javascript. For example, we have below customization on formOnLoad: var BlogJs = BlogJs || {}; (function() { this.formOnLoad = function(executionContext){ onLoadCustomerId(executionContext); setValueIcNumber(executionContext); }; var onLoadCustomerId … Continue reading How to use the getUserPrivilege function in Dataverse Client API

How to use OnExternalUpdated for Dataverse Virtual Entity

When we have already set up a Virtual Table/Entity in the Dataverse, sometimes there is a scenario when a data is being updated in the source system, it also needs to trigger the Dataverse Event (that contains our custom business logic). Today, we will learn how to enable Virtual Tables to support Dataverse events. In the … Continue reading How to use OnExternalUpdated for Dataverse Virtual Entity

Dynamics CRM: Populate Data using InitializeFrom Function

Do you notice when we create a Lead and qualify it in Dynamics CRM, the out-of-the-box feature will convert the Lead to Contact (all the data that was input in Lead, automatically populated in the Contact)? And sometimes, we are also being requested to make the same feature (mapping the data from one table to … Continue reading Dynamics CRM: Populate Data using InitializeFrom Function

Dataverse: Create GetLastDateOfMonth Function in Custom Connector

Do you know we can write Code (Preview) in Custom Connector? In this blog post, we will make a simple function that will return the last date of the month to try the feature. Without further ado here are the steps: Go to make.powerapps.com > Dataverse > Custom Connectors > on the top right hit + New custom connector > Create from blank option: … Continue reading Dataverse: Create GetLastDateOfMonth Function in Custom Connector

Dataverse: Export Import Solution from your command prompt using PowerApps CLI

Powerapps CLI have lots of function to support our daily activities. The most useful to me of course the command "pac plugin init" that automatically creates Plugin Project. Today, we will learn about Authentication and Solution commands to do export-import across the environment. Installing You can find the download link of the PowerApps CLI on this page. Once you have … Continue reading Dataverse: Export Import Solution from your command prompt using PowerApps CLI

Dataverse: Duplicate Detection Rules vs Keys

There are several ways to make your Dataverse data as clean as possible. Out-of-the-box, you can create alternate keys or you can implement Duplicate Detection Rules. Or you can implement Custom Validation on the Plugin to achieve more dynamic conditions (you can write any validation logic that you want). Today we will learn the out-of-the-box features (alternate keys … Continue reading Dataverse: Duplicate Detection Rules vs Keys

Dataverse: Improve Performance using Partition Key

Do you know we can pass the partitionID parameter when doing CRUD to improve performance? The information I got from this documentation link. Today we will prove how what is the difference between using the partitionID and not using it. To collect the data, I'll run below code: using System; using System.Web.Configuration; using Entities; using Microsoft.Crm.Sdk.Messages; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Messages; … Continue reading Dataverse: Improve Performance using Partition Key