目录
Overview
官方文档:
- https://learn.microsoft.com/en-us/power-
apps/developer/model-driven-apps/clientapi/reference - https://learn.microsoft.com/en-us/power-
apps/developer/model-driven-apps/customize-commands-
ribbon
Javascript outline
- OpenForm/View
- OnLoad
- Validation
- OnChange
- 注意异常处理
- 空值
- 异步
Tools
- 浏览器插件:Level up for Dynamics 365/Power Apps
- vscode插件:D365 JavaScript
- xrmToolBox:
- rest api
- fetch xml builder
- fetch test
- web resource manager
- ribbon workbench (也可以网页版)
Name space
if (typeof (MovementRecord) == "undefined") {
MovementRecord = {
__namespace: true };
}
window.MovementRecord = window.MovementRecord || {
}
FormContext
var formContext = Xrm.Page.ui.formContext;
Xrm.Page.getAttribute() and Xrm.Page.data.entity.attributes.get()
Xrm.Page.ui.controls.get() and Xrm.Page.getControl()
Get Value
- Record id
- Xrm.Page.data.entity.getId();
Environment Variable
function getEnvironmentVariable(schemaName) {
// Get Define id
// var schemaName = 'clp_SSMS_CTAM_GetAuthorizedPersonList';
var environmentvariabledefinitionid;
var value;
Xrm.WebApi.retrieveMultipleRecords("environmentvariabledefinition", `?$select=environmentvariabledefinitionid&$filter=schemaname eq '${
schemaName}'`).then(
function success(results) {
environmentvariabledefinitionid = results.entities[0]["environmentvariabledefinitionid"]; // Guid
// Get Value
Xrm.WebApi.retrieveMultipleRecords("environmentvariablevalue", `?$select=value&$filter=_environmentvariabledefinitionid_value eq ${
environmentvariabledefinitionid}`).then(
function success(results) {
value = results.entities[0]["value"]; // Multiline Text
},
function (error) {
console.log(error.message);
}
);
},
function (error) {
console.log(error.message);
}
);
return value;
}
isDirty() changed field
Xrm.Page.ui.controls.forEach((c) => {
if (c.getAttribute) {
const dirtyAttribute = c.getAttribute();
if (dirtyAttribute.getIsDirty()) {
formContext.data.entity.save();
return;
}
}
})
Click
var c = parent.document.querySelectorAll('[data-id="dialogCloseIconButton"]');
if(c.length !== 0){
c[0].click();
}
Set Value
date only
var date = '2023-3-2';
XXXX.setValue(new Date(date).toISOString());
Update Owner To Specified Team
async function UpdateOwnerToSpecifiedTeam(teamName,recordID) {
await Xrm.WebApi.retrieveMultipleRecords("team", `?$filter=name eq ${
teamName}`).then(
async function success(results) {
console.log(results);
var teamid = results.entities[0]["teamid"]; // Guid
var record = {
};
record[