Hopefully someone can help.
I am trying to write some JScript to update a field on a form based on if the user has the relevant security role.
I have done some searches online but I just cant get the code to work. As I am fairly new to Java can someone please help?
Currently on CRM 2015 Online.
Error Message:
One of the scripts for this record has caused an error. For more details, download the log file.
ReferenceError: ShowHideDispatchSection is not defined at eval (eval at RunHandlerInternal (https://lvlissdev.crm4.dynamics.com/form/ClientApiWrapper.aspx?ver=941619645:150:32),<anonymous>:1:1)
Below is my code:
function ShowHideDispatchSection() {if (UserHasRole("System Administrator")) {
Xrm.Page.getAttribute("liss_lifearea").setValue(131090003);
}
} else {
Xrm.Page.getAttribute("liss_lifearea").setValue(131090000);
}
}
function UserHasRole(roleName) {
var currentUserRoles = Xrm.Page.context.getUserRoles();
var serverUrl = Xrm.Page.context.getClientUrl();
var oDataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc/RoleSet?$select=RoleId&$filter=Name eq '" + roleName + "'";
var result = false;
var retrieveReq = new XMLHttpRequest();
retrieveReq.open("GET", oDataSelect, false);
retrieveReq.setRequestHeader("Accept", "application/json");
retrieveReq.setRequestHeader("Content-Type", "application/json;charset=utf-8");
retrieveReq.onreadystatechange = function () {
if (retrieveReq.readyState === 4) {
if (retrieveReq.status === 200) {
var retrieved = JSON.parse(retrieveReq.responseText).d;
if (retrieved.results.length > 0) {
for (var i = 0; i < currentUserRoles.length; i++) {
for (var j = 0; j < retrieved.results.length; j++) {
if (GuidsAreEqual(currentUserRoles[i], retrieved.results[j].RoleId)) {
result = true;
}
}
}
}
}
}
};
retrieveReq.send();
return result;
};
function GuidsAreEqual(guid1, guid2) {
var isEqual;
isEqual = false;
if (guid1 == null || guid2 == null) {
isEqual = false;
} else {
isEqual = (guid1.replace(/[{}]/g, "").toLowerCase() == guid2.replace(/[{}]/g, "").toLowerCase());
}
return isEqual;
};