Asked by:
Can't retrieve a value from an entity..

Question
-
Hi all
I would like to retrieve the phone number of an account when I select it in a lookup field..
Could you please tell me where is the error in this code ?
function test() { var account = new Array(); account = Xrm.Page.getAttribute("new_accountname").getValue(); if (account == null) { return; } var serverUrl = Xrm.Page.context.getServerUrl(); var oDataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc/AccountSet?$select=telephone1&$filter=AccountId eq guid'" + account[0].id + "'"; 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 () { GetContactData(this); }; retrieveReq.send(); } function GetContactData(retrieveReq) { var retrieved = JSON.parse(retrieveReq.responseText).d alert(retrieveReq.status) if (retrieveReq.readyState == 4) { if (retrieveReq.status == 200) { var retrieved = JSON.parse(retrieveReq.responseText).d; Xrm.Page.getAttribute("new_telephone").setValue(retrieved.results[0].telephone1); } } }
Thursday, July 11, 2013 8:57 AM
All replies
-
Hi,
Try like below code. OR see this link http://rajeevpentyala.wordpress.com/2012/02/12/retrieve-record-using-odata-and-jquery-in-crm-2011/
function GetRelated() {
var context = Xrm.Page.context;
var EntityID = Xrm.Page.data.entity.getId();
var serverUrl = context.getServerUrl();
var ODataPath = serverUrl + “/XRMServices/2011/OrganizationData.svc”;
var retrieveResult = new XMLHttpRequest();
retrieveResult.open(“GET”, ODataPath + “/AccountSet?$filter=AccountId eq (guid’” + EntityID + “‘)&$expand=Account_CustomerAddress”, false);
retrieveResult.setRequestHeader(“Accept”, “application/json”);
retrieveResult.setRequestHeader(“Content-Type”, “application/json; charset=utf-8″);
retrieveResult.send();
if (retrieveResult.readyState == 4 /* complete */) {
if (retrieveResult.status == 200) {
var retrieved= this.parent.JSON.parse(retrieveResult.responseText).d;
var Result = retrieved.results[0];
//Field From Account
alert(Result.Name);
//fields from more address
alert(Result.Account_CustomerAddress.results[0].Line1);
}
}
Thanks
Sravan J
- Edited by sravan J Thursday, July 11, 2013 9:16 AM small modify
Thursday, July 11, 2013 9:15 AM -
new_accountname doesnot look like a lookup. If all accounts have unique names than you can use name field in the filter.
Account is parent and phone call is child therefore you can also use:-
Xrm.Page.getAttribute("new_telephone").setValue(window.top.opener.parent.Xrm.Page.getAttribute("telephone1").getValue());
Regards Faisal
Thursday, July 11, 2013 9:16 AM -
Thanks guys for your reply. But it still doesn't work...
Is it normal that I find "400" when I try to display retrieveReq.status ?
Thursday, July 11, 2013 4:11 PM