Завдання 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 variablevariable вкажіть значення змінної, до якої запишеться результат —ssResponse.

-
{
"name":"Сидоренко Василь Леонідович",
"code":"88888888",
"id":9,
"state":"CANCEL_STATE"
}
|
Детальну інформацію з описом сервісу ЄДР ви можете знайти на сторінці Інтеграція з "Трембіта": SOAP API контракт (XML). |
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"
}
|
Детальну інформацію з описом сервісу ЄДР ви можете знайти на сторінці Інтеграція з "Трембіта": SOAP API контракт (XML). |
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.