| 接続オブジェクト |
|---|
シーケンスフローとは、プロセス内のアクティビティの実行順序を示す接続オブジェクトのこと。Sequence Flow。
目次 |
シーケンスフローの概要
| フローオブジェクト |
|---|
シーケンスフローは接続オブジェクトの1つで、ビジネスプロセス図において
「アクティビティ同士を接続し、そのアクティビティの順序を実線の矢印によって表現したもの」
である。一般にシーケンスフローは「一方通行」の経路で、プロセス図の左から右へまたは上から下へとプロセスを展開させるので、「矢印」の向きは基本的に右向きか下向きとなる。シーケンスフロー1つにつき、
- ソースオブジェクト:始点(Source)となるフローオブジェクト
- ターゲットオブジェクト:対象(Target)となるフローオブジェクト
が1つずつ置かれる。ただし、1つのフローオブジェクトに接続するシーケンスフローは複数であってもよい。
実際のビジネスプロセスにおける「作業順序」を図のなかにモデル化するオブジェクトとして、BPMNではシーケンスフローが定義されている。
シーケンスフローには、次のような特徴がある。
- プールの境界線を横断することができない(メッセージフローとの相違点)。
- サブプロセスの境界線を横断することができない。
- 成果物(データオブジェクト、グループ、アノテーションなど)による影響を受けない。
- フローオブジェクトの境界上ならどこでも接続することは可能。
BPMNの冗長性
柔軟な記法であるBPMNでは、シーケンスフローによる業務プロセスの表現として様々なバリエーションがある。そのため、同一のプロセスであるにもかかわらず、プロセス図の設計者によってさまざまな図が描けてしまい、統一性に欠け、結果的に現場の実際の業務担当者を困らせることがある。柔軟性を持つがゆえのこの性質は、一般にBPMNの「冗長性」と呼ばれている。
各種シーケンスフロー
シーケンスフローは以下の3種類に分類される。
非制御シーケンスフロー(Uncontrolled Sequence Flow)
非制御シーケンスフローは、単純に後続のフローオブジェクトに流すシーケンスフロー。条件によって左右されず、またゲートウェイを通過することはない。非制御シーケンスフローを使って同時並列を表現することができる。
制御シーケンスフロー(Conditional Sequence Flow)
制御シーケンスフローは、始点にひし形(◇)が付いていて条件式が記述されているシーケンスフロー。フロー上に定義された条件式を満たせば、フローを通過することができる。このフローの始点となるフローオブジェクトが条件分岐付きのアクティビティの場合は、シーケンスフローの始点に「制御マーカー」(小さいひし形)が付けられる。判断ゲートウェイの場合、このゲートウェイが「制御マーカー」の役割を果たすので、マーカーは不要となる。
デフォルトシーケンスフロー(Default Sequence Flow)
デフォルトシーケンスフローは、デフォルトの条件式が定義されたシーケンスフロー。他の制御シーケンスフローがすべて「偽」である場合に通過することができる。シーケンスフローの始点側にバックスラッシュ(\)を付けて表す。
シーケンスフローのメカニズム
プロセス設計者によるシーケンスフローを用いた表現には、大きく分けて通常フローと例外フローの2種類がある。
- 通常フロー
- 例外フロー
※ アドホック
- 一連のアクティビティの順序を、プロセス設計者が事前に定義できないときに使われる。アクティビティの実行者がシーケンスフローの作用(方向、回数など)を決定する。「チルダ(tilde)記号」(~、にょろ)を用いて表現する。
通常フローの合流・分岐
通常フローで使用される代替経路や並行経路、経路の合流などは、以下の通りにまとめられる。
| 種類 | 解説 | ||||||
|---|---|---|---|---|---|---|---|
| 説明 | 図 | ||||||
| フォーク分岐(Forking Flow) And分岐(And-Split) | 1つの経路を複数の並行経路に分岐する。条件や状況に従ってフローが制御されているわけではないので、ここでは非制御シーケンスフローが使用される。並列ゲートウェイ(Parallel Gateway)を使用せずに表記する方法が最も簡単である。 | ||||||
| 結合 (Joining Flow / And-Join) | 複数の並行経路を1つの経路に結合する。フォーク分岐で生成されたトークンが、複数の並行経路を通り並列ゲートウェイで結合する形が一般的。 | ||||||
| 判断分岐 (Splitting Flow) OR分岐(OR-Split) XOR分岐(XOR-Split) | 1つの経路を複数の代替経路に分岐する。制御シーケンスフローやゲートウェイ(排他・包含・複合)を用いて表記する。 | ||||||
| 併合 (Merging Flow / OR-Join) | 複数の代替経路を1つの経路に併合する。M中のN併合(複合ゲートウェイの併合)もここに含まれる。 | ||||||
| アクティビティループ (Activity Looping) | アクティビティの形状をした四角形の中央下に「ループマーカー」を置き、アクティビティの繰り返しを表す。展開されたサブプロセスでも用いられる。 | ||||||
| シーケンスフローループ (Sequence Flow Looping) | あるフローオブジェクトから、順序が先のフローオブジェクトへフローがさかのぼる。通常は、ある条件式がデフォルトと判断されなくなるまで同一のプロセスを繰り返すというモデル設計がなされる。リンク中間イベントを用いる方法もある。 | ||||||
| シーケンスフロージャンプ (Sequence Flow Jumping) | プロセス図が長大化してページをまたがってしまうときに用いられる。Off-PageコネクタおよびGo To オブジェクトを指し、リンク中間イベントがこの役割を果たす。 | ||||||
| 親プロセスとサブプロセスとの接続 | 親プロセスのフローオブジェクトからサブプロセス内の開始イベントへとシーケンスフローを接続することはできる。また、サブプロセスが終了しても、サブプロセス内の終了イベントから親プロセスのフローオブジェクトへと接続することも可能。 | ||||||
| 他のプロセスのフローの制御 (マイルストーン、Milestone) | あるフローが、他のプロセス中のアクティビティによる制御を受ける。シグナルイベントを使って表される。 | ||||||
| 不適切なプロセス図 | グラフ構造をしたBPMNは柔軟な記法であるため、実際にはモデル通り行えなかったり、モデル設計者が予期しなかった振る舞いをされたりする恐れがある。例えばデッドロックなど。 | ||||||
関連記事
参考文献
- BPMN1.1仕様(2008-01-17)








