OpenPages with Watsonでワークフローを構築する際の要件として、よく次のような要件をいただきます。
・複数のユーザーで承認したい。
この時の「複数」の形態として、直列と並列の2つの形態がありえます。
直列
複数のユーザーA、B、Cが承認する。Aさんがまず承認し、その後でBさんが承認する。最後にCさんが承認して完了となる。
BさんはAさんが承認するまで承認行為はできない。CさんはBさんが承認するまで承認行為はできない。
並列
複数のユーザーA、B、Cが承認する。承認する順番は問わないが、3人全員が承認しなければ完了しない。
このうち、「直列」についてはOpenPagesの標準機能で実現ができます。
しかし、「並列」の図のようにOpenPagesで実装しようとすると上記記載の要件は満たせません。Aさん、Bさん、Cさんのどなたかが承認行為を行うとこの承認フローは完了してしまいます。
そのため、順不同に複数名の承認が必要、という場合には多少の工夫が必要になります。
ソリューション
以下のように、複数のステージとアクション、それに付随した適用性を利用する事で疑似的な並列承認を実現する事ができます。
この方式のポイントは、3人の承認者の場合に考えられる全ての承認経路を用意しておく、という点です。
最初の「承認1」のステージでは、担当者として3人すべてを登録しておきます。
承認1から承認する経路を3つ用意しておきます。それぞれの経路は各ユーザー向けの物ですので、Aさんの承認経路とBさんの承認経路の実態は異なるものとなります。Aさん向けの承認経路は、BさんとCさんには表示されませんし、Bさん向け、Cさん向けの承認経路についても同様です。
この例では、Aさんが承認したとします。この場合、承認1から承認2-1に向かう赤い矢印の経路を進みます。
承認2-1の担当者はBさんとCさんに設定します。こうする事で、Aさんが承認した後に、まだBさんとCさんに承認を求める事ができます。
ここでBさんが承認するものとします。この場合、承認2-1から承認3-3に向かう赤い矢印の経路を進みます。
承認3-3の担当者はCさんに設定します。こうする事で、Bさんが承認した後に、Cさんに承認を求める事ができます。
Cさんが承認してはじめてこのフローが完了します。
今の説明は、A→B→Cの順で承認しましたが、B→A→Cの順で承認した場合でもこれとは別の経路をたどって「End」まで至ります。
これにより、承認者の並列かつ順不同の要件を満たすことができるようになります。
まとめ
お客様からよく伺うワークフローの要件を提示しました。
OpenPagesの標準機能では実現ができない並列かつ順不同の承認、という要件をOpenPagesで実現するための工夫について記載しました。