4.3.16.1. 包括ゲートウェイを使用する¶
- 「生田一哉」(ユーザコード:ikuta)
- 「上田辰男」(ユーザコード:ueda)
- 「萩本順子」(ユーザコード:hagimoto)
コラム
コラム
4.3.16.1.1. プロセス定義を作成する¶
- 出張経費に「外泊費」を含めて申請する
- 出張経費に「新幹線の交通費」を含めて申請する
- 上記二つが当てはまらない申請をする
「開始イベント」 を設置します。
プロセス開始時に表示する「申請画面」のアプリーケーション画面を設定します。申請したユーザを「確認画面」のタスクの担当者に設定するために、「イニシエータ」を設定しておきます。「開始イベント」の「メインコンフィグ」から、以下のとおりに項目を設定します。
- イニシエータ : starter
- フォームキー : forma:bus_trip_expenses_form
図: 「開始イベント」 - 「プロパティ」 - 「メインコンフィグ」 プロセス全体に対する設定を行います。「開始イベント」ではない場所をクリックし、「プロパティ」をプロセス全体に切り替えます。「プロセス」タブの「処理対象グループ」に「 im_bpm_manager 」を設定します。
図:プロセス全体 - 「プロパティ」 - 「プロセス」 承認結果の初期値を設定します。「データオブジェクト」タブから、「データプロパティ」の「追加」をクリックします。図:プロセス全体 - 「プロパティ」- 「データオブジェクト」 「データプロパティ」ダイアログから、以下のとおりに3つデータプロパティを作成します。
- 「外泊承認結果」
- ID:stay_overnight_appr
- 名前:stay_overnight_appr
- 型: string
- 値:1
- 「新幹線使用承認結果」
- ID:bullet_train_appr
- 名前:bullet_train_appr
- 型: string
- 値:1
- 「デフォルト承認結果」
- ID:default_appr
- 名前:default_appr
- 型: string
- 値:1
図:「データプロパティ」「包括ゲートウェイ」を設置します。
図 : 「包括ゲートウェイ」 「外泊あり」の出張経費申請の承認を「生田」に対して依頼するタスクを作成します。「承認画面」の「ユーザタスク」を設置します。 「ユーザタスク」を選択し、「メインコンフィグ」タブで以下のとおりに項目を設定します。
- 担当者 : ikuta
- フォームキー : forma:bus_trip_expenses_approval
図 : 「ユーザタスク」 - 「プロパティ」- 「メインコンフィグ」 「承認画面」で選択された承認結果を「確認画面」で判定するため、「データオブジェクト」で用意した変数「stay_overnight_appr」を上書きします。「ユーザタスク」の「リスナ」タブから、「タスクリスナ」の追加をクリックします。図 : 「ユーザタスク」 - 「プロパティ」- 「リスナ」 「タスクリスナ」ダイアログで、以下のとおりに項目を設定します。
- イベント : complete
- タイプ : 式
- 式 : ${execution.setVariable('stay_overnight_appr', execution.getVariable('approval'))}
図 : 「タスクリスナ」 上記の「外泊あり」と同じ手順で、「新幹線を利用する」が選択された場合に「上田」に対して承認を依頼するタスクを作成します。「承認画面」の「ユーザタスク」を設置します。 「ユーザタスク」を選択し、「メインコンフィグ」タブで以下のとおりに項目を設定します。
- 担当者 : ueda
- フォームキー : forma:bus_trip_expenses_approval
図 : 「ユーザタスク」 - 「プロパティ」- 「メインコンフィグ」 「承認画面」で選択された評価結果を「確認画面」で判定するため、「データオブジェクト」で用意した変数「bullet_train_appr」に上書きします。「ユーザタスク」の「リスナ」タブから、「タスクリスナ」の「追加」をクリックします。図 : 「ユーザタスク」 - 「プロパティ」- 「リスナ」 「タスクリスナ」ダイアログで、以下のとおりに項目を設定します。
- イベント : complete
- タイプ : 式
- 式 : ${execution.setVariable('bullet_train_appr', execution.getVariable('approval'))}
図 : 「タスクリスナ」 「外泊あり」と「新幹線を利用する」が選択されなかった申請の場合、「萩本」に対して承認を依頼するタスクを配置します。「承認画面」の「ユーザタスク」を設置します。 「ユーザタスク」を選択し、「メインコンフィグ」タブで以下のとおりに項目を設定します。
- 担当者 : hagimoto
- フォームキー : forma:bus_trip_expenses_approval
図 : 「ユーザタスク」 - 「プロパティ」- 「メインコンフィグ」 「承認画面」で選択された評価結果を「確認画面」で判定するため、「データオブジェクト」で用意した変数「default_appr」を上書きします。「ユーザタスク」の「リスナ」タブから、「タスクリスナ」の「追加」をクリックします。図 : 「ユーザタスク」 - 「プロパティ」- 「リスナ」 「タスクリスナ」ダイアログの項目を、以下のとおりに設定します。
- イベント : complete
- タイプ : 式
- 式 :${execution.setVariable('default_appr', execution.getVariable('approval'))}
図 : 「タスクリスナ」 他の承認の判定を待つため「包括ゲートウェイ」を設置します。図 : 「包括ゲートウェイ」 出張経費申請の結果を表示する「確認画面」のタスクを作成します。「ユーザタスク」を設置します。 開始イベントに設定した「イニシエータ」の値を使用し、申請者に対して「確認画面」を送信します。「ユーザタスク」を選択し、「プロパティ」の「メインコンフィグ」から以下のとおりに項目を設定します。
- 担当者 : ${starter}
- フォームキー : forma:bus_trip_expenses_confirm
図 : 「ユーザタスク」 - 「プロパティ」 - 「メインコンフィグ」終了イベントを設置します。
「申請画面」で選択された情報をもとに、フローを進める条件を設定します。「外泊あり」のタスクに繋がる「シーケンスフロー」を選択し、「メインコンフィグ」の「条件」に「${stay_overnight == '1'}」を設定します。図 : 「シーケンスフロー」 - 「プロパティ」 - 「メインコンフィグ」「新幹線を使用する」のタスクに繋がる「シーケンスフロー」を選択し、「メインコンフィグ」の「条件」に「${bullet_train == ’1’}」を設定します。
図 : 「シーケンスフロー」 - 「プロパティ」 - 「メインコンフィグ」 「外泊あり」と「新幹線を利用」が選択されなかった場合、「日帰り(新幹線を使用しない)」へ進行するよう設定します。「日帰り(新幹線を使用しない)」へ続くシーケンスフローをクリックし、「基本情報」タブからIDを確認します。図 : 「シーケンスフロー」 - 「プロパティ」 - 「基本情報」「包括ゲートウェイ」を選択し、「基本情報」の「デフォルトフロー」から、上記で確認したIDを選択します。
図 : 「包括ゲートウェイ」 - 「プロパティ」 - 「基本情報」
4.3.16.1.2. 結果を確認する¶
このチュートリアルで作成した「プロセス定義」を実行環境にデプロイし、実行結果の確認を行います。
4.3.16.1.2.1. デフォルトフローの結果を確認する¶
「包括ゲートウェイ」から、デフォルトフローへ進行する場合を確認します。
「サイトマップ」→「BPM」→「プロセス開始一覧」画面を表示します。
プロセス開始一覧から、「」アイコンをクリックします。
図 : 「プロセス開始一覧」「IM-FormaDesigner」で作成したFormaアプリケーション、「申請画面」が表示されます。
今回は包括ゲートウェイの「デフォルトフロー」へ進行したいので、「外泊あり」と「新幹線を利用する」のチェックボックスは入れません。適当な値を入力し、「申請」ボタンをクリックします。図 : 申請画面(IM-FormaDesigner) 「日帰り(新幹線を利用しない)」の申請を承認します。「日帰り(新幹線を利用しない)」の担当者である「萩本」でログインします。 「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。個人タスクに振り分けられている「日帰り(新幹線を利用しない)」の「」をクリックします。図 : 「タスク一覧」 - 「個人タスク」「IM-FormaDesigner」で作成したFormaアプリケーション、「承認画面」が表示されます。
ラジオボタンの「承認する」を選択し、「送信」ボタンをクリックします。
図 : 承認画面(IM-FormaDesigner) 承認結果を確認します。プロセスを開始したユーザでログインします。 「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。個人タスクに振り分けられている「確認画面」の「」をクリックします。図 : 「タスク一覧」 - 「個人タスク」 「IM-FormaDesigner」で作成したFormaアプリケーション、「確認画面」が表示されます。「萩本」の承認が下りたため、出張経費申請が承認されました。図 : 確認画面(IM-FormaDesigner) デフォルトフローに進行した場合、ほかのタスクは処理されません。「外泊あり」の担当者である「生田」、「新幹線を利用する」の担当者である「上田」の個人タスク一覧に、依頼がないことを確認します。
4.3.16.1.2.2. 条件分岐による複数の承認・否認の結果を確認する¶
シーケンスフローの条件に該当し、「包括ゲートウェイ」から複数分岐する場合を確認します。
「サイトマップ」→「BPM」→「プロセス開始一覧」画面を表示します。
プロセス開始一覧から、「」アイコンをクリックします。
図 : 「プロセス開始一覧」「IM-FormaDesigner」で作成したFormaアプリケーション、「申請画面」が表示されます。
適当な値を入力し、「申請」ボタンをクリックします。今回は「外泊あり」と「新幹線を利用する」を選択した状態で申請します。図 : 申請画面(IM-FormaDesigner) 「外泊あり」の申請を否認します。「外泊あり」の承認依頼先である「生田」でログインします。 「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。 個人タスクに振り分けられている「外泊あり」の「」をクリックします。図 : 「タスク一覧」 - 「個人タスク」「IM-FormaDesigner」で作成したFormaアプリケーション、「承認画面」が表示されます。
ラジオボタンの「否認する」を選択し、「送信」ボタンをクリックします。
図 : 承認画面(IM-FormaDesigner) 「新幹線を利用する」の申請を承認します。「新幹線を利用する」の承認依頼先である「上田」でログインします。 「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。 個人タスクに振り分けられている「新幹線を使用する」の「」をクリックします。図 : 「タスク一覧」 - 「個人タスク」「IM-FormaDesigner」で作成したFormaアプリケーション、「承認画面」が表示されます。
ラジオボタンの「承認する」を選択し、「送信」ボタンをクリックします。
図 : 承認画面(IM-FormaDesigner) 承認結果を確認します。プロセスを開始したユーザでログインします。 「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。個人タスクに振り分けられている「確認画面」の「」をクリックします。図 : 「タスク一覧」 - 「個人タスク」 「IM-FormaDesigner」で作成したFormaアプリケーション、「確認画面」が表示されます。「新幹線を利用する」タスクの担当者である「上田」は承認しましたが、「外泊あり」タスクの担当者である「生田」が否認したため、結果が否認になりました。図 : 確認画面(IM-FormaDesigner) 他のシーケンスフローの条件に一致したため、「デフォルトフロー」である「日帰り(新幹線を利用しない)」のタスクは実行されません。「日帰り(新幹線を利用しない)」の担当者である「萩本」でログインし、個人タスク一覧に承認依頼のタスクがないことを確認します。