境界イベント
境界イベントとは
BPMN 2.0の境界イベントは、アクティビティの境界に取り付ける中間キャッチイベントです。アクティビティの実行中に、期限、メッセージ、エラー、シグナル、データの変化などのトリガーを監視し、トリガーが発生すると、そのアクティビティから分岐する経路を開始します。
- タスク、サブプロセス、トランザクション、またはCall Activityの境界に配置します。イベントやゲートウェイには取り付けられず、フロー上に単独で配置することもできません。
- 出力シーケンスフローはありますが、入力シーケンスフローはありません。取り付け先のアクティビティが唯一の入口です。
- アクティビティが有効な間だけトリガーを監視します。アクティビティが先に完了すると、境界イベントは発生しません。例外は報酬で、アクティビティの完了後に有効になります。
- トリガーが発生すると、トークンは境界イベントの出力フローに進みます。中断イベントではアクティビティのトークンが置き換わり、非中断イベントではアクティビティのトークンに加えて新しいトークンが作られます。
- 記法では、アクティビティの境界に二重円を描き、その内側にトリガーを示す記号を配置します。
ProcessMindでは、このページに記載されているすべての種類の境界イベントに対応しています。境界イベントまたは境界非インタラクティブグループからイベントを選び、BPMN要素パレットからアクティビティの境界にドラッグすると、取り付けられます。既存の中間キャッチイベントをアクティビティの境界にドラッグしても取り付けられ、境界の外へドラッグすると取り外せます。BPMNのエクスポートと再インポート後も、取り付け状態と中断設定は保持されます。
中断イベントと非中断イベント
境界イベントには2つの形式があり、トリガーが発生したときにアクティビティをどう扱うかは形式によって異なります。
| 中断 | 非中断 | |
|---|---|---|
| 図形 | 実線の二重円 | 破線の二重円 |
| アクティビティへの影響 | ただちにキャンセルされ、進行中の作業は破棄されます | 実行が継続し、作業はキャンセルされません |
| トリガー発生後の経路 | 境界イベントの経路のみ。アクティビティの通常の出力フローには進みません | 両方の経路。通常の経路を継続しながら、境界イベントの経路も並行して実行します |
| 発生回数 | 1回。トリガー発生後、アクティビティは終了します | アクティビティが有効な間に複数回。たとえば、繰り返しタイマーの周期ごとに発生します |
| BPMN属性 | cancelActivity="true" | cancelActivity="false" |
中断境界イベントは、アクティビティの通常の継続経路を置き換えます。非中断境界イベントは、アクティビティから分岐します。
トリガーの発生によってアクティビティを続ける意味がなくなる、または続行が危険になる場合は、中断イベントを使います。たとえば、期限超過、失敗、取り消しなどです。アクティビティと並行して追加作業が必要な場合や、進行中の作業を中断せずにリマインダーや通知を送る場合は、非中断イベントを使います。
どちらの形式も、アクティビティが有効な間にのみ機能します。中断イベントが発生するとアクティビティがキャンセルされるため、同じアクティビティに取り付けられたほかの境界イベントも同時に無効になります。非中断イベントでは、アクティビティもほかの境界イベントもそのまま残ります。
1つのアクティビティに複数の境界イベントを設定できます。承認タスクによくある組み合わせは次のとおりです。
- 2営業日後に発生する中断タイマー:タスクをエスカレーションして終了します。
- 4時間ごとに発生する非中断タイマー:リマインダーを送信し、タスクを継続します。
- 実際の確認を行うサブプロセスに設定する中断エラー:技術的な障害に対応します。
境界イベントの種類
ProcessMindは以下の種類に対応しています。トリガーによってはアクティビティを停止させる場合にのみ意味を持つため、中断イベントの種類のほうが多くなっています。
中断境界イベント
| 種類 | 意味 | 典型的な例 |
|---|---|---|
| メッセージ | このアクティビティ宛ての特定のメッセージを待ちます。 | 「仕入先の見積もりを待つ」は、「見積もりが撤回された」というメッセージを受けると中断し、「別の仕入先を探す」に進みます。 |
| タイマー | 期限です。期間、日付、またはアクティビティの開始時点から計算される周期を指定します。 | 「経費を承認する」に2日間のタイマーを設定し、完了しない場合はケースを「財務マネージャーにエスカレーションする」に進めます。 |
| エラー | アクティビティ内で発生したエラーを捕捉し、アクティビティを停止します。エラー境界イベントは常に中断イベントです。 | 「信用調査を実施する」サブプロセスで「調査に失敗しました」というエラーが発生すると、境界イベントの経路から「手動審査を依頼する」に進みます。 |
| エスカレーション | 上位の担当者に対応を引き継ぐため、アクティビティを停止します。 | 「インシデントを解決する」は、初回対応の目標時間を過ぎるとエスカレーションされ、「インシデントコマンダーが引き継ぐ」に進みます。 |
| キャンセル | トランザクションサブプロセスのキャンセル終了イベントを捕捉します。トランザクションにのみ設定できます。 | 顧客が「旅行を予約する」トランザクションをキャンセルすると、境界イベントの経路から「支払いを返金し、予約を解除する」に進みます。 |
| 報酬(特殊なケース) | すでに完了したアクティビティの効果を取り消すため、報酬ハンドラーを実行します。進行中の作業はキャンセルしません。 | プロセスの後半で注文がキャンセルされた場合、「預り金を請求する」の効果を「預り金を返金する」で取り消します。 |
| 条件 | アクティビティの実行中に業務条件が成立すると発生します。 | availableStock < orderedQuantity場合、「在庫を確保する」が中断し、ケースは「受注残として処理し、顧客に通知する」に進みます。 |
| シグナル | ブロードキャストされたシグナルを捕捉します。シグナルは特定のアクティビティ宛てではなく、条件に合うすべてのリスナーが反応できます。 | 会社全体に送られた「案件が取り下げられた」というシグナルによって「不足書類を回収する」が中断し、ケースが終了します。 |
| 複数 | 複数のトリガーのうち、いずれか1つが発生すると動作します。 | 「顧客の返信を待つ」は、「返信を受信した」というメッセージか10日間のタイマーのどちらかを捕捉し、先に発生したほうで待機を終了します。 |
| 並列複数 | すべてのトリガーが発生した場合にのみ動作します。 | 「リリース承認を集める」は、法務とセキュリティの両方から承認メッセージを受け取ってから先に進みます。 |
このグループの基本的なルールは次のとおりです。
- エラーは、サブプロセス、Call Activity、またはトランザクションに設定します。実際にエラーが発生する可能性のあるアクティビティに付けてください。通常のタスクには内部処理がないため、捕捉するエラーもありません。
- キャンセルは、トランザクションサブプロセスに設定します。それ以外の場所では捕捉するものがありません。
- 報酬は特殊なケースです。アクティビティの完了後に有効になり、プロセス内の別の場所で発生した報酬スローイベントによって起動します。「実行中のステップを止める」のではなく、「すでに実行したステップを取り消す」動きを表します。
- 複数は、複数のトリガーのうちどれが先に発生するかを競います。並列複数は、すべてのトリガーを待つゲートです。
非中断境界イベント
| 種類 | 意味 | 典型的な例 |
|---|---|---|
| メッセージ | アクティビティの実行中にメッセージを受信すると、メッセージをきっかけに別の経路を開始します。 | 「提案書を作成する」は、「レビュー担当者のコメントを受信した」というメッセージを受けると「レビューコメントを記録する」を開始し、実行を継続します。 |
| タイマー | リマインダーや定期確認に使います。アクティビティは停止しません。 | 「サポートチケットに対応する」に8時間ごとの繰り返しタイマーを設定すると、対応を続けながら「状況を報告する」を開始します。 |
| エスカレーション | アクティビティを終了させず、並行してエスカレーションを発生させます。 | 「苦情を解決する」の実行中に「顧客は重要顧客です」というエスカレーションが発生すると、「アカウントディレクターに通知する」を開始します。 |
| 条件 | 条件が成立すると、アクティビティの実行中に別の経路を開始します。 | riskScore > 70が成立すると、「ローン申請を処理する」の実行を続けながら「監査レビュー対象としてマークする」を開始します。 |
| シグナル | ブロードキャストを受けたすべてのリスナーが別の経路を開始します。アクティビティは継続します。 | 「夜間バッチを実行する」は、「市場が終了した」というシグナルを受けると「途中集計を記録する」を開始し、実行を継続します。 |
| 複数 | 複数のトリガーのうち、いずれか1つが別の経路を開始します。アクティビティは継続します。 | 「契約を交渉する」は継続し、相手方からのメッセージか3日間のタイマーのどちらかによって「リマインダーを送る」を開始します。 |
| 並列複数 | すべてのトリガーがそろうと別の経路を開始します。アクティビティは継続します。 | 「すべての確認を待つ」は、メッセージとシグナルの両方を受け取るまで有効な状態を保ち、その後「準備完了を記録する」を開始します。 |
非中断境界イベントは、リマインダー、通知、状況の確認、並行するエスカレーションに使います。メインフローは変えず、並行する分岐を追加します。
境界イベントではないイベントの種類
境界イベントのように見えても、境界イベントではない種類があります。
- Linkイベントは、フローの各部分をつなぎます。フロー上に配置する中間キャッチイベントまたは中間スローイベントであり、アクティビティに取り付けるものではありません。
- Terminateはプロセスインスタンス全体を終了させるイベントで、終了イベントとしてのみ使用できます。
- なしはトリガーではないため、境界イベントに設定できません。境界イベントは必ず、捕捉する対象を必要とします。
ProcessMindで境界イベントを追加する
- BPMN要素パレットを開きます。
- 中断イベントの場合は境界イベントグループから、非中断イベントの場合は境界非インタラクティブグループから種類を選びます。
- 選択したイベントを、タスク、サブプロセス、トランザクション、またはCall Activityの境界にドラッグします。
- ドロップします。イベントは最も近い境界に吸着し、アクティビティが取り付け先になります。
- 境界イベントから、例外処理または分岐の最初のステップまでシーケンスフローを引きます。
操作のヒント:
- 中間イベントをアクティビティの境界にドロップすると、取り付けられます。同じイベントをキャンバスの空白部分にドロップすると、通常の中間キャッチイベントになります。後から境界にドラッグして取り付けたり、境界の外へドラッグして取り外したりできます。
- 境界イベントは、取り付け先のアクティビティと一緒に移動、非表示、削除されます。アクティビティから独立して配置されることはありません。
- 非中断イベントはチェックボックスではなく、パレット内の別項目です。アクティビティを継続させる場合は、ドラッグする前にこちらを選んでください。
- エクスポート時、取り付け状態は
attachedToRefとして、中断設定はcancelActivityとして書き込まれます。ファイルを再インポートすると、両方とも復元されます。
よくある間違い
- **出力フローのない境界イベント。**トリガーを捕捉しても次に進む先がなく、例外処理の経路が行き止まりになります。
- **強制終了が必要な場面で非中断タイマーを使う。**アクティビティが継続するため、期限が来ても作業は終了しません。期限を設ける場合は中断タイマーを使います。
- **通常のタスクにエラー境界イベントを設定する。**失敗するステップを含むサブプロセスまたはCall Activityに取り付けます。
- **アクティビティの完了後に境界イベントが発生すると考える。**報酬を除き、完了後に発生することはありません。報酬は完了後に有効になります。
- **トランザクション以外でキャンセルを使う。**キャンセル境界イベントは、トランザクションサブプロセスにのみ定義されています。
- **1つのアクティビティに中断イベントを2つ設定し、両方の経路が実行されると考える。**最初に発生したトリガーが優先され、アクティビティとほかの境界イベントは一緒にキャンセルされます。
すべてのイベントと対応する記号
| 開始 | 中間 | 終了 | ||||||
|---|---|---|---|---|---|---|---|---|
| Type | 通常 | イベントサブプロセス | 中断しないイベントサブプロセス | キャッチ | 境界 | 中断しない境界 | スロー | |
| なし | | |||||||
| Message | | | | | | | | |
| Timer | | | | | | | ||
| Conditional | | | | | | | ||
| Link | | | | |||||
| Signal | | | | | | | | |
| Error | | | | |||||
| Escalation | | | | | | | ||
| 終了 | | |||||||
| Compensation | | | | | ||||
| Cancel | | | ||||||
| Multiple | | | | | | | | |
| 並列マルチプル | | | | | | | ||
カスタムBPMNモデルを生成する
関連トピック
- イベント:すべてのイベントの種類。
- 中間イベント:フローの途中で発生するイベント。
- アクティビティ:境界イベントを取り付けられるタスクとサブプロセス。
- 対応するBPMN要素:ProcessMindがインポートおよびエクスポートできる要素。
- BPMN 2.0実践ガイド:具体例を交えた記法の解説。
プロセスをより良く設計し、つながりのあるアーキテクチャを構築して、管理を続けましょう。
クレジットカード不要、待ち時間なしですぐにご利用いただけます。組織の業務の進め方を、明確につながるプロセス設計として可視化します。
プロセスアーキテクチャを構築し、オーナーシップと統制を定め、あらゆる階層で役割と責任を明確にします。
無料トライアルを開始して、プロセスのガバナンス、管理、継続的な改善を支える信頼できる基盤を築きましょう。