Таймер (Timer)
Событие типа Таймер срабатывает по истечении определенного периода времени.
Время срабатывания может быть указано в абсолютной форме (конкретное время или дата) или в относительной (в виде повторяющихся интервалов или длительности).
Таймер изображается внутри события в виде часов:

Увеличить
Пример XML представления таймера в событии:
timerEventDefinition type=xml<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>
При редактировании типа
Таймер
в таблице "Event Definitions" появляется следующее окно:
Увеличить
В поле "Timer Type" (тип таймера) необходимо выбрать одно из следующих значений:
Time/Date
- ввод конкретной даты и времени;Interval
- задание временного интервала;Duration
- задание длительности ожидания.
В поле "Value" вводится значение в формате, соответствующем типу таймера:
-
java.util.Date в соответствии с ISO8601 для
Time/Date
.ПримерTime/Date
:- 2011-03-11T12:13:14 - таймер сработает 11 марта 2011 года в 12:13:14
Пример кода:timerEventDefinition type=xml<bpmn2:timerEventDefinition id="d6671e81-225a-4680-a364-66a3ca1923f5"> <bpmn2:timeDate xsi:type="bpmn2:tFormalExpression" id="a37c570c-aa4d-4083-bfa6-dbde356cbfcb"><![CDATA[2011-03-11T12:13:14]]></bpmn2:timeDate> </bpmn2:timerEventDefinition>
-
ISO8601 Repeating Intervals для
Interval
.ПримерInterval
:- 2007-03-01T13:00:00Z/2008-05-11T15:30:00Z - указание начальной и конечной даты;
- 2007-03-01T13:00:00Z/P1Y2M10DT2H30M - указание начальной даты и длительности;
- P1Y2M10DT2H30M/2008-05-11T15:30:00Z - указание длительности и конечной даты.
Пример кода:timerEventDefinition type=xml<bpmn2:timerEventDefinition id="d6671e81-225a-4680-a364-66a3ca1923f5"> <bpmn2:timeCycle xsi:type="bpmn2:tFormalExpression" id="a37c570c-aa4d-4083-bfa6-dbde356cbfcb">2007-03-01T13:00:00Z/2008-05-11T15:30:00Z</bpmn2:timeCycle> </bpmn2:timerEventDefinition>
-
ISO8601 Durations для
Duration
.ПримерDuration
:- P2D - таймер истечет через 2 дня. Этот же период можно представить в часах, тогда выражение будет выглядеть так: PT48H;
- PT24H - таймер истечет через 24 часа;
- PT3H - таймер истечет через 3 часа;
- PT30M- таймер истечет через 30 минут;
- P6W - таймер истечет через 6 недель;
- P2Y10M15DT10H30M20S - срок исполнения задачи истечет через 2 года, 10 месяцев, 15 дней, 10 часов, 30 минут, 20 секунд.
Пример кода:timerEventDefinition type=xml<bpmn2:timerEventDefinition id="d6671e81-225a-4680-a364-66a3ca1923f5"> <bpmn2:timeDuration xsi:type="bpmn2:tFormalExpression" id="a37c570c-aa4d-4083-bfa6-dbde356cbfcb"><![CDATA[P2D]]></bpmn2:timeDuration> </bpmn2:timerEventDefinition>
Допускается указание в поле "Value" переменной, содержащей значение таймера. Для этого нужно использовать выражение
${timer}
, где timer
- переменная.Пример кода:
timerEventDefinition type=xml<bpmn2:timerEventDefinition id="d6671e81-225a-4680-a364-66a3ca1923f5"> <bpmn2:timeDuration xsi:type="bpmn2:tFormalExpression" id="a37c570c-aa4d-4083-bfa6-dbde356cbfcb"><![CDATA[${timer}]]></bpmn2:timeDuration> </bpmn2:timerEventDefinition>
Таймер
нельзя установить дляКонечного события (End Event)
;Подпроцесс
не может иметьСтартовое событие (Start Event)
сТаймером
.

Увеличить