Когда вы используете Webpi для извлечения данных и особенно схемы Lookup Id, Lookup основного имени и имени Lookup Entity, вы должны включить аннотации в заголовок вашего запроса.
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
Я опубликую короткий пример запросите здесь для Учетной записи, и я пытаюсь получить Первичную Учетную запись (поиск) для сущности Учетной записи и Первичный контакт (поиск) для Учетной записи.
запрос, как показано ниже
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/accounts(290FB459-D1F4-E911-A813-000D3A4AA4FD)?$select=name,_parentaccountid_value,_primarycontactid_value", true);
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");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
req.onreadystatechange = function() {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var result = JSON.parse(this.response);
var name = result["name"];
var _parentaccountid_value = result["_parentaccountid_value"];
var _parentaccountid_value_formatted = result["_parentaccountid_value@OData.Community.Display.V1.FormattedValue"];
var _parentaccountid_value_lookuplogicalname = result["_parentaccountid_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
var _primarycontactid_value = result["_primarycontactid_value"];
var _primarycontactid_value_formatted = result["_primarycontactid_value@OData.Community.Display.V1.FormattedValue"];
var _primarycontactid_value_lookuplogicalname = result["_primarycontactid_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
} else {
Xrm.Utility.alertDialog(this.statusText);
}
}
};
, и вот ответ Я получаю
{
"@odata.context": "https://abc.xyz.dynamics.com/api/data/v9.1/$metadata#accounts(name,_parentaccountid_value,_primarycontactid_value)/$entity",
"@odata.etag": "W/\"23463189\"",
"name": "ABC Account name",
"_parentaccountid_value@OData.Community.Display.V1.FormattedValue": "Account Reassignment - 3010 NE",
"_parentaccountid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "parentaccountid",
"_parentaccountid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
"_parentaccountid_value": "75e562f9-06fb-e911-a813-000d3a4aa2c1",
"_primarycontactid_value": null,
"accountid": "290fb459-d1f4-e911-a813-000d3a4aa4fd"
}
Теперь для вас интересный код сверху ниже 4 строк результата для родительского аккаунта
"_parentaccountid_value@OData.Community.Display.V1.FormattedValue": "Account Reassignment - 3010 NE",
"_parentaccountid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "parentaccountid",
"_parentaccountid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
"_parentaccountid_value": "75e562f9-06fb-e911-a813-000d3a4aa2c1",