1.4.1 タイマーイベントのイベント発火時刻
タイマーイベントのイベント発火について説明します。
BPMN要素にタイマーイベントを指定した場合の,タイマーイベントの発火までの流れを次に示します。
-
イベント発火時刻の決定タイミングで,次のイベント発火時刻を決定する※1
-
現在日時がイベント発火時刻を経過したら※2,タイマーイベントを指定したBPMN要素から遷移する
-
タイマーイベントの定義で最大実行回数(Number of execution)が2回以上の場合,次のイベント発火時刻を設定する※1
- 注※1
-
イベントの発火時刻は,タイマーイベントのタイマールールによって異なる方式で決定されます。詳細については,「1.4.2 タイマーイベントのタイマールール」を参照してください。1.のイベント発火時刻の決定タイミングは,タイマーイベントを指定したBPMN要素によって異なります。詳細については,以降の説明を参照してください。
- 注※2
-
イベント発火時刻を経過したかどうかは,アプリケーション呼び出しサービスが定期的にチェックします。
- 〈この項の構成〉
(1) 開始(タイマー)イベントのイベント発火時刻
開始(タイマー)イベントのイベント発火時刻の決定タイミングについて説明します。
対象のビジネスプロセス定義に対して,次の条件を最初にすべて満たしたタイミングで,イベント発火時刻を決定します。
-
ビジネスプロセス定義が登録済みである
-
アプリケーション呼び出しサービスの検索で,対象のビジネスプロセス定義がヒットする
タイマールールで定義された最大実行回数が2回以上の場合,アプリケーション呼び出しサービスによる案件投入が成功したあとに,次のイベント発火時刻を決定します。
(2) キャッチ(タイマー)イベントのイベント発火時刻
キャッチ(タイマー)イベントのイベント発火時刻の決定タイミングについて説明します。
キャッチ(タイマー)イベントに遷移した時点で,イベント発火時刻を決定します。ただし,排他イベントゲートウェイの遷移先にキャッチ(タイマー)イベントがある場合は,排他イベントゲートウェイに遷移した時点でイベント発火時刻を決定します。
キャッチ(タイマー)イベントのイベント発火時刻の例を次に示します。
この例では,排他イベントゲートウェイに遷移してから1時間経過する前にメッセージを受信した場合は,タスクAに遷移します。メッセージを受信しなかった場合は,1時間後にタスクBに遷移します。
(3) イベント・サブプロセス中断開始(タイマー)イベント/イベント・サブプロセス非中断開始(タイマー)イベントのイベント発火時刻
イベント・サブプロセス中断開始(タイマー)イベント/イベント・サブプロセス非中断開始(タイマー)イベントのイベント発火時刻の決定タイミングについて説明します。
イベント・サブプロセスの対象スコープの開始イベントに遷移した時点で,イベント発火時刻を決定します。
イベント・サブプロセス中断開始(タイマー)イベントのイベント発火時刻の例を次に示します。
(4) 境界中断(タイマー)イベント/境界非中断(タイマー)イベントのイベント発火時刻
境界中断(タイマー)イベント/境界非中断(タイマー)イベントのイベント発火時刻の決定タイミングについて説明します。
境界イベントがアタッチされたBPMN要素に遷移した時点で,イベント発火時刻を決定します。
境界中断(タイマー)イベントのイベント発火時刻の例を次に示します。