Подпроцессы

Подпроцесс — самостоятельный процесс, который запускается в ходе выполнения родительского процесса.

Когда запускается подпроцесс, выполнение родительского процесса останавливается до тех пор, пока подпроцесс не будет выполнен.

Подпроцессы позволяют декомпозировать схему процесса и повысить его наглядность.

Например, в процессе согласования отпуска будет запущен подпроцесс по расчету и выплате отпускных. Это самостоятельный процесс со своими участниками, задачами, контекстом и т. д.

subprocesses-1

В ELMA различают следующие подпроцессы:

  • Внешний подпроцесс — имеет собственный набор контекстных переменных. Обмен данными с родительским процессом строится через входные и выходные атрибуты процесса, сценарии, а также с использованием операций Отправка сообщения и Ожидание сообщения. Внешний подпроцесс можно запустить независимо от родительского как самостоятельный процесс;
  • Внутренний подпроцесс — для выполнения операций может использовать контекстные переменные родительского процесса. Такой подпроцесс напрямую связан с контекстом родительского процесса, поэтому ему не требуются специальные механизмы для обмена данными. Несмотря на то что внутренний подпроцесс выполняется в рамках родительского, у него могут быть и собственные атрибуты, которые существуют только в рамках этого подпроцесса. Внутренний подпроцесс нельзя запустить отдельно от родительского как самостоятельный процесс. Внутренний подпроцесс может быть запущен только в рамках своего родительского процесса.

Настройки операции «Внешний подпроцесс»

начало внимание

Перед добавлением элемента на схему процесса нужно создать подпроцесс как самостоятельный процесс в системе.

конец внимание

Чтобы настроить операцию, дважды нажмите на нее на схеме процесса.

subprocesses-2

Название * — введите наименование операции. Оно будет использоваться на схеме процесса и для формирования регламента и документации по процессу.

Чтобы скопировать уникальный идентификатор, нажмите copy-button.

Описание — укажите здесь описание операции. Например, кратко опишите, какие действия будут выполняться в рамках подпроцесса.

Процесс — выберите процесс, который запустится, когда выполнение родительского процесса дойдет до этой операции. Вы можете сразу перейти к настройке выбранного процесса. Для этого нажмите на кнопку subprocesses-3. Карточка процесса откроется в новой вкладке.

Маркер — вы можете указать условие для выполнения операции. Подробнее о маркерах читайте в этой статье.

Указать участников — при установке этого флажка вы сможете добавить участников родительского процесса к участникам подпроцесса.

В качестве участников вы можете добавить должность из оргструктуры, группу пользователей или контекстную переменную, содержащую пользователя.

Блок «Действия при прерывании»

Вы можете указать, как должен вести себя один из процессов при прерывании другого. По умолчанию блок свернут. Чтобы его развернуть, нажмите на иконку subprocesses-4.

subprocesses-5

Прервать экземпляры подпроцессов при прерывании родительского экземпляра — если экземпляр родительского процесса будет прерван, то и все экземпляры подпроцессов тоже прервутся.

Прервать родительский экземпляр процесса при прерывании экземпляра подпроцесса — если будет прерван экземпляр подпроцесса, то и родительский экземпляр процесса тоже прервется.

Блоки «Входные переменные» и «Выходные переменные»

Вы можете сопоставить переменные родительского и дочернего процессов.

начало внимание

Сопоставить можно только переменные одного типа.

конец внимание

Вы можете удалить операцию со схемы процесса, нажав в окне настроек кнопку enumeration-3.

Настройки операции «Внутренний подпроцесс»

Настройка внутреннего подпроцесса происходит почти так же, как и внешнего.

Отличия в настройках:

  • при выборе подпроцесса вы можете выбрать только внутренние подпроцессы того процесса, который настраиваете. Также есть возможность создать новый подпроцесс, если его еще нет в системе. При настройке внешнего подпроцесса вы можете выбрать любой существующий в системе процесс;
  • при настройке внутреннего подпроцесса отсутствуют блоки Входные переменные и Выходные переменные, так как процессы выполняются в одном контексте.

Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас