前言

写脚本时,避免不了有些查询方法需要用到系统管理员角色执行,那么我们可以在请求头添加MSCRMCallerID

示例

例如下面是这个查询客户数据的方法,需要用管理员指向的话,只需添加req.setRequestHeader("MSCRMCallerID", "SYSTEM ADMIN GUID");即可。

queryAccountTop3() {
    var req = new XMLHttpRequest();
    req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/accounts?$select=accountid,name", true);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("Prefer", "odata.include-annotations=\"*\",odata.maxpagesize=3");
        req.setRequestHeader("MSCRMCallerID", "SYSTEM ADMIN GUID");
    req.onreadystatechange = function () {
        if (this.readyState === 4) {
            req.onreadystatechange = null;
            if (this.status === 200) {
                var results = JSON.parse(this.response);
                for (var i = 0; i < results.value.length; i++) {
                    var accountid = results.value[i]["accountid"];
                    var name = results.value[i]["name"];
                }
            } else {
                Xrm.Utility.alertDialog(this.statusText);
            }
        }
    };
    req.send();
}

注意

注1

模拟系统管理员,执行的用户需要给到 “代表其他用户执行操作” 的权限,下面是中文和英文权限的具体位置。

中文

英文

注2

2,上面的两个配置安全角色权限画面,使用的都是 “旧版” UI。如果你正在使用 新版的安全角色权限配置UI页面,有可能找不到这权限(我就是)。那么我们可以切换回旧版,但是现在Global版的 新版安全角色权限配置UI页面 上已经没有 “转到旧版” 的按钮,世纪互联的目前还有(P.S: 我现在的日期是2024/7/12)。不过没事,我们可以在环境地址后面上贴入/tools/business/home_role.aspx就可以访问到旧版UI。

本站没有评论功能。如果需要和我交流,可以在“关于我”中拿到联系信息。P.S:请注明是通过gdhblog.com拿到的联系信息。