4.23. イベント¶
IM-BPM for Accel Platform では、任意のタイミングでプロセスインスタンスの実行を待機/進行させるためのイベントが用意されています。
各種イベントの動作について説明します。
4.23.1. シグナルイベント¶
シグナルイベントは、シグナルを受信した場合にイベントをトリガします。
シグナルを送信することで、待機しているイベントの進行やプロセスの開始が可能です。
シグナルを受信するイベントは、以下のとおりです。
- シグナル開始イベント
- シグナル境界イベント
- シグナルキャッチイベント
シグナルの送信方法は以下の3種類が存在します。
- 参照シグナル名を指定して待機しているプロセスに一斉に送信(ブロードキャスト)
- エグゼキューションIDを指定して特定のプロセスの特定のイベントに送信
- エグゼキューションIDと参照シグナル名を指定して特定のプロセスの特定のイベントに送信
コラム
シグナルの送信方法については、「 IM-BPM プログラミングガイド 」 - 「 シグナル 」を参照してください。
注意
シグナル開始イベントへのシグナル送信は、参照シグナル名を指定する方法のみが利用可能です。
4.23.2. メッセージイベント¶
メッセージイベントは、メッセージを受信した場合にイベントをトリガします。
メッセージを送信することで、待機しているイベントの進行やプロセスの開始が可能です。
メッセージを受信するイベントは、以下のとおりです。
- メッセージ開始イベント
- メッセージ境界イベント
- メッセージキャッチイベント
メッセージの送信方法は以下の2種類が存在します。
- 参照メッセージ名を指定して送信(メッセージ送信による開始)
- 参照メッセージ名と、エグゼキューションIDまたはプロセスインスタンスIDを指定してメッセージ送信
コラム
メッセージの送信方法については、「 IM-BPM プログラミングガイド 」 - 「 メッセージ 」を参照してください。
注意
シグナルイベントとは異なり、参照メッセージ名を指定して送信しても一斉に送信されることはありません。
同一の参照メッセージを持つメッセージ開始イベントを持つプロセス定義をデプロイすることはできないため、送信対象のプロセス定義が重複することはありません。
4.23.3. タイマイベント¶
タイマイベントは、指定した時間経過後にイベントをトリガします。
設定により、待機しているイベントの進行やプロセスの開始を任意の時刻にすることが可能です。
日付/周期/期間のいずれかの条件指定が可能です。
条件指定には基本的に、ISOの国際規格であるISO 8601拡張形式を使用します。
コラム
ISO 8601拡張形式で日付を指定する
形式:YYYY-MM-DDThh:mm:ss+offset
例:2019-01-01T00:00:00+09:00
意味:2019年1月1日午前0時0分0秒(日本時間)
コラム
ISO 8601拡張形式で周期を指定する
形式:Rn/PnYnMnDTnHnMnS
例:R5/P1Y2M3DT4H5M6S
意味:1年2ヶ月3日4時間5分6秒ごとの周期を5回繰り返す
また以下のような形式を用いることで、周期の開始や終了の時刻を指定することが可能です。
開始日時や完了日時はISO 8601形式で入力します。
- Rn/PnYnMnDTnHnMnS/{完了日時}
- Rn/{開始日時}/PnYnMnDTnHnMnS
コラム
ISO 8601拡張形式で期間を指定する
形式:PnYnMnDTnHnMnS
例:P1Y2M3DT4H5M6S
意味:1年2ヶ月3日4時間5分6秒後
コラム
日付の設定に関してはEL式を利用して、 java.util.Date オブジェクトを指定することでも動作します。
EL式については、「 EL式 」を参照してください。
コラム
周期や期間を利用する際には、タイムゾーンの指定が可能です。
タイムゾーンを指定することで、夏時間の切り替わりのタイミングの考慮が可能です。
詳しくは、「 intra-mart Accel Platform タイムゾーン仕様書 」 - 「 機能独自の仕様 」 - 「 IM-BPM for Accel Platform 」を参照してください。
タイマイベントは、以下のとおりです。
- タイマ開始イベント
- タイマ境界イベント
- タイマキャッチイベント
4.23.4. エラーイベント¶
エラーイベントは、「設定されているエラーコード」と「エラー終了イベントなどで発生したエラーコード」を比較して合致した場合にイベントをトリガします。
エラーイベントを利用することで、エラーが発生した場合の処理を行うことが可能です。
エラーをキャッチするイベントは、以下のとおりです。
- エラー開始イベント
- エラー境界イベント
コラム
エラー開始イベントは、イベントサブプロセス内に配置が可能です。
エラー開始イベントは、イベントサブプロセスの所属するプロセス内や、そのプロセスがコールアクティビティで呼び出したプロセス内で発生したエラーをキャッチします。
コラム
エラー境界イベントは所属するアクティビティ内で発生したエラーをキャッチします。
エラーが発生するアクティビティは以下のとおりです。
- エラー終了イベント
- IM-LogicDesignerタスク
- サービスタスク
コラム
IM-LogicDesignerタスクを用いる際のエラーハンドリングについては、「 エラーハンドリング 」を参照してください。
コラム