第3回:BPMN仕様違反のBPMN図例(メッセージフロー編)

 今回はメッセージフローの仕様違反に関して、前回までと同様にBPMNの記述解説書「BPMNメソッド&スタイル」(ブルース・シルバー著、以下「M&S」)での解説と、その解説がBPMN仕様書(以下「仕様書」)の、どこに、どのように記載されているかという形で述べていきます。(前回までと同様でコレオグラフィーに関する記述部分は省略します。)
 総務省のサイトから公開されている(https://www.soumu.go.jp/main_content/000644854.pdf以下「本資料」)をベースに、メッセージフローについて解説していきます。

1.メッセージフローとは

 M&S(日本語版P48-49)では「メッセージフローは、プロセスおよび外部実体との間のコミュニケーションを表現します。メッセージフローは、任意のタイプのアクティビティ、メッセージ・イベント(または多重イベント)、またはブラックボックス・プールに接続することができます。」プロセスとは他のプロセス、外部実体とはブラックボックスプールを指します。ゆえに「メッセージフローは同一プール内のノード(記号)には接続できない。」(M&S日本語版P85)というスタイルルールがあります。BPMN仕様のP41には「Message Flows cannot connect to objects that are within the same Pool.」という記述があります。

 

 ところでM&Sでは「流出メッセージフローを持つユーザー・タスクは、そのタスクがメッセージを送る可能性(possibility)を意味し、メッセージを必ず送らなければならない(must)ということではありません。」(日本語版P49)という記述があります。(下図参照)
 このことはBPMN仕様では明確に記述されている部分が見当たりません。(ブルースに聞いてみたいと思います。)
BPMN仕様のP152に以下の記述があり、
An Activity MAY be the target of a Message Flow; it can have zero (0) or more incoming Message Flows.
An Activity MAY be a source of a Message Flow; it can have zero (0) or more outgoing Message Flows.
これがメッセージフローの本数を言っているではなく、メッセージそのものの送信数を言っているのではないか。すなわちアクティビティに接続される1本のメッセージフローにはゼロ以上のメッセージが流入、流出することができる。と読むのかと思いましたが、それならば後半の文章はFlowsが必要無いのではないかと。
 ここはトリガーとしてのメッセージフローなのか、タスク実行時に外部から情報が来ることがあるという意味の違いであると理解しています。このルールの必要性は上記の図での「仕様変更」がトリガーであるとしてしまうと、仕様変更が来ないと前に進むことができない。という意味になってしまうからです。BPMS実装を考えた場合、困った事態になることからブルースが補ったのか、仕様書のどこかに記述があるのかは現時点ではわからないです。

2.仕様違反のポイント

 冒頭の本資料に以下のような記述があります。赤枠の部分が前述のようにメッセージフローは同じプロセス内の記号に接続することはできないためBPMN仕様違反です。
 また「1.1.5の送信タスク」も「1.1.6の届書等受領」タスクも必要ないです。シーケンスフローそのものが他部署に依頼していることを表現するからです。ゆえに「1.1.4処理依頼」からシーケンスフローで「1.1.7住所情報確認等」に繋げばよいということになります。
前回のシーケンスフロー編での「プロセスレベル内のすべてのアクティビティ、ゲートウェイおよびイベントは、イベントを終了するために開始イベントから終了イベントまでのシーケンスフローの連鎖の上に配置する必要があります。」での仕様違反、前々回のデータオブジェクト編での仕様違反も含まれています。

 以下のプロセス図は仕様違反を修正しM&Sを考慮してレベル1のBPMN図として書き直した例となります。現実の業務がわからないですが、この記述例と上記図とを比べてみてください。
 ムダな記号を減らして業務の受渡しを中心にシンプルに描いています。そうするとリンクイベントを使わずに業務全体が1枚のBPMN図で読み取れるように記述できるでしょう。
また沢山の記号を使うと実務者にとって読みにくいフローとなります。1.1.2~1.1.4をどうしても記述したいのであれば「書類等を確認する」タスクを折りたたまれたサブプロセスに変換し下位の階層に記述するべきです。
なぜそのように記述すべきかは明確な理由があります(ここはBPMN仕様でもM&Sでもありません我々の経験です。)BPMNと実際に動くBPMSを使って説明する必要があるため割愛します。是非、セミナーにご参加いただければと思います。

3.まとめ 

 今まで3回に渡り、総務省のHPに公開されているBPMN仕様違反のBPMN図を紹介することで、データオブジェクト、シーケンスフロー、メッセージフローの正しい使い方を解説しました。今後も仕様違反のBPMN図が公開されている場合、それを例にして正しい記述を示していきたいと思います。
 残念なことですが、例示したもの以外にも国、自治体などでも仕様違反のBPMN図が公開されてしまっているようです。それは、まだまだ我々の努力が足らないのだと思います。今後もなぜBPMN図が必要なのか、なぜBPMN仕様を守らなくてはならないのかを発信しつづけていく必要があると痛感します。BPMにとってBPMNがとても大切なものであるからこそ、より一層の努力をしていきたいと思います。

関連コラム・ページ

第1回:BPMN仕様違反のBPMN図例(データオブジェクト編)
第2回:BPMN仕様違反のBPMN図例(シーケンスフロー編)
あなたが描いているのはBPMN図ではありません
一般的な業務フローとBPMN図との違い
モデルプロセス導入改善とBPM導入方法について
・BPMとは
BPMSとは
BPMNとは
BPM導入支援サービス
モデルプロセス導入支援サービス