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

Virtual Connectors in Dataverse Not Rollback When Got Error On PostOperation-Sync

Do you know that we have the Virtual Connectors in Dataverse (Preview) solution in the AppSource that can let us configure and create Virtual Entity easily? We can do the CRUD (Create-Read-Update-Delete) operation directly (I tried the SQL Server connection) and it works perfectly as long as you set the Table design correctly. If you are interested in it, you … Continue reading Virtual Connectors in Dataverse Not Rollback When Got Error On PostOperation-Sync

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

Create Dataverse Record and Set SharedVariable From PowerAutomate

In Dataverse, we can add several additional parameters when we request something that you can check in this documentation. And from all the optional parameters provided, my favorite is the "Tag" parameter that allows us to pass SharedVariable to the Plugin. In the documentation above, you can see how we can pass those parameters using a WebAPI … Continue reading Create Dataverse Record and Set SharedVariable From PowerAutomate

Fixed contractResolver showed up when using Swashbuckle Swagger .NET 6

When using Swagger and I want to implement JsonPatchDocument to do Patch operation in my WebApi, I noticed the class can't be recognized automatically in the Swagger UI. contractResolver object detected in SwaggerUI Below is a sample of my code for my Controller that uses JsonPatchDocument: using LearningCqrs.Core; using LearningCqrs.Core.Handler; using LearningCqrs.Data; using LearningCqrs.Features.Users; using MediatR; using Microsoft.AspNetCore.Authorization; using … Continue reading Fixed contractResolver showed up when using Swashbuckle Swagger .NET 6

Empty Available Authorization when using Swashbuckle Swagger .NET 6

When I learned to implement authorization in my WebAPI and tested it in Swagger, I noticed the "Available authorization" page was empty (after clicking the lock icon): Empty Authorization dialog For those who don't know Swagger, you can think of this as a framework that offers a systematic way of notating the interface of any RESTful … Continue reading Empty Available Authorization when using Swashbuckle Swagger .NET 6