【連載】BPMN業務フロー入門(14)フローを極める

第3章 仕様理解を深める

はじめに

今回は「フローを極める」をテーマにBPMNの中に深く潜っていきます。理屈だらけで少し眠くなってしまうかもしれませんが、時間をかけてでも最後まで読み進めてみてください。きっとBPMNで描くフローとは何かの理解が深まり、BPMNの本質に触れた感じがするのではないかと思います。

BPMNで描く業務フローとは

BPMNで描いた図において流れるものを、BPMN仕様書ではトークン(Token)と呼んでいます。トークンとは本連載の第2回第5回で登場したボールと同じものです。 トークンがシーケンスフローに沿って流れることで業務プロセスが進んでいきます。

シーケンスフロー上を流れているトークンがアクティビティに到達したらアクティビティを開始します。アクティビティが完了したらシーケンスフローに沿ってトークンが次に流れていきます。その繰り返しで業務プロセスが進んいきます。

具体的にイメージできるように、ITツール「BPMS(Business Process Management System)」でBPMNで描いた図を動かしたらどうなるかを見ていきます。次のようになります。

  1. トークンがアクティビティに到着するとレーンの担当者のTo-Doリストに「やること」が追加される
  2. レーンの担当者はTo-Doリストの中から1つの「やること」と選ぶ
  3. 選ぶと「作業内容の記述」と「作業完了ボタン」がある画面が表示される。その画面で作業内容を確認する
     ※必要に応じて作業結果を入力するフォームも表示される
  4. 指示内容に従い作業を行う
  5. 作業が完了したら作業完了ボタンを押す
  6. 完了したら次のアクティビティにトークンが流れていく

シーケンスフローの理解を深める

シーケンスフロー(実線の矢印)には3つの種類があります。

  • 非制御(Uncontrolled)フロー
  • 制御(Conditional)フロー
  • デフォルト(Default)フロー

非制御フローとは、どんな場合でもトークンが流れる矢印です。アクティビティから複数の非制御フローが出ていれば、その全てにトークンが流れていきます。その結果、後続のアクティビティ(下図ではB、C、D)が全て実行されます。

制御フローとは、矢印上に記載された条件を満たした時にだけトークンが流れる矢印です。下図では、上の制御フローは「注文価格が1万円以上」の時にだけトークンが流れます。真ん中の制御フローは「注文商品が特注品」のときだけトークンが流れます。両方の条件を満たす場合には両方の制御フローにトークンが流れます。

デフォルトフローは、他に流れるトークンがない時にトークンが流れます。上手では「注文価格が1万円以上」でもなく「注文商品が特注品」でもない時に、デフォルトフローにトークンが流れます。

ゲートウェイの理解を深める

トークンの流れを制御するゲートウェイは、以下のような種類があります。そのうちの代表的な3つについて紹介します(その他のゲートウェイは上級編で紹介します)。

  • 排他(Exclusive)ゲートウェイ
  • 並列(Parallel)ゲートウェイ
  • 包含(Inclusive)ゲートウェイ
  • 複合(Complex)ゲートウェイ
  • イベント準拠(Event Based)ゲートウェイ
  • 並列イベント準拠(Parallel Event Based)ゲートウェイ

排他ゲートウェイは、次に実行する作業を複数の中から1つ選択するという振る舞いを表す場合に使います。分岐のゲートウェイでは複数あるシーケンスフローの中から必ず1つが選ばれてトークンが流れます。合流のゲートウェイは到達したトークンをそのまま次に流します。

並列ゲートウェイは、後続の作業が必ず全て実行される場合に使います。分岐のゲートウェイでは必ず全てのシーケンスフローにトークンが流れます。合流のゲートウェイでは全てのトークンが到達するのを待って、到達したら次にトークンを流します。

包含ゲートウェイは、次にいくつの作業が実行されるのか、状況により変わるという振る舞いを表す場合に使います。分岐のゲートウェイでは、シーケンスフローに記述されている条件に従い、1つ、2つ、または全部のシーケンスフローにトークンが流れます。合流のゲートウェイでは、今流れている全てのトークン(1つ、2つ、または全部のシーケンスフロー。分岐で決まります)が到達するのを待って、到達したら次にトークンを流します。

なお、ゲートウェイは「分流と合流を必ずペアで使う」というものではありません。下図のように分流だけという使い方や、合流だけという使い方もできます。

まとめ

仕事が遅れているときに管理者が「今、誰がボールを握っているんだ!」と怒ることがあります。トークンを受け取ったら作業をする、作業が終わったら次の人にトークンを渡す、トークンは管理者の怒りにおけるボールそのものです。 業務プロセス管理者の気持ちになって業務進捗を把握するかのように、トークンが流れる様子をイメージできるようになればBPMNのフロー制御を極めたと言えると思います。