Skip to main content

XMLHttpRequest vs Xrm.WebApi

 

XMLHttpRequest vs Xrm.WebApi

If you have written JavaScript code for Dynamics 365 you have seen the use of XMLHttpRequest or Xrm.WebApi to make server-side calls. The question is which one is the right one to use?

So, let’s analyze the two types of calls.

XMLHtttpRequest

1.       Synchronous

a.       Sample Code

var req = new XMLHttpRequest();

req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/accounts", false);

2.       Asynchronous

a.       Sample Code

var req = new XMLHttpRequest();

req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/accounts", true);

So, passing true parameter is going to make asynchronous call while passing it false is going to make a Synchronous call.

Xrm.WebApi

1.       Asynchronous

a.       There is no way to make a synchronous call, even if you are going to use chaining or await keyword it still going to be an asynchronous call.

 

In conclusion if you are looking for an asynchronous call you can use

1.       Xrm.WebApi

2.       XMLHttpRequest with true parameter

If you want to make Synchronous call, then your choice is quite simple use XRMHttpRequest.

 

Comments

  1. what about https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests#synchronous_request .Does this mean we have only the async method as an option now ?

    ReplyDelete
    Replies
    1. Bravo for WebApi calls for Dynamics 365 yes you have only async calls.
      for Synchronous calls you have to use XMLHtttpRequest

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Am I right in saying that under the hood of Xrm.WebApi you'd find XMLHttpRequest?

    So at the end of the day Xrm.WebApi is just a wrapper to:

    1) supposedly facilitate our calls
    2) standardize and apply best practices
    3) facilitate/centralize changes

    ReplyDelete

Post a Comment

Popular posts from this blog

Azure DevOps Fork Repos between two Organization

  Azure DevOps Fork Repos between two Organization This weekend I embarked on a topic a bit foreign to myself, on the surface seemed a bit simple. The idea is to fork my Azure DevOps Repo to a different organization and push changes between them. Bad news DevOps doesn’t allow to fork Repos to a different organization, you have only the capability to fork to a different Projects within the same Organization. I’m pretty much sure there are so many other ways to solve this issue, but this is the one that I found to be easy to implement. Import Repo to the new Organization Remember here you have to generate a personal token to be able to import the Repo you have to be a member of the new organization as well This might take a few minutes depending on the size of your project, once its complete you will receive a confirmation email, or just refresh it after few minutes So far all looks good, you can clone the solution in your new Organization,

Power Platform Tool for Visual Studio 2019/2022

 Power Platform Tool for Visual Studio 2019/2022 We have a new Visual Studio Extension Power Platform Tool.  Creation and deployment of Plugins, Custom Workflows and WebResources is going to be easy and time saving.  This article is going to focus on how to connect to your environment and create your Visual Studio Solution. In a subsequent article I will try to cover on how to Create and deploy your components to your environment. Installation is straight forward go to      Tools→ Manage Extensions→ Search for Power Platform Tools     You will Need Visual Studio 2019 or later version     Subsciption to Pawer App/Dataverse or trial       .Net Framework 4.6.2 Now we will go over how to create a Project and connect it to your Environment Open Visual Studio 2019 →New Project Search for Power Platform Solution Template Add Project Name and Location → Create Click on Start from Dataverse to connect to your environment Enter the following and → Login

How to use Formatted Values in Power Automate Flow Dynamics 365

  How to use Formatted Values in Power Automate Flow Dynamics 365   If you have been working on Power Automate for Dynamics 365 you might have been wandering how you can access a lookup Formatted Value or Option Set formatted values. You can use the following format to access: body(‘{Action Name}’)?[‘{fieldname} @OData.Community.Display.V1. FormattedValue’] You just have to be mindful in Dynamics 365 lookup field name they do not translate to the proper field name, you might have to and an “_” as a prefix and “_value” as a postfix, I will leave that to you.