IM-BIS for Accel Platform OpenRules for IM-BIS 連携ガイド 第9版 2019-04-01

9.2. ワークフローの動的承認者を決定する OpenRules のルール定義ファイルを作成する

ワークフローと OpenRules を連携して、処理対象者を動的に設定するためには、 IM-BIS の動的承認者設定の決まりに基づいて返却値を設定する必要があります。
このハンズオンでは、稟議フローをサンプルとして、申請書の金額に基づいて承認者を変更できるルールを作成します。

このシナリオで作成するルールの概要

  • 作成するルールの内容

    申請書の「支払金額」に応じて、次のノードの承認者(処理対象者)を変更する
    • 入力値:支払金額
    • 出力値:次の横配置ノードの処理対象者
    条件と次の処理対象者の組み合わせは、以下の通りです。
    • 支払金額が10万円以下の場合、「ユーザ:青柳辰巳」を設定する
    • 支払金額が100万円以下の場合、「ユーザ:青柳辰巳」「役職:部長」(円山益男)を設定する
    • 支払金額が100万円超の場合、「ユーザ:青柳辰巳」「役職:部長」(円山益男)「役職:社長」(原田浩二)の3人を設定する
    • 支払金額がいずれの条件にも当てはまらない場合、「ユーザ:青柳辰巳」「役職:部長」(円山益男)「役職:社長」(原田浩二)の3人を設定する

ルールのExcelファイルを作成する手順

新規にExcelファイルを作成し、 OpenRules の実行に必要な表(テーブル)を順番に作成していきます。
このシナリオでは、以下の図の流れで作成していきます。

動的処理者設定のハンズオンを開始するための準備

このハンズオンを開始するための準備をする

このハンズオンの作業中に、処理対象者のユーザなどを設定するために、IM共通マスタのデータを参照する必要があります。
ハンズオンの実行前には、以下の設定を行ってください。

対象のユーザへの「IM 共通マスタ 運用管理者」ロールの付与

設定方法は「 テナント管理者操作ガイド 」の「ロールを設定する」を参照してください。

「IM 共通マスタ 運用管理者」ロールへの「サンプル会社」の認可の参照の許可設定

IM-共通マスタ 管理者操作ガイド 」の「会社情報の参照権を登録する」の手順を参考に、「IM共通マスタ運用管理者」ロールに対して、認可の「サンプル会社」の「編集」を「許可」に設定してください。
../../_images/authz_settings.png

動的処理対象者設定テンプレートの編集を開始する

このハンズオンでは、ダウンロードの章で公開しているテンプレートを変更しながら、 OpenRules で動的処理者設定を定義していきます。
まずは、テンプレートファイルを入手しましょう。
  1. OpenRules のテンプレート から「動的処理対象者設定テンプレート」をダウンロードしてください。
  2. ファイルを別名で保存した後に、ファイルの編集を開始してください。

Excelファイルに返却する処理対象者の一覧を作成する

処理対象者を返却するルールを作成する場合には、最初に返却する処理対象者の一覧を作成します。
この一覧では、処理対象者の設定値を識別するID情報と、処理対象者プラグインの種類(ユーザや組織、役職など)、プラグインにあわせた設定値(ユーザコード、組織コード等)をまとめます。
以下のように設定する処理対象者のプラグインの種類(組織やユーザ、役職など)と対応するコード(組織コードやユーザコードなど)をExcel上にまとめていきます。
  1. 支払金額と処理対象者の関係をまとめた DecisionTable に基づいて、処理対象者の一覧を作成します。
    ../../_images/data_imdynamicuser_1.png
    重複する処理対象者は1つにまとめた結果は以下の表の通りです。
    プラグイン種類
    設定内容
    ユーザ 青柳辰巳
    役職 部長(円山益男)
    役職 社長(原田浩二)
  2. IM-BIS のルートに処理対象者を設定するために必要な情報を以下の表にまとめます。
    先の手順でまとめた3つの処理対象者は、それぞれ1行ずつ設定を記述しています。
    表の形式の詳細は「 【動的処理者設定】処理対象者プラグイン設定一覧(Data IMDynamicUser) 」を参照してください。
    ../../_images/data_imdynamicuser_2.png
    1. ユーザ:青柳辰巳の設定です。
    2. 役職:部長(円山益男)の設定です。
    3. 役職:社長(原田浩二)の設定です。
    表の青枠で囲まれた左の列のIDを DecisionTable の返却値( Conclusion )に設定すると、 IM-BIS のルートの処理対象者として扱うことができます。

処理対象者一覧の入力欄を必要な行のみに修正する

テンプレートの「処理対象者一覧」は、判定用コード(プラグインの種類)の全ての入力欄が表示されています。
ハンズオンで必要な判定用コードのみを表示するように変更しましょう。
  1. 編集中のExcelファイルの「Rule」シートを表示してください。
    ../../_images/arrange_dt_1.png
  2. 「Rule」シートから「Data IMDynamicUser settings」テーブルを表示してください。
    (シート上の説明は、削除してください。)
    ../../_images/arrange_dt_2.png
  3. 今回のハンズオンでは、処理対象者プラグインの種類が「ユーザ」と「役職」の2種類を扱います。
    この2種類のプラグインを表す判定用コードは「1」(ユーザ)と「4」(役職)です。
    「判定用コード」の値が「1」と「4」の行を残し、それ以外の行をExcelの表から削除してください。
    以下の図の赤枠の行が削除対象です。
    ../../_images/arrange_dt_3.png
  4. 「役職」を使った処理対象者のパターンは、「部長」と「社長」の2パターンがあります。
    判定用コードが「4」(役職)の行をコピーして2行にしてください。
    ../../_images/arrange_dt_4.png
  5. これで、処理対象者一覧の入力欄を必要な行のみに変更することができました。
    続いて、各行に必要な設定値を入力していきましょう。

処理対象者に必要な設定値を確認して入力する

テンプレートには、判定用コードに合わせた必須項目がピンク色のセルで表されています。
このセルを埋める形で処理対象者として返却するために必要な情報を設定していきましょう。
  1. 変更した処理対象者一覧の「対象者ID」(ID)は、ユニークな番号を設定する必要があります。
    上から順に1、2、3と番号を入力してください。
    ../../_images/create_dt_1.png
  2. 続いて、1行目の処理対象者には「ユーザ:青柳辰巳」と返却するための設定を行いましょう。
    「ユーザ:青柳辰巳」の設定内容として「ユーザコード」の列に「aoyagi」と入力してください。
    ../../_images/create_dt_2.png

    コラム

    対象のユーザのユーザコードが分からない場合には、IM共通マスタのユーザのメンテナンス画面から確認してください。

  3. 2行目、3行目には、役職の「部長」や「社長」を返却するための設定を行います。
    設定に必要な情報を確認するために、IM共通マスタのメンテナンス情報を表示してください。
    「青柳辰巳」でログイン後、サイトマップから「共通マスタ」の「組織」をクリックしてください。
    ../../_images/create_dt_3.png
  4. 「役職」を設定する際には、「会社コード」「会社組織セットコード」が必要です。
    「会社コード」「会社組織セットコード」を確認するために、「サンプル会社」を右クリック後に表示されるメニューから「組織の編集」をクリックしてください。
    ../../_images/create_dt_4.png
  5. 組織セットが1つしかない会社の場合には、この表示されている会社の「組織コード」が「会社コード」「会社組織セットコード」に該当します。
    この「組織コード」をExcelの「会社コード」「会社組織セットコード」のセルに入力してください。
    ../../_images/create_dt_5.png
  6. 会社(組織)の編集画面を右上の「閉じる」をクリックして閉じてください。
    ../../_images/create_dt_6.png
  7. 「役職表示」をクリックして、「役職」のメンテナンス画面を表示してください。
    ../../_images/create_dt_7.png
  8. 左側から「会社名(サンプル会社)」をクリックしてください。
    ../../_images/create_dt_8.png
  9. 右側に役職の一覧が表示されますので、表示されている役職の役職コードをExcelファイルの「役職コード」に入力してください。
    ../../_images/create_dt_9.png
  10. 「処理設定No」の設定値は、以下のように縦配置・横配置ノードの設定画面で設定するノードの順に対応しています。
    それぞれ表の上から順にノードに設定できるように、処理設定Noには1、2、3と入力してください。
    ../../_images/create_dt_10.png
  11. 処理設定Noを1、2、3と異なる数字に設定したため、実際にフローを実行したときには以下の図のように3つのノードとして展開されます。
    ../../_images/create_dt_11.png

    コラム

    この「処理設定No」を同じ番号にした場合には、1つのノードの処理対象者として設定されるため、青柳辰巳・部長・社長のいずれかが承認した時点で完了するフローが設定できます。

  12. これで、処理対象者一覧が完成しましたので、一度ファイルを保存しましょう。

条件と処理対象者一覧を関連付ける

処理対象者の一覧を作成できましたので、この一覧の結果と条件を関連付けるための表を作成します。
以下の図のように、処理対象者一覧の表と処理対象者を決定するための DecisionTable をIDとSetting IDsによって関連付けていきます。
  • 処理対象者の一覧を定義した Data/Variable

    ../../_images/imdynamicuser_data.png
  • 処理対象者を支払金額に基づいて決定する DecisionTable

    ../../_images/imdynamicuser_decisiontable.png
    Setting IDs
    IM-BIS の動的処理対象者設定と連携する場合の「処理対象者一覧設定のID列の値」を表します。
    DecisionTable に記述されたIDの値に基づいて、ルートの処理対象者を設定するために必要な情報を処理対象者一覧の表から取得します。

DecisionTable に条件を設定する

今回作成するワークフローでは、画面の「支払金額」に応じて、処理対象者を変更します。
まず、「支払金額の条件」をExcel上に設定していきましょう。
  1. 編集したExcelファイルを開いてください。
  2. 「Rule」シートの「DecisionTable」を表示してください。
    ../../_images/set_condition_1.png
  3. テーブルの名前を「decideApprover」に変更してください。
    ../../_images/set_condition_2.png
  4. Condition の項目を「支払金額」に変更してください。
    ../../_images/set_condition_3.png
  5. 1行目には、「支払金額が10万円以下」の条件を記述します。
    演算子と組み合わせて表現するために、左に「<=」、右に「100000」と入力してください。
    ../../_images/set_condition_4.png
  6. 同じように残りの条件を以下の通りに入力してください。
    • 2行目に設定する条件:支払金額が100万円以下

      左:<=
      右:1000000
    • 3行目に設定する条件:支払金額が100万円超

      左:>
      右:1000000
    ../../_images/set_condition_5.png
  7. これで、条件が設定できましたので、次の手順で結果を設定していきましょう。

DecisionTable の結果に処理対象者を設定する

先の手順で設定した条件の結果に処理対象者を設定していきましょう。
  1. 編集中の DecisionTableConclusion には、「Setting IDs」と設定されていることを確認してください。
    これは、処理対象者を返却する列を表します。
    ../../_images/imdynamicuser_1.png
  2. Conclusion の演算子は、「Are」が設定されています。
    処理対象者を返却する場合には、複数の処理対象者を返却することができるように、演算子「Are」を使います。
    ../../_images/imdynamicuser_2.png
  3. Conclusion の値の欄には、先に作成した処理対象者一覧(Data IMDynamicUser)の「ID」の値を入力しましょう。
    各条件に合わせて、以下の通りに入力してください。
    2行目や3行目のように複数の処理対象者を返却する場合には、カンマ区切りで入力してください。
    • 1行目:1(ユーザ:青柳辰巳)
    • 2行目:1,2(ユーザ:青柳辰巳、役職:部長)
    • 3行目:1,2,3(ユーザ:青柳辰巳、役職:部長、役職:社長)
    ../../_images/imdynamicuser_3.png
  4. これで、条件に応じて処理対象者を返却するためのルールが作成できました。
    最後に、Excelファイル内で必要な定義を設定しておきましょう。

実行に必要な定義を設定する

ルールの表が完成しましたので、実行に必要なその他の定義を設定していきましょう。
  1. 編集中のExcelファイルの「Data」シートを表示してください。
    ../../_images/complete_rule_1.png
  2. このシート中の ResponseObject は、実行に必要な設定が行われているため、何も変更しません。
    入力に対応する「InputObject」に関する定義に必要な設定を行っていきましょう。
    ../../_images/complete_rule_2.png
  3. InputObjの「Variable」の表で項目の論理名を「支払金額」と変更しましたので、同じように「支払金額」に変更してください。
    ../../_images/complete_rule_3.png
  4. 続いて、支払金額に対応する物理名を設定するために、InputObjのDatatype、Variableに「paymentAmount」と設定してください。
    ../../_images/complete_rule_4.png
  5. 「Glossary」シートを表示してください。
    ../../_images/complete_rule_5.png
  6. このシート中の ResponseObject も変更する必要はありません。
    InputObjの項目の論理名・物理名を「支払金額」「paymentAmount」に変更してください。
    ../../_images/complete_rule_6.png
  7. 「Main」シートを表示してください。
    ../../_images/complete_rule_7.png
  8. 「Main」シートでは、実行する Decision 以外には、必要な設定が行われていますので、何も変更する必要はありません。
    Decision の「Decisions」列に「rules」と記載されている行の「Execute Decision Tables」の値を、先に設定した DecisionTable の名前「decideApprover」に変更してください。
    ../../_images/complete_rule_8.png
  9. これで、 OpenRules で処理対象者を決定するためのExcelファイルの設定が完了しましたので、ファイルを保存してください。
    IM-BIS のワークフローと連携するための設定を行っていきましょう。