Вбудований підпроцес
- 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вкажіть значенняЗавершення процесу.