1.8.5 開始(タイマー)以外のタイマーイベントの場合の処理の流れ
ここでは,アプリケーション呼び出しサービスが開始(タイマー)以外のタイマーイベントを処理する流れを説明します。
ここで説明する,開始(タイマー)以外のタイマーイベントとは,次のタイマーイベントのことです。
-
キャッチ(タイマー)
-
境界中断(タイマー)
-
境界非中断(タイマー)
-
イベント・サブプロセス中断開始(タイマー)
-
イベント・サブプロセス非中断開始(タイマー)
ここでは,境界非中断(タイマー)を例として処理の流れを説明します。
BPMN連携ライブラリの処理の流れ
境界非中断(タイマー)に対応する作業が作業テーブルに追加されるまでのBPMN連携ライブラリの処理の流れを,次の図に示します。
- [説明]
-
業務アプリケーションまたはアプリケーション呼び出しサービスが,境界非中断(タイマー)の1つ前のBPMN要素に対して遷移要求を行うと,BPMN連携ライブラリは案件を遷移させます。
その際,BPMN連携ライブラリは,境界非中断(タイマー)に対応する作業(図の例では作業ID=101の作業)を作業テーブルに追加します。また,次の設定をします。
-
作業の処理期限:タイマールールを評価して決定したイベント発火時刻
-
作業の優先度:タイマーの実行回数「0」
-
アプリケーション呼び出しサービスの処理の流れ
アプリケーション呼び出しサービスの処理の流れを,次の図に示します。
- [説明]
-
アプリケーション呼び出しサービスが定期的に次の1.~2.の処理を行います。
-
境界非中断(タイマー)に対応する作業を検索します。図の例では,次の条件で検索しています。
・状態:実行開始可能
・作業者ID:IWTTIM_IWTransit
・イベント発火時刻≦現在時刻
-
作業が見つかった場合(図の例では作業ID=101の作業),境界非中断(タイマー)を発火させます。この発火は,CSCIWでは境界非中断(タイマー)に対応する作業に対する遷移要求として行われます。その際,次の処理も行います。
1. タイマーの実行回数を1増加させ,作業の優先度に設定する。
2. タイマーの実行回数が最大実行回数(Number of execution)に達していた場合,作業の状態を「実行開始可能」から「終了」に変更する。タイマーの実行回数が最大実行回数に達していない場合,タイマールールを評価して決定した次回のイベント発火時刻を作業の処理期限に設定する。
-