Build | NPM | Semantic-Release |
---|---|---|
A Dynamics 365 Web Api TypeScript module for use in web resources or external web apps in the browser or node.
All requests return Promises. To support Internet Explorer, be sure to include a promise polyfill when deploying to CRM.
Requires Dynamics CRM 2016 Online/On-Prem or later
npm install --save-dev xrm-webapi
As of v5, the WebApi class has been replaced by individual functions instead of the WebApi class. This allows for importing individual functions instead of the entire library to take advantage of tree shaking to reduce bundle size. I recommend using Babel in your builds to compile your scripts to browser compliant JavaScript. Feel free to use d365-cli which sets up a ready to use web resources project.
import { Guid, retrieve, WebApiConfig } from "xrm-webapi";
const config = new WebApiConfig("8.2");
const account = await retrieve(config, "accounts", new Guid(""), "$select=name");
console.log(account.name);
import { Guid, retrieve, WebApiConfig } from "xrm-webapi/dist/xrm-webapi-node";
const config = new WebApiConfig("8.2");
const account = await retrieve(config, "accounts", new Guid(""), "$select=name");
console.log(account.name);
For use in Angular applications, I'd first recommend using their built in HttpClient. Besides batch operations, most D365 Web Api requests are pretty simple to construct. If you do want to use this library, the usage is the same as the browser usage:
import { Guid, retrieveNode, WebApiConfig } from "xrm-webapi";
const config = new WebApiConfig("8.2");
const account = await retrieve(config, "accounts", new Guid(""), "$select=name");
console.log(account.name);
- Retrieve
- Retrieve multiple (multiple pages)
- Retrieve multiple with Fetch XML
- Create
- Create with returned data
- Update
- Update with returned data
- Update single property
- Delete
- Delete single property
- Associate
- Disassociate
- Web API Functions
- Web API Actions
- Batch operations
- Impersonation
See xrm-webapi-samples.ts for examples