IM-BIS for Accel Platform / OpenRules for IM-BIS 連携ガイド 第2版 2015-08-01

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

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

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

  • 作成するルールの内容

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

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

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

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

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

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

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

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

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

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

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

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

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

処理対象者を返却するルールを作成する場合には、最初に返却する処理対象者の一覧を作成します。
この一覧では、処理対象者の設定値を識別するID情報と、処理対象者プラグインの種類(ユーザや組織、役職など)、プラグインにあわせた設定値(ユーザコード、組織コード等)をまとめます。
おおまかには、以下の図のように設定する処理対象者のプラグインの種類(組織やユーザ、役職など)と対応するコード(組織コードやユーザコードなど)をExcel上にまとめていきます。
../../_images/data_imdynamicuser.png

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

テンプレートの「処理対象者一覧」は、判定用コードの全種類の入力欄が表示されていますので、必要な判定用コードのみを表示するように変更します。
  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」(役職)となる行をコピーします。
    ../../_images/arrange_dt_4.png
  5. これで、処理対象者一覧の入力欄を必要な行のみに変更することができました。
    続いて、各行に必要な設定値を入力していきましょう。

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

テンプレートには、判定用コードに合わせた必須項目がピンク色のセルとなっていますので、このセルを埋めるように設定していきましょう。
  1. 変更した処理対象者一覧の「対象者ID」(ID)は、ユニークな番号を設定する必要がありますので、1から順に番号を入力します。
    ../../_images/create_dt_1.png
  2. 続いて、1行目の処理対象者には「ユーザ:青柳辰巳」と返却するための設定を行います。
    「ユーザ:青柳辰巳」のユーザコードは「aoyagi」となるため、「ユーザーコード」に「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」の設定値は、以下のように縦配置・横配置ノードの設定画面で設定するノードの順に対応しています。
    ../../_images/create_dt_10.png
  11. 左の図のように表示できるようにするために、処理設定Noの両方に、上から1、2、3と入力しましょう。
    ../../_images/create_dt_11.png

    コラム

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

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

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

処理対象者の一覧を作成できましたので、この一覧の結果と条件を関連付けるための表を作成します。
おおまかには、以下の図のようにまとめていきます。
../../_images/imdynamicuser_relation.png

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」となっています。
    処理対象者は複数の処理対象者を返却することができるために、この演算子を使います。
    ここもそのままとします。
    ../../_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. 続いて、支払金額の物理名も同じように「paymentAmount」とするために、InputObjのDatatype、Variableの表を変更します。
    ../../_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 のワークフローと連携するための設定を行っていきましょう。