Таймер (Timer)

Описание

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

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

Таймер изображается внутри события в виде часов:
Timer

Увеличить

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

Пример 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

При редактировании типа Таймер в таблице "Event Definitions" появляется следующее окно:
Timer

Увеличить

В поле "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) с Таймером.

Пример использования

Timer

Увеличить

Предыдущий раздел
Элементы Event
Следующий раздел
Элемент Message
Была ли страница полезной?