Створення сутностей масивом у фабриці даних v2: Batch creation of entities in data factory v2
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
Цей документ надає інструкції щодо завантаження даних до БД масивом.
1. Загальна інформація
Інтеграційне розширення Batch creation of entities in data factory v2 надає змогу створювати сутності масивом через REST API, що сприяє оптимізації взаємодії з базою даних.
Делегат є розширеною версією делегата Створення сутностей у фабриці даних масивом: Batch creation of entities in data factory. |
Назва | Пояснення |
---|---|
Бізнес-назва інтеграційного розширення |
Batch creation of entities in data factory v2 |
Службова назва інтеграційного розширення |
|
Назва файлу у бібліотеці розширень |
dataFactoryConnectorBatchCreateDelegateV2.json |
2. Перед початком
Якщо ви використовуєте функціональність Кабінету адміністратора регламентів для розробки реєстру, вам не потрібно встановлювати типові розширення, додаткові зовнішні застосунки та плагіни. Портал містить усе необхідне вбудоване з коробки. При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень. |
3. Налаштування делегата
Делегат Create Keycloak officer user призначений для використання у сервісних завданнях (Service Task) бізнес-процесу. Він надає можливість взаємодіяти з REST API реєстру та створювати сутності у базі даних масивом як LIST
або CSV
транзакційно — тобто зберігаються або усі дані, або жодні.
Максимальна кількість записів для завантаження до БД через цей делегат — 50:
|
Детальніше про застосування делегата у бізнес-процесах ви можете переглянути на сторінці Моделювання бізнес-процесу для завантаження даних з CSV-файлу масивом у БД. |
3.1. Налаштування сервісного завдання
-
Створіть завдання типу Service Task у вашому бізнес-процесі.
-
Назвіть завдання, наприклад,
Групове завантаження даних до БД
. -
Застосуйте шаблон делегата, обравши відповідний зі списку в налаштуваннях завдання.
3.2. Налаштування делегата
У розділі Custom properties налаштуйте параметри завантаження:
-
У полі Resource вкажіть ресурс, назву ендпоінту для таблиці, куди зберігатимуться дані. Наприклад,
diplomas
. -
У полі 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
(детальніше про моделювання форм — за посиланням).
-
-
-
У полі Payload введіть дані для створення, що передаються як тіло запита. Наприклад,
${dataPayload}
.Попередньо сформуйте Payload у скрипт-задачі процесу. Скрипт може виглядати наступним чином:
// Завантаження списку дипломів з відповіді форми def diplomasGrid = submission('signDiplomDataActivity').formData.prop('diplomas').elements() // Ініціалізація порожнього JSON об'єкта для збору даних def dataPayload = S([], 'application/json') // Перебір кожного диплома в списку і додавання його до dataPayload diplomasGrid.each{ dataPayload.append(it) } // Збереження оновленого списку дипломів як тимчасової змінної для подальшого використання set_transient_variable('dataPayload', dataPayload)
- Пояснення:
-
Цей скрипт обробляє інформацію про дипломи, отриману через форму. Ось, що він робить:
-
Завантажує список дипломів із форми.
-
Створює порожній контейнер для зберігання даних дипломів у форматі JSON.
-
Додає кожен диплом до цього контейнера.
-
Зберігає оновлені дані про дипломи у тимчасову змінну для подальшого використання.
-
-
У полі X-Access-Token вкажіть токен доступу користувача до системи, під яким виконується операція. Наприклад,
${completer('signDiplomDataActivity').accessToken}
. -
У полі X-Digital-Signature source вкажіть джерело цифрового підпису. Наприклад,
${sign_submission('signDiplomDataActivity').signatureDocumentId}
. -
У полі Result variable вкажіть назву змінної, в яку потрібно записати результат. За замовчуванням —
response
.
Після успішного завершення операції, делегат отримує у відповідь HTTP-код:
Тіло відсутнє. |
4. Приклад
Нижче наведено приклад, який демонструє використання делегата Batch creation of entities in data factory v2:

Де можна знайти приклад бізнес-процесу?Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого. Еталонний регламент з прикладами для України зберігається в репозиторії Детальну інструкцію щодо розгортання демо-реєстру та отримання референтних прикладів моделювання ви знайдете на сторінці Розгортання демо-реєстру із референтними прикладами. Приклад BPMN-схеми процесу буде доступний у регламенті демо-реєстру за пошуком по ключовим словам — feature-save-array-from-edit-grid. Назви форм ви можете знайти всередині відповідних користувацьких задач бізнес-процесу у полі |
5. Пов’язані сторінки
-
Створення сутностей у фабриці даних масивом: Batch creation of entities in data factory
-
Моделювання бізнес-процесу для завантаження даних з CSV-файлу масивом у БД
-
Асинхронне завантаження даних з CSV: Async Data Load CSV Delegate
-
Створення сутності у фабриці даних (Create entity in data factory)
-
Створення декількох сутностей в рамках однієї транзакції (Create nested entities in data factory)