Завдання 7. Моделювання бізнес-процесу із викликом ШБО "Трембіта"
- 1. Мета завдання
- 2. Передумови
- 3. Процес виконання завдання
- Чекліст моделювання бізнес-процесу
- 3.1. Моделювання бізнес-процесу
- 3.1.1. Створення пулу для бізнес-процесу
- 3.1.2. Створення початкової події
- 3.1.3. Створення користувацької задачі "Внесення даних для пошуку"
- 3.1.4. Створення сервісної задачі пошуку інформації за суб’єктом в ЄДР
- 3.1.5. Створення задачі скриптування підготування даних для користувацької задачі 2
- 3.1.6. Створення користувацької задачі "Відображення інформації за суб’єктом у ЄДР"
- 3.1.7. Створення сервісної задачі пошуку деталізованої інформації за суб’єктом в ЄДР
- 3.1.8. Створення задачі скриптування підготування даних для користувацької задачі 3
- 3.1.9. Створення користувацької задачі відображення деталізованої інформації за суб’єктом в ЄДР
- 3.1.10. Створення події завершення бізнес-процесу
- 3.1.11. Збереження змодельованої схеми бізнес-процесу
- 3.2. Моделювання форм
- 3.3. Моделювання доступу до бізнес-процесу
- 4. Завантаження файлів регламенту до віддаленого репозиторію Gerrit
- 5. Додатки
1. Мета завдання
Мета завдання — навчитися моделювати бізнес-процес із викликом зовнішніх сервісів через ШБО "Трембіта".
- В рамках цього завдання моделювальники мають:
-
-
змоделювати 1 бізнес-процес;
-
змоделювати 3 форми внесення даних до бізнес-процесу;
-
надати доступи до бізнес-процесу для відповідних ролей;
-
зберегти створені артефакти до локального git-репозиторію;
-
перенести локальні зміни до віддаленого Gerrit-репозиторію;
-
перевірити працездатність бізнес-процесу.
-
2. Передумови
Перед проходженням завдання необхідно виконати наступні передумови:
3. Процес виконання завдання
На етапі моделювання бізнес-процесу необхідно створити та зберегти відповідну BPMN-діаграму. Використовуйте файл trembita-integration.bpmn із готовою схемою бізнес-процесу як приклад. |
Чекліст моделювання бізнес-процесу
- Використовуйте наведений чекліст із переліком кроків для створення бізнес-процесу:
-
-
Створення сервісної задачі пошуку інформації за суб’єктом в ЄДР
-
Створення задачі скриптування підготування даних для користувацької задачі 2
-
Створення користувацької задачі "Відображення інформації за суб’єктом у ЄДР"
-
Створення сервісної задачі пошуку деталізованої інформації за суб’єктом в ЄДР
-
Створення задачі скриптування підготування даних для користувацької задачі 3
-
Створення користувацької задачі відображення деталізованої інформації за суб’єктом в ЄДР
3.1. Моделювання бізнес-процесу
3.1.1. Створення пулу для бізнес-процесу
Найперше, змоделюйте пул для бізнес-процесу. Для цього виконайте кроки, подані нижче:
Змоделюйте діаграму бізнес-процесу в рамках елемента Create Pool/Participant. |
-
Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN. Для цього у лівому верхньому куті натисніть меню
File > New File > BPMN Diagram
. -
На панелі інструментів зліва знайдіть елемент Create pool/Participant та перетягніть його до панелі моделювання.
-
Заповніть наступні поля:
-
У полі
Participant Name
введіть значенняTrembita Integration Demo
. -
У полі
Process id
вкажітьtrembita-integration-demo
. -
У полі
Process Name
введітьTrembita Integration Demo
.
-
3.1.2. Створення початкової події
Створіть початкову подію. Для цього виконайте наступні кроки:
-
На панелі інструментів зліва знайдіть елемент (коло) CreateStartEvent та перетягніть його до панелі моделювання.
-
На панелі налаштувань справа заповніть наступні параметри:
-
у полі
Initiator
введітьinitiator
. -
у полі
Name
вкажіть значенняПочаток
.Параметр Name
має лише інформаційне значення і не впливає на логіку виконання бізнес-процесу. Можна лишити його порожнім.
-
3.1.3. Створення користувацької задачі "Внесення даних для пошуку"
Далі створіть користувацьку задачу, призначену для додавання даних користувачем. Для цього виконайте наступні кроки:
-
Оберіть коло з початковою подією, змодельованою на попередньому етапі, та приєднайте нову задачу, натиснувши іконку
Append Task
. -
Вкажіть тип задачі, натиснувши іконку ключа та обравши з меню пункт User Task (Користувацька задача).
-
На панелі налаштувань справа натисніть
Open Catalog
, оберіть шаблон User Form (Користувацька форма) та натиснітьApply
для підтвердження. -
На панелі налаштувань справа заповніть наступні поля:
-
у полі
Id
зазначтеtask1
; -
у полі
Name
введітьuser task1
; -
у полі
Form key
введітьsearch-subject-form
; -
у полі
Assignee
вкажіть${initiator}
.
-
3.1.4. Створення сервісної задачі пошуку інформації за суб’єктом в ЄДР
Далі необхідно створити сервісну задачу пошуку інформації за суб’єктом в ЄДР (search subject). Для цього виконайте наступні кроки:
-
Оберіть прямокутник із користувацькою задачею
user task1
, змодельованою на попередньому етапі, та приєднайте нову сервісну задачу, натиснувши іконкуAppend Task
. -
Вкажіть тип задачі, натиснувши іконку ключа та обравши з меню пункт Service Task (Сервісна задача):
-
На панелі налаштувань справа натисніть
Open Catalog
, оберіть шаблон Search Subjects Edr Registry та натиснітьApply
для підтвердження. -
На панелі налаштувань справа заповніть наступні поля:
-
у полі
Name
введітьsearch subject
; -
у полі
Authorization token
вкажіть прочерк (-
); -
у полі
Code
вкажіть${submission('task1').formData.prop('code').value()}
; -
у полі
Result variable
variable вкажіть значення змінної, до якої запишеться результат —ssResponse
.
-
{
"name":"Сидоренко Василь Леонідович",
"code":"88888888",
"id":9,
"state":"CANCEL_STATE"
}
Детальну інформацію з описом сервісу ЄДР ви можете знайти на сторінці Реєстри та системи ШБО "Трембіта". |
3.1.5. Створення задачі скриптування підготування даних для користувацької задачі 2
На цьому етапі необхідно змоделювати задачу скриптування (prepare form data for task2) для підготовки даних до показу. Для цього виконайте наступні кроки:
-
Оберіть прямокутник із сервісною задачею search subject, змодельованою на попередньому етапі, та приєднайте нову задачу скриптування, натиснувши іконку
Append Task
. -
Вкажіть тип задачі, натиснувши іконку ключа та обравши з меню пункт Script Task (Задача скриптування).
-
Виділіть додану задачу скриптування та налаштуйте наступні параметри:
-
у полі
Name
вкажітьprepare form data for task2
; -
у полі
Script Format
вкажіть тип (мову) скриптування —groovy
; -
у полі
Script Type
вкажіть тип скриптуInlineScript
; -
у полі
Script
вставте groovy-скрипт:def response = ssResponse.responseBody.elements().get(0) def formPrePopulation = [:] formPrePopulation['id'] = response.prop('id').value().toString() formPrePopulation['code'] = response.prop('code').value() formPrePopulation['name'] = response.prop('name').value() formPrePopulation['state'] = response.prop('state').value() execution.removeVariable('payload') set_transient_variable('payload', S(formPrePopulation, 'application/json'))
-
3.1.6. Створення користувацької задачі "Відображення інформації за суб’єктом у ЄДР"
На прикладі Створення користувацької задачі "Внесення даних для пошуку" необхідно створити користувацьку задачу відображення інформації за суб’єктом в ЄДР (user task2). Для цього виконайте наступні кроки:
-
Визначте тип задачі, натиснувши іконку ключа та обравши з меню пункт User Task (Користувацька задача).
-
Натисніть
Open Catalog
, оберіть шаблон User Form та натиснітьApply
для підтвердження. -
На панелі налаштувань справа заповніть наступні поля:
-
у полі
Id
вкажітьtask2
; -
у полі
Name
введітьuser task2
; -
у полі
Form key
введітьdisplay-search-subject-form
; -
у полі
Assignee
вкажіть${initiator}
; -
у полі
Form data pre-population
введіть${payload}
.
-
3.1.7. Створення сервісної задачі пошуку деталізованої інформації за суб’єктом в ЄДР
-
На прикладі Створення сервісної задачі пошуку інформації за суб’єктом в ЄДР створіть та приєднайте нову сервісну задачу пошуку деталізованої інформації за суб’єктом в ЄДР (get subject detail), натиснувши іконку ключа та обравши з меню пункт
Service Task
. -
Натисніть
Open Catalog
, оберіть шаблон Get Subject Detail Edr Registry та натиснітьApply
для підтвердження. -
На панелі налаштувань справа сконфігуруйте наступні параметри:
-
у полі
Name
введітьget subject detail
; -
у полі
Authorization token
вкажіть прочерк (-
); -
у полі
Id
введіть${submission('task2').formData.prop('id').value()}
;Тут ми використовуємо id запису, отриманого на кроці Створення сервісної задачі пошуку інформації за суб’єктом в ЄДР для одержання деталізованої інформації за цим же суб’єктом в ЄДР. -
у полі
Result variable
вкажіть значення змінної, до якої запишеться результат —sdResponse
.
-
{
"address":"м.Харків, Київський район ВУЛИЦЯ СУМСЬКА буд. 1221",
"email":"harry@com.ua"
}
Детальну інформацію з описом сервісу ЄДР ви можете знайти на сторінці Реєстри та системи ШБО "Трембіта". |
3.1.8. Створення задачі скриптування підготування даних для користувацької задачі 3
-
На прикладі Створення задачі скриптування підготування даних для користувацької задачі 2 створіть та приєднайте нову задачу скриптування prepare from data for task3, натиснувши іконку ключа та обравши з меню пункт
Script Task
. -
Оберіть прямокутник із сервісною задачею (get subject detail), змодельованою на попередньому етапі, та приєднайте нову задачу скриптування, натиснувши іконку
Append Task
-
На панелі налаштувань справа сконфігуруйте наступні параметри:
-
у полі
Name
вкажітьprepare form data for task3
; -
у полі
Script Format
вкажіть тип (мову) скриптування —groovy
; -
у полі
Script Type
вкажіть тип скриптуInlineScript
; -
у полі
Script
вставте безпосередньо groovy-скрипт:def formPrePopulation = [:] ['email', 'address'].each { formPrePopulation[it] = sdResponse.responseBody.prop(it).value() } execution.removeVariable('payload') set_transient_variable('payload', S(formPrePopulation, 'application/json'))
-
3.1.9. Створення користувацької задачі відображення деталізованої інформації за суб’єктом в ЄДР
На прикладі Створення користувацької задачі "Внесення даних для пошуку" необхідно створити користувацьку задачу (user task3). Для цього виконайте наступні кроки:
-
Визначте тип задачі, натиснувши іконку ключа та обравши з меню пункт
User Task
(Користувацька задача). -
Натисніть
Open Catalog
, оберіть шаблон User Form та натиснітьApply
для підтвердження. -
На панелі налаштувань справа заповніть наступні поля:
-
у полі
Name
введітьuser task3
; -
у полі
Form key
введітьdisplay-additional-info
; -
у полі
Assignee
вкажіть${initiator}
; -
у полі
Form data pre-population
введіть${payload}
.
-
3.1.10. Створення події завершення бізнес-процесу
-
Оберіть прямокутник із щойно створеною задачею Створення користувацької задачі відображення деталізованої інформації за суб’єктом в ЄДР, приєднайте та налаштуйте подію, що завершує процес, натиснувши іконку
Append EndEvent
: -
На панелі налаштувань справа у полі
Name
вкажітьКінець
.
3.1.11. Збереження змодельованої схеми бізнес-процесу
Після завершення процесу моделювання збережіть отриману схему бізнес-процесу із назвою trembita-integration.bpmn регламентної папки bpmn проєкту в Gerrit-репозиторії. Для цього у лівому верхньому куті відкрийте меню File > Save File As..
, введіть відповідну назву та шлях.
3.2. Моделювання форм
На етапі моделювання форм необхідно створити та прив’язати JSON-форми до попередньо змодельованих задач в рамках бізнес-процесу. Форми прив’язуються до бізнес-процесів за службовою назвою. Використовуйте файли display-additional-info.json, display-search-subject-form.json та search-subject-form.json зі змодельованими формами для прикладу. |
Чекліст моделювання UI-форм
- Використовуйте наведений чекліст із переліком кроків для створення форм:
Після проходження всіх етапів, завантажте та збережіть файли зі схемами форм до відповідної папки з регламентом реєстру (див. Завантаження змодельованих форм бізнес-процесу до локальної директорії) |
3.2.1. Створення форми внесення даних для пошуку
Змоделюйте форму для внесення даних для пошуку — search-subject-form .
|
-
Увійдіть до застосунку Кабінет адміністратора регламентів.
За замовчуванням користувач опиняється на домашній сторінці Огляд версії майстер-версії регламенту.
Детальніше про майстер-версію регламенту ви можете переглянути за посиланням:
Майстер-версія змін до регламенту реєстру дозволяє працювати з UI-формами лише у режимі перегляду.
Для того, щоб створювати, або редагувати будь-які сутності регламенту (форми, бізнес-процеси тощо), а також їх складові, необхідно створити нову версію-кандидат на внесення змін до регламенту реєстру і працювати в ній.
-
Створіть новий запит на внесення змін до регламенту, тобто створіть нову версію-кандидат на внесення змін.
АБО
Оберіть наявну версію-кандидат на внесення змін.
Детальніше про створення та перегляд запитів на внесення змін до регламенту ви можете переглянути за посиланнями:
-
В рамках своєї версії-кандидата перейдіть до розділу UI-форми.
-
Щоб створити нову форму для бізнес-процесу, натисніть кнопку
Створити нову форму
.-
У новому вікні, у полі
Бізнес-назва форми
вкажіть назву форми —search-subject-form
. Форма поєднана зі змодельованою користувацькою задачею —Внесення даних для пошуку
(task1
). -
Заповніть поле
Службова назва форми
значеннямsearch-subject-form
(має відповідати значенню поляForm key
тієї ж користувацької задачі —Внесення даних для пошуку
(task1
).
-
-
Перейдіть на вкладку Конструктор та виконайте моделювання форми за допомогою компонентів.
-
З панелі компонентів зліва перетягніть компонент Text Field до панелі моделювання та виконайте подальші налаштування.
-
У новому вікні перейдіть на вкладку Display, заповніть поле
Label
значеннямErdpou or rnokpp
. -
Перейдіть на вкладку Validation та встановіть прапорець для параметра
Required
—true
. -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямcode
. Натисніть кнопкуSave
для збереження змін:
-
-
Збережіть форму, натиснувши кнопку
Зберегти зміни
у правому верхньому куті.
Під час введення даних на формі у Кабінеті посадової особи використовуйте Erdpou or rnokpp: 88888888 для перевірки.
|
3.2.2. Створення форми для відображення даних
Далі створіть форму для відображення даних — display-search-subject-form . Для цього виконайте кроки за аналогією до попереднього пункту.
|
-
У розділі UI-форми натисніть кнопку
Створити нову форму
.-
У новому вікні, у полі
Бізнес-назва форми
вкажіть назву форми —display-search-subject-form
. Форма поєднана зі змодельованою користувацькою задачею —Відображення інформації за суб’єктом у ЄДР
(task2
). -
Заповніть поле
Службова назва форми
значеннямdisplay-search-subject-form
(має відповідати значенню поляForm key
тієї ж користувацької задачі —Відображення інформації за суб’єктом у ЄДР
(task2
).
-
-
Перейдіть на вкладку Конструктор та виконайте моделювання форми за допомогою компонентів.
-
З панелі компонентів зліва перетягніть компонент Text Field до панелі моделювання. Необхідно змоделювати 4 таких поля:
ID
,Code
,Name
,State
, та виконати їх налаштування.Значення параметра Property Name
має бути у нижньому регістрі. Groovy-скрипти бізнес-процесу використовують назви саме у нижньому регістрі.-
Змоделюйте текстове поле
ID
:-
У новому вікні перейдіть на вкладку Display, заповніть поле
Label
значеннямID
. -
Активуйте параметр
Disabled
-True
. -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямid
. -
Натисніть кнопку
Save
для збереження змін.
-
-
Змоделюйте текстове поле
Code
:-
У новому вікні перейдіть на вкладку Display, заповніть поле
Label
значеннямСode
. -
Активуйте параметр
Disabled
-True
. -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямcode
. -
Натисніть кнопку
Save
для збереження змін.
-
-
Змоделюйте текстове поле
Name
:-
У новому вікні перейдіть на вкладку Display, заповніть поле
Label
значеннямName
. -
Активуйте параметр
Disabled
-True
. -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямname
. -
Натисніть кнопку
Save
для збереження змін.
-
-
Змоделюйте текстове поле
State
:-
У новому вікні перейдіть на вкладку Display, заповніть поле
Label
значеннямState
. -
Активуйте параметр
Disabled
-True
. -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямstate
. -
Натисніть кнопку
Save
для збереження змін.
-
-
-
Збережіть форму, натиснувши кнопку
Створити форму
у правому верхньому куті.
3.2.3. Створення форми для відображення додаткової інформації
Далі створіть форму для відображення додаткової інформації — display-additional-info . Для цього виконайте кроки за аналогією до попереднього пункту
|
-
У розділі UI-форми натисніть кнопку
Створити нову форму
.-
У новому вікні, у полі
Бізнес-назва форми
вкажіть назву форми —display-additional-info
. Форма поєднана зі змодельованою користувацькою задачею —Відображення деталізованої інформації за суб’єктом в ЄДР
(task3
). -
Заповніть поле
Службова назва форми
значеннямdisplay-additional-info
(має відповідати значенню поляForm key
тієї ж користувацької задачі —Відображення деталізованої інформації за суб’єктом в ЄДР
(task3
).
-
-
Перейдіть на вкладку Конструктор та виконайте моделювання форми за допомогою компонентів.
-
З панелі компонентів зліва перетягніть компонент Text Field до панелі моделювання. Необхідно змоделювати 2 таких поля:
Address
,Email
, та виконати їх налаштування.Значення параметра Property Name
має бути у нижньому регістрі. Groovy-скрипти бізнес-процесу використовують назви саме у нижньому регістрі.-
Змоделюйте текстове поле
Address
:-
У новому вікні перейдіть на вкладку Display, заповніть поле
Label
значеннямAddress
. -
Активуйте параметр
Disabled
-True
. -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямaddress
. -
Натисніть кнопку
Save
для збереження змін.
-
-
Змоделюйте текстове поле
Email
:-
У новому вікні перейдіть на вкладку Display, заповніть поле
Label
значеннямEmail
. -
Активуйте параметр
Disabled
-True
. -
Перейдіть на вкладку API та заповніть поле
Property Name
значеннямemail
. -
Натисніть кнопку
Save
для збереження змін.
-
-
-
Збережіть форму, натиснувши кнопку
Створити форму
у правому верхньому куті.
3.2.4. Завантаження змодельованих форм бізнес-процесу до локальної директорії
Завантажте форми, натиснувши ⤓
(іконку завантаження), та помістіть їх до регламентної папки forms проєкту в локальному Gerrit-репозиторії.
3.3. Моделювання доступу до бізнес-процесу
На цьому етапі необхідно надати доступ до бізнес-процесу із Кабінету посадової особи. Налаштуйте параметри доступу до бізнес-процесу у конфігураційному файлі bp-auth/officer.yml. |
Створіть файл bp-auth/officer.yml та сконфігуруйте в ньому наступні параметри:
authorization:
realm: 'officer'
process_definitions:
- process_definition_id: 'trembita-integration-demo'
process_name: 'Trembita Integration Demo'
process_description: 'test'
roles:
- officer
Збережіть файл officer.yml до регламентної папки bp-auth проєкту в локальному Gerrit-репозиторії.
4. Завантаження файлів регламенту до віддаленого репозиторію Gerrit
Для успішного розгортання бізнес-процесу, форм, а також застосування правильних налаштувань доступу до бізнес-процесу у цільовому середовищі, адміністратор регламенту має завантажити збережені локально файли регламенту реєстру до віддаленого сховища коду Gerrit.
Для цього виконайте кроки з інструкції Процес розгортання регламенту в Gerrit.