Асинхронне завантаження даних з CSV: Async Data Load CSV Delegate

Цей документ надає інструкції щодо асинхронного завантаження даних з файлів CSV у вашому реєстрі через бізнес-процес.

1. Загальна інформація

Делегат Async Data Load CSV Delegate дозволяє асинхронно завантажувати дані з файлів CSV, оптимізуючи роботу з великими обсягами даних.

Таблиця 1. Короткі відомості про делегат
Назва Пояснення

Бізнес-назва інтеграційного розширення

Async Data Load CSV Delegate

Службова назва інтеграційного розширення

${asyncDataLoadDelegate}

Назва файлу в бібліотеці розширень

asyncDataLoadDelegate.json

2. Перед початком

Якщо ви використовуєте функціональність Кабінету адміністратора регламентів для розробки реєстру, вам не потрібно встановлювати типові розширення, додаткові зовнішні застосунки та плагіни. Портал містить усе необхідне вбудоване з коробки.

При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень.

3. Налаштування делегата

Делегат Async Data Load CSV Delegate використовується для асинхронного завантаження даних з файлів CSV у сервісні завдання (Service Task) бізнес-процесу. Це дозволяє ефективно обробляти великі набори даних, мінімізуючи час виконання процесу.

3.1. Налаштування сервісного завдання

  1. Створіть завдання типу Service Task у вашому бізнес-процесі.

  2. Назвіть завдання, наприклад, Асинхронне завантаження даних з CSV.

  3. Застосуйте шаблон делегата, обравши Async Data Load CSV Delegate зі списку в налаштуваннях завдання.

    async data load 01

3.2. Налаштування делегата

У розділі Custom properties налаштуйте параметри завантаження:

  1. Entity: diplomas.
    Це поле відповідає назві об’єкта у базі даних — таблиці або складного/композитного об’єкта.

  2. File: ${file}.
    Структура, яка представляє файл і складається з ключа до файлу і чексуми.

  3. (Опційно) Derived file: ${derivedFile}.
    У цьому полі вкажіть як змінну ключ похідного файлу та чексуму.

    Похідний файл — структура, яка представляє файл, створений у бізнес-процесі або в результаті опрацювання оригінального файлу.

    Якщо у бізнес-процесі сформовано похідний файл, то дані до БД будуть збережені саме з нього!

  4. Access token: ${completer('signCsvFileActivity').accessToken}.
    Вкажіть JWT-токен доступу користувача, що виконав останню користувацьку задачу.

  5. X-Digital-Signature source: ${sign_submission('signCsvFileActivity').signatureDocumentId}.
    У цьому полі вкажіть джерело цифрового підпису користувача.

  6. Result variable: result.
    Визначте змінну, до якої необхідно зберегти результат обробки файлу.

Приклад тіла повідомлення для збереження даних з файлу
{
  "payload": {
    "file": {
      "checksum": "....",
      "id": "process/bp-instance-id/uuid"
    },
    "derivedFile": {
      "checksum": "...",
      "id": "process/bp-instance-id/uuid"
    }
  }
}
Після завершення операції, делегат не отримує жодних даних у відповідь.

Результатом виконання цієї задачі є ініціація запиту до Kafka API для початку процесу завантаження даних. Бізнес-процес отримує повідомлення зі статусом завершення завантаження.

Див. детальніше щодо використання делегата у бізнес-процесі: Асинхронне завантаження даних до БД.

4. Приклад

Нижче наведено приклад, який демонструє використання делегата Async Data Load CSV Delegate в контексті бізнес-процесу:

bp async load 04
Зображення 1. Референтний приклад. Асинхронне завантаження даних
Де можна знайти приклад референтного бізнес-процесу?

Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого.

Еталонний регламент з прикладами для України зберігається в репозиторії ua-registry-demo-regulation.

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

Приклад BPMN-схеми процесу буде доступний у регламенті демо-реєстру за пошуком по ключовим словам — reference-save-array-from-csv-file. Назви форм ви можете знайти всередині відповідних користувацьких задач бізнес-процесу у полі Form key.