接続オブジェクト
接続オブジェクトとは
BPMN 2.0では、接続オブジェクトがプロセスモデル内の要素間の関係と情報の流れを定義します。アクティビティ、イベント、ゲートウェイを接続し、プロセスフローを導いたり、データやメッセージを伝達したりします。主な接続オブジェクトは、Sequence Flow、Message Flow、Associationです。
Sequence Flow
Sequence Flowは、プロセス内でアクティビティ、イベント、ゲートウェイを実行する順序を定義します。Taskが次の手順へ進む論理的な流れを示します。
Taskを実行する順序を表し、矢印で終わる実線で示します。条件付きの経路やデフォルトの経路を表すこともできます。
- 例:「Submit Application」Taskと「Review Application」TaskをSequence Flowで接続すると、申請後に確認を行うことを示せます。
- Sequence Flowの種類:
- 通常のSequence Flow:アクティビティ間のデフォルトのフローです。
- 条件付きSequence Flow:特定の条件を満たした場合にのみ進むSequence Flowです(小さなひし形で示します)。
- デフォルトのSequence Flow:どの条件も満たさない場合の代替フローです(開始点の斜線で示します)。
- ユースケース:プロセスを手順ごとに進め、アクティビティを正しい順序で実行するためにSequence Flowを使用します。
Message Flow
Message Flowは、通常は異なるPoolに属する参加者やプロセス間の通信を表します。独立して動作する可能性のあるプロセス間で、情報を交換するために使用します。
Message Flowコネクターは、異なるPool間や、部門など組織の境界を越えた通信を示します。同じPool内のイベントやアクティビティを接続するためのものではありません。円で始まり、開いた矢印で終わる破線で表します。
- 例:一方のPoolにあるサプライヤーの「Send Invoice」Taskと、別のPoolにある顧客の「Receive Invoice」TaskをMessage Flowで接続すると、請求書が両者の間で送信されることを示せます。
- ユースケース:ある会社が別の会社へ注文依頼を送る場合など、異なる組織や業務参加者間の通信を示すためにMessage Flowを使用します。
Association
Associationは、アーティファクト(Data Object、Text Annotation、Groupなど)とフローオブジェクト(アクティビティ、イベント、ゲートウェイ)を接続し、コンテキストを補足したり関係を明確にしたりします。プロセスの順序には影響せず、文書化や追加情報の提示に使用します。
矢印や円のない点線で示します。イベント、アクティビティ、ゲートウェイとアーティファクトを接続します。
- 例:「Generate Report」Taskと「Report Document」(Data Object)をAssociationで接続すると、このTaskが文書を作成することを示せます。
- Associationの種類:
- 通常のAssociation:TaskとData ObjectやAnnotationなどの要素を接続します。
- 方向付きAssociation:Taskから、またはTaskへのデータの流れを示します(矢印で表示します)。
- 双方向Association:要素間の双方向の関係を示します(2つの矢印で表示します)。
- ユースケース:プロセスフローに影響を与えずに、Data ObjectやText Annotationなどの追加情報をTaskやイベントに関連付けるためにAssociationを使用します。
エクスポートしたBPMNファイル内のAssociation
Associationは、接続先のアーティファクトとともに標準のbpmn:association要素としてエクスポートされるため、エクスポートとインポートを経ても維持されます。アクティビティとData ObjectまたはData Storeの接続は例外で、そのアクティビティのbpmn:dataInputAssociationまたはbpmn:dataOutputAssociationとして記述されるため、方向も維持されます。ProcessMindでは通常のAssociationの方向はモデル化されません。インポートしたファイルに含まれる方向付きAssociationや双方向Associationは、通常のAssociationとして戻ります。
例
顧客注文を管理するプロセスを考えてみます。
- Sequence Flow:注文を受けると、システムが注文を処理し、納品に回します。注文の受付、処理、納品という各手順は、Sequence Flowで接続されます。
- Message Flow:注文の処理が完了すると、外部の配送会社へメッセージを送り、納品を依頼します。この通信は、2つの組織間のMessage Flowで表します。
- Association:「Customer Order」というData Objectを「Receive Order」Taskに関連付け、このTaskが注文データを扱うことを示します。