REST

Ошибка Error: 400: Bad Request для REST-запросов с HTTP-заголовком Referer на кириллице

После установки четвёртого пакета обновлени (Update Rollup 4) внезапно перестали работать клиентские REST-запросы из форм действий: задач, эл. писем, кастомных действий. Каждый вызов REST заканчивался ошибкой Error: 400: Bad Request: "Сервер обнаружил ошибку при обработке запроса. Дополнительные сведения см. в журналах сервера." (The server encountered an error processing the request. See server logs for more details.).

Error: 400: Bad Request: The server encountered an error processing the request. See server logs for more details [node:read-more:link]

Русский

Обзор MSCRM 2011 beta SDK - Использование REST: запросы и фильтры

Итак, надеюсь, теперь стало понятно, что же такое REST в Microsoft Dynamics CRM. Настало время показать примеры его использования.

Напомню, что все REST-запросы производятся к базовому URI:

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc

О том как лучше всего сформировать этот путь читайте в статье "Xrm.Page.context и функция GetGlobalContext".

Доступ к записям

Все записи Microsoft Dynamics CRM сгруппированы в так называемые EntitySet-коллекции. Доступ к определённому типу сущностей осуществляется через базовый URI плюс указание типа записей по следующей маске: [Entity Schema Name]+Set.

Например, чтобы получить список организаций, необходимо обратиться по такому адресу:

[ROOT_URL]/XRMServices/2011/OrganizationData.svc/AccountSet

Для обращения к конкретной организации URI дополняется идентификатором организации:

[ROOT_URL]/XRMServices/2011/OrganizationData.svc/AccountSet(guid'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

Просматривать данные REST-службы можно прямо в окне Internet Explorer, но для этого предварительно необходимо отключить опцию "Включить показ ленты чтения канала" в настройках браузера.

Отключении опции "Включить показ ленты чтения канала" в Internet Explorer

Стоит иметь в виду, что за раз служба возвращает 50 записей в списке. Если записей больше 50, в ответе службы будет ссылка на следующую партию записей в теге (или в свойстве __next в случае с JSON). [node:read-more:link]

Русский

Обзор MSCRM 2011 beta SDK - Введение в REST

Пока пропущу один небольшой раздел из серии обзоров SDK и расскажу про REST.

Взаимодействие с Microsoft Dynamics CRM 4.0 на клиентской стороне сводилось к вызову XML Web-сервиса путём формирования в клиентском скрипте SOAP-запроса. Плюсом данной технологии является интероперабельность - возможность использования сервиса независимо от технологий и языков программирования. И это был единственный способ взаимодействия с системой на стороне клиента. Минусов куда как больше:

  • сложная структура запроса - формирование объёмного XML-запроса занятие кропотливое,
  • трудности парсинга (разбора) ответа, т.к. необходимы знания объектной модели документа (DOM), регулярных выражений и XQuery/XPath для извлечения требуемых данных,
  • нетривиальная обработка ошибок.

Для решения возникающих трудностей с вызовом XML Web-сервиса CRM различными командами были предложены обёртки, призванные облегчить эту задачу:

Реализация REST в CRM 2011

В Microsoft Dynamics CRM 2011 данные теперь доступны через конечную точку REST. REST (Representational State Transfer) - архитектурный подход, который подразумевает использование ресурсов через обращение по уникальному URI-пути. А это значит, что теперь достаточно обратиться GET-, POST-, MERGE-, DELETE- или PUT-запросом на определённый URI, чтобы извлечь данные из CRM, обновить, удалить или сохранить запись. [node:read-more:link]

Русский
Subscribe to RSS - REST