-
Notifications
You must be signed in to change notification settings - Fork 55
Getting started
Martin Kasban Tange edited this page Feb 16, 2018
·
13 revisions
Get up and running with XrmDefinitelyTyped in a few minutes by following this guide.
- TypeScript 2.0< installed
- TypeScript is set up to compile
.tsfiles in your project
Setup:
- Install the package via NuGet
- Edit the
appSettingsin the configuration file (XrmDefinitelyTyped.exe.config) to fit your Dynamics CRM environment and needs (see arguments available to XDT).
Usage:
- Run
XrmDefinitelyTyped.exe*. This will generate the desired declaration files at the specified location (or in the current folder if none specified) - Make sure your
tsconfig.jsonfile includes the generated typings in the TypeScript context - Create a TypeScript file, or convert your old .js files to .ts
- Making form logic? Cast the
Xrm.Pageobject to the form you are coding towards - Start coding!
*: Since .exe files can not be run directly from Visual Studio (out-of-the-box at least), script files are included in the package to enable you to run it from the IDE (Powershell: Run.ps1, or F#: Run.fsx).
With the release of Dynamics CRM v9, Xrm.Page has been deprecated and if you are developing towards v9 or a newer version you should therefore use a different template.
namespace DG.Contact {
var Form: Form.contact.Main.Information;
export function onLoad(executionContext: Xrm.ExecutionContext<any>) {
Form = <Form.contact.Main.Information> executionContext.getFormContext();
// Code here..
Form.getAttribute("firstname");
}
}Remember to tick 'Pass execution context as first parameter' in CRM, when adding your function to the Form.
Either make a new variable (i.e. Page), and set it to Xrm.Page casted to the desired form type:
namespace DG.Contact {
const Page = <Form.contact.Main.Information>Xrm.Page;
export function onLoad() {
// Code here..
Page.getAttribute("firstname");
}
}Or declare the Xrm object to be the form your want it to match:
namespace DG.Contact {
declare var Xrm: Xrm<Form.contact.Main.Information>;
export function onLoad() {
// Code here..
Xrm.Page.getAttribute("firstname");
}
}