Створення сутності у Фабриці даних: Create entity in data factory
1. Загальна інформація
Інтеграційне розширення Create entity in data factory дозволяє налаштовувати завдання для створення нових сутностей у базі даних в рамках бізнес-процесу. Це розширення допомагає автоматизувати процеси збереження даних до БД, забезпечуючи належне оброблення запитів та передачу даних між процесами. Розширення додає різні властивості до завдання типу Service Task.
Назва | Пояснення |
---|---|
Бізнес-назва інтеграційного розширення |
Create entity in data factory |
Службова назва інтеграційного розширення |
|
Назва файлу у бібліотеці розширень |
dataFactoryConnectorCreateDelegate.json |
Розширення Create entity in data factory використовується, коли необхідно створити новий запис з певними даними у базі даних.
2. Перед початком
Якщо ви використовуєте функціональність Кабінету адміністратора регламентів для розробки реєстру, вам не потрібно встановлювати типові розширення, додаткові зовнішні застосунки та плагіни. Портал містить усе необхідне вбудоване з коробки. При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень. |
3. Налаштування
Делегат Create entity in data factory призначений для використання у завданнях типу Service Task бізнес-процесу. Він дозволяє налаштувати збереження даних до БД.
Створення сутності у Фабриці даних відбувається за допомогою POST -метода.
|
3.1. Налаштування завдання
-
Створіть завдання типу Service Task у вашому бізнес-процесі.
-
Назвіть завдання, наприклад,
Збереження даних до БД
. -
Застосуйте шаблон делегата, обравши Create entity in data factory зі списку в налаштуваннях завдання.
3.2. Налаштування делегата
Виконайте наступні налаштування:
- Resource
-
У полі Resource вкажіть назву ендпоінту / таблиці, в яку будуть зберігатися дані. Наприклад,
entity-build-acts
. - Payload
-
У полі Payload введіть дані для створення запису:
${payload}
. Це забезпечить передачу необхідних даних у задачу.Дані для створення запису можна отримати скриптом, сформувати JSON-об’єкт та передати у полі Payload у вигляді змінної.
Наприклад, це може бути об’єкт, що містить інформацію про будівлю:
def formDataForm = submission('UserTask_SignDataBuildInfo').formData def buildTypeId = formDataForm.prop('buildType').prop("buildTypeId").value() def data = [:] data['buildType'] = buildTypeId; data['buildNumber'] = formDataForm.prop('buildNumber').value() data['sectionNumber'] = formDataForm.prop('sectionNumber').value() data['flatNumber'] = formDataForm.prop('flatNumber').value() def payload = S(data, 'application/json') set_transient_variable('payload', payload)
Пояснення роботи скрипту, який формує об’єкт
payload
:-
Отримання даних форми:
def formDataForm = submission('UserTask_SignDataBuildInfo').formData
Цей рядок коду отримує дані з форми, яка була заповнена користувачем у завданні
UserTask_SignDataBuildInfo
. Дані форми зберігаються у зміннійformDataForm
. -
Отримання конкретного значення з форми:
def buildTypeId = formDataForm.prop('buildType').prop("buildTypeId").value()
Цей рядок отримує значення властивості
buildTypeId
, яка знаходиться всередині властивостіbuildType
. Це значення зберігається у зміннійbuildTypeId
. -
Формування об’єкта
data
:def data = [:] data['buildType'] = buildTypeId; data['buildNumber'] = formDataForm.prop('buildNumber').value() data['sectionNumber'] = formDataForm.prop('sectionNumber').value() data['flatNumber'] = formDataForm.prop('flatNumber').value()
Тут створюється порожній об’єкт
data
у вигляді мапи (словника). Далі у цю мапу додаються наступні поля:-
buildType
з отриманим значеннямbuildTypeId
. -
buildNumber
з значенням поляbuildNumber
з форми. -
sectionNumber
з значенням поляsectionNumber
з форми. -
flatNumber
з значенням поляflatNumber
з форми.
-
-
Створення об’єкта
payload
у форматі JSON:def payload = S(data, 'application/json')
Тут об’єкт
data
перетворюється у формат JSON та зберігається у зміннійpayload
. -
Встановлення змінної
payload
як транзитної:set_transient_variable('payload', payload)
Цей рядок зберігає змінну
payload
як транзитну змінну, що дозволяє використовувати її у подальших кроках процесу.
Таким чином, скрипт отримує дані з форми, формує об’єкт
payload
у форматі JSON, який містить необхідні дані для створення запису в базі даних, та зберігає цей об’єкт як транзитну змінну для подальшого використання у процесі.Дані, що передаються для створення запису, повинні мати відповідний формат:
Приклад. Тіло POST-запита{ "name": "string", "active": true, "buildTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
-
- X-Access-Token
-
У полі X-Access-Token вкажіть токен доступу користувача, під яким виконується операція. Цей токен забезпечує повноваження виконавця задачі щодо доступу до даних.
-
Наприклад, вкажіть токен ініціатора процесу через JUEL-функцію
initiator()
, використавши методaccessToken
:${initiator().accessToken}
-
Альтернативно, ви можете вказати токен виконавця останнього користувацького завдання. Для цього ви можете використати JUEL-функцію
completer()
, передавши ID попередньої задачі та використавши методaccessToken
. Наприклад:${completer('UserTask_SignDataBuildInfo').accessToken}
-
completer()
— назва JUEL-функції. -
'UserTask_SignDataBuildInfo'
— ID попередньої задачі користувача. -
accessToken
— метод, який передає JWT-токен користувача.
-
-
- X-Digital-Signature source
-
У полі X-Digital-Signature source вкажіть джерело цифрового підпису. Це поле вказує на Ceph-документ із цифровим підписом даних КЕП на стороні користувача (див. детальніше про підпис КЕП у делегатах Підписання даних КЕП надавача послуг: Officer Sign Task та Підписання даних КЕП отримувача послуг: Citizen Sign Task). Функція
sign_submission()
та методsignatureDocumentId
дозволяють отримати підписані дані з UI-форми та передати ID Ceph-документа. Наприклад:${sign_submission('UserTask_SignDataBuildInfo').signatureDocumentId}
-
sign_submission
— назва JUEL-функції. -
'UserTask_SignDataBuildInfo'
— ID завдання користувача, із даними, на які накладено КЕП. -
signatureDocumentId
— метод, який дозволяє отримати ID Ceph-документа, в якому зберігаються підписані КЕП дані.
-
- X-Digital-Signature-Derived source
-
У полі X-Digital-Signature-Derived source вкажіть джерело системного цифрового підпису (цифрової печатки). Це поле вказує на Ceph-документ із системним цифровим підписом (цифровою печаткою), накладеним на дані. Наприклад,
${system_signature_key}
.Значення ключа/ідентифікатора системного підпису можна отримати після підпису даних за допомогою делегата Підписання даних системним ключем: System signature by DSO service. Результат виконання операції підписання даних системним ключем буде збережено до вказаної змінної, наприклад,
system_signature_key
. Надалі ви зможете використати змінну в іншому місці процесу, зокрема під час збереження даних до БД або для генерування витягу тощо. - Result variable
-
У полі Result variable задайте ім’я для змінної, в якій буде зберігатися відповідь від операції створення сутності, наприклад,
response
.
Unresolved include directive in modules/registry-develop/pages/bp-modeling/bp/element-templates/service-task-templates/entity-management/create-entity.adoc - include::registry-develop:partial$snippets/element-templates/delegate-http-code-response.adoc[]
4. Приклад
Ось приклад, який показує, як відповідний делегат використовується у бізнес-процесі:

Де можна знайти приклад бізнес-процесу?Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого. Детальну інструкцію щодо розгортання демо-реєстру та отримання референтних прикладів моделювання ви знайдете на сторінці Розгортання демо-реєстру із референтними прикладами. Create entity in data factory — делегат, який використовується у всіх бізнес-процесах, які потребують збереження даних до БД. Ви можете використати один із багатьох прикладів процесів за пошуком по ключовим словам — reference-search-type-or. У Кабінеті користувача бізнес-процес буде доступний у розділі Доступні послуги. |