Вбудований підпроцес
- 1. Загальний опис
- 2. Використання вбудованого підпроцесу при моделюванні
| 🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
1. Загальний опис
Вбудований підпроцес (Embedded subprocess) — це підпроцес, що налаштовується та запускається всередині основного (батьківського) бізнес-процесу.
|
Вбудований підпроцес дозволяє НЕ виконувати два бізнес-процеси окремо, щоразу виходячи до Кабінету користувача та запускаючи кожний послідовно. Натомість вбудований підпроцес покликаний забезпечити плавний перехід між бізнес-процесами, без розриву основного процесу та підпроцесу, і повернення назад до основного процесу. Наприклад, основний процес має на меті внести дані про заяву, але він також вимагає попередньо погодити внесення змін уповноваженою особою. Погодження змін логічно і зручно винести в окремий вбудований процес, таким чином розділяючи два процеси між собою, і водночас не порушуючи єдиний потік послідовності. |

Вбудований підпроцес повинен мати тільки одну подію none start[1].
При активації вбудованого підпроцесу, ініціюється старт цього підпроцесу подією Start event. Підпроцес залишається активним, допоки активним залишається хоча б один елемент у контейнері з підпроцесом. Коли останній елемент підпроцесу, тобто фінальна подія виконується, підпроцес завершується, і продовжується вихідний потік послідовності у батьківському[2] процесі.
2. Використання вбудованого підпроцесу при моделюванні
Розглянемо застосування BPMN-елемента Embedded subprocess на прикладі бізнес-процесу внесення даних (далі — основний або батьківський процес) та вбудованого підпроцесу погодження змін (далі — підпроцес).
|
На етапі моделювання необхідно створити 1 пул із бізнес-процесом та зберегти його в рамках одного файлу .bpmn. |
2.1. Етапи моделювання процесів
Для того, щоб змоделювати 2 процеси (у нашому випадку — це основний процес та підпроцес), використовуючи елемент Embedded subprocess, необхідно пройти наступні етапи:
2.2. Створення пулу для бізнес-процесу
Найперше, змоделюйте пул для основного бізнес-процесу. Для цього виконайте кроки, подані нижче:
| Моделювання діаграми бізнес-процесу має відбуватися в рамках елемента Create Pool/Participant. |
-
Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN. Для цього у лівому верхньому куті натисніть меню File → New File → BPMN Diagram.

-
На панелі інструментів зліва знайдіть елемент Create pool/Participant та перетягніть його до панелі моделювання.

-
Заповніть наступні поля відповідними значеннями:
-
У полі
Participant Nameвведіть назву пулу, що відображатиметься у моделері —Бізнес-процес внесення даних. -
У полі
Process idвведіть ідентифікатор бізнес-процесу (наприклад,processId). -
У полі
Process Nameвкажіть бізнес-назву процесу —Бізнес-процес внесення даних.

-
2.3. Моделювання стартової події основного процесу
Створіть початкову подію. Для цього виконайте наступні кроки:
-
На панелі інструментів, зліва, знайдіть елемент (коло) CreateStartEvent та перетягніть його до панелі моделювання.
-
На панелі налаштувань справа заповніть наступні параметри відповідними значеннями:
-
У полі
Nameвведіть назву початкової події —Старт процесу. -
У полі
Initiatorвведітьinitiator.initiator— спеціальна змінна, що встановлюється для користувача, який розпочав процес.

-
2.4. Моделювання користувацької задачі внесення даних
Далі створіть користувацьку задачу, призначену для внесення даних користувачем. Для цього виконайте наступні кроки:
-
Створіть нову задачу, вкажіть її тип, натиснувши іконку ключа та обравши з меню пункт User Task (Користувацька задача).
-
На панелі налаштувань справа натисніть
Open Catalog, оберіть шаблон User Form (Користувацька форма) та натиснітьApplyдля підтвердження. -
На панелі налаштувань справа заповніть наступні поля:
-
У полі
Nameвкажіть назву задачі —Внесення даних про заяву. -
У полі
Form keyвведіть ключ форми, що відповідатиме службовій назві форми для внесення даних —add-application. -
У полі
Assigneeвкажіть змінну, що використовується для зберігання користувача, який запустив екземпляр процесу, —${initiator}.
-

2.5. Моделювання вбудованого підпроцесу
На цьому етапі необхідно змоделювати вбудований підпроцес. Він налаштовується всередині окремого контейнера в рамках цього ж пулу.
-
На панелі інструментів зліва знайдіть елемент Create expanded SubProcess та перетягніть його в середину пулу.

-
Далі змоделюйте 3 елементи в рамках підпроцесу:
-
стартову подію підпроцесу;
-
користувацьку задачу для погодження змін;
-
подію завершення підпроцесу.
-
2.5.1. Моделювання стартової події підпроцесу
Налаштуйте стартову подію підпроцесу.
| На відміну від налаштувань основного процесу, подія старту підпроцесу додається автоматично, разом із контейнером Create expanded SubProcess. |
На панелі налаштувань справа заповніть поле Name назвою початкової події — Старт підпроцесу.

2.5.2. Створення користувацької задачі для погодження змін
Створіть користувацьку задачу для погодження змін. Для цього виконайте кроки, подані нижче:
-
Створіть нову задачу, вкажіть її тип, натиснувши іконку ключа та обравши з меню пункт User Task (Користувацька задача).
-
На панелі налаштувань справа натисніть
Open Catalog, оберіть шаблон User Form (Користувацька форма) та натиснітьApplyдля підтвердження. -
На панелі налаштувань справа заповніть наступні поля:
-
У полі
Nameвкажіть назву задачі —Прийняття рішення про погодження заяви. -
У полі
Form keyвведіть ключ форми, що відповідатиме службовій назві форми для внесення даних —add-applicationsecond. -
У полі
Assigneeвкажіть змінну, що використовується для зберігання користувача, який запустив екземпляр процесу, —${initiator}.

-
2.5.3. Моделювання події завершення підпроцесу
На цьому етапі необхідно створити подію, яка завершуватиме підпроцес.
-
Створіть подію завершення бізнес-процесу.
-
На панелі налаштувань справа для параметра
Nameвкажіть значенняЗавершення підпроцесу.
2.6. Моделювання події завершення основного процесу
На цьому етапі необхідно створити подію, яка завершуватиме процес.
-
Створіть подію завершення бізнес-процесу.
-
На панелі налаштувань справа для параметра
Nameвкажіть значенняЗавершення процесу.