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

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

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

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

ワークフロー図の編集

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

フローを増やすと、上司が[承認]した場合と[却下]した場合でトークンの行き先が変わるという分岐ができました。[承認]と[却下]はタスクの処理フォームで最下部に表示されるボタンラベルの名前です。フローを追加した直後は表示されませんので、ボタンラベルの設定をしましょう。

ボタンラベルの設定

では、各ボタンの表示名を設定しましょう。[承認]タスクの設定ダイアログを開いてください。分岐タブを見るとボタン名の設定項目があります。

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

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

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

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

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

最後に、100 万円を超える高額な出張申請については、社長の確認も必要になるようにしましょう。またアプリに変更を加えるので編集画面を開けてください。

ワークフロー図の編集

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

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

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

パレットのうちゲートウェイのひし形右下の▼マークをクリックすると「ゲートウェイ」の一覧が展開されます。ここからアイコンを選択することで、ワークフロー図に各種ゲートウェイを追加することができます。今回使用するゲートウェイは次の 2 種類です。

Basic エディションでは、利用できない[包含(OR)ゲートウェイ ]と[並列(AND)ゲートウェイ ]は表示されません。

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

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

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

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

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

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

分岐条件の設定

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

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

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

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

そして条件のうち、遷移先が「確認」になっているものの条件式が「無条件に遷移」になっていますが、これを「金額が 100 万円を超えていたら遷移」という内容に変更します。鉛筆マークをクリックすると詳細ダイアログが開くので、次のように入力してください。条件名も「条件1」と入力します。

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

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

処理担当者の設定

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

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

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

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

%d人のブロガーが「いいね」をつけました。