使用Ribbon Workbench无法工作,在CRM 2015中动态隐藏主页按钮

时间:2015-07-23 07:59:54

标签: javascript dynamics-crm dynamics-crm-2015 crm-ribbon-workbench

我正在创建一个自定义启用规则,以隐藏Ribbon Workbench中我的自定义实体中的“导入”按钮。这是我的JS代码:

function ShowHideButton() {
var context;
var serverUrl;
var UserID;
var ODataPath;
var toReturn;
context = Xrm.Page.context;
serverUrl = context.getClientUrl();
UserID = context.getUserId();
ODataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";
var retrieveUserReq = new XMLHttpRequest();
retrieveUserReq.open("GET", ODataPath + "/SystemUserSet(guid'" + UserID + "')", true);
retrieveUserReq.setRequestHeader("Accept", "application/json");
retrieveUserReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
retrieveUserReq.onreadystatechange = function () {
    toReturn = retrieveUserReqCallBack(this);      
};
retrieveUserReq.send();

return toReturn;
}

function retrieveUserReqCallBack(retrieveUserReq) {

var retrievedUser = this.parent.JSON.parse(retrieveUserReq.responseText).d;
var retrievedValue = retrievedUser.BusinessUnitId;
var id = retrievedValue.Id;
var refIdAdmin;
var refIdTL;
var refMember;

refIdAdmin = "6EF4BCC3-5608-E511-9415-22000A93809E";
refIdTL = "CCFE0C41-D208-E511-9416-22000A93809E";
refMember = "1010FC5F-2D2C-E511-941A-22000AA400C9";   

if (id.toUpperCase() == refIdAdmin) {

    return true;
}
else if (id.toUpperCase() == refIdTL) {

    return true;
}
else if (id.toUpperCase() == refMember) {
    return true;
}
else {

    return false;
}

}

是否可以帮我修复代码,以便Ribbon Workbench能够阅读我想要返回的内容?

1 个答案:

答案 0 :(得分:0)

你正在进行异步请求,这是验证规则时你的toReturn为null的问题

var request = new XMLHttpRequest();

request.open('GET', '/bar/foo.txt', false);  // false makes the request synchronous

request.send(null);

if (request.status === 200) {

console.log(request.responseText);

}