Створення сутностей масивом у фабриці даних (Batch creation of entities in data factory v2)

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.
Таблиця 1. Короткі відомості про делегат
Назва Пояснення

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

Batch creation of entities in data factory v2

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

${dataFactoryConnectorBatchCreateDelegateV2}

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

dataFactoryConnectorBatchCreateDelegateV2.json

1. Загальний опис

Загальне інтеграційне розширення-делегат надає можливість взаємодіяти з REST API реєстру та створювати сутності у базі даних масивом як LIST або CSV транзакційно — тобто зберігаються або усі дані, або жодні. Делегат налаштовується у сервісних задачах (Service Task) бізнес-процесу за допомогою шаблону Batch creation of entities in data factory v2.

Максимальна кількість записів для завантаження до БД через цей делегат — 50:

  • 50 записів для LIST

  • 50 записів для CSV.

Детальніше про застосування делегата у бізнес-процесах ви можете переглянути на сторінці Моделювання бізнес-процесу для завантаження даних з CSV-файлу масивом у БД.

2. Налаштування шаблону у бізнес-процесі

При налаштуванні делегата у додатку Camunda Modeler, переконайтеся, що папка із застосунком resources > element-templates містить файл dataFactoryConnectorBatchCreateDelegateV2.json.
  1. Відкрийте Service Task, натисніть Open Catalog та оберіть шаблон зі списку, після чого натисніть Apply.

    loading data from csv 05

  2. У полі Name вкажіть назву задачі.

  3. У полі Resource вкажіть ресурс, назву ендпоінту для таблиці, куди зберігатимуться дані. Наприклад, diplomas.

  4. У полі Upload type оберіть формат завантаження даних зі списку — CSV, або LIST.

    Для обох типів, CSV та LIST, конфігурація конектора є однаковою. Відрізнятиметься лише ${payload}, який зазвичай формується у попередній скрипт-задачі процесу та передається до сервісної задачі як змінна ${payload}.

    • Якщо необхідно завантажити дані масивом у CSV-форматі, то payload може формуватися у скрипті наступним чином:

      Приклад формування payload (CSV)
      set_transient_variable('payload', submission('signCsvFileActivity').formData.prop('csvFile').elements().first())

      Тобто отримуємо список елементів csvFile із форми (formData) за допомогою JUEL-функції submission(), формуємо об’єкт payload й надалі використовуємо як змінну при налаштуванні делегата. СSV-дані на форму можна завантажити за допомогою компонента Content (детальніше про моделювання форм — за посиланням).

    • Якщо необхідно завантажити дані масивом як LIST, то payload може формуватися у скрипті наступним чином:

      Приклад формування масиву даних (LIST)
      var data=
      '''
      [
         {
            "data":"test data",
            "description":"some description"
         },
         {
            "data2":"test data2",
            "description2":"some description2"
         }
      ]
      '''
      
      execution.setVariable("jsonArray", S(data))

      Створюємо рядок data, який містить JSON-масив із двома об’єктами. Кожен об’єкт містить пари ключ-значення — дані, які беруться з UI-форми. Результат записуємо до змінної jsonArray, яку потім використовуємо при налаштуванні делегата. дані на форму можна завантажити як масив за допомогою компонента Edit Grid (детальніше про моделювання форм — за посиланням).

  5. У полі Payload введіть дані для створення, що передаються як тіло запита. Наприклад, ${payload}.

  6. У полі X-Access-Token source вкажіть токен доступу користувача до системи, під яким виконується операція. Наприклад, ${completer('signCsvFileActivity').accessToken}.

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

  8. У полі Result variable вкажіть будь-яке ім’я для вихідного параметра (за замовчуванням — response).

    loading data from csv 04