Вбудований підпроцес

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Загальний опис

Вбудований підпроцес (Embedded subprocess) — це підпроцес, що налаштовується та запускається всередині основного (батьківського) бізнес-процесу.

Вбудований підпроцес дозволяє НЕ виконувати два бізнес-процеси окремо, щоразу виходячи до Кабінету користувача та запускаючи кожний послідовно. Натомість вбудований підпроцес покликаний забезпечити плавний перехід між бізнес-процесами, без розриву основного процесу та підпроцесу, і повернення назад до основного процесу.

Наприклад, основний процес має на меті внести дані про заяву, але він також вимагає попередньо погодити внесення змін уповноваженою особою. Погодження змін логічно і зручно винести в окремий вбудований процес, таким чином розділяючи два процеси між собою, і водночас не порушуючи єдиний потік послідовності.

embedded subprocess 1

Вбудований підпроцес повинен мати тільки одну подію none start[1].

При активації вбудованого підпроцесу, ініціюється старт цього підпроцесу подією Start event. Підпроцес залишається активним, допоки активним залишається хоча б один елемент у контейнері з підпроцесом. Коли останній елемент підпроцесу, тобто фінальна подія виконується, підпроцес завершується, і продовжується вихідний потік послідовності у батьківському[2] процесі.

2. Використання вбудованого підпроцесу при моделюванні

Розглянемо застосування BPMN-елемента Embedded subprocess на прикладі бізнес-процесу внесення даних (далі — основний або батьківський процес) та вбудованого підпроцесу погодження змін (далі — підпроцес).

На етапі моделювання необхідно створити 1 пул із бізнес-процесом та зберегти його в рамках одного файлу .bpmn.

2.2. Створення пулу для бізнес-процесу

Найперше, змоделюйте пул для основного бізнес-процесу. Для цього виконайте кроки, подані нижче:

Моделювання діаграми бізнес-процесу має відбуватися в рамках елемента Create Pool/Participant.
  1. Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN. Для цього у лівому верхньому куті натисніть меню FileNew FileBPMN Diagram.

    bp 1

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

    bp 2

  3. Заповніть наступні поля відповідними значеннями:

    • У полі Participant Name введіть назву пулу, що відображатиметься у моделері — Бізнес-процес внесення даних.

    • У полі Process id введіть ідентифікатор бізнес-процесу (наприклад, processId).

    • У полі Process Name вкажіть бізнес-назву процесу — Бізнес-процес внесення даних.

    embedded subprocess 2

2.3. Моделювання стартової події основного процесу

Створіть початкову подію. Для цього виконайте наступні кроки:

  1. На панелі інструментів, зліва, знайдіть елемент (коло) CreateStartEvent та перетягніть його до панелі моделювання.

  2. На панелі налаштувань справа заповніть наступні параметри відповідними значеннями:

    • У полі Name введіть назву початкової події — Старт процесу.

    • У полі Initiator введіть initiator.

      initiator — спеціальна змінна, що встановлюється для користувача, який розпочав процес.

    embedded subprocess 3

2.4. Моделювання користувацької задачі внесення даних

Далі створіть користувацьку задачу, призначену для внесення даних користувачем. Для цього виконайте наступні кроки:

  1. Створіть нову задачу, вкажіть її тип, натиснувши іконку ключа та обравши з меню пункт User Task (Користувацька задача).

  2. На панелі налаштувань справа натисніть Open Catalog, оберіть шаблон User Form (Користувацька форма) та натисніть Apply для підтвердження.

  3. На панелі налаштувань справа заповніть наступні поля:

    • У полі Name вкажіть назву задачі — Внесення даних про заяву.

    • У полі Form key введіть ключ форми, що відповідатиме службовій назві форми для внесення даних — add-application.

    • У полі Assignee вкажіть змінну, що використовується для зберігання користувача, який запустив екземпляр процесу, — ${initiator}.

embedded subprocess 4

2.5. Моделювання вбудованого підпроцесу

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

  1. На панелі інструментів зліва знайдіть елемент Create expanded SubProcess та перетягніть його в середину пулу.

    embedded subprocess 5

  2. Далі змоделюйте 3 елементи в рамках підпроцесу:

    • стартову подію підпроцесу;

    • користувацьку задачу для погодження змін;

    • подію завершення підпроцесу.

2.5.1. Моделювання стартової події підпроцесу

Налаштуйте стартову подію підпроцесу.

На відміну від налаштувань основного процесу, подія старту підпроцесу додається автоматично, разом із контейнером Create expanded SubProcess.

На панелі налаштувань справа заповніть поле Name назвою початкової події — Старт підпроцесу.

embedded subprocess 6

2.5.2. Створення користувацької задачі для погодження змін

Створіть користувацьку задачу для погодження змін. Для цього виконайте кроки, подані нижче:

  1. Створіть нову задачу, вкажіть її тип, натиснувши іконку ключа та обравши з меню пункт User Task (Користувацька задача).

  2. На панелі налаштувань справа натисніть Open Catalog, оберіть шаблон User Form (Користувацька форма) та натисніть Apply для підтвердження.

  3. На панелі налаштувань справа заповніть наступні поля:

    • У полі Name вкажіть назву задачі — Прийняття рішення про погодження заяви.

    • У полі Form key введіть ключ форми, що відповідатиме службовій назві форми для внесення даних — add-applicationsecond.

    • У полі Assignee вкажіть змінну, що використовується для зберігання користувача, який запустив екземпляр процесу, — ${initiator}.

    embedded subprocess 7

2.5.3. Моделювання події завершення підпроцесу

На цьому етапі необхідно створити подію, яка завершуватиме підпроцес.

  1. Створіть подію завершення бізнес-процесу.

  2. На панелі налаштувань справа для параметра Name вкажіть значення Завершення підпроцесу.

    embedded subprocess 8

2.6. Моделювання події завершення основного процесу

На цьому етапі необхідно створити подію, яка завершуватиме процес.

  1. Створіть подію завершення бізнес-процесу.

  2. На панелі налаштувань справа для параметра Name вкажіть значення Завершення процесу.

    embedded subprocess 9


1. None events є невизначеними подіями, які також називаються «порожніми».
2. Батьківський або основний процес (Parent process) — процес, що ініціює запуск підпроцесу. Відносно батьківського процесу підпроцес є Child-процесом (Child process).