Завдання 3. Моделювання бізнес-процесу з інтеграцією
- 1. Мета завдання
- 2. Передумови
- 3. Процес виконання завдання
- 3.1. Моделювання бізнес-процесу
- 3.1.1. Етапи моделювання бізнес-процесу
- 3.1.2. Створення пулу для бізнес-процесу
- 3.1.3. Створення початкової події
- 3.1.4. Створення користувацької задачі для внесення даних про лабораторію
- 3.1.5. Моделювання сервісної задачі для створення бізнес ключа
- 3.1.6. Створення сервісної задачі для пошуку даних про лабораторію
- 3.1.7. Створення та заповнення XOR-шлюзу
- 3.1.8. Створення гілки з валідаційною помилкою
- 3.1.9. Створення гілки з подальшим продовженням бізнес-процесу
- 3.1.10. Створення користувацької задачі для підпису даних
- 3.1.11. Створення задачі скриптування "Підготовка даних до запису (transient var)"
- 3.1.12. Моделювання сервісної задачі для підпису даних системним ключем
- 3.1.13. Створення сервісної задачі для збереження даних до Фабрики даних
- 3.1.14. Створення сервісної задачі для встановлення результату бізнес-процесу
- 3.1.15. Створення події завершення бізнес-процесу
- 3.1.16. Збереження змодельованої схеми бізнес-процесу
- 3.2. Моделювання форм
- 3.3. Моделювання доступу до бізнес-процесу
- 3.1. Моделювання бізнес-процесу
- 4. Завантаження файлів регламенту до віддаленого репозиторію Gerrit
1. Мета завдання
- Виконання цього завдання має на меті:
-
-
Навчити моделювати бізнес-процес, що має інтеграцію з фабрикою даних.
-
Навчити моделювати гілки у бізнес-процесі.
-
Навчити моделювати уніфіковані кроки у бізнес-процесах за допомогою
Call Activity
. -
Навчити моделювати форми та налаштовувати компоненти
Select
для отримання даних із фабрики даних.
-
2. Передумови
Перед проходженням завдання необхідно виконати наступні передумови:
-
Встановіть додаток Camunda Modeler і типові розширення до нього.
-
Більш детально ознайомтеся із компонентами бізнес-процесу за посиланням
-
Ознайомтеся з логікою роботи Call Activity за посиланням.
3. Процес виконання завдання
3.1. Моделювання бізнес-процесу
На етапі моделювання бізнес-процесу необхідно створити та зберегти відповідну BPMN-діаграму. Використовуйте файл add-lab.bpmn із готовою схемою бізнес-процесу для прикладу. |
3.1.1. Етапи моделювання бізнес-процесу
В рамках цього завдання моделювальник має створити бізнес-процес, що складається з наступних етапів:
Важливо! Після проходження всіх етапів, не забудьте зберегти змодельовану схему бізнес-процесу до відповідної папки з регламентом реєстру (див. Збереження змодельованої схеми бізнес-процесу). |
3.1.2. Створення пулу для бізнес-процесу
Найперше, змоделюйте пул для бізнес-процесу. Для цього виконайте кроки, подані нижче:
Моделювання діаграми бізнес-процесу має відбуватися в рамках елемента Create Pool/Participant. |
-
Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN. Для цього у лівому верхньому куті натисніть меню File → New File → BPMN Diagram:
-
На панелі інструментів зліва знайдіть елемент Create pool/Participant та перетягніть його до панелі моделювання:
-
Заповніть наступні поля відповідними значеннями:
-
у полі
Name
введітьСтворення лабораторії
; -
у полі
Process id
введітьadd-lab
; -
у полі
Process name
вкажітьСтворення лабораторії
.
-
3.1.3. Створення початкової події
Створіть початкову подію. Для цього виконайте наступні кроки:
-
На панелі інструментів, зліва, знайдіть елемент (коло) CreateStartEvent та перетягніть його до панелі моделювання:
-
На панелі налаштувань справа заповніть наступні параметри відповідними значеннями:
-
у полі
Name
введітьПочаток
; -
у полі
Initiator
введітьinitiator
.
-
3.1.4. Створення користувацької задачі для внесення даних про лабораторію
Далі створіть користувацьку задачу, призначену для додавання даних користувачем. Для цього виконайте наступні кроки:
-
Оберіть коло з початковою подією, змодельованою на попередньому етапі, та приєднайте нову задачу, натиснувши іконку Append Task:
-
Вкажіть тип задачі, натиснувши іконку ключа та обравши з меню пункт User Task (Користувацька задача):
-
На панелі налаштувань справа натисніть
Open Catalog
, оберіть шаблон User Form (Користувацька форма) та натиснітьApply
для підтвердження:
-
На панелі налаштувань справа заповніть наступні поля:
-
у полі
Id
зазначтеaddLabFormActivity
; -
у полі
Name
введітьДодати інформацію про лабораторію
; -
у полі
Form key
введітьadd-lab-bp-add-lab
; -
у полі
Assignee
вкажіть${initiator}
.
-
3.1.5. Моделювання сервісної задачі для створення бізнес ключа
-
Створіть новий Service Task (Сервісна задача):
-
Із каталогу розширень (
Open Catalog
) виберіть шаблон Define process business key. -
На панелі налаштувань задайте наступні поля (назву задачі та скрипт для генерування бізнес ключа):
-
у полі
Name
введіть Встановити бізнес ключ; -
у полі
Business key
введіть:${submission('addLabFormActivity').formData.prop('name').value().concat(' ').concat(submission('addLabFormActivity').formData.prop('edrpou').value())}
Детальніше ознайомитися з процесом налаштування бізнес-ключів можна за посиланням.
За допомогою бізнес-ключа користувач може відрізнити один бізнес-процес від іншого (або одну користувацьку задачу від іншої) в переліку бізнес-задач особистих Кабінетів посадової особи та отримувача послуг.
-
3.1.6. Створення сервісної задачі для пошуку даних про лабораторію
Далі необхідно створити сервісну задачу (Service Task) для пошуку даних про лабораторію. Для цього виконайте наступні кроки:
-
Створіть новий
Service Task
(Сервісна задача): -
Із каталогу розширень (
Open Catalog
) виберіть шаблон Search for entities in data factory (Пошук значень у фабриці даних) та натиснітьApply
для підтвердження: -
На панелі налаштувань справа заповніть наступні поля:
-
у полі
Id
введітьsearchForLabByNameAndEdrpouActivity
; -
у полі
Name
має бути вказаноПошук даних про лабораторію (transient var)
; -
у розділі Input Parameters → Resource зазначте наступне:
-
у полі
Variable Assignment Type
вкажітьString or Expression
; -
у полі
Variable Assignment Value
вкажітьlaboratory-equal-edrpou-name-count
.
-
-
у розділі Input Parameters → Search Variables вкажіть наступне:
-
у полі
Variable Assignment type
вкажітьMap
. -
у полі
Add Entry
додайте параметриname
таedrpou
, натиснувши на позначку плюса (+
) та вкажіть для них відповідні значення:Key Value name
${submission('addLabFormActivity').formData.prop('name').value()}
edrpou
${submission('addLabFormActivity').formData.prop('edrpou').value()}
-
-
у розділі Input Parameters → X-Access-Token вкажіть наступне:
-
у полі
Variable Assignment Type
вкажітьString or Expression
; -
у полі
Variable Assignment Value
вкажіть${completer('addLabFormActivity').accessToken}
.Після відпрацювання першої користувацької задачі (User Task), намагайтеся використовувати функцію
completer('<task_id>')
для отримання даних користувача, замістьinitiator()
.Токен доступу береться з АБО ініціатора (наприклад,
$initiator().accessToken}
), АБО виконавця останньої користувацької задачі (наприклад,${completer('taskDefinitionId').accessToken}
).JWT-токен має свій термін дії, який триває 300 секунд. Якщо вказати токен ініціатора, який запустив бізнес-процес, а користувач довго не виконував задачу, то термін дії токена спливе, й бізнес-процес необхідно буде запускати повторно.
Детальніше про JUEL-функції ви можете переглянути на сторінці JUEL-функції у бізнес-процесах.
-
-
У розділі Output Parameters → Result Variable параметр
Assign to Process Variable
заповніть значеннямresponse
:
-
3.1.7. Створення та заповнення XOR-шлюзу
Далі необхідно приєднати XOR-шлюз. Для цього виконайте кроки, подані нижче:
-
Оберіть прямокутник із сервісною задачею
Пошук даних про лабораторію (transient var)
, змодельованою на попередньому етапі, та приєднайте XOR-шлюз, натиснувши іконку Append Gateway: -
На панелі налаштувань справа вкажіть ID та назву шлюзу:
-
у полі
Id
введіть значенняisLaboratoryExistGateway
; -
у полі
Name
введіть значенняДані присутні?
.
-
3.1.8. Створення гілки з валідаційною помилкою
На цьому етапі необхідно створити гілку з валідаційною помилкою. Для цього виконайте кроки, подані нижче:
-
Оберіть ромб із XOR-шлюзом
Дані присутні?
, змодельованим на попередньому етапі, та створіть нову сервісну задачу, натиснувши іконку Append Task: -
Зазначте тип задачі, натиснувши іконку ключа та обравши з меню пункт Service Task (Сервісна задача):
-
Натисніть
Open Catalog
, оберіть шаблон Throw validation error та натиснітьApply
для підтвердження:-
На панелі налаштувань справа заповніть наступні поля:
-
у полі
Id
введітьthrowDuplicateLabValidationError
; -
у полі
Name
введітьФормування валідаційної помилки
. -
У розділі Input Parameters → Validation Errors зазначте наступне:
-
у полі
Variable Assignment Type
вкажіть типList
; -
для поля
Value
додайте наступні значення:Значення 1{"field": "name", "value": "${submission('addLabFormActivity').formData.prop('name').stringValue().replaceAll("\"", "\\\\\"")}", "message": "Дані про цю лабораторію вже присутні"}
Значення 2{"field": "edrpou", "value": "${submission('addLabFormActivity').formData.prop('edrpou').value()}", "message": "Дані про цю лабораторію вже присутні"}
-
-
Делегат Throw validation error має можливість виводити декілька повідомлень одночасно.
У разі формування цієї валідаційно помилки користувач побачить два спливних повідомлення (pop-up) приблизно наступного виду:
-
name: <введене значення name на формі> "Дані про цю лабораторію вже присутні".
-
edrpou: <введене значення edrpou на формі> "Дані про цю лабораторію вже присутні".
-
-
На гілці, що прямує від шлюзу
Дані присутні?
до сервісної задачіФормування валідаційної помилки
, потрібно налаштувати наступне:-
у полі
Id
введітьisLaboratoryAlreadyExistFlow
; -
у полі
Name
введітьтак
; -
у полі
Condition Type
введіть типExpression
; -
у полі
Expression
введіть${!response.value.responseBody.elements().isEmpty()}
.
-
3.1.9. Створення гілки з подальшим продовженням бізнес-процесу
Необхідно на гілці, що прямує від шлюзу Дані присутні?
до користувацької задачі Підписати дані про лабораторію
(див. нижче Створення користувацької задачі для підпису даних) налаштуйте такі параметри:
-
У полі
Id
лишіть значення за замовчуванням. -
У полі
Name
вкажітьні
. -
у полі
Condition Type
вкажітьExpression
. -
У полі
Expression
вкажіть${response.value.responseBody.elements().isEmpty()}
.
3.1.10. Створення користувацької задачі для підпису даних
Необхідно створити користувацьку задачу для підпису даних. Для цього виконайте наступні кроки:
-
Визначте тип задачі, натиснувши іконку ключа та обравши з меню пункт User Task (Користувацька задача).
-
Натисніть
Open Catalog
, оберіть шаблон Officer Sign Task та натиснітьApply
для підтвердження. -
На панелі налаштувань справа заповніть наступні поля:
-
у полі
Id
вкажітьsignLabFormActivity
; -
у полі
Name
введітьПідписати дані про лабораторію
; -
у полі
Form key
введітьadd-lab-sign-lab-data
; -
у полі
Assignee
вкажіть${initiator}
; -
у полі
Form data pre-population
введіть${submission('addLabFormActivity').formData}
.
-
3.1.11. Створення задачі скриптування "Підготовка даних до запису (transient var)"
Створіть нову задачу скриптування для підготовки даних до запису. Для цього виконайте подальші налаштування:
-
Оберіть прямокутник із користувацькою задачею, змодельованою на попередньому етапі, та приєднайте нову задачу, натиснувши іконку Append Task.
-
Вкажіть тип задачі, натиснувши іконку ключа та обравши з меню пункт Script Task (Задача скриптування).
-
Виділіть додану задачу скриптування та налаштуйте наступні параметри:
-
у полі
Id
вкажітьconvertSignFormDataToDataFactoryFormatActivity
; -
у полі
Name
вкажітьПідготовка даних для запису (transient var)
; -
у полі
Script Format
вкажіть тип (мову) скриптування —groovy
; -
у полі
Script Type
вкажіть тип скриптуInlineScript
; -
у полі
Script
вставте безпосередньо groovy-скрипт:Натисніть, щоб розгорнути або згорнути
def signedFormData = submission('signLabFormActivity').formData signedFormData.prop('oblast', signedFormData.prop('oblast').prop('code').value()) signedFormData.prop('koatuuId', signedFormData.prop('koatuu').prop('koatuuId').value()) signedFormData.deleteProp('koatuu') signedFormData.prop('ownershipId', signedFormData.prop('ownership').prop('ownershipId').value()) signedFormData.deleteProp('ownership') if (signedFormData.hasProp('premisesFile') && !signedFormData.prop('premisesFile').isNull() && !signedFormData.prop('premisesFile').elements().isEmpty()) { signedFormData.prop('premisesFile', signedFormData.prop('premisesFile').elements()[0]) } else { signedFormData.prop('premisesFile', null as String) } if(signedFormData.hasProp('accreditationFile') && !signedFormData.prop('accreditationFile').isNull() && !signedFormData.prop('accreditationFile').elements().isEmpty()) { signedFormData.prop('accreditationFile', signedFormData.prop('accreditationFile').elements()[0]) } else { signedFormData.prop('accreditationFile', null as String) } set_transient_variable('dataPayload', signedFormData)
-
3.1.12. Моделювання сервісної задачі для підпису даних системним ключем
Створіть сервісну задачу (Service Task) для підпису даних системним ключем та налаштуйте відповідне інтеграційне розширення. Для цього виконайте кроки, подані нижче:
-
Оберіть прямокутник зі скриптовою задачею, змодельованою на попередньому етапі, та приєднайте нову задачу, натиснувши іконку Append Task.
-
Вкажіть тип задачі, натиснувши іконку ключа та обравши з меню пункт Service Task.
-
На панелі налаштувань справа натисніть
Open Catalog
, щоб відкрити список доступних шаблонів делегатів. -
З отриманого переліку оберіть шаблон System signature by DSO service, який необхідно використовувати для підписання даних системним ключем.
-
На панелі налаштувань справа, відкрийте вкладку General та сконфігуруйте параметри делегата:
-
у полі
Name
вкажіть назву задачі — "Підписати дані системним ключем"; -
у полі
Payload
передайте дані, на які треба накласти системний підпис — ${dataPayload};-
у полі
X-Access-Token source
передайте токен доступу особи, яка наразі виконує задачу з ID'signLabFormActivity'
—${completer('signLabFormActivity').accessToken}
;Після відпрацювання першої користувацької задачі (User Task), намагайтеся використовувати функцію
completer('<task_id>')
для отримання даних користувача, замістьinitiator()
.Токен доступу береться з АБО ініціатора (наприклад,
$initiator().accessToken}
), АБО виконавця останньої користувацької задачі (наприклад,${completer('taskDefinitionId').accessToken}
).JWT-токен має свій термін дії, який триває 300 секунд. Якщо вказати токен ініціатора, який запустив бізнес-процес, а користувач довго не виконував задачу, то термін дії токена спливе, й бізнес-процес необхідно буде запускати повторно.
Детальніше про JUEL-функції ви можете переглянути на сторінці JUEL-функції у бізнес-процесах.
-
у полі
Result variable
зазначте назву змінної, до якої запишеться цифровий підпис вказаних даних —system_signature_ceph_key
.
-
-
3.1.13. Створення сервісної задачі для збереження даних до Фабрики даних
На цьому етапі необхідно створити та налаштувати нову сервісну задачу для збереження даних до фабрики даних. Для цього виконайте кроки, зазначені нижче:
-
На прикладі Створення сервісної задачі для пошуку даних про лабораторію створіть нову сервісну задачу
Зберегти дані до Фабрики даних
, натиснувши іконку ключа та обравши з меню пункт Service Task. -
Натисніть
Open Catalog
, оберіть шаблон Create entity in data factory та натиснітьApply
для підтвердження: -
На панелі налаштувань справа сконфігуруйте наступні параметри:
-
у полі
Id
введітьsendLabToDataFactoryActivity
; -
у полі
Name
введітьЗберегти дані до Фабрики даних
; -
у полі
Resource
вкажітьlaboratory
;У цьому прикладі назва ресурсу = назві таблиці
laboratory
у БД.Поле
Resource
використовується для визначення назви ресурсу (ендпоінт) у фабриці даних, до якого передаються дані.Зверніть увагу, що при моделюванні бізнес-процесу необхідно використовувати назви ресурсів через дефіс
"-"
(замість нижнього підкреслювання“_”
, як у БД), що складаються з 2-х і більше слів.- Наприклад:
-
Назва ресурсу у бізнес-процесі:
laboratory-test
-
у полі
Payload
введіть${dataPayload}
дані для збереження; -
у полі
X-Access-Token
введіть${completer('signLabFormActivity').accessToken}
;Після відпрацювання першої користувацької задачі (User Task), намагайтеся використовувати функцію
completer('<task_id>')
для отримання даних користувача, замістьinitiator()
.Токен доступу береться з АБО ініціатора (наприклад,
$initiator().accessToken}
), АБО виконавця останньої користувацької задачі (наприклад,${completer('taskDefinitionId').accessToken}
).JWT-токен має свій термін дії, який триває 300 секунд. Якщо вказати токен ініціатора, який запустив бізнес-процес, а користувач довго не виконував задачу, то термін дії токена спливе, й бізнес-процес необхідно буде запускати повторно.
Детальніше про JUEL-функції ви можете переглянути на сторінці JUEL-функції у бізнес-процесах.
-
у полі
X-Digital-Signature source
введіть${sign_submission('signLabFormActivity').signatureDocumentId}
; -
у полі
X-Digital-Signature-Derived source
введіть${system_signature_ceph_key}
; -
у полі
Result Variable
вкажітьresponse
, змінна, до якої записуються відповідь від сервера, якщо така буде.
-
3.1.14. Створення сервісної задачі для встановлення результату бізнес-процесу
На цьому етапі необхідно створити та налаштувати сервісну задачу, що встановлюватиме результат бізнес-процесу.
-
На прикладі Створення сервісної задачі для збереження даних до Фабрики даних змоделюйте нову сервісну задачу
Результат виконання "Лабораторія створена"
, натиснувши іконку ключа та обравши з меню пункт Service Task. -
Натисніть
Open Catalog
, оберіть шаблон Define business process status та натиснітьApply
для підтвердження: -
На панелі налаштувань справа сконфігуруйте наступні параметри:
-
у полі
Name
вкажітьРезультат виконання "Лабораторія створена"
; -
у полі
Status
вкажітьЛабораторія створена!
.
-
Поле
|
3.1.15. Створення події завершення бізнес-процесу
На цьому етапі необхідно створити подію, яка завершуватиме основний бізнес-процес.
-
На прикладі [create-end-event-call-activity] (зовнішнього підпроцесу Call Activity) приєднайте та налаштуйте подію завершення бізнес-процесу.
-
На панелі налаштувань справа для параметра
Name
вкажіть значенняЛабораторія створена
.
В результаті маємо змодельований складний бізнес-процес із налаштуванням та викликом зовнішнього підпроцесу Call Activity. |
3.1.16. Збереження змодельованої схеми бізнес-процесу
Після завершення процесу моделювання збережіть отриману схему бізнес-процесу із назвою add-lab.bpmn до регламентної папки bpmn проєкту в Gerrit-репозиторії. Для цього у лівому верхньому куті відкрийте меню File → Save File As.., введіть відповідну назву та шлях.
3.2. Моделювання форм
На етапі моделювання форм необхідно створити та прив’язати JSON-форми до попередньо змодельованих задач в рамках бізнес-процесу. Форми прив’язуються до бізнес-процесів за службовою назвою. Використовуйте файли add-lab-bp-add-lab.json та add-lab-sign-lab-data.json зі змодельованими формами для прикладу. |
3.2.1. Створення форми для внесення даних
Найперше, необхідно створити форму для внесення даних користувачем. Для цього виконайте наступні кроки:
-
Увійдіть до застосунку Кабінет адміністратора регламентів:
-
Створіть нову кандидат-версію Завдання 3:
-
Перейдіть до розділу
UI-форм
. Щоб створити нову форму для бізнес-процесу, натисніть кнопкуСтворити нову форму
:-
У новому вікні, у полі
Бізнес-назва форми
вкажіть назву, що відповідає назві змодельованої користувацької задачі —Додати інформацію про лабораторію
. -
Заповніть поле
Службова назва форми
значеннямadd-lab-bp-add-lab
(має відповідати значенню поляForm key
тієї ж користувацької задачі).
-
-
Перейдіть до вкладки
Конструктор
. -
З панелі компонентів зліва перетягніть компонент Text Field до панелі моделювання та виконайте подальші налаштування:
-
У новому вікні перейдіть на вкладку Display, заповніть поле
Label
значеннямНазва лабораторії
: -
Перейдіть на вкладку Validation та встановіть прапорець для параметра
Required
—true
: -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямname
.Значення поля
Property Name
повинно бути унікальним. -
Натисніть кнопку
Save
для збереження змін:
Аналогічно змоделюйте текстові поля (Text Field) для
Код ЄДРПОУ або РНОКПП
,Адреса
,Телефон
,Керівник
. -
-
З панелі компонентів зліва перетягніть компонент Checkbox до панелі моделювання та виконайте подальші налаштування:
-
Перейдіть на вкладку Display та заповніть поле
Label
значеннямНаявність акредитації
: -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямaccreditationFlag
. -
Натисніть кнопку
Save
для збереження змін:
-
-
З панелі компонентів зліва перетягніть компонент File до панелі моделювання та виконайте подальші налаштування:
-
Перейдіть на вкладку Display та заповніть поле
Label
значеннямДокументи про приміщення
: -
Перейдіть на вкладку File та заповніть наступні поля:
-
у полі
Storage
вкажітьUrl
; -
у полі
Url
вкажіть/documents
; -
у полі вкажіть
File Pattern
вкажітьapplication/pdf,image/jpeg,image/png
; -
у полі
File Minimum size
вкажіть0KB
; -
у полі
File Maximum size
вкажіть50MB
.
-
-
Перейдіть на вкладку Data та залишіть поле
Multiple Values
порожнім, тобто зі значеннямFalse
: -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямpremisesFile
. -
Натисніть кнопку
Save
для збереження змін:
-
-
З панелі компонентів зліва перетягніть компонент Select до панелі моделювання та виконайте подальші налаштування для отримання інформації з довідника:
-
Перейдіть на вкладку Display та заповніть поле
Label
значеннямФорма власності
: -
Перейдіть на вкладку Data та заповніть наступні поля:
-
у полі
Data Source Type
вкажіть значенняURL
; -
у полі
Data Source URL
вкажіть/officer/api/data-factory/ownership-contains-name
,де:
-
/officer
— вказує, що запит до довідника буде виконано із Кабінету посадової особи; -
/api/data-factory/
— вказує шлях до фабрики даних; -
ownership-contains-name
— назва критерію пошуку (search condition) для отримання даних із довідника форм власності, що був змодельований та доданий до репозиторію.
-
-
у полі
Value Property
вкажітьownershipId
; -
у полі
Item Template
вкажіть<span>{{ item.name }}</span>
,де
name
— назва параметра, що повертає критерій пошуку (search condition) та відображатиметься на формі.
-
-
На вкладці Validation встановіть прапорець для параметра
Required
—true
; -
На вкладці API заповніть поле
Property Name
значеннямownership
:
-
Натисніть кнопку
Save
для збереження змін.
-
-
За аналогією до попереднього кроку, виконайте налаштування для отримання інформації з довідника "Область". З панелі компонентів зліва перетягніть компонент Select до панелі моделювання:
-
Перейдіть на вкладку Display та заповніть поле
Label
значеннямОбласть
: -
Перейдіть на вкладку Data та заповніть наступні поля:
-
у полі
Data Source Type
вкажіть значенняURL
; -
у полі
Data Source URL
вкажіть/officer/api/data-factory/koatuu-obl-contains-name
,
де:
-
/officer
— вказує, що запит до довідника буде виконано із Кабінету посадової особи; -
/api/data-factory/
— вказує шлях до фабрики даних; -
koatuu-obl-contains-name
— назва критерію пошуку (search condition) для отримання даних із довідника областей, що був змодельований та доданий до репозиторію.
-
у полі
Value Property
введіть значенняcode
; -
у полі
Item Template
вкажіть<span>{{ item.name }}</span>
,де
name
— назва параметра, що повертає критерій пошуку (search condition) та відображатиметься на формі. -
у полі
Refresh Options On
зазначтеОбласть
(поточне значення буде видалено, коли значення в поліОбласть
зміниться); -
для поля
Clear Value On Refresh Options
встановіть прапорець —True
.
-
-
Перейдіть на вкладку Validation та встановіть прапорець для параметра
Required
—True
. -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямoblast
:
-
Натисніть кнопку
Save
для збереження змін.
-
-
Налаштуйте залежний компонент Select. З панелі компонентів зліва перетягніть компонент Select до панелі моделювання та виконайте подальші налаштування для отримання інформації з довідника:
-
Перейдіть на вкладку Display та заповніть поле
Label
значеннямНазва населеного пункту
:
-
Перейдіть на вкладку Data та заповніть наступні поля:
-
у полі
Data Source Type
введітьURL
; -
у полі
Data Source URL
введіть/officer/api/data-factory/koatuu-np-starts-with-name-by-obl
,де:
-
/officer
— вказує, що запит до довідника буде виконано із Кабінету посадової особи; -
/api/data-factory/
— вказує шлях до фабрики даних; -
koatuu-np-starts-with-name-by-obl
— назва критерію пошуку (search condition) для отримання даних із довідника населених пунктів, що був змодельований та доданий до репозиторію.
-
-
у полі
Value Property
вкажітьkoatuuId
; -
у полі
Filter Query
вкажітьlevel1={{data.oblast.code}}
,де:
-
level1
— вхідний параметр для ендпоінтуkoatuu-np-starts-with-name-by-obl
; -
{{data.oblast.code}}
-- шлях для отримання данихdata.Property name.Value Property
із попереднього компонента Select.
-
-
у полі
Item Template
вкажіть<span>{{ item.name }}</span>
,де
name
— назва параметру, що повертає search condition та буде відображений на формі. -
у полі
Refresh options On
введіть значенняОбласть
(поточне значення буде видалено, коли значення в поліОбласть
зміниться); -
встановіть прапорець для параметра
Clear Value On Refresh Options
—True
:
-
-
Перейдіть на вкладку Validation та встановіть прапорець для параметра
Required
—True
. -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямkoatuu
. -
Натисніть кнопку
Save
, щоб зберегти зміни.
-
-
Збережіть форму, натиснувши кнопку
Створити форму
у правому верхньому куті:
3.2.2. Створення форми для підпису даних
Після завершення попереднього етапу зі створенням форми для внесення даних, створіть ще одну форму для підпису даних.
Для цього скопіюйте попередньо змодельовану форму, натиснувши іконку копіювання — це дозволить створити форму із готового шаблону.
Налаштуйте параметри форми:
-
Введіть назву відповідної користувацької задачі
Підписати дані про лабораторію
в поліБізнес-назва форми
; -
Заповніть поле
Службова назва форми
значеннямadd-lab-sign-lab-data
(відповідає значенню поляForm key
тієї ж користувацької задачі); -
В усіх компонентах:
-
На вкладці Display встановіть прапорець для параметра Disabled.
-
Натисніть кнопку
Save
для збереження змін.
-
-
Збережіть форму, натиснувши кнопку
Зберегти зміни
у правому верхньому куті.
3.2.3. Завантаження змодельованих форм бізнес-процесу до локальної директорії
Завантажте форми, натиснувши іконку завантаження, та помістіть їх до регламентної папки forms проєкту в локальному Gerrit-репозиторії.
3.3. Моделювання доступу до бізнес-процесу
На цьому етапі необхідно надати доступ до бізнес-процесу в Кабінеті посадової особи для стандартної ролі Параметри доступу налаштовуються у конфігураційному файлі, що має назву officer.yml із директорії bp-auth. |
Відредагуйте файл bp-auth/officer.yml додавши наступні параметри:
authorization:
realm: 'officer'
process_definitions:
- process_definition_id: 'add-lab-test'
process_name: 'Створення лабораторії'
process_description: 'Регламент для створення лабораторій'
roles:
- officer
- process_definition_id: 'add-lab'
process_name: 'Створення лабораторії'
process_description: 'Регламент для створення лабораторій'
roles:
- officer
Збереження файлу з налаштуваннями доступу
Збережіть файл officer.yml до регламентної папки bp-auth проєкту в локальному Gerrit-репозиторії.
4. Завантаження файлів регламенту до віддаленого репозиторію Gerrit
Для успішного розгортання бізнес-процесу, форм, а також застосування правильних налаштувань доступу до бізнес-процесу у цільовому середовищі, адміністратор регламенту має завантажити збережені локально файли регламенту реєстру до віддаленого сховища коду Gerrit.
Для цього виконайте кроки з інструкції Процес розгортання регламенту в Gerrit.