retrieveMultipleRecords (довідник з API клієнта)

Отримує колекцію записів таблиці.

Синтаксис

Xrm.WebApi.retrieveMultipleRecords(entityLogicalName, options, maxPageSize).then(successCallback, errorCallback);

Параметри

Ім'я Тип Необхідний Опис
entityLogicalName String Так Логічне ім'я таблиці записів, які потрібно отримати. Наприклад: account.
options String Ні Параметри системного запиту OData або запит FetchXML для отримання даних. Див . параметри
maxPageSize Число Ні Укажіть додатне число, яке вказує кількість записів таблиці, які потрібно повернути на сторінку. Якщо не вказати цей параметр, значення за промовчанням – максимальне обмеження в 5000 записів для стандартних таблиць і 500 для еластичних таблиць.

Якщо кількість записів, які ви маєте отримати, перевищує вказане maxPageSize значення або максимальне обмеження для типу таблиці, nextLink стовпець у повернутому об'єкті обіцянки містить посилання для отримання записів.
successCallback Function Ні Функція для виклику під час отримання записів таблиці. Див . повернуте значення
errorCallback Function Ні Функція для виклику, коли операція не вдається. Передано об'єкт із такими властивостями:
- errorCode:Число. Код помилки як додатне десяткове число. Наприклад, код помилки, задокументований як 0x80040333 , буде повернуто як 2147746611.
- message:Рядок. Повідомлення про помилку з описом проблеми.

Параметри

Підтримуються такі параметри системного запиту: $select, , $top$filter, $expand, і $orderby.

Скористайтеся параметром системного $expand запиту, щоб керувати поверненням даних із пов'язаних таблиць. Якщо просто додати ім'я властивості навігації, ви отримаєте всі властивості пов'язаних записів. Властивості, повернуті для пов'язаних записів, можна обмежити за допомогою параметра системного $select запиту в дужках після імені властивості навігації. Використовуйте цей параметр для однозначних і колекційних властивостей навігації. Для автономного режиму підтримується лише вкладений $select параметр усередині $expand .

Щоб указати запит FetchXML, скористайтеся fetchXml стовпцем, щоб указати запит.

Нотатка

Щоб обмежити властивості, які повертаються для запису таблиці, потрібно завжди використовувати $select параметр системного запиту, включно з іменами властивостей, розділеними комами. Ця практика важлива для продуктивності. Якщо властивості не вказано за допомогою $select, буде повернуто всі властивості.

Укажіть параметри запиту, починаючи з ?. Також можна вказати кілька параметрів системного запиту, використовуючи & для відокремлення параметрів запиту.

Якщо вказати рядок запиту OData для options параметра, закодуйте запит для спеціальних символів.

Якщо вказати запит FetchXML для options параметра, не кодуйте запит.

Щоб дізнатися, як визначити options параметр для різних сценаріїв, див. статтю Приклади.

Повернуте значення

Після успішного виконання повертає об'єкт обіцянки successCallback з такими властивостями:

Ім'я Тип Опис
entities Масив об'єктів JSON Кожен об'єкт позначає отриманий запис таблиці, що містить стовпці та їхні значення як key: value пари. Ідентифікатор запису таблиці отримується за замовчуванням.
nextLink String (необов'язково) Якщо кількість записів, які отримуються, перевищує значення, указане в maxPageSize параметрі запиту, ця функція повертає URL-адресу, щоб повернути наступну сторінку записів.
fetchXmlPagingCookie (необов'язково) Для операції на основі retrieveMultipleRecords fetchXml із довантаженням, коли загальна кількість записів перевищує значення довантаження, цей атрибут повертає файл cookie довантаження, який можна використовувати для подальшої операції fetchXml для отримання наступної сторінки записів.

Непідтримувані типи атрибутів для параметрів запиту OData в автономному режимі для мобільних пристроїв

Наведені нижче типи стовпців не підтримуються під час використання Xrm.WebApi.retrieveMultipleRecords з параметрами рядка запиту OData (наприклад $select , і $filter) в автономному режимі для мобільних пристроїв. Скористайтеся функцією FetchXML, якщо потрібно працювати з типом атрибута в цьому списку непідтримуваних типів атрибутів.

  • MultiSelectPicklist
  • File
  • Image
  • ManagedProperty
  • CalendarRules
  • PartyList
  • Virtual

Непідтримувані функції в автономному режимі для мобільних пристроїв

У мобільному режимі не підтримуються такі функції:

  • Функції групування та агрегації

Підтримувані операції фільтрування для кожного типу атрибута в мобільному автономному режимі за допомогою FetchXML

Під час роботи з FetchXML підтримуються такі операції для всіх типів атрибутів:

  • Дорівнює (eq)
  • Не дорівнює (neq)
  • Null-значення (null)
  • Not Null (not-null)

У таблиці нижче наведено інші операції, які підтримуються для кожного типу атрибута:

Тип атрибута Підтримувані операції
BigInt, Decimal, Double, Integer Більше (gt)
Більше або дорівнює (gte)
Менше (lt)
Менше або дорівнює (lte)
Логічне значення, клієнт In (in)
Not In (not-in)
EntityName, Picklist, State, Status Like (like)
Не подобається (not-like)
Починається з (begins-with)
Не починається з (not-begin-with)
Закінчується на (ends-with)
Не закінчується на (not-end-with)
In (in)
Not In (not-in)
Guid, підстановка In (in)
Not In (not-in)
Дорівнює ідентифікатору користувача (eq-userid)
Не дорівнює ідентифікатору користувача (ne-userid)
Гроші Більше (gt)
Більше або дорівнює (gte)
Менше (lt)
Менше або дорівнює (lte)
In (in)
Not In (not-in)
Власник In (in)
Not In (not-in)
Дорівнює ідентифікатору користувача (eq-userid)
Не дорівнює ідентифікатору користувача (ne-userid)
Дорівнює користувачу або команді (eq-useroruserteams)
String Like (like)
Не подобається (not-like)
Починається з (begins-with)
Не починається з (not-begin-with)
Закінчується на (ends-with)
Не закінчується на (not-end-with)
Дата та час Увімкнуто або після (on-or-after)
Увімкнуто (on)
Увімкнуто або перед (on-or-before)
Сьогодні (today)
Завтра (tomorrow)
Вчора (yesterday)
Наступні сім днів (next-seven-days)
Останні сім днів (last-seven-days)
Наступного тижня (next-week)
Минулого тижня (last-week)
Цього тижня (this-week)
Наступного місяця (next-month)
Минулого місяця (last-month)
Цього місяця (this-month)
Наступного року (next-year)
Минулого року (last-year)
Цього року (this-year)
Останні X днів (last-x-days)
Наступні X дні (next-x-days)
Останні тижні X (last-x-weeks)
Наступні тижні X (next-x-weeks)
Останні X місяців (last-x-months)
Наступні X місяці (next-x-months)
Останні X років (last-x-years)
Наступні X роки (next-x-years)
Більше (gt)
Більше або дорівнює (gte)
Менше (lt)
Менше або дорівнює (lte)

Приклади

За допомогою методу retrieveMultipleRecords можна досягти більшості сценаріїв і прикладів, згаданих у даних запиту за допомогою веб-інтерфейсу API. Деякі приклади наведено в наступному розділі.

Базове отримання кількох

У цьому прикладі наведено запити до набору таблиць облікових записів і використання $select$top параметрів і системного запиту, щоб повернути властивість імені для перших трьох облікових записів:

Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name&$top=3").then(
    function success(result) {
        for (var i = 0; i < result.entities.length; i++) {
            console.log(result.entities[i]);
        }                    
        // perform additional operations on retrieved records
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Базове отримання кількох за допомогою FetchXML

У цьому прикладі account сутність запитується за допомогою fetchXML.

var fetchXml = "?fetchXml=<fetch><entity name='account'><attribute name='accountid'/><attribute name='name'/></entity></fetch>";

Xrm.WebApi.retrieveMultipleRecords("account", fetchXml).then(
    function success(result) {
        for (var i = 0; i < result.entities.length; i++) {
            console.log(result.entities[i]);
        }                    

        // perform additional operations on retrieved records
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Отримання або фільтрування за властивостями підстановки

Для більшості однозначних властивостей навігації ви знайдете обчислювану властивість лише для читання, яка використовує таку умову іменування: _<name>_value де <name> це ім'я однозначної властивості навігації. Для фільтрування можна також використовувати певне значення однозначної властивості навігації. Однак ці параметри синтаксису не підтримуються для мобільних клієнтів в автономному режимі. Використовуйте ім'я властивості навігації з одним значенням для отримання та фільтрування. Крім того, автономний режим не підтримує порівняння властивостей навігації з null-значенням.

Додаткові відомості: Властивості підстановки

Ось приклади коду для обох сценаріїв:

Онлайновий сценарій (підключено до сервера)

У цьому прикладі наведено запити до набору таблиць облікових записів і використання $select$filter параметрів і системних запитів, щоб повернути ім'я та властивість primarycontactid для облікових записів, які мають певний основний контакт:

Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name,_primarycontactid_value&$filter=primarycontactid/contactid eq a0dbf27c-8efb-e511-80d2-00155db07c77").then(
    function success(result) {
        for (var i = 0; i < result.entities.length; i++) {
            console.log(result.entities[i]);
        }                    
        // perform additional operations on retrieved records
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Сценарій для мобільних пристроїв в автономному режимі

У цьому прикладі наведено запити на набір таблиць облікових записів і використання $select$filter параметрів і системного запиту, щоб повернути ім'я та властивість primarycontactid для облікових записів, які мають певний основний контакт під час роботи в автономному режимі:

Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name,primarycontactid&$filter=primarycontactid eq a0dbf27c-8efb-e511-80d2-00155db07c77").then(
    function success(result) {
        for (var i = 0; i < result.entities.length; i++) {
            console.log(result.entities[i]);
        }                    
        // perform additional operations on retrieved records
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Використання FetchXML для отримання або фільтрування за властивостями підстановки (онлайновий і автономний сценарій)

Скористайтеся параметром FetchXML під час підключення до Інтернету або в автономному режимі, щоб отримати name властивість і primarycontactid записи облікових записів, які мають основний контакт, який відповідає умові:

var fetchXml = `?fetchXml=
    <fetch>
       <entity name='account'>
          <attribute name='name'/>
          <attribute name='primarycontactid'/>
          <link-entity name='contact' from='contactid' to='primarycontactid'>
             <filter type='and'>
                <condition attribute='lastname' operator='eq' value='Contoso'/>
             </filter>
          </link-entity>
       </entity>
    </fetch>`;

Xrm.WebApi.retrieveMultipleRecords("account", fetchXml).then(
    function success(result) {
        for (var i = 0; i < result.entities.length; i++) {
            console.log(result.entities[i]);
        }                    

        // perform additional operations on retrieved records
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Укажіть кількість таблиць, які потрібно повернути на сторінці

У наведеному нижче прикладі показано, як використовувати maxPageSize параметр, щоб указати, що на кожній сторінці відображаються три записи.

Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name", 3).then(
    function success(result) {
        for (var i = 0; i < result.entities.length; i++) {
            console.log(result.entities[i]);
        }
        console.log("Next page link: " + result.nextLink);
        // perform additional operations on retrieved records
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

У цьому прикладі відображаються три записи та посилання на наступну сторінку. Ось приклад виходу з консолі в інструментах розробника браузера:

{@odata.etag: "W/"1035541"", name: "A. Datum", accountid: "475b158c-541c-e511-80d3-3863bb347ba8"}
@odata.etag: "W/"1035541""accountid: "475b158c-541c-e511-80d3-3863bb347ba8"name: "A. Datum"__proto__: Object
VM5595:4 
{@odata.etag: "W/"947306"", name: "Adventure Works", accountid: "a8a19cdd-88df-e311-b8e5-6c3be5a8b200"}
VM5595:4 
{@odata.etag: "W/"1033754"", name: "Alpine Ski House", accountid: "aaa19cdd-88df-e311-b8e5-6c3be5a8b200"}
VM5595:6 
Next page link: [Organization URI]/api/data/v9.0/accounts?$select=name&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257bAAA19CDD-88DF-E311-B8E5-6C3BE5A8B200%257d%2522%2520first%253d%2522%257b475B158C-541C-E511-80D3-3863BB347BA8%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E

Використовуйте частину запиту в URL-адресі властивості nextLink як значення параметра options в наступному виклику retrieveMultipleRecords , щоб надіслати запит на наступний набір записів. Не змінюйте та не додавайте додаткові параметри системного запиту до значення. Для кожного подальшого запиту на додаткові сторінки використовуйте те саме maxPageSize значення, яке ви використовували у вихідному запиті на отримання кількох. Крім того, кешуйте повернуті результати або значення nextLink властивості, щоб програма повернула раніше отримані сторінки.

Наприклад, щоб отримати наступну сторінку записів, передайте частину nextLink запиту URL-адреси до options параметра:

Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257bAAA19CDD-88DF-E311-B8E5-6C3BE5A8B200%257d%2522%2520first%253d%2522%257b475B158C-541C-E511-80D3-3863BB347BA8%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E", 3).then(
    function success(result) {
        for (var i = 0; i < result.entities.length; i++) {
            console.log(result.entities[i]);
        }
        console.log("Next page link: " + result.nextLink);
        // perform additional operations on retrieved records
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Цей запит повертає наступну сторінку набору результатів.

{@odata.etag: "W/"1035542"", name: "Blue Yonder Airlines", accountid: "aca19cdd-88df-e311-b8e5-6c3be5a8b200"}
VM5597:4 
{@odata.etag: "W/"1031348"", name: "City Power & Light", accountid: "aea19cdd-88df-e311-b8e5-6c3be5a8b200"}
VM5597:4 
{@odata.etag: "W/"1035543"", name: "Coho Winery", accountid: "b0a19cdd-88df-e311-b8e5-6c3be5a8b200"}
VM5597:6 
Next page link: [Organization URI]/api/data/v9.0/accounts?$select=name&$skiptoken=%3Ccookie%20pagenumber=%223%22%20pagingcookie=%22%253ccookie%2520page%253d%25222%2522%253e%253caccountid%2520last%253d%2522%257bB0A19CDD-88DF-E311-B8E5-6C3BE5A8B200%257d%2522%2520first%253d%2522%257bACA19CDD-88DF-E311-B8E5-6C3BE5A8B200%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E

Важливо

Значення nextLink властивості має кодування URI. Якщо URI закодувати значення, перш ніж надсилати його, відомості про файл cookie XML у URL-адресі спричиняє помилку.

Приклад FetchXML (онлайновий сценарій)

У наведеному нижче прикладі показано, як використовувати count параметр у програмі FetchXML, щоб указати, що на кожній сторінці відображаються три записи.

Нотатка

Файл cookie довантаження FetchXML повертається лише для онлайнових retrieveMultipleRecords операцій. (Xrm.WebApi.online). Вона не підтримується в автономному режимі.

var fetchXml = "?fetchXml=<fetch count='3'><entity name='account'><attribute name='accountid'/><attribute name='name'/></entity></fetch>";

Xrm.WebApi.online.retrieveMultipleRecords("account", fetchXml).then(
    function success(result) {
        for (var i = 0; i < result.entities.length; i++) {
            console.log(result.entities[i]);
        }          

        console.log("Paging cookie: " + result.fetchXmlPagingCookie);

        // perform additional operations on retrieved records
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

У цьому прикладі відображаються три записи та повернуто файл cookie довантаження FetchXML, щоб отримати результати наступної сторінки, якщо в наборі результатів більше записів. Ось приклад виходу з консолі в інструментах розробника браузера:

{
   "entities": [
      {
         "@odata.etag": "W/\"1035542\"",
         "accountid": "aca19cdd-88df-e311-b8e5-6c3be5a8b200",
         "name": "Blue Yonder Airlines"
      },
      {
         "@odata.etag": "W/\"1031348\"",
         "accountid": "aea19cdd-88df-e311-b8e5-6c3be5a8b200",
         "name": "City Power & Light"
      },
      {
         "@odata.etag": "W/\"1035543\"",
         "accountid": "b0a19cdd-88df-e311-b8e5-6c3be5a8b200",
         "name": "Coho Winery"
      }
   ],
   "fetchXmlPagingCookie": "<cookie pagenumber=\"2\" pagingcookie=\"%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b0748C6EC-55A8-EB11-B1B5-000D3AFEF6FA%257d%2522%2520first%253d%2522%257bFC47C6EC-55A8-EB11-B1B5-000D3AFEF6FA%257d%2522%2520%252f%253e%253c%252fcookie%253e\" istracking=\"False\" />"
}

Щоб отримати великі набори результатів із довантаженням, скористайтеся наведеним fetchXmlPagingCookie нижче прикладом.

function CreateXml(fetchXml, pagingCookie, page, count) {
  var domParser = new DOMParser();
  var xmlSerializer = new XMLSerializer();

  var fetchXmlDocument = domParser.parseFromString(fetchXml, "text/xml");

  if (page) {
    fetchXmlDocument
      .getElementsByTagName("fetch")[0]
      .setAttribute("page", page.toString());
  }

  if (count) {
    fetchXmlDocument
      .getElementsByTagName("fetch")[0]
      .setAttribute("count", count.toString());
  }

  if (pagingCookie) {
    var cookieDoc = domParser.parseFromString(pagingCookie, "text/xml");
    var innerPagingCookie = domParser.parseFromString(
      decodeURIComponent(
        decodeURIComponent(
          cookieDoc
            .getElementsByTagName("cookie")[0]
            .getAttribute("pagingcookie")
        )
      ),
      "text/xml"
    );
    fetchXmlDocument
      .getElementsByTagName("fetch")[0]
      .setAttribute(
        "paging-cookie",
        xmlSerializer.serializeToString(innerPagingCookie)
      );
  }

  return xmlSerializer.serializeToString(fetchXmlDocument);
}

function retrieveAllRecords(entityName, fetchXml, page, count, pagingCookie) {
  if (!page) {
    page = 0;
  }

  return retrievePage(entityName, fetchXml, page + 1, count, pagingCookie).then(
    function success(pageResults) {
      if (pageResults.fetchXmlPagingCookie) {
        return retrieveAllRecords(
          entityName,
          fetchXml,
          page + 1,
          count,
          pageResults.fetchXmlPagingCookie
        ).then(
          function success(results) {
            if (results) {
              return pageResults.entities.concat(results);
            }
          },
          function error(e) {
            throw e;
          }
        );
      } else {
        return pageResults.entities;
      }
    },
    function error(e) {
      throw e;
    }
  );
}

function retrievePage(entityName, fetchXml, pageNumber, count, pagingCookie) {
  var fetchXml =
    "?fetchXml=" + CreateXml(fetchXml, pagingCookie, pageNumber, count);

  return Xrm.WebApi.online.retrieveMultipleRecords(entityName, fetchXml).then(
    function success(result) {
      return result;
    },
    function error(e) {
      throw e;
    }
  );
}

var count = 3;
var fetchXml =
  '<fetch><entity name="account"><attribute name="accountid"/><attribute name="name"/></entity></fetch>';

retrieveAllRecords("account", fetchXml, null, count, null).then(
  function success(result) {
    console.log(result);

    // perform additional operations on retrieved records
  },
  function error(error) {
    console.log(error.message);
    // handle error conditions
  }
);

Скористайтеся параметром системного запиту $expand у властивостях навігації, щоб керувати даними, які повертаються з пов'язаних таблиць. У наведеному нижче прикладі показано, як отримати контакт для всіх записів облікового запису. Для пов'язаних записів контактів ви будете отримувати contactid лише поля:fullname

Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name&$top=3&$expand=primarycontactid($select=contactid,fullname)", 3).then(
    function success(result) {
        for (var i = 0; i < result.entities.length; i++) {
            console.log(result.entities[i]);
        }        
        // perform additional operations on retrieved records
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Попередній код повертає результат із такою схемою:

{
   "entities": [
      {
         "@odata.etag": "W/\"1459919\"",
         "name": "Test Account",
         "accountid": "119edfac-19c6-ea11-a81a-000d3af5e732",
         "primarycontactid": {
            "contactid": "6c63a1b7-19c6-ea11-a81a-000d3af5e732",
            "fullname": "Test Contact"
         }
      }
   ]
}

Нотатка

Подібно до онлайнового сценарію, скористайтеся параметром системного запиту $expand , щоб отримати дані з пов'язаних таблиць в автономному режимі. Проте зв'язки "багато-до-багатьох" не підтримуються в автономному режимі.

Застарілий метод для сценарію роботи в автономному режимі для мобільних пристроїв

Нотатка

Це @odata.nextLink застаріло для сценаріїв для мобільних пристроїв в автономному режимі. Хоча вона все ще підтримується для наявних настройок, більше не використовуйте її.

Автономна операція $expand повертає @odata.nextLink зауваження, що містять відомості про те, як отримати доступ до відомостей пов'язаного запису. idВикористовуйте , entityTypeі options параметри цього зауваження, щоб створити один або кілька додаткових Xrm.WebApi.offline.retrieveRecord запитів. Наведений нижче код містить повний приклад того, як це зробити:

Xrm.WebApi.offline.retrieveMultipleRecords("account", "?$select=name&$top=3&$expand=primarycontactid($select=contactid,fullname)").then(function(resultSet) {
    /**
     *  resultSet has a structure like:
     *  {
     *      "entities": [
     *          {
     *              "accountid": "119edfac-19c6-ea11-a81a-000d3af5e732",
     *              "name": "Test Account",
     *              "primarycontactid@odata.nextLink": {
     *                  "API": "{Xrm.Mobile.offline}.{retrieveRecord}",
     *                  "id": "119edfac-19c6-ea11-a81a-000d3af5e732",
     *                  "entityType": "account",
     *                  "options": "?$select=accountid&$expand=primarycontactid($select=contactid,fullname)&$getOnlyRelatedEntity=true"
     *              },
     *              "primarycontactid": {}
     *          }
     *      ]
     *  }
     *
     *  Notice the empty `primarycontactid` property but an additional `primarycontactid@odata.nextLink` 
     *  annotation that lets us know how to get to the linked data that we need.
     **/

    var promises = resultSet.entities.map(function(outerItem) {
        // We do a retrieveRecord() for every item in the result set of retrieveMultipleRecords() and then
        // combine the results into the retrieveMultipleRecords() result set itself.
       return Xrm.WebApi.offline.retrieveRecord(
           outerItem["primarycontactid@odata.nextLink"].entityType, 
           outerItem["primarycontactid@odata.nextLink"].id,
           outerItem["primarycontactid@odata.nextLink"].options
        ).then(function(innerResult) {            
            if (innerResult.value.length === 0) {
                return outerItem;
            }
            outerItem.primarycontactid = innerResult.value[0];
            return outerItem;
        });
    });

    return Promise.all(promises);
}).then(function(allResults) {
    for (var i = 0; i < allResults.length; i++) {
        console.log(allResults[i]);
    }
    // perform additional operations on retrieved records
}, function(error) {
    console.error(error);
    // handle error conditions
});

Додаткові приклади отримання кількох записів за допомогою веб-інтерфейсу API див . в статті Дані запиту за допомогою веб-інтерфейсу API.

Запит даних за допомогою веб-API
Xrm.WebApi.retrieveRecord
Xrm.WebApi