Hi, I have a such a problem: in my code I want to retrieve customer's field text value (its type is a lookup).
function OnLoad() {
var serverUrl = "http://" + window.location.host + "/" + Xrm.Page.context.getOrgUniqueName();
var primarycontact = Xrm.Page.getAttribute("customerid").getValue();
var primarycontactid = primarycontact[0].id;
var primarycontacttype = primarycontact[0].entityType;
alert(primarycontacttype);
// Creating the Odata Endpoint
var oDataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";
var retrieveReq = new XMLHttpRequest();
if (primarycontacttype == "contact") {
var Odata = oDataPath + "/ContactSet?$select=new_ownershop_type&$filter=ContactId eq guid'" + primarycontactid + "'";
retrieveReq.open("GET", Odata, false);
retrieveReq.setRequestHeader("Accept", "application/json");
retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
retrieveReq.onreadystatechange = function () { retrieveReqCallBack1(this); };
}
if (primarycontacttype == "account") {
var Odata = oDataPath + "/AccountSet?$select=new_ownership_type&$filter=AccountId eq guid'" + primarycontactid + "'";
retrieveReq.open("GET", Odata, false);
retrieveReq.setRequestHeader("Accept", "application/json");
retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
retrieveReq.onreadystatechange = function () { retrieveReqCallBack2(this); };
}
retrieveReq.send();
}
function retrieveReqCallBack1(retrieveReq) {
if (retrieveReq.readyState == 4 /* complete */) {
var retrieved = this.parent.JSON.parse(retrieveReq.responseText).d;
var EmailAddress = retrieved.results[0].new_ownershop_type.Value;
alert(EmailAddress.name);
}
}
function retrieveReqCallBack2(retrieveReq) {
if (retrieveReq.readyState == 4 /* complete */) {
var retrieved = this.parent.JSON.parse(retrieveReq.responseText).d;
var EmailAddress = retrieved.results[0].new_ownership_type.Value;
alert(EmailAddress.name);
}
}
new_ownershop_type and new_ownership_type are lookup fields
Thanks!
*This post is locked for comments