最近のアクセス:
ページ
履歴
バックリンク
BPMN 入門 - イベント
イベントとはプロセスの実行中に発生する事象です。イベントはプロセスフローに影響し、通常は原因 (トリガー) や効果 (結果) があります。イベントは、プロセスフローを開始、停止、中断、または終了することができます。
イベントは丸で表され、その輪郭のスタイルでイベントのタイプが区別されます。使用できるイベントには、次の 3 つのタイプがあります:
開始 (細い単一線)
中間 (細い二重線)
終了 (太い単一線)
次に、各タイプは、丸の中の記号でトリガーと結果が区別されます。
開始イベント
開始イベントは、プロセスの開始点を示します。プロセス開始のトリガー条件 (誘因) によって、異なるタイプの開始イベントがあります。メッセージの受信やタイマーのアラームといった行動に関連する状況を「トリガー」と呼びます。
主要または詳細として分類された開始イベントのタイプについて以下に記載します。
主要な開始イベント
なし:
トリガーは指定されていません (トリガーは、必ずしも指定する必要はなく、後で指定することができます)。サブプロセスでは必須です。
タイマー:
トリガーは一度だけか日付と時刻によって繰り返すことができます。
メッセージ:
トリガーは別のビジネスの実体または関係者から送信されたメッセージです (別のプールから送信される必要があります)。
シグナル:
トリガーは、別のプロセスによって送信されたシグナルです。シグナルには、1 つだけ ID があり、事前に定義された宛先には送信されません (ブロードキャスト)。メッセージとは異なり、シグナルは、1 つのプロセス内 (たとえば、サブプロセスと親プロセス間) または複数のユーザーのプロセス間で機能します。
詳細な開始イベント
条件付き:
トリガーは開始するプロセスと一致する必要がある条件式です。一般的に、条件はプロセスの関連データの値に変更することを暗示しています。条件は、ワークフローエンジンで実行するために、自然言語または形式言語で記述された式にする必要があります。
複合:
上記のいずれかの組み合わせによる複数のトリガーを定義し、すべてのプロセスを開始します。
プロセスには複数の開始イベントを設定することができます。加えて、開始イベントは最上位のプロセスかサブプロセスかを必要に応じて定義することができます。この場合、先行処理がないアクティビティが最初のタスクになります。
下図では、これらのイベントで表示される記号を示しています:
中間イベント
このイベントは、プロセスの標準的なルートで発生し、通常、アクティビティ間で発生する事象を示します。また、このイベントはアクティビティの標準的なプロセスを中断できます。
中間イベントのすべてのタイプはイベントを「キャッチ」することができ、それらのいずれかを「スロー」することもできます。プロセスフローが「
キャッチ
」イベントに到達すると、予定されているイベントが発生するまで、プロセスは停止します。その一方で、プロセスフローが「
スロー
」イベントに到達すると、すぐにトリガーされ、フローが継続します。イベントをキャッチするタイプのイベントは、空のアイコンで表示され、イベントをトリガー (スロー) するタイプのイベントは、埋め込まれたアイコンで表示されます。中間イベントは次のとおりです:
主要な中間イベント
なし:
(キャッチ) – トリガーイベントは指定されていません。
タイマー:
(キャッチ) – 開始イベントのタイマーと同様です。
メッセージ:
(キャッチ、スロー) – トリガーは、メッセージの送信または関係者からの受信 (別のプール) です。
シグナル:
(キャッチ、スロー) – トリガーはブロードキャストまたは受信信号です。
詳細な中間イベント
エラー:
(キャッチ) – 通常の場合、中断されたプロセスや修正が必要なイベントに定義されます。
キャンセル:
(キャッチ) – トランザクションのサブプロセスをキャンセルするために使用されます。
補償:
(キャッチ、スロー) – トランザクションのサブプロセスがキャンセルまたは実行が回避された (ロールバック) 場合、アクティビティを取り消すために必要な行動を設定するために使用します。
条件付き:
(キャッチ) – プロセスを継続させるために守らなければならないルールを定義します。
リンク:
(キャッチ、スロー) – 長いフローシーケンスを隠すために「リンク先」として視覚的なメカニズムを作成するために使用されます。
複合:
メッセージ、タイマー、エラー、条件付き、またはシグナルのいずれかの組み合わせによる複数のトリガーを定義します。
下図では、
キャッチ
タイプの中間イベントで表示される記号を示しています:
下図では、
スロー
タイプの中間イベントで表示される記号を示しています:
中間イベントを使用したアクティビティの中断
プロセスの標準的フローに例外処理を設定するために、イベントにアクティビティの例外処理を追加することできます。イベントがトリガーされると、タスクを示す付加されたイベントは必ず中断されます。これらのイベントのタイプは常に
キャッチ
イベントです。タスクとサブプロセスの両方が同じ方法で中断されます。
アクティビティを中断できるイベントのタイプは次のとおりです:
タイマー
メッセージ
エラー
キャンセル
条件付き
シグナル
複合
補償イベントは常にタスクが完了した後で発生するため、中断されなくてもアクティビティに付加することができます。
イベントなし
開始イベントの場合、中間イベントに対して常にトリガーは要求されません。これらのイベントは一定のアクティビティが完了またはプロセスが一定のマイルストーンに到達するドキュメントに使用されます。イベントの名前で、その目的を示すことがあります。
タイマーイベント
期限が超過し、モデルが遅延または締切間近な状態であることを示すキャッチイベントに使用されます。
遅延
アクティビティ間にタイマーイベントを追加してモデル化します。特定の日付と時間 (例: 4 月 15 日 PM 5:00 まで待機)、関連する日付 (例: 6 日間待機)、関連する反復日付 (例: 来週月曜日 AM 8:00 まで待機) を表示することができます。タイマーが警告を生成する場合、プロセスフローは継続されます。
エレメントは遅延より前にアクティビティ、ゲートウェイ、または別の中間イベントにすることができます。
イベントに過去の時点の特定の日付が含まれている場合、プロセスは無期限に停止されます。
下図では、遅延のモデル化の方法を例示しています:
締切
アクティビティにタイマーイベントを付加してモデル化します。対応するアクティビティが完了する前にイベントが発生する場合、すぐに中断され、イベントによって示されるパスに従ってフローが継続します。
下図では、締切のモデル化の方法を例示しています:
BPMN 1.1 はこの場合のモデリングを許可してないため、締切はタスクの中断なしに発生するよう定義する必要があります。これを実行するには、以下に示すように類似のパターンを使用することをお勧めします。
BPMN 2.0 ではアクティビティを中断せずに中間イベントを定義する機能が含まれています。
メッセージイベント
このイベントは常にプール間で動作します。
キャッチ
タイプのメッセージイベントでは、フローがこのエレメントに到達する前にメッセージが届く場合、そのメッセージは無視され、新しいメッセージが届くまでフローは停止されます。このイベントにはタスクを付加することもできます。
シグナルイベント
このイベントは信号の送受信が可能です。また、プロセスレベル (親プロセスからサブプロセス、またはその逆) 間、またはプール間のやり取りが可能です。特定のエンティティを設計する必要はありません。
キャッチ
タイプのシグナルイベントは名前または信号によって識別された一定のシグナルを検出することができます。
プロセスフローがシグナルイベントの記号に到達する前にシグナルイベントが発生する場合、次のイベントが到着するまでプロセスは停止されます。
イベントのこのタイプでは以下を使用することができます:
例外処理
プロセスの接続: 別のプロセスの終了後、プロセスの開始を示します。
特定のマイルストーンの発生を強調表示
プロセス間の伝達: 並行パスが同期を要求する際に特に有効です。
下図では、シグナルイベントの使用方法を例示しています:
この例では、最初のサブプロセスは 2 つのシグナルイベントをトリガーします: 'Concepts Completed' と呼ばれる中間イベントと、もう 1 つは後述する 'Text Edited' と呼ばれる終了イベントです。2 番目のサブプロセスには、'Concepts Completed' 信号の検出までプロセスを停止する
キャッチ
タイプの中間イベントのシグナルが定義されています。サブプロセスのため、開始イベントのシグナルは使用されず、親プロセスによって開始が定義されることに注意してください。このサブプロセスは 'Concepts Completed' と呼ばれる終了イベントのシグナルのトリガーによって終了します。これらのサブプロセスと並行して、'Text Edited' および 'Cover Completed' の信号の検出を待機する期間があります。両方の信号が検出された後にのみフローが継続されます。
エラーイベント
このイベントは常に
キャッチ
タイプのイベントで、アクティビティに付加することで使用されます。エラーが発生した場合、付加されたアクティビティは中断する必要があることを示しています。 (プロセスを透過する) アクティビティに含まれるアプリケーションまたはシステムによって、エラーが生成されます。
キャンセルイベント
このイベントは処理がキャンセルされた状況を制御します。このイベントはサブプロセスの処理にのみ付加することができ、このため、常に
キャッチ
タイプのイベントとなります。これらのイベントはサブプロセスに含まれる、終了イベントのキャッチによってトリガーされます。
補償イベント
キャッチ
タイプの補償イベントはアクティビティにのみ付加することができます。一方、プロセスの通常のフローでは、
スロー
タイプのイベントが使用されます。
これらのイベントについて詳しくは、「
BPMN 入門 - 高度な概念
」を参照してください。
条件付きイベント
条件付きイベントは、一致する条件を待つプロセスの状況をモデル化するために使用されます。この条件は通常、プロセスの関連データを含んでいます。通常のフローまたはイベントに基づくゲートウェイの一部 (「
ゲートウェイ
」を参照してください) で付加されたタスクで使用することができます。
リンクイベント
これは常に
ソース
(スロー)
および
ターゲット (キャッチ)
イベントで、ペアで使用されます。
ペアリングを確実に行うには、両方のイベントを同じレベルに定義する必要があります。仮想のシーケンスフローを作成することが目的であり、単一のプロセス内に配備する必要があります。これらのイベントはプロセス間の伝達には使用することができません。– この目的にはシグナルイベントを使用します。
これらのイベントは次の 2 種類の方法で使用されます:
'Off-Page' コネクター: ダイアグラムのあるページから別のページのジャンプを含めます。これはダイアグラムの印刷に有用です。
'Go-To' オブジェクト: ダイアグラムが長すぎる場合、パスの数を減らすために使用されます。
ターゲット
リンクイベントは同じレベルに 1 つしか定義できませんが、
ソース
リンクイベントは複数定義できます。
複合イベント
中間イベントをトリガーするコレクションを示しています。トリガーのコレクションはすべて
スロー
かすべて
キャッチ
イベントでなくてはなりません。同時に両方を含めることはできません。このコレクションで使用できるイベントは次のとおりです: メッセージ、補償、およびシグナル。フローが
スロー
タイプの複合イベントに到達すると、そこに含まれている
すべての
イベントがトリガーされます。一方、フローが
キャッチ
タイプの複合イベントに到達すると、そこに含まれている
いずれの
イベントも待機状態になります。
終了イベント
終了イベントは、プロセスや特にパスの終了に定義されます。プロセスに対して可能な結果を示すために異なるタイプの終了イベントがあります。それらはすべて
スロー
イベントです。
主要な終了イベント
なし:
結果は定義されていません。ほかの並列するパスが完了していない場合、プロセスは終了しません。
メッセージ:
別のビジネスエンティティ (パーティシパントまたはプロセス) への伝達を定義します。
シグナル:
すべてのプロセスを確認し対応する可能なブロードキャストイベントを定義します。
強制終了:
ほかの並列パスでアクティビティが実行されている場合でもすべてのプロセスのアクティビティを停止します。
詳細な終了イベント
エラー:
プロセスを中断または訂正を要求する終了の状態を定義します。このイベントでトリガーされたエラーは、上位レベルで中間イベントのエラーによってキャッチされます。このタイプのイベントには、名前のほかにエラーコードも含まれます。シグナルとは異なり、これらのイベントはすべてのプロセスをブロードキャストしません。その代わり、このタイプのイベントは特別な視覚的な有効範囲を持ち、親プロセスによってのみ検出することができます。イベントはプロセスの階層の上方へ移動し、サブプロセスに付加された中間イベントのエラーを持つ最初の親プロセスによって検出されます。
キャンセル:
処理サブプロセスで使用され、このイベントは処理サブプロセスのキャンセルの要因となります (「
BPMN 入門 - 高度な概念
」を参照してください)。
補償:
同様に処理サブプロセスで使用され、このイベントはトリガーの取り消しを定義します (「
BPMN 入門 - 高度な概念
」を参照してください)。
複合:
(すべてのイベントをトリガーする) メッセージ、エラー、補償、またはシグナルタイプの複数の結果を定義します。
下図では、終了イベントで表示される記号を示しています:
メイン記事に移動する
-
前のセクションに戻る
-
次のセクションに進む