Элемент Call Activity
Call Activity - элемент процесса, позволяющий использовать в основном процессе глобальные, переиспользуемые процессы.
В Палитре этот элемент находится в папке "Tasks" и выглядит следующим образом:

Увеличить
Call Activity обозначается как прямоугольник со скругленными краями и широкой рамкой:

Увеличить
Представление Call Activity в XML:
callActivity type=xml<bpmn2:callActivity id="b3b7715f-440c-419b-8b6f-c5654b70207e" sbt:marker.type="Markable" sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.markableCallActivity" name="New Call Activity" calledElement="../Process_905392440.bpmn#d8b772f1-4f2e-4367-95bf-a5bac369d64a"> </bpmn2:callActivity>
Переход к настройке объекта осуществляется в меню свойств объекта.
Для получения свойств элемента необходимо выполнить одно из следующих действий:
- Вызвать меню двойным кликом на элементе на диаграмме.
- Вызвать контекстное меню правой кнопкой мыши и выбрать в нем пункт "Show Properties".
- Выбрать элемент мышкой и открыть справа в окне вкладку "Properties".
- Выбрать элемент на вкладке "Outline" и открыть для него вкладку "Properties".
Вкладка General
Описание вкладки см. в разделе Вкладка General статьи о свойствах элементов.
Вкладка Call Activity

Увеличить
Вкладка служит для указания вызываемого процесса.
Чтобы указать подпроцесс, выполните следующее:
-
Перейдите к панели свойств "Properties" текущего (основного) процесса.
Увеличить
-
Перейдите на вкладку "Definitions" и откройте таблицу "ImportList".
Увеличить
-
Добавьте нужный процесс (подпроцесс) в список импортируемых объектов, нажав кнопку и выбрав путь к bpmn-файлу. Рекомендуется добавлять файл из workspace (
ImportSource
-Workspace
).Увеличить
-
Откройте свойства элемента на вкладке "Call Activity". В поле "Called Element" выберите добавленный процесс из списка и подтвердите выбор нажатием кнопки "OK".
Увеличить
После этого в модели станет доступен вспомогательный функционал - кнопка перехода к просмотру модели вызываемого процесса.

Увеличить
Вкладка Marker
Описание вкладки описано в разделе Настройка точек мониторинга.
Вкладка Execution Listeners
Описание вкладки описано в разделе Настройка Execution Listeners.
Вкладка Input/Output

Увеличить
Вкладка "Input/Output" служит для настройки передачи переменных из контекста основного процесса в контекст вызываемого процесса и настройки приема в обратном направлении переменных с результатом выполнения процесса.
Для передачи атрибутов из контекста основного процесса в контекст подпроцесса необходимо нажать на пиктограмму "плюс" в блоке "In List" и заполнить соответствующие поля.

Увеличить
№ | Поле | Описание |
---|---|---|
1 | ID | Уникальный идентификатор (только для чтение) |
2 | Target | Атрибут контекста вызываемого процесса (подпроцесса). Переменная контекста вызываемого подпроцесса, в которую будет помещено полученное значение |
3 | Value | Значение (зависит от Value Type ): - для Value Type = Source - название переменной контекста основного процесса; - для Value Type = Expression - выражение |
4 | Value Type | Тип передаваемого значения: - Source - используется для передачи переменной контекста основного процесса в контекст вызываемого подпроцесса; - Expression - используется, если необходимо выполнить выражение |
Для передачи атрибутов в обратном порядке (из вызываемого подпроцесса в основной) необходимо нажать на пиктограмму "плюс" в блоке "Out List" и в открывшемся окне заполнить поля:

Увеличить
№ | Поле | Описание |
---|---|---|
1 | ID | Уникальный идентификатор (только для чтение) |
2 | Target | Атрибут контекста вызываемого процесса (подпроцесса). Переменная контекста вызываемого подпроцесса, в которую будет помещено полученное значение |
3 | Value | Значение (зависит от Value Type ): - для Value Type = Source - название переменной контекста основного процесса; - для Value Type = Expression - выражение |
4 | Value Type | Тип передаваемого значения: - Source - используется для передачи переменной контекста основного процесса в контекст вызываемого подпроцесса; - Expression - используется, если необходимо выполнить выражение |
В ходе построения схем часто встречаются ситуации использования повторяющихся элементов/последовательностей элементов с небольшим различием в значениях параметров.
С целью оптимизации такие элементы можно вынести в отдельный процесс и использовать их, изменяя только необходимые параметры.
-
Пример. В процессе в зависимости от условия происходит смена статуса
Клиент отклонил
илиКлиент принял
:Увеличить
При этом для смены статуса используются два различных процесса - с отличием в значении одного передаваемого элемента:Увеличить
Увеличить
Вместо этого можно использовать один процесс и в зависимости от ситуации передавать необходимое значение через "In List":Увеличить
При этом переиспользуемый процесс будет выглядеть следующим образом:Увеличить
Преимущества реализации:- Сокращение времени построения схем.
- Удобство модификации при необходимости изменения структуры процесса.