Dynamics crm prem 8.2 getGlobalContext上的动态功能不起作用,只有Xrm.Page.Context起作用

Dynamics crm prem 8.2 getGlobalContext上的动态功能不起作用,只有Xrm.Page.Context起作用,dynamics-crm,microsoft-dynamics,dynamics-crm-2016,crm-ribbon-workbench,Dynamics Crm,Microsoft Dynamics,Dynamics Crm 2016,Crm Ribbon Workbench,我只想向具有system administrator的用户显示“运行工作流”功能区按钮,因此我使用了以下JS,它们在我的Dynamics解决方案中运行良好: function getrolesarray(formcontextfromribbon) { var Globalcontext = Xrm.Page.context; var strFirstThree = Globalcontext.getVersion().substring(0, 3); var sameu

我只想向具有system administrator的用户显示“运行工作流”功能区按钮,因此我使用了以下JS,它们在我的Dynamics解决方案中运行良好:

function getrolesarray(formcontextfromribbon) {
    var Globalcontext = Xrm.Page.context;
    var strFirstThree = Globalcontext.getVersion().substring(0, 3);
    var sameunit = true;
    var noclosed_status = true;
    var selview = 0;

    var roleid = Globalcontext.getUserRoles();

    var RoleName_concat = "";

    var user_sysadmin_yesno = false;

    var name;
    for (var i = 0; i < roleid.length; i++) {
        var roleID = roleid[i];
        var RoleName = getRoleName_XMLHttp(roleID,strFirstThree);

        RoleName = RoleName.toUpperCase()

        if ((RoleName == 'SYSTEM ADMINISTRATOR')) {

            user_sysadmin_yesno = true;
             
            break;
        }

    }

    return user_sysadmin_yesno;


}

function getRoleName_XMLHttp(roleID,strFirstThree) {
    var roleName = null;
    var param = roleID.toString().replace("{", "").replace("}", "");
    var ajaxurl = Globalcontext.getClientUrl() + "/api/data/v" + strFirstThree + "/roles(" + param + ")?$select=_businessunitid_value,name,roleid";
    var req = new XMLHttpRequest();
    req.open("GET", ajaxurl, false);
    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=\"*\"");
    req.onreadystatechange = function () {
        if (this.readyState === 4) {
            req.onreadystatechange = null;
            if (this.status === 200) {
                var result = JSON.parse(this.response);
                var _businessunitid_value = result["_businessunitid_value"];
                var _businessunitid_value_formatted = result["_businessunitid_value@OData.Community.Display.V1.FormattedValue"];
                var _businessunitid_value_lookuplogicalname = result["_businessunitid_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
                var name = result["name"];
                var roleid = result["roleid"];
                roleName = result["name"];
            } else {
                Xrm.Utility.alertDialog(this.statusText);
            }
        }
    };
    req.send();

    return roleName;
}

它将返回未定义的,如何使其工作?

打开CRM,通过单击F12打开开发人员工具,选择控制台,在控制台中输入Xrm。实用程序,单击enter,展开您获得的对象并检查是否存在getGlobalContext扩展

经检查,我发现它不存在,必须仅适用于9.0及以上版本

var Globalcontext = Xrm.Utility.getGlobalContext();