シーケンスフロー

シーケンスフローとは、プロセス内のアクティビティの実行順序を示す接続オブジェクトのこと. Sequence Flow.

シーケンスフローの概要
シーケンスフローは接続オブジェクトの1つで、ビジネスプロセス図において

「アクティビティ同士を接続し、そのアクティビティの順序を実線の矢印によって表現したもの」

である. 一般にシーケンスフローは「一方通行」の経路で、プロセス図の左から右へまたは上から下へとプロセスを展開させるので、「矢印」の向きは基本的に右向きか下向きとなる. シーケンスフロー1つにつき、 が1つずつ置かれる. ただし、1つのフローオブジェクトに接続するシーケンスフローは複数であってもよい.
 * ソースオブジェクト：始点（Source）となるフローオブジェクト
 * ターゲットオブジェクト：対象（Target）となるフローオブジェクト

実際のビジネスプロセスにおける「作業順序」を図のなかにモデル化するオブジェクトとして、BPMNではシーケンスフローが定義されている.

シーケンスフローには、次のような特徴がある.
 * プールの境界線を横断することができない（メッセージフローとの相違点）.
 * サブプロセスの境界線を横断することができない.
 * 成果物（データオブジェクト、グループ、アノテーションなど）による影響を受けない.
 * フローオブジェクトの境界上ならどこでも接続することは可能.

BPMNの冗長性
柔軟な記法であるBPMNでは、シーケンスフローによる業務プロセスの表現として様々なバリエーションがある. そのため、同一のプロセスであるにもかかわらず、プロセス図の設計者によってさまざまな図が描けてしまい、統一性に欠け、結果的に現場の実際の業務担当者を困らせることがある. 柔軟性を持つがゆえのこの性質は、一般にBPMNの「冗長性」と呼ばれている.

各種シーケンスフロー
シーケンスフローは以下の3種類に分類される.

非制御シーケンスフロー（Uncontrolled Sequence Flow）
非制御シーケンスフローは、単純に後続のフローオブジェクトに流すシーケンスフロー. 条件によって左右されず、またゲートウェイを通過することはない. 非制御シーケンスフローを使って同時並列を表現することができる.

制御シーケンスフロー（Conditional Sequence Flow）
制御シーケンスフローは、始点にひし形（◇）が付いていて条件式が記述されているシーケンスフロー. フロー上に定義された条件式を満たせば、フローを通過することができる. このフローの始点となるフローオブジェクトが条件分岐付きのアクティビティの場合は、シーケンスフローの始点に「制御マーカー」（小さいひし形）が付けられる. 判断ゲートウェイの場合、このゲートウェイが「制御マーカー」の役割を果たすので、マーカーは不要となる.

デフォルトシーケンスフロー（Default Sequence Flow）
デフォルトシーケンスフローは、デフォルトの条件式が定義されたシーケンスフロー. 他の制御シーケンスフローがすべて「偽」である場合に通過することができる. シーケンスフローの始点側にバックスラッシュ（＼）を付けて表す.

シーケンスフローのメカニズム
プロセス設計者によるシーケンスフローを用いた表現には、大きく分けて通常フローと例外フローの2種類がある.


 * 1) 通常フロー
 * 開始イベントから始まり、代替経路や並行経路を経由して終了イベントで終了するまで、アクティビティの順序通りに流れ続ける.
 * 1) 例外フロー
 * プロセスの実行時に発生する中間イベントに基づいて、プロセスの通常フローの外部において生ずる. 通常フロー内のアクティビティにスロー（throw）する中間イベント（メッセージ、タイマー、エラー）が接続していて、それらを作動させる事情が生じたとき、「例外処理」のためにトークンが例外フローを通過する.

※ アドホック
 * 一連のアクティビティの順序を、プロセス設計者が事前に定義できないときに使われる. アクティビティの実行者がシーケンスフローの作用（方向、回数など）を決定する. 「チルダ（tilde）記号」（~、にょろ）を用いて表現する.



通常フローの合流・分岐
通常フローで使用される代替経路や並行経路、経路の合流などは、以下の通りにまとめられる.

関連記事

 * BPMN
 * アクティビティ
 * イベント（開始イベント・中間イベント・終了イベント）
 * ゲートウェイ
 * フロー

参考文献

 * BPMN1.1仕様（2008-01-17）