Создание приложения для повторяющегося экспорта данных
Применяется к следующим приложениям Dynamics 365:
Human Resources
В этой статье описывается, как создать приложение логики Microsoft Azure, которое экспортирует данные из Microsoft Dynamics 365 Human Resources по регулярному расписанию. В учебнике для экспорта данных используется API пакета DMF REST Human Resources. После экспорта данных приложение логики сохраняет экспортированный пакет данных в папке Microsoft OneDrive для бизнеса.
Бизнес-сценарий
В одном обычном бизнес-сценарии для интеграции Microsoft Dynamics 365 данные должны быть экспортированы в нисходящий элемент в повторяющемся расписании. В этом учебнике описывается, как экспортировать все записи работников из Microsoft Dynamics 365 Human Resources и сохранить список работников в папке OneDrive для бизнеса.
Совет
Данные, экспортируемые в этом учебнике, и назначение экспортированных данных представляют собой только примеры. Их можно легко изменить в зависимости от потребностей бизнеса.
Используемые технологии
В этом учебнике используются следующие технологии:
Dynamics 365 Human Resources — Главный источник данных для работников, которые будут экспортированы.
Azure Logic Apps — технология, обеспечивающая согласование и планирование повторяющегося экспорта.
Соединители — технология, используемая для подключения приложения логики к необходимым конечным точкам.
Пакет DMF REST API — технология, используемая для запуска экспорта и отслеживания его выполнения.
OneDrive для бизнеса — место назначения для экспортируемых работников.
Необходимые условия
Прежде чем приступить к выполнению упражнения данного учебника, необходимо иметь следующие компоненты:
- Среда Human Resources, имеющая разрешения уровня администратора в среде
- Подписка Azure для размещения приложения логики
Упражнение
В конце этого упражнения у вас будет приложение логики, связанное с вашей средой Human Resources и вашей учетной записью OneDrive для бизнеса. Приложение логики экспортирует пакет данных из Human Resources, дождитесь завершения экспорта, загрузите экспортированный пакет данных и сохраните пакет данных в указанную папку OneDrive для бизнеса.
Готовое приложение логики будет похоже на следующее.
Шаг 1. Создание проекта экспорта данных в Human Resources
В Human Resources создайте проект экспорта данных, экспортирующий работников. Назовите проект Export Workers и убедитесь , что для параметра Создать пакет данных установлено значение Да. Добавьте один объект (Работник) в проект и выберите формат, в котором выполняется экспорт. (Формат Microsoft Excel используется в данном учебнике.)
Важно
Помните название проекта экспорта данных. Это потребуется при создании приложения логики на следующем шаге.
Шаг 2. Создание приложения логики
Здесь создается приложение логики.
На портале Azure создайте приложение логики.
В Logic Apps Designer начнем с чистого приложения логики.
Добавьте Триггер расписания повторения для запуска приложения логики каждые 24 часа (или в соответствии с выбранным расписанием).
Вызовите DMF REST API ExportToPackage, чтобы запланировать экспорт пакета данных.
Используйте действие Вызвать запрос HTTP из HTTP с соединителем Microsoft Entra.
- URL-адрес базового ресурса: URL-адрес вашей среды Human Resources (не включайте информацию о пути и пространстве имен.)
-
URI-адрес ресурса Microsoft Entra:
http://hr.talent.dynamics.com
Примечание
Служба Human Resources еще не предоставляет соединитель, который предоставляет все API REST, которые составляют пакет DMF REST API, например, ExportToPackage. Вместо этого необходимо вызывать API с помощью необработанных запросов HTTPS через HTTP с соединителем Microsoft Entra. Этот соединитель использует Microsoft Entra ID для аутентификации и авторизации в Human Resources.
Выполните вход в среду Human Resources с помощью HTTP с соединителем Microsoft Entra.
Настройте запрос HTTP POST для вызова DMF REST API ExportToPackage.
Метод: POST
URL-адрес запроса: https://<hostname>/namespaces/<namespace_guid>/data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.ExportToPackage
Состав запроса:
{ "definitionGroupId":"Export Workers", "packageName":"talent_package.zip", "executionId":"", "reExecute":false, "legalEntityId":"USMF" }
Совет
Возможно, потребуется переименовать каждый шаг, чтобы он более был более значимым, чем имя по умолчанию, Вызвать HTTP-запрос. Например, можно переименовать этот шаг ExportToPackage.
Инициализируйте переменную для хранения статуса выполнения запроса ExportToPackage.
Подождите, пока статус выполнения экспорта данных станет Успешно.
Добавьте цикл Until, который повторяется до тех пор, пока значение переменной ExecutionStatus не будет выполнено Успешно.
Добавьте действие Задержка, которое ждет пять секунд, прежде чем оно будет опрашивать текущее состояние выполнения экспорта.
Примечание
Установите предельное число 15, чтобы подождать максимум 75 секунд (15 итераций по 5 секунд), чтобы завершить экспорт. Если экспорт занимает больше времени, скорректируйте количество предельных значений.
Добавьте действие Вызывать HTTP- запрос для вызова DMF REST API GetExecutionSummaryStatus и задайте переменную ExecutionStatus для ответа результата GetExecutionSummaryStatus.
В этом примере проверка ошибок не выполняется. API GetExecutionSummaryStatus может возвращать неудачные состояния терминала (то есть состояние, отличное от Успешно). Дополнительные сведения см. в документации по API.
Метод: POST
URL-адрес запроса: https://<hostname>/namespaces/<namespace_guid>/data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetExecutionSummaryStatus
Состав запроса: body('Invoke_an_HTTP_request')?['value']
Примечание
Возможно, потребуется ввести значение Состав запроса либо в представлении кода, либо в редакторе функций конструктора.
Важно
Значение действия Задать переменную (body('Invoke_an_HTTP_request_2')?['value']) будет отличаться от значения для значения состава Вызвать HTTP-запрос 2, даже если в конструкторе будет показаны значения тем же образом.
Получите URL-адрес загрузки экспортированного пакета.
Добавьте действие Вызвать HTTP-запрос для вызова DMF REST API GetExportedPackageUrl.
- Метод: POST
- URL-адрес запроса: https://<hostname>/namespaces/<namespace_guid>/data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetExportedPackageUrl
- Состав запроса: {"executionId": body('GetExportedPackageURL')?['value']}
Загрузите экспортированный пакет.
Добавьте запрос HTTP GET (встроенное действие соединителя HTTP) для загрузки пакета по URL-адресу, который был возвращен на предыдущем шаге.
Метод: GET
URI: body('Invoke_an_HTTP_request_3').value
Примечание
Возможно, потребуется ввести значение URI либо в представлении кода, либо в редакторе функций конструктора.
Примечание
Этот запрос не требует дополнительной аутентификации, так как URL-адрес, возвращаемый API GetExportedPackageUrl, включает токен подписей общего доступа, который предоставляет доступ для загрузки файла.
Сохраните загруженный пакет, используя Соединитель OneDrive для бизнеса.
Добавьте действие Создать файл для OneDrive для бизнеса.
Подключитесь к учетной записи OneDrive для бизнеса.
- Путь к папке: выбранная папка
- Имя файла: worker_package.zip
- Содержимое файла: содержимое предыдущего шага (динамическое содержимое)
Шаг 3. Проверка приложения логики
Для проверки приложения логики нажмите кнопку Выполнить в конструкторе. Вы увидите, что все шаги приложения логики начинают выполняться. После 30–40 секунд приложение логики должно быть завершено, а папка OneDrive для бизнеса должна содержать новый файл пакета, содержащий экспортируемых работников.
Если для какого-либо этапа выводится сообщение об ошибке, выберите неудачный шаг в конструкторе и проверьте для него поля Вход и Выход. Выполните шаг отладки и корректировки, необходимый для исправления ошибок.
На следующем рисунке показано, как будет выглядеть Logic Apps Designer, когда все этапы приложения логики выполняются успешно.
Сводка
В этом учебнике было рассмотрено, как использовать приложение логики для экспорта данных из Human Resources и сохранения экспортированных данных в папке OneDrive для бизнеса. Шаги данного руководства можно изменить, если это необходимо для нужд бизнеса.