Dynamics crm prem 8.2 getGlobalContext上的动态功能不起作用,只有Xrm.Page.Context起作用
我只想向具有system administrator的用户显示“运行工作流”功能区按钮,因此我使用了以下JS,它们在我的Dynamics解决方案中运行良好: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
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();