常見的經過Web API執行associate和disassociate消息示例

我是微軟Dynamics 365 & Power Platform方面的工程師/顧問羅勇,也是2015年7月到2018年6月連續三年Dynamics CRM/Business Solutions方面的微軟最有價值專家(Microsoft MVP),歡迎關注個人微信公衆號 MSFTDynamics365erLuoYong ,回覆435或者20210220可方便獲取本文,同時能夠在第一間獲得我發佈的最新博文信息,follow me!html

我之前的博文 Dynamics 365中的經常使用Associate和Disassociate消息彙總 介紹了經過組織服務執行Associate和disassociate消息的示例,博文 Dynamics 365 We API ODATA語法根據父記錄查詢子記錄,根據子記錄查詢父記錄(附上根據團隊,隊列名稱查成員) 還介紹了對Associated數據進行查詢的方法,之前還經過博文 Dynamics 365中使用Web API將查找字段的值設置爲空值的方法。 介紹了取消關聯的方法。官方文檔請參考 Associate and disassociate entities using the Web API  。今天我列出來一些常見關聯和取消關聯操做的寫法。web

1. 一個用戶加入指定的一個團隊。用戶一次加入多個團隊我沒有找到一個請求的方法,固然使用我這博文 使用JS經過Web API執行批量操做,多個操做是一個事務! 提到的方法能提高效率。json


var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();var req = new XMLHttpRequest();
req.open("POST", clientUrl + "/api/data/v9.2/teams(7027A1F0-D247-EA11-A812-000D3A378A3A)/teammembership_association/$ref", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {    if (this.readyState == 4) {
        req.onreadystatechange = null;        if (this.status == 204) {            var alertStrings = { confirmButtonLabel: "Yes", text: "操做成功!", title: "提示" };            var alertOptions = { height: 120, width: 260 };
            Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);
        }        else {            var error = JSON.parse(this.response).error;
            Xrm.Navigation.openErrorDialog({ message: "操做失敗!" + error.message })
        }
    }
};var reqContent = { "@odata.id": clientUrl + "/api/data/v9.2/systemusers(3a1eb63b-f546-ea11-a813-000d3a8c9f2b)" };
req.send(JSON.stringify(reqContent));


 

2. 一個用戶一次添加一個角色。api


var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();var req = new XMLHttpRequest();
req.open("POST", clientUrl + "/api/data/v9.2/roles(E57BFF35-58B4-4725-AEE2-40FB18F4C8BD)/systemuserroles_association/$ref", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {    if (this.readyState == 4) {
        req.onreadystatechange = null;        if (this.status == 204) {            var alertStrings = { confirmButtonLabel: "Yes", text: "操做成功!", title: "提示" };            var alertOptions = { height: 120, width: 260 };
            Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);
        }        else {            var error = JSON.parse(this.response).error;
            Xrm.Navigation.openErrorDialog({ message: "操做失敗!" + error.message })
        }
    }
};var reqContent = { "@odata.id": clientUrl + "/api/data/v9.2/systemusers(3a1eb63b-f546-ea11-a813-000d3a8c9f2b)" };
req.send(JSON.stringify(reqContent));


 

3.一個團隊一次添加一個角色sass


var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();var req = new XMLHttpRequest();
req.open("POST", clientUrl + "/api/data/v9.2/roles(E57BFF35-58B4-4725-AEE2-40FB18F4C8BD)/teamroles_association/$ref", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {    if (this.readyState == 4) {
        req.onreadystatechange = null;        if (this.status == 204) {            var alertStrings = { confirmButtonLabel: "Yes", text: "操做成功!", title: "提示" };            var alertOptions = { height: 120, width: 260 };
            Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);
        }        else {            var error = JSON.parse(this.response).error;
            Xrm.Navigation.openErrorDialog({ message: "操做失敗!" + error.message })
        }
    }
};var reqContent = { "@odata.id": clientUrl + "/api/data/v9.2/teams(7027A1F0-D247-EA11-A812-000D3A378A3A)" };
req.send(JSON.stringify(reqContent));


 

4.一個用戶一次加入一個queue,暫時發現用這個方法雖然不報錯,可是也沒有效果微信


var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();var req = new XMLHttpRequest();
req.open("POST", clientUrl + "/api/data/v9.2/queues(FC9FD7F5-2073-EB11-A812-000D3A194E4E)/queue_system_user/$ref", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {    if (this.readyState == 4) {
        req.onreadystatechange = null;        if (this.status == 204) {            var alertStrings = { confirmButtonLabel: "Yes", text: "操做成功!", title: "提示" };            var alertOptions = { height: 120, width: 260 };
            Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);
        }        else {            var error = JSON.parse(this.response).error;
            Xrm.Navigation.openErrorDialog({ message: "操做失敗!" + error.message })
        }
    }
};var reqContent = { "@odata.id": clientUrl + "/api/data/v9.2/systemusers(b875c79e-930f-ea11-a811-000d3a8c92c3)" };
req.send(JSON.stringify(reqContent));


 

能夠用AddPrincipalToQueue Action來作,示例代碼以下:app


var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();var req = new XMLHttpRequest();
req.open("POST", clientUrl + "/api/data/v9.2/queues(FC9FD7F5-2073-EB11-A812-000D3A194E4E)/Microsoft.Dynamics.CRM.AddPrincipalToQueue", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {    if (this.readyState == 4) {
        req.onreadystatechange = null;        if (this.status == 204) {            var alertStrings = { confirmButtonLabel: "Yes", text: "操做成功!", title: "提示" };            var alertOptions = { height: 120, width: 260 };
            Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);
        }        else {            var error = JSON.parse(this.response).error;
            Xrm.Navigation.openErrorDialog({ message: "操做失敗!" + error.message })
        }
    }
};var reqContent = {    "Principal":"/systemusers(b875c79e-930f-ea11-a811-000d3a8c92c3)"};
req.send(JSON.stringify(reqContent));


 

5,將一個用戶從一個團隊中移除ide


var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();var req = new XMLHttpRequest();
req.open("DELETE", clientUrl + "/api/data/v9.2/teams(7027A1F0-D247-EA11-A812-000D3A378A3A)/teammembership_association(3a1eb63b-f546-ea11-a813-000d3a8c9f2b)/$ref", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {    if (this.readyState == 4) {
        req.onreadystatechange = null;        if (this.status == 204) {            var alertStrings = { confirmButtonLabel: "Yes", text: "操做成功!", title: "提示" };            var alertOptions = { height: 120, width: 260 };
            Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);
        }        else {            var error = JSON.parse(this.response).error;
            Xrm.Navigation.openErrorDialog({ message: "操做失敗!" + error.message })
        }
    }
};
req.send();


 

6,移除一個用戶的一個角色this


var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();var req = new XMLHttpRequest();
req.open("DELETE", clientUrl + "/api/data/v9.2/roles(E57BFF35-58B4-4725-AEE2-40FB18F4C8BD)/systemuserroles_association(3a1eb63b-f546-ea11-a813-000d3a8c9f2b)/$ref", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {    if (this.readyState == 4) {
        req.onreadystatechange = null;        if (this.status == 204) {            var alertStrings = { confirmButtonLabel: "Yes", text: "操做成功!", title: "提示" };            var alertOptions = { height: 120, width: 260 };
            Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);
        }        else {            var error = JSON.parse(this.response).error;
            Xrm.Navigation.openErrorDialog({ message: "操做失敗!" + error.message })
        }
    }
};
req.send();


 

7,移除一個團隊的一個角色orm


var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();var req = new XMLHttpRequest();
req.open("DELETE", clientUrl + "/api/data/v9.2/roles(E57BFF35-58B4-4725-AEE2-40FB18F4C8BD)/teamroles_association(7027A1F0-D247-EA11-A812-000D3A378A3A)/$ref", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {    if (this.readyState == 4) {
        req.onreadystatechange = null;        if (this.status == 204) {            var alertStrings = { confirmButtonLabel: "Yes", text: "操做成功!", title: "提示" };            var alertOptions = { height: 120, width: 260 };
            Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);
        }        else {            var error = JSON.parse(this.response).error;
            Xrm.Navigation.openErrorDialog({ message: "操做失敗!" + error.message })
        }
    }
};
req.send();


 

8.移除一個queue中的一個成員:


var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();var req = new XMLHttpRequest();
req.open("DELETE", clientUrl + "/api/data/v9.2/queues(FC9FD7F5-2073-EB11-A812-000D3A194E4E)/queue_system_user(b875c79e-930f-ea11-a811-000d3a8c92c3)/$ref", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {    if (this.readyState == 4) {
        req.onreadystatechange = null;        if (this.status == 204) {            var alertStrings = { confirmButtonLabel: "Yes", text: "操做成功!", title: "提示" };            var alertOptions = { height: 120, width: 260 };
            Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);
        }        else {            var error = JSON.parse(this.response).error;
            Xrm.Navigation.openErrorDialog({ message: "操做失敗!" + error.message })
        }
    }
};
req.send();


 

9. 一次添加多個成員到團隊,這裏利用 AddMembersTeam Action 來作。


var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();var req = new XMLHttpRequest();
req.open("POST", clientUrl + "/api/data/v9.2/teams(7027A1F0-D247-EA11-A812-000D3A378A3A)/Microsoft.Dynamics.CRM.AddMembersTeam", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {    if (this.readyState == 4) {
        req.onreadystatechange = null;        if (this.status == 204) {            var alertStrings = { confirmButtonLabel: "Yes", text: "操做成功!", title: "提示" };            var alertOptions = { height: 120, width: 260 };
            Xrm.Navigation.openAlertDialog(alertStrings, alertOptions);
        }        else {            var error = JSON.parse(this.response).error;
            Xrm.Navigation.openErrorDialog({ message: "操做失敗!" + error.message })
        }
    }
};var reqContent = {
    Members: [
        {            "systemuserid":"3a1eb63b-f546-ea11-a813-000d3a8c9f2b"
        },
        {            "systemuserid": "b875c79e-930f-ea11-a811-000d3a8c92c3"
        }
    ]
};
req.send(JSON.stringify(reqContent));
相關文章
相關標籤/搜索