Элементы Events

События (Events) используются для моделирования происходящего во время исполнения процесса.
В моделях используются следующие 4 события:
  • Стартовое событие (Start Event);
  • Конечное событие (End Event);
  • Промежуточное ожидающее событие (Intermediate Catch Event);
  • Граничное событие (Boundary Event).
В Палитре события находятся в папке Events:
Event

Увеличить

Событие графически изображается как круг. Символ внутри, если он есть, указывает на тип или типы события (триггеры).
Возможны 4 варианта триггеров событий:
Триггеры определяют семантику (смысловое значение) события. Например, Стартовое Событие (Start Event) без типа не указывает, каким именно образом стартует процесс. Если добавить триггер в Стартовое Событие (например, таймер), то таким образом будет определено какой "тип" события будет стартовать процесс. В случае таймера, это будет факт достижения определенной точки во времени. Некоторые события, например, Intermediate Catch Event и Boundary Event, не несут в себе никакой функциональности, если у них не установлен какой-нибудь триггер. Добавление триггеров к событиям описано в разделе Работа с Event Definitions.
В BPMN 2.0 существует две категории типов событий:
Типы cобытийОписание
Принимающие события
(Catching)
Принимающие события означают, что приходящий поток исполнения, дойдя до данной точки модели останавливается и ждет срабатывания триггера. Тип триггера определяется внутренним символом (типом события).
Принимающие события визуально отличаются от Отправляющих тем, что символ внутри круга не имеет заливки (или же она белая).
Принимающие события, которые используются при моделировании процессов:
- Стартовое событие (Start Event);
- Промежуточное ожидающее событие (Intermediate Catch Event);
- Граничное событие (Boundary Event)
Отправляющие события
(Throwing)
Отправляющие события - означают, что поток исполнения приходя в данную точку модели инициирует срабатывание триггера. Тип триггера определяется также, как и в предыдущем случае.
Визуально Отправляющие события отличаются от Принимающих тем, что символ внутри круга окрашен в черный цвет.
Отправляющие события, которые используются при моделировании процессов:
- Конечное событие (End Event)

Свойства событий

В свойствах у событий 4 вкладки:

Вкладка Event

Вкладка "Event" в каждом событии содержит таблицу "Event Definitions". Редактирование этой таблицы описано в разделе Работа с Event Definitions.
Для граничного события на вкладке "Event" дополнительно отображается флаг "Cancel Activity" (по умолчанию включено). Это означает, что сработавший триггер в событии отменит дальнейшее выполнение задачи или подпроцесса, на котором находится граничное событие. В этом случае поток исполнения не пойдет дальше по потоку управления, выходящему из элемента, к которому прикреплено граничное событие. При этом, если из граничного события выходит поток управления (Sequence Flow), то поток исполнения пойдет по нему.
Если для проектируемого процесса не нужно прекращать выполнение задачи или подпроцесса, даже если триггер сработал, то флаг необходимо снять. В этом случае поток исполнения пойдет дальше по потоку управления, выходящему из элемента, к которому прикреплено граничное событие. При этом, если из граничного события выходит поток управления (Sequence Flow), то создастся дополнительный поток исполнения (токен) для него. При этом на диаграмме изменится вид граничного события: окружности круга станут пунктирными.
Примечание. Если в событие добавляется тип Ошибка, то поле "Cancel Activity" пропадает, т.к. в этом случае исполнение задачи или подпроцесса в любом случае прервется.

Стартовое событие

Описание

Стартовое событие (Start Event) показывает, где процесс (или подпроцесс) начнется (в процессе обязательно должно быть по крайней мере одно стартовое событие). Стартовое событие запускает поток исполнения (токен) и должно иметь только исходящие потоки управления (Sequence Flow).
Стартовое событие может иметь один или несколько триггеров (Event Definitions), которые будут запускать его: Таймер, Сообщение и Сигнал. Тип Ошибка добавлять нельзя.
Стартовое событие с триггером используется для создания экземпляра/экземпляров процесса автоматически.

Графическое представление

Стартовое событие изображается как круг, по умолчанию зеленого цвета, с одной тонкой окружностью:
Start_Event

Увеличить

XML представление

Пример XML представления стартового события:
startEvent type=xml
<bpmn2:startEvent
    id="d0205375-f365-41f4-9d6c-3d1002ce6914"
    sbt:marker.type="Markable"
    sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.markableStartEvent"
    name="New Start Event"
>
    <bpmn2:outgoing>fb499265-26a7-41f4-941b-2e5b6dd7f06f</bpmn2:outgoing>
</bpmn2:startEvent>

Конечное событие

Описание

Конечное событие (End Event) показывает, где процесс (или подпроцесс) заканчивается. Поэтому в процессе обязательно должно быть по крайней мере одно конечное событие. Другими словами, конечное событие завершает поток исполнения (токен) - оно не должно иметь исходящих потоков управления (Sequence Flow), а только входящие.
Конечное событие может иметь один или несколько триггеров (Event Definitions), которые будут запущены в результате прихода исполнения в событие: Сообщение, Сигнал и Ошибка. Тип Таймер добавлять нельзя. Если у конечного события нет типа, то это означает, что по окончании потока исполнения процесса ничего дополнительно не произойдет.

Графическое представление

Конечное событие изображается как круг, по умолчанию красного цвета, с одной жирной окружностью:
End_Event

Увеличить

XML представление

Пример XML представления конечного события:
endEvent type=xml
<bpmn2:endEvent id="aa3fc89d-6961-45c2-b131-ecd821d673b3" sbt:marker.type="Markable" sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.markableEndEvent" name="New End Event">
    <bpmn2:incoming>f4f4dde3-f7cd-43f7-aa3a-96b0f166b1a8</bpmn2:incoming>
</bpmn2:endEvent>

Промежуточное ожидающее событие

Описание

Промежуточное ожидающее событие (IntermediateCatchEvent) используется для ожидания срабатывания триггера (Event Definition). Поэтому оно не используется без добавления в него какого-нибудь типа. Поток исполнения находится в промежуточном ожидающем событии до тех пор, пока не произойдет ожидаемое событие, и поэтому процесс не может быть завершен. Промежуточное ожидающее событие может иметь один или несколько типов: Сообщение, Сигнал и Таймер. Тип Ошибка добавлять нельзя.
Эти события также используются в Событийных шлюзах (см. раздел Работа с GateWays).

Графическое представление

Промежуточное ожидающее событие изображается как круг, по умолчанию без цвета, с двумя тонкими окружностями:
IntermediateCatchEvent

Увеличить

XML представление

Пример XML представления промежуточного ожидающего события:
intermediateCatchEvent type=xml
<bpmn2:intermediateCatchEvent id="f42c4d66-d203-43b6-a0a1-b61b12b3a1bd" sbt:marker.type="Markable" sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.markableIntermediateCatchEvent" name="New Intermediate Catch Event">
    <bpmn2:incoming>f6ca6bcf-f373-4724-9787-317aefcb4f88</bpmn2:incoming>
    <bpmn2:outgoing>a9c8ec89-1458-445f-b5c5-ca5fe85d97fd</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>

Граничное событие

Описание

Граничное событие (Boundary Event) используется для ожидания срабатывания триггера (Event Definition) во время выполнения элемента, к которому оно прикреплено. Поэтому оно не используется без добавления в него какого-нибудь типа и должно обязательно находиться на задаче или подпроцессе. Ожидание будет отменено после того, как поток исполнения пойдет дальше. В этом его отличие от промежуточного ожидающего события. Граничное событие может иметь один или несколько типов: Сообщение, Сигнал, Таймер и Ошибка.

Графическое представление

Граничное событие изображается как круг, по умолчанию без цвета, с двумя тонкими окружностями, присоединенное к какой-нибудь задаче или подпроцессу:
Boundary_Event

Увеличить

XML представление

Пример XML представления граничного события:
boundaryEvent type=xml
<bpmn2:boundaryEvent id="f8e5182f-72a2-4b21-8ab1-1ef78bb03a54" sbt:marker.type="Markable" sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.markableBoundaryEvent" name="" attachedToRef="e4106da2-2b14-4eb1-a28c-2a589ff65b36" cancelActivity="false">
    <bpmn2:incoming>f6f2753f-61b2-4836-8ad8-88ef50fc20ef</bpmn2:incoming>
    <bpmn2:outgoing>d22050ea-c73e-477c-853e-30388d76819c</bpmn2:outgoing>
</bpmn2:boundaryEvent>

Работа с Event Definitions

Описание

Типы событий (Event Definitions) определяют поведение событий. Поэтому они используются только в событиях, самостоятельно не используются. Про сами события, к которым добавляется тип описано в разделе Работа с Events.
При проектировании моделей используются 4 типа событий:
В Палитре типы событий находятся в папке "Event Definitions":
Event_Definitions

Увеличить

Графически внутри круга события типы изображаются картинками, совпадающими с обозначением в Палитре.
В том случае, когда у события более одного типа, то триггер в таком событии называется мультитриггер. Для мультитриггера символ внутри круга отображается в зависимости от настройки в поле "Parallel Multiple":
  • если выставлен флаг "Parallel Multiple":
    Event_Definitions

    Увеличить

  • если снят флаг "Parallel Multiple":
    Event_Definitions

    Увеличить

Таблица Event Definitions

Таблица находится в свойствах элемента Событие на вкладке "Event". Она заполняется при помещении типов в событие. В ней появляются строки, если к событию добавить тип/типы:
Event_Definitions

Увеличить

Чтобы отредактировать какой-нибудь тип, нужно встать на строку в таблице и нажать пиктограмму "карандаш":
button

Увеличить

Откроется дополнительное окно, набор полей в котором зависит от типа события. Заполнение полей в этом окне описано ниже.
Чтобы удалить строку (тип) из таблицы, нужно встать на эту строку и нажать пиктограмму "крест":
button

Увеличить

Если у события несколько типов, то появляется дополнительное поле "Parallel Multiple":
Event_Definitions

Увеличить

По умолчанию этот флаг снят. Это означает, что должен сработать хотя бы один триггер из списка для продолжения потока исполнения, остальные уже не будут ожидаться (логическое ИЛИ для типов). Если проставить флаг, то поток исполнения будет оставаться в событии до тех пор, пока все триггеры не сработают (т.е. типы будут соединены логическим И (символ "+" внутри кружочка)).

XML представление

Пример XML кода после добавления событию типов и постановки галочки в поле "Parallel Multiple" (появляется атрибут parallelMultiple):
intermediateCatchEvent type=xml
<bpmn2:intermediateCatchEvent id="f42c4d66-d203-43b6-a0a1-b61b12b3a1bd"sbt:marker.type="Markable"sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.markableIntermediateCatchEvent"name="New Intermediate Catch Event" parallelMultiple="true">
      <bpmn2:incoming>f6ca6bcf-f373-4724-9787-317aefcb4f88</bpmn2:incoming>
      <bpmn2:outgoing>a9c8ec89-1458-445f-b5c5-ca5fe85d97fd</bpmn2:outgoing>
      <bpmn2:timerEventDefinition id="b2bb3b36-9fc6-45ad-88e6-ae41f690dbca">
          <bpmn2:timeCycle xsi:type="bpmn2:tFormalExpression" id="bbf96374-f307-440a-b4d9-f41a1ed312d7"><![CDATA[PT5M]]></bpmn2:timeCycle>
      </bpmn2:timerEventDefinition>
      <bpmn2:messageEventDefinition id="b4e35e31-4797-48aa-b6ef-73ddd8b0bbe2" messageRef="f8f57533-27aa-46a6-bc93-0f5e4a1f7134"/>
</bpmn2:intermediateCatchEvent>
Предыдущий раздел
Элемент Call Activity
Следующий раздел
Элемент Timer
Была ли страница полезной?