Hello Experts ,
To retrieve Look up ( Id ) from Web api , usually we will be declaring Schema Name ,
But in Web api , there is an minor change in syntax.
Instead of Schema Name we need to declare like below forma.
_prefix_attributename_value.
Eg: _new_accountid_value
To retrieve Look up (Name , Logical Name ) We need to add below syntax in our Web api Request.
req.setRequestHeader(“Prefer”, “odata.include-annotations=\”*\””);
Sample Code For Reference.
Comments : Below example , will retrieve value from lead entity
- Look Up
- Money
- Date Time
- Option set
- Decimal
var req = new XMLHttpRequest(); req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.1/leads()?$select=_accountid_value,budgetamount,_contactid_value,_customerid_value,emailaddress1,modifiedon,salesstage", false); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); <strong>req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");</strong> req.onreadystatechange = function() { if (this.readyState === 4) { req.onreadystatechange = null; if (this.status === 200) { var result = JSON.parse(this.response); var _accountid_value = result["_accountid_value"]; var _accountid_value_formatted = result["_accountid_value@OData.Community.Display.V1.FormattedValue"]; var _accountid_value_lookuplogicalname = result["_accountid_value@Microsoft.Dynamics.CRM.lookuplogicalname"]; var budgetamount = result["budgetamount"]; var budgetamount_formatted = result["budgetamount@OData.Community.Display.V1.FormattedValue"]; var _contactid_value = result["_contactid_value"]; var _contactid_value_formatted = result["_contactid_value@OData.Community.Display.V1.FormattedValue"]; var _contactid_value_lookuplogicalname = result["_contactid_value@Microsoft.Dynamics.CRM.lookuplogicalname"]; var _customerid_value = result["_customerid_value"]; var _customerid_value_formatted = result["_customerid_value@OData.Community.Display.V1.FormattedValue"]; var _customerid_value_lookuplogicalname = result["_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname"]; var emailaddress1 = result["emailaddress1"]; var modifiedon = result["modifiedon"]; var salesstage = result["salesstage"]; var salesstage_formatted = result["salesstage@OData.Community.Display.V1.FormattedValue"]; } else { Xrm.Utility.alertDialog(this.statusText); } } }; req.send();
To make it simple , use
CRM REST Builder which will generate the complete code, and you can save your time 😉 😉 😉
Hi,
There are two way to get text of OptionSet:-
First:-
OptionSetValue opProductType = new OptionSetValue();
opProductType = (OptionSetValue)item.Attributes[attributeName];
var optionValue = opProductType.Value;
Second:-
var StatusString = TermAndCon.FormattedValues[attributeName].ToString();
(Set) Post OptionSet Value : –
newSalesOrder[attributeName] = new OptionSetValue(Convert.ToInt32(optionValue));