9.2. ワークフローの動的承認者を決定する OpenRules のルール定義ファイルを作成する¶
ワークフローと OpenRules を連携して、処理対象者を動的に設定するためには、 IM-BIS の動的承認者設定の決まりに基づいて返却値を設定する必要があります。このハンズオンでは、稟議フローをサンプルにして、申請書の金額に基づいて承認者を変更できるルールを作成します。
ルールを定義するExcelファイルを作成する手順
このシナリオで作成するルールの概要¶
作成するルールの内容
申請書の「支払金額」に応じて、次のノードの承認者(処理対象者)を変更する- 入力値:支払金額
- 出力値:次の横配置ノードの処理対象者
条件と次の処理対象者の組み合わせは、以下の通りです。- 支払金額が10万円以下の場合、「ユーザ:青柳辰巳」を設定する
- 支払金額が100万円以下の場合、「ユーザ:青柳辰巳」「役職:部長」(円山益男)を設定する
- 支払金額が100万円超の場合、「ユーザ:青柳辰巳」「役職:部長」(円山益男)「役職:社長」(原田浩二)の3人を設定する
- 支払金額がいずれの条件にも当てはまらない場合、「ユーザ:青柳辰巳」「役職:部長」(円山益男)「役職:社長」(原田浩二)の3人を設定する
動的処理者設定のハンズオンを開始するための準備¶
このハンズオンを開始するための準備をする¶
このハンズオンの作業中に、処理対象者のユーザなどを設定するために、IM共通マスタのデータを参照する必要があります。ハンズオンの実行前には、以下の設定を行ってください。
対象のユーザへの「IM 共通マスタ 運用管理者」ロールの付与¶
設定方法は「 テナント管理者操作ガイド 」の「ロールを設定する」を参照してください。
「IM 共通マスタ 運用管理者」ロールへの「サンプル会社」の認可の参照の許可設定¶
「 IM-共通マスタ 管理者操作ガイド 」の「会社情報の参照権を登録する」の手順を参考に、「IM共通マスタ運用管理者」ロールに対して、認可の「サンプル会社」の「編集」を「許可」に設定してください。
動的処理対象者設定テンプレートの編集を開始する¶
このハンズオンでは、ダウンロードの章で公開しているテンプレートを変更しながら、 OpenRules で動的処理者設定を定義していきます。まずは、テンプレートファイルを入手しましょう。
OpenRules のテンプレート から「動的処理対象者設定テンプレート」をダウンロードしてください。 ファイルを別名で保存した後に、ファイルの編集を開始します。
Excelファイルに返却する処理対象者の一覧を作成する¶
処理対象者一覧の入力欄を必要な行のみに修正する¶
テンプレートの「処理対象者一覧」は、判定用コードの全種類の入力欄が表示されていますので、必要な判定用コードのみを表示するように変更します。
編集中のExcelファイルの「Rule」シートを表示します。 「Rule」シートから「Data IMDynamicUser settings」テーブルを表示します。(シート上の説明は、不要であれば削除します。) 今回のハンズオンでは、処理対象者プラグインの種類が「ユーザ」と「役職」の2種類を扱います。この2種類のプラグインを表す判定用コードは「1」(ユーザ)と「4」(役職)となるため、プラグインの種類を表す「判定用コード」の値が「1」と「4」以外の行をExcelから削除します。 「役職」を使った処理対象者のパターンは、「部長」と「社長」の2パターンがありますので、判定用コードが「4」(役職)となる行をコピーします。 これで、処理対象者一覧の入力欄を必要な行のみに変更することができました。続いて、各行に必要な設定値を入力していきましょう。
処理対象者に必要な設定値を確認して入力する¶
テンプレートには、判定用コードに合わせた必須項目がピンク色のセルとなっていますので、このセルを埋めるように設定していきましょう。
変更した処理対象者一覧の「対象者ID」(ID)は、ユニークな番号を設定する必要がありますので、1から順に番号を入力します。 続いて、1行目の処理対象者には「ユーザ:青柳辰巳」と返却するための設定を行います。「ユーザ:青柳辰巳」のユーザコードは「aoyagi」となるため、「ユーザーコード」に「aoyagi」と入力すると設定できます。 2行目、3行目には、役職の「部長」や「社長」を返却するための設定を行いますが、必要な情報を確認するために、IM共通マスタのメンテナンス情報を表示します。「青柳辰巳」でログイン後、サイトマップから「共通マスタ」の「組織」をクリックします。 「役職」を設定する際には、「会社コード」「会社組織セットコード」が必要です。「会社コード」「会社組織セットコード」を確認するために、「サンプル会社」を右クリックし、「組織の編集」をクリックします。 組織セットが1つしかない会社の場合には、この表示されている会社の「組織コード」が「会社コード」「会社組織セットコード」になります。この「組織コード」をコピーして、Excelの「会社コード」「会社組織セットコード」に貼り付けてください。 会社(組織)の編集画面を右上の「閉じる」で閉じます。 「役職表示」をクリックして、「役職」のメンテナンス画面を表示します。 左側から「会社名(サンプル会社)」をクリックします。 右側に役職の一覧が表示されますので、表示されている役職の役職コードをExcelファイルの「役職コード」に入力します。 最後に「処理設定No」が残っていますが、「処理設定No」の設定値は、以下のように縦配置・横配置ノードの設定画面で設定するノードの順に対応しています。 左の図のように表示できるようにするために、処理設定Noの両方に、上から1、2、3と入力しましょう。 これで、処理対象者一覧が完成しましたので、一度ファイルを保存しましょう。
条件と処理対象者一覧を関連付ける¶
DecisionTable に条件を設定する¶
今回作成するワークフローでは、画面の「支払金額」に応じて、処理対象者を変更します。まず、「支払金額の条件」をExcel上に設定していきましょう。
編集したExcelファイルを開きます。 「Rule」シートの「DecisionTable」を表示します。 テーブルの名前を「decideApprover」に変更しましょう。 Condition の項目を画面に合わせて、「支払金額」に変更します。 1行目には、「支払金額が10万円以下」の条件を記述します。演算子と組み合わせて左に「<=」、右に「100000」と入力しましょう。 同じように残りの条件を入力しましょう。 これで、条件が設定できましたので、次の手順で結果を設定していきましょう。
DecisionTable の結果に処理対象者を設定する¶
先の手順で設定した条件の結果に処理対象者を設定していきましょう。
編集中の DecisionTable の Conclusion には、「Setting IDs」とこれは、処理対象者を返却する列、という設定になりますので、そのままにします。 Conclusion の値の欄には、先に作成した処理対象者一覧(Data IMDynamicUser)の「ID」の値を入力します。各条件に合わせて、以下のように入力しましょう。2行目や3行目のように複数の処理対象者を返却する場合には、カンマ区切りで入力します。 これで、条件に応じて処理対象者を返却するためのルールが作成できました。最後に、Excelファイル内で必要な定義を設定しておきましょう。
実行に必要な定義を設定する¶
ルールの表が完成しましたので、実行に必要なその他の定義を設定していきましょう。
編集中のExcelファイルの「Data」シートを表示しましょう。 このシート中の ResponseObject は、実行に必要な設定のままとなっておりますので、そのままにします。入力にあたる「InputObject」に関する定義を修正していきましょう。 InputObjの「Variable」の表では、先の手順で論理名を「支払金額」と変更しましたので、同じように変更します。 続いて、支払金額の物理名も同じように「paymentAmount」とするために、InputObjのDatatype、Variableの表を変更します。 「Glossary」シートを表示しましょう。 このシート中の ResponseObject も変更する必要はありません。InputObjの項目の論理名・物理名を先の手順で変更した「支払金額」「paymentAmount」に変更します。 「Main」シートを表示しましょう。 「Main」シートでは、実行する Decision 以外については、必要な設定が行われていますので、そのままにします。Decision の「Decisions」が「rules」となっている行の「Execute Decision Tables」の値を、先に設定した DecisionTable の名前「decideApprover」に変更します。 これで、 OpenRules で処理対象者を決定するためのExcelファイルの設定が完了しましたので、ファイルを保存します。IM-BIS のワークフローと連携するための設定を行っていきましょう。