Описание
Клиентские приложения имеют возможность получать доступ к развернутым в D365O по умолчанию сервисам типа REST Metadata, которых не было в AX2012. Эти веб-сервисы позволяют просмотреть метаданные по имеющимся в D365O меткам и data entity, передавая их в формате JSON.
Для просмотра метаданных по меткам нужно сформировать URL запрос вида «АДРЕС D365O»/metadata/Labels(Id=’«КОД МЕТКИ»’,Language=’«ЯЗЫК МЕТКИ»’). Например, https://oit-adm-boryseda2b5401719f08ddevaos.cloudax.dynamics.com/metadata/Labels(Id=’@SYS1′,Language=’en-us’). При этом возвращается следующая информация:
То есть, такой запрос позволяет получить текст метки, код и язык которой мы ввели.
Для вывода информации по конкретной data entity, нужно сформировать запрос следующим образом: «АДРЕС D365O»/metadata/DataEntities(Name=’«ИМЯ DATA ENTITY»’). Например: https://ualoc- boryseda2b5401719f08ddevaos.cloudax.dynamics.com/metadata/DataEntities(Name=’ACOJournalNameEntity’). При этом возвращается следующая информация:
Для просмотра метаданных по всем data entity нужно сформировать URL запрос вида «АДРЕС D365O»/metadata/DataEntities. Например, boryseda2b5401719f08ddevaos.cloudax.dynamics.com/metadata/DataEntities. При этом возвращается следующая информация:
Полученная информация может быть использована для помощи в создании клиентских приложений, вызывающих веб-сервисы OData, так как содержит используемые со стороны клинта названия data entity, а также позволяет понять, возможно ли только считывать данные data entity, или же можно их модифицировать.
Вызов веб-сервиса D365O из Desktop приложения
Подготовительный этап
Подготовительный этап
При использовании вспомогательного проекта JsonRequestSender, вызов веб-сервиса сводится к одной команде. Для этого сначала нужно создать объект класса RequestSender_OAuth, так как в вебсервисах D365O используется аутентификация OAuth.
Далее, так как REST Metadata веб-сервисы D365O используют GET запросы, отправляем GET запрос, по правилам запросов REST Metadata.
В метод sendGETRequest() передаются один дженерик класс и один аргумент.
Дженерик класс определяет то, объект какого класса должен использоваться в качестве выходного контракта с данными в вебсервисе.
Аргумент определяет относительный адрес вызываемого метода вебсервиса в ресурсе. В данном случае относительный адрес показывает, что нужно вернуть метку с ID равным значению переменной labelId и языком равным значению переменной labelLanguage.
Пример
В качестве примера приведено приложение Microsoft forms для получения значений меток и информации о data entity системы.
Для получения значения метки нужно в двух верхних полях ввести ID и код языка метки, после чего нажать кнопку Get label value.
Для получения информации о data entity нужно нажать кнопку Get data entity information, при желании указав AOT-название конкретной data entity над кнопкой.