Импорт данных из ELMA

Пример решения задачи на базе аналитической low-code платформы Loginom:

Компания ELMA – разработчик системы управления бизнес-процессами ELMA BPM и дополнительных приложений для автоматизации бизнеса, реализованных на ее основе. В системе существует набор корневых сервисов, которые служат для взаимодействия с сервером на уровне SDK. Основные возможности, которые предоставляют сервисы: авторизация, получение метаданных системы, чтение данных сущностей, отслеживание изменений сущностей на сервере.

Для всех веб-сервисов ELMA установлено единое корневое пространство имен. В данном примере показана возможность импорта данных из сервиса чтения данных сущностей IEntityService.

Системные требования

Платформа ELMA любых редакций версии 3.15.7.45427 и новее. В данном описании указаны ссылки на общедоступную демо-версию http://bpm-demo.elma-bpm.ru. Для применения сценария на действующей системе необходимо использовать реальный URL, который находится в компетенции администратора ELMA.

Исходные данные

Имя переменной
Метка Примечание
 ApplicationToken Токен приложения Требуется для идентификации доверенного приложения. Создается платформой ELMA, подробнее описано в разделе справки "Доверенные приложения и сессии соединения"
 Type Идентификатор типа объекта Необходимый идентификатор можно найти в разделе "Список типов объектов (сущностей)"

Исходные данные заданы как набор переменных для сценария для удобства редактирования.

Алгоритм

  1. Передача запроса на сервис авторизации и получение токена авторизации AuthToken.
  2. Передача авторизованного с помощью AuthToken запроса на получение всех объектов типа "Контрагент" (Идентификатор 1fb7545c-b103-44b1-9b01-dacb986db75d).
  3. Преобразование JSON-ответа от ELMA в таблицу.

Сценарий

Сценарий импорта из ELMA
Рисунок 1. Сценарий импорта из ELMA

 Все объекты "Контрагент"

Передает GET-запрос к веб-сервису чтения данных объектов http://bpm-demo.elma-bpm.ru/API/REST/Entity/help/operations/Query. Так как данный сервис может выдавать данные только по одному объекту, в мастере настройки необходимо создать параметр запроса с именем type, в котором будет передаваться значение нужного объекта.

Параметры подключения к REST-сервису
Рисунок 2. Параметры подключения к REST-сервису

На следующей странице мастера настройки необходимо указать имя пользователя и пароль, от имени которого будет производиться запрос.

Авторизация для выполнения запроса
Рисунок 3. Авторизация для выполнения запроса

 AuthToken

В подмодели заключены узлы для передачи запроса к сервису авторизации http://bpm-demo.elma-bpm.ru/API/REST/Authorization/LoginWith?basic=1 и преобразования полученного токена в переменную для дальнейшего использования в сценарии.

Подмодель AuthToken
Рисунок 4. Подмодель AuthToken

Примечание: время жизни токена составляет 15 минут. При необходимости получения нового токена, нужно просто перезапустить подмодель AuthToken.

 REST-запрос

Передает значение параметра type в теле запроса и полученный токен в заголовке запроса. Так как параметр type задан в виде переменной, для преобразования в таблицу применен соответствующий узел  "Переменные в таблицу".

 Преобразование JSON в таблицу

Преобразует JSON-ответ формата {key:value} в таблицу с помощью JavaScript. Извлеченная информация из тела ответа содержится в столбцах parent, key, type, value.

 Извлечение информации

Подмодель Извлечение информации
Рисунок 5. Подмодель Извлечение информации

Узлы внутри подмодели предназначены в основном для составления имен полей, так как в структуре JSON запрашиваемого объекта есть вложенные объекты.

Вложенные объекты ELMA
Рисунок 6. Вложенные объекты ELMA

В связи с тем, что у вложенных объектов одинаковые имена полей (Id, Name, Uid), для их различия производится конкатенация имени объекта с именами вложений, если объект не имеет пустое значение (null). В данном примере объекты MarketingGroup и MarketingActivity пустые, и в результирующей таблице фигурируют под теми же именами. Объекты Type и Industry имеют некоторые значения, соответственно будут представлены как Type Id, Type Name, Type Uid и т.д.

По умолчанию имена полей в результирующей таблице идут в алфавитном порядке, в примере же некоторые поля были перемещены вверх для наглядности. Ключевым полем является столбец root_key, уникальные значения которого извлекаются сценарием из структуры JSON.

Результирующая таблица
Рисунок 7. Результирующая таблица

Компоненты

Файлы

Скачать

results matching ""

    No results matching ""