STEP4: 条件により「分岐」させる

STEP3 で「上司」スイムレーンが追加されたことで、申請者の上司が出張申請処理に関われるようになりました。そうなると、「上司は申請に目を通すだけでいいのだろうか?」などとアプリ改良へのアイデアが出てきますね。このチュートリアルの最終回として、条件によってトークンの行き先を変える「分岐」の実装を紹介します。これによりアプリの表現力がぐっと高まります。

上司が申請を「却下」できるようにする

今のままでは出張申請を却下することができません。上司が「承認」タスクで申請内容に目を通したら、「承認」するか「却下」するか選べるようにするべきです。この「却下」の選択肢を作ってみましょう。

ワークフロー図の編集

モデラーのワークフロー図タブを開いてください。そして「上司」スイムレーンに終了イベントを追加し、「承認」タスクからフローを引いてください。

フローを増やすと「条件 1」と「条件 2」が表示されるようになりました。これはタスクの処理フォームで最下部に表示されるボタンの名前になります。つまり「条件 1」と「条件 2」、どちらのボタンがフォームで選択されたかによって、トークンの行き先が変わるという分岐を表しているのです。

ボタン名の設定

では、各ボタンの表示名を設定しましょう。「承認」タスクをダブルクリックしてプロパティウインドウを開いてください。分岐タブを見るとボタン名の設定項目があります。

遷移先が「確認」の方のボタン名を「承認」に、「終了」の方のボタン名を「却下」に変更してください。これで上司が「承認」タスクを処理する際、「承認」ボタンをクリックすると「確認」タスクに、「却下」ボタンをクリックすると「上司」スイムレーンの終了イベントにトークンが遷移するようになりました。これでアプリを保存してリリースしてみましょう。

例えば「カナリア」から出張申請を出して、上司である「スマトラ」のアカウントで「承認」タスクを受け取ると、このようなページになっています。新しく作成した「却下」ボタンをクリックしてみます。

トークンが「上司」スイムレーンの終了イベントに進んで、プロセスが終了しました。このように、選択肢を用いることでトークンの遷移先を変えることができます。これが「分岐」の実装のうちの 1 つです。

本当は上司が申請を「却下」した場合、申請者に差し戻したほうがいいでしょう。しかし、今回は簡単のため、「却下」した場合はプロセス終了としています。

高額申請の場合、社長も確認するようにする

最後に、100 万円を超える高額な出張申請については、社長の確認も必要になるようにしましょう。またアプリに変更を加えるのでモデラーを起動してください。

ワークフロー図の編集

まず次のようにワークフロー図を変更します。新たに「社長」スイムレーンを追加し、「承認」タスク以降を大幅に変更します。詳しく手順を見ていきましょう。

まず「社長」スイムレーンを追加します。ドラッグ&ドロップで新しいスイムレーンを「管理部」スイムレーンと「上司」スイムレーンの間に入れましょう。そして追加したスイムレーンの名前を「社長」に変更してください。また、「社長」スイムレーンに「確認」タスクを追加してください。

上の図で「分岐」「合流」と書かれている、緑色のひし形オブジェクトはゲートウェイと言います。フローの分岐や合流を制御するものです。ゲートウェイはヒューマンタスクなどが入っている basic パレットではなく、advanced パレットに入っています。

ひし形のアイコンに触れると「ゲートウェイ」の一覧が展開されます。ここからアイコンをドラッグ&ドロップすることで、ワークフロー図に各種ゲートウェイを追加することができます。今回使用するゲートウェイは次の 2 種類です。

排他 (XOR) ゲートウェイ 複数あるフローのうち、最初に条件を満たした 1 つに進む。
結合ゲートウェイ 複数に分かれたフローを 1 つにまとめる。

排他 (XOR) ゲートウェイを「社長」スイムレーンに、結合ゲートウェイを「管理部」スイムレーンに、それぞれ配置してください。配置したばかりの結合ゲートウェイには名前が付いていないので、他のオブジェクトと同じようにプロパティウインドウを開いて、名前を「合流」に設定してください。

このようにオブジェクトが揃っていれば OK です。

あとはフローを引き直すだけです。このとき、「上司」スイムレーンの「承認」タスクから延びるフローを不用意に移動しないよう注意してください。「却下」「承認」のフローには、先ほど設定した分岐条件が付与されています。削除したり、フローの根元(「承認」タスク側)を付け替えたりすると設定が削除されるため、また設定し直さなければなりません。特に「承認」フローは削除してから引き直すのではなく、フローの先端をドラッグ&ドロップで付け替えるようにしてください。

以上のことに気を付けて、次の図に合わせてフローを引きましょう。

フローをすべて引き直した後、「承認」タスクから延びるフローの名前が「却下」「承認」のままになっているかどうか確認しましょう。フローを一度削除する/根元を「承認」タスクから外すなどすると、分岐条件が削除され「条件1」「条件2」に戻ってしまいます。もしそうなってしまっていたら、「上司が申請を「却下」できるようにする」の分岐条件設定を再度行ってください。

分岐条件の設定

そして新たに設置した分岐の設定を行います。排他 (XOR) ゲートウェイの「分岐」のプロパティウインドウを開いてください。「遷移先の決定」の項で、条件ごとのトークンの遷移先を設定することができます。

条件 遷移先
出張費用が100万円以上 「社長」スイムレーンの「確認」タスク
それ以外 「管理部」スイムレーンの「合流」ゲートウェイ

このように設定できれば、目的の挙動が得られそうです。最初から 2 つの条件と「デフォルトフロー」が用意されているので、これを編集していきましょう。デフォルトフローとは、どの遷移条件も満たされていないときに選択されるものです。つまり「金額が100万円以上」という条件と、デフォルトフローを設定すれば OK ですね。デフォルトフローが上の表の「それ以外」の役割を果たしてくれます。

まず、条件は 1 つ + デフォルトフローで十分なので、遷移先が「合流」になっている条件をで削除してください。次に、「デフォルトフロー」の遷移先を「合流」に変更します。これで「それ以外」の設定ができました。

そして条件のうち、遷移先が「確認」になっているものの条件式が「無条件に遷移」になっていますが、これを「金額が 100 万円を超えていたら遷移」という内容に変更します。条件式をクリックすると設定ウインドウが開くので、次のように入力してください。

データ項目「金額」の値が 1000000 以上、すなわち出張費用が 100 万円を超えていたら社長スイムレーンの「確認」タスクに遷移する、という設定になりました。これで上の表の通りにトークンの遷移を制御できます。

「分岐」プロパティがこのようになっているかどうか、確認してください。「合流」(結合ゲートウェイ)は特に設定事項はありません。これでワークフロー図の完成です!

処理担当者の設定

ワークフロー図の編集が終わったら、次は処理担当者の設定です。処理担当者タブで、「社長」スイムレーンの処理担当者を「組織」「00 (会社名)」「のリーダ」に変更してください。組織「00 (会社名)」は最上位組織でしたね。そのリーダなので、つまり社長ということになります。

では、アプリを保存してリリースし、100 万円以上の高額申請を社員から出してみましょう。まずは先ほどと同じように、申請者直属の上司に「承認」タスクが届きます。上司が「承認」すると、今度は社長である「あなた」のアカウントに「確認」タスクが届くはずです。

作成した出張申請アプリは正しく動作しましたか? アプリを作成したら、直属の上司の指定も、社長の確認を取るかどうかも、アプリが自動で処理してくれました。そして、いつ・誰が・どのタスクを処理したかというログも、すべて後から確認することができます。

初心者向けチュートリアルの内容はこれで終了です。Questetra BPM Suite の機能のうち初歩的な内容のみ紹介しましたが、いかがでしたでしょうか。ぜひ Questetra BPM Suite を用いて、日々繰り返される業務ルールの自動化・見える化にチャレンジしてください!