Sharing code which retrieves related record’s field data value (Connections) and parse the data based on relationship metadata type property.
function RetrieveConectionNames() {
if (Xrm.Page.ui.getFormType() != 1) {
var CurrentRecordID = Xrm.Page.data.entity.getId();
var PartnerGUID = CurrentRecordID.substring(1, 37);
var serverUrl = Xrm.Page.context.getClientUrl(); //JS Fix
var ODATA_ENDPOINT = “/xrmservices/2011/OrganizationData.svc”;
var ODATA_EntityCollection = “/ConnectionSet?$select=Record2Id,Record2RoleId,contact_connections2/EMailAddress1,systemuser_connections2/InternalEMailAddress&$expand=contact_connections2,systemuser_connections2”;
var ODATA_Filter1 = “&$filter=Record1Id/Id eq guid'” + PartnerGUID + “‘”;
var ODATA_Filter2 = ” and (Record2RoleId/Id eq guid’44F5CBE2-3B2F-E011-BBAB-00155DC94520′ or Record2RoleId/Id eq guid’04E4BA76-5D5F-E111-BF46-00155DC94520′ or Record2RoleId/Id eq guid’170AFFF8-3B2F-E011-BBAB-00155DC94520′ or Record2RoleId/Id eq guid’DA759615-93A2-E211-BBE9-002DD80B0CA0′ or Record2RoleId/Id eq guid’1EB23AA0-19BE-E311-9413-002DD80B0CA0’)”;
var ODATA_OrderBy = “&$orderby=Record2RoleId”;
var ODATA_Final_url = serverUrl + ODATA_ENDPOINT + ODATA_EntityCollection + ODATA_Filter1 + ODATA_Filter2 + ODATA_OrderBy;
//Calls the REST endpoint to retrieve data
$.ajax({
type: “GET”,
contentType: “application/json; charset=utf-8”,
datatype: “json”,
url: ODATA_Final_url,
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader(“Accept”, “application/json”);
},
success: function (data, textStatus, XmlHttpRequest) {
var result = ”;
for (i = 0; i < data.d.results.length; i++) {
result += data.d.results[i].Record2RoleId.Name + ” – ” + data.d.results[i].Record2Id.Name + ” – “;
if (data.d.results[i].contact_connections2 != null) {
if (data.d.results[i].contact_connections2.__metadata.type == “Microsoft.Crm.Sdk.Data.Services.Contact”) {
result += data.d.results[i].contact_connections2.EMailAddress1 + “\r\n”;;
}
}
if (data.d.results[i].systemuser_connections2 != null) {
if (data.d.results[i].systemuser_connections2.__metadata.type == “Microsoft.Crm.Sdk.Data.Services.SystemUser”) {
result += data.d.results[i].systemuser_connections2.InternalEMailAddress + “\r\n”;;
}
}
}
Xrm.Page.getAttribute(“new_oabnames”).setValue(result);
Xrm.Page.data.entity.save();
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
alert(‘Error: ‘ + ODATA_Final_url);
}
});
}
}
Note: Notice the double underscore(__) before metadata i.e __metadata.type
Hope this help you.
Like this:
Like Loading...
You must be logged in to post a comment.