CRM 2016 Online: Need help retrieving POAA records using OdataQuery in webresource.
We have a scenario where we need to query/access 'PrincipalObjectAttributeAccess' table from Webresource. Can any one help to access /retrieving data form POAA.
I am getting error message:"{\r\n\"error\": {\r\n\"code\": \"\", \"message\": {\r\n\"lang\": \"en-US\", \"value\": \"Operator 'eq' incompatible with operand types 'Microsoft.Crm.Metadata.ComplexTypeInstance`1[[Microsoft.Xrm.Sdk.EntityReference,
Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]' and 'System.Guid' at position 78.\"\r\n}\r\n}\r\n}" when it is loaded on the form.
Below is the value passed to the system during the run time
ODataPath: "https://XXXXXX.crm.dynamics.com/XRMServices/2011/OrganizationData.svc/PrincipalObjectAttributeAccessSet?$select=ReadAccess,
PrincipalId,PrincipalObjectAttributeAccessId&$filter=AttributeId eq (guid'{CF9E1FA3-2EFF-4B9A-8850-87197AE7DE98}') and PrincipalId eq (guid'{D2890D2C-A27E-E611-812E-C4346BADE530}') and ObjectId eq (guid'{649734E5-72EF-E511-8127-C4346BB588C8}')"
function FindLicenseduser()
{
var ServerUrl = Xrm.Page.context.getClientUrl();
var UserId = Xrm.Page.context.getUserId();
var OpptyId = Xrm.Page.data.entity.getId();
var ODataPath = ServerUrl + "/XRMServices/2011/OrganizationData.svc/";
// AttributeID - CF9E1FA3-2EFF-4B9A-8850-87197AE7DE98
var AttributeId = "{CF9E1FA3-2EFF-4B9A-8850-87197AE7DE98}";
var OdataQuery = "PrincipalObjectAttributeAccessSet?$select=ReadAccess, PrincipalId,PrincipalObjectAttributeAccessId&$filter=AttributeId eq (guid'" + AttributeId + "') and PrincipalId eq (guid'" + UserId + "') and ObjectId eq (guid'" + OpptyId + "')";
ODataPath = ODataPath + OdataQuery;
var retrieveUserReq = new XMLHttpRequest();
retrieveUserReq.open("GET", ODataPath, true);
retrieveUserReq.setRequestHeader("Accept", "application/json");
retrieveUserReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
retrieveUserReq.onreadystatechange = function () {
retrieveUserReqCallBack(this);
};
retrieveUserReq.send();
}
function retrieveUserReqCallBack(retrieveUserReq)
{
if (retrieveUserReq.readyState == 4 /* complete */) {
if (retrieveUserReq.status == 200) {
var retrievedUserId = this.parent.JSON.parse(retrieveUserReq.responseText).d;
alert(retrievedUserId.PrincipalId);
}
else {
showMessage("retrieveAccountReqCallBack function failure END");
}
}
}
Madhu M.