IM-BIS for Accel Platform OpenRules for IM-BIS 連携ガイド 第3版 2015-12-01

5.2. OpenRules のルール定義ファイルを作成する

OpenRules では、Excelファイルで条件や、条件が合致したときの処理を表で作成できます。
このハンズオンでは、簡単なルールをExcelファイルに定義する手順を確認することができます。

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

  • 作成するルールの内容

    入力値の年齢に基づいて、条件に合致したメッセージを返却する
    • 入力値:年齢
    • 出力値:メッセージ
    条件と返却するメッセージの組み合わせは、以下の通りです。
    • 0歳未満(負数)の場合、「エラー!」と返却する
    • 0歳以上6歳未満の場合、「幼児」と返却する
    • 6歳以上13歳未満の場合、「小学生」と返却する
    • 13歳以上16歳未満の場合、「中学生」と返却する
    • 16歳以上19歳未満の場合、「高校生」と返却する
    • 19歳以上23歳未満の場合、「大学生」と返却する
    • 23歳以上の場合、「社会人」と返却する

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

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

Excelファイルにルールの表( DecisionTable )を作成する

最初に、ルールの実体である「 DecisionTable 」の書き方を確認しましょう。
DecisionTable 」では、実際に実行する処理の「条件」と「条件に合致したときの処理」の組み合わせを表にします。
おおまかには、以下の図のように条件と処理をExcel上にまとめます。
../../_images/excel_dt.png

ルールの表( DecisionTable )のヘッダ部分を作成する

表のヘッダは、 OpenRules のキーワードや項目名をルールに従って設定する必要があります。
最初にヘッダとして必要な内容を設定しましょう。
  1. パソコンでExcelを起動し、新規にブックを作成します。
  2. OpenRules では、設定を含めたすべての表の1行目に「テーブルタイプを表すキーワード」と「テーブルの名称」を半角スペースを空けて記述します。
    ../../_images/howto_dt_1_1.png
  3. 最初に作成するのは、条件と処理をまとめた表になるため、キーワードは「 DecisionTable 」になります。
    ../../_images/howto_dt_1_2.png
  4. テーブルの名称は、半角英数字で設定できますので、任意の名称を入力します。
    名称は、1つのファイル内で一意になるようにします。
    (複数のファイルにまたがる場合には、1つのデータソース定義に設定するExcelファイルで一意になるようにします。)
    ../../_images/howto_dt_1_3.png
    Excelファイルのシート上には、このように記述します。
    OpenRules のしくみでは、1番上、1番左端の行・列に入力してはいけないため、1行・1列空けて入力します。
    ../../_images/excel_dt_1.png
  5. 2行目には、「条件」・「処理」の区分を表すキーワードを入力します。
    ../../_images/howto_dt_1_4.png
    このシナリオでは、「条件」は「年齢」の1項目、「処理」は「メッセージ」の1項目になるため、左のセルに条件を表す「Condition」、右のセルに処理を表す「Conclusion」を入力します。
    ../../_images/howto_dt_1_5.png
    Excelファイルのシート上には、このように記述します。
    条件や処理には、演算子の項目、値の項目の2列が必要となるため、Excelファイル上ではこのように結合セルにします。
    ../../_images/excel_dt_2.png
  6. 3行目には、「条件」・「処理」の項目名を入力します。
    ../../_images/howto_dt_1_6.png
    このシナリオでは、「条件」は「年齢」、「処理」は「メッセージ」になるため、左のセルに「年齢」、右のセルに「メッセージ」を入力します。
    ../../_images/howto_dt_1_7.png
    Excelファイルのシート上には、このように記述します。
    条件や処理の項目名もキーワードと同様に、結合セルにします。
    ../../_images/excel_dt_3.png
  7. これで、ヘッダが設定できましたので、一度保存し、次の手順に進みましょう。
  8. ファイルを保存する際には、形式を「Excel 97-2003ブック(*.xls)」としてください。
    xls形式以外で保存した場合、データソース定義に登録することができません。
    ../../_images/excel_dt_4.png

ルールの表( DecisionTable )の条件と処理(返却する値)を設定する

ルールの表のヘッダができましたので、実際に評価(判断)する項目の基準値と、処理(返却する値)を設定していきましょう。
  1. OpenRules の「 DecisionTable 」は、上から順に条件を評価(判断)し、条件に合致したらその行の処理(返却する値)を実行して終了するしくみになっています。
    ../../_images/howto_dt_2_1.png
  2. 「条件」と「処理」には、演算子と値を入力します。
    ../../_images/howto_dt_2_2.png
  3. 最初の条件は、「年齢が0歳未満」となるため、年齢の演算子に「~未満」を表す「<」、値に「0」を入力します。
    ../../_images/howto_dt_2_3.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_dt_5.png
  4. 「年齢が0歳未満」の条件に合致した場合には、メッセージは「エラー!」と返却します。
    そのために、メッセージの演算子に「値の割り当て」を表す「=」、値に「エラー!」を入力します。
    ../../_images/howto_dt_2_4.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_dt_6.png
  5. 次の条件と処理の「0歳以上6歳未満の場合、「幼児」と返却する」を表にするために整理します。
    2番目以降の条件は、「1番目(その条件より上の条件)に合致しない」かつ「2番目以降の条件」と評価(判断)されます。
    そのため、「 DecisionTable 」では、上限の「6歳未満の場合」を2番目の条件に設定します。
    ../../_images/howto_dt_2_5.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_dt_7.png
  6. 2番目の条件に合致した時には、メッセージに「幼児」と返却しますので、1番目と同様に設定します。
    メッセージの演算子に「値の割り当て」を表す「=」、値に「幼児」を入力します。
    ../../_images/howto_dt_2_6.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_dt_8.png
  7. 以下の3番目~6番目の条件は、2番目と同様に設定できますので、2番目と同様の形で設定します。
    • 6歳以上13歳未満の場合、「小学生」と返却する
    • 13歳以上16歳未満の場合、「中学生」と返却する
    • 16歳以上19歳未満の場合、「高校生」と返却する
    • 19歳以上23歳未満の場合、「大学生」と返却する
    ../../_images/howto_dt_2_7.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_dt_9.png
  8. 最後の7番目の条件は、演算子を「以上」を表すものに変更し、2番目と同様の形で設定します。
    メッセージには、「社会人」と入力します。
    ../../_images/howto_dt_2_8.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_dt_10.png
  9. これで、ヘッダ・明細とも設定できましたので、一度保存し、次の手順に進みましょう。

ルールの表( DecisionTable )のレイアウトを整える

ルールの表のヘッダ・明細に必要な値を入力しましたので、レイアウトを整えます。
  1. OpenRules のヘッダの1行目は、条件と処理の列の範囲で結合する必要がありますので、4列分を結合します。
    ../../_images/excel_dt_11.png
  2. 各セルの境界線をわかりやすくするために罫線を引きます。
    ../../_images/excel_dt_12.png
  3. 各セルの書式を OpenRules の標準に合わせて設定します。
    1行目のヘッダを以下の通りに設定します。
    • 文字の揃え方:左揃え
    • セルの背景色(塗りつぶし):黒
    • フォントの色:白
    ../../_images/excel_dt_13.png
  4. 2行目のヘッダのキーワードを以下の通りに設定します。
    • セルの背景色(塗りつぶし):グレー( RGB/217,217,217 )
    ../../_images/excel_dt_14.png
  5. 3行目のヘッダの条件の項目名を以下の通りに設定します。
    • セルの背景色(塗りつぶし):水色( RGB/204,255,255 )
    • セルの文字の装飾:太字
    ../../_images/excel_dt_15.png
  6. 3行目のヘッダの処理の項目名を以下の通りに設定します。
    • セルの背景色(塗りつぶし):青( RGB/141,180,226 )
    • セルの文字の装飾:太字
    ../../_images/excel_dt_16.png
  7. ルールの表(DecisionTable)が完成しましたので、ファイルを保存します。
    次に実行するために必要な表を追加していきます。
    ../../_images/excel_dt_17.png

Excelファイルに項目名のマッピング表( Glossary )を作成する

ルールの基本の表の「 DecisionTable 」では、条件や処理の項目に論理名を設定しましたが、 OpenRules を実行するためには論理名と物理名をマッピングする必要があります。
続いて、項目名のマッピング表( Glossary )を作成していきましょう。
../../_images/excel_g.png

項目名のマッピング表( Glossary )のヘッダ部分を作成する

表のヘッダは、 OpenRules のキーワードや項目名をルールに従って設定する必要があります。
最初にヘッダとして必要な内容を設定しましょう。
  1. 先の手順で作成したExcelファイルを開きます。
  2. マッピング表のキーワードは「 Glossary 」になります。
    ../../_images/howto_g_1_1.png
  3. テーブルの名称は、「glossary」と入力します。
    ../../_images/howto_g_1_2.png
    Excelファイルに設定する各表(テーブル)は、他のテーブルと1つ以上行・列を空ける必要があります。
    作成済みの「 DecisionTable 」と同じシートに設定する場合には、1つ以上行・列を空けて作成していきます。
    ../../_images/excel_g_1.png
  4. 2行目には、各列のラベルを設定します。
    OpenRules の標準では、「Variable」「Business Concept」「Attribute」としていますが、今回はわかりやすくするために「論理名」「グループ」「物理名」とします。
    ../../_images/howto_g_1_3.png

    コラム

    Glossary の列ラベル部分は、自由に名前を設定することができます。
    「Variable」「Business Concept」「Attribute」の並び替えはできません。
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_g_2.png
  5. これで、ヘッダが設定できましたので、一度保存し、次の手順に進みましょう。

項目名のマッピング表( Glossary )の項目・グループ・属性を設定する

項目名のマッピング表のヘッダができましたので、項目グループと物理名のマッピング情報を設定していきましょう。
  1. 論理名の内容を入力します。
    上から順に「名前」「年齢」「メッセージ」と入力します。
    ../../_images/howto_g_2_1.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_g_3.png
  2. 続いて、項目名の内容を設定します。
    項目名は、半角英数字で用語に対応した名称を設定する必要があります。
    このシナリオでは、上から順に「Name」「Age」「message」と入力します。
    ../../_images/howto_g_2_2.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_g_4.png
  3. 業務用語のマッピング表(Glossary)では、実行時に初期化するためのグループで属性をまとめます。
    このシナリオでは、入力項目のグループ、出力項目のグループでまとめます。
    用語に「名前」を設定した行に「InputObject」、「メッセージ」を設定した行に「OutputObject」を設定します。
    ../../_images/howto_g_2_3.png
    「InputObject」のグループには、2つの属性を含みますので、2行のセルを結合します。
    ../../_images/howto_g_2_4.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_g_5.png
  4. これで、業務用語のマッピング表(Glossary)の各項目が設定できましたので、一度保存し、次の手順に進みましょう。

業務用語のマッピング表( Glossary )のレイアウトを整える

ルールの表のヘッダ・明細に必要な値を入力しましたので、レイアウトを整えます。
  1. OpenRules のヘッダの1行目は、「用語」「グループ」「項目名」の列の範囲で結合する必要がありますので、3列分を結合します。
    ../../_images/excel_g_6.png
  2. 各セルの境界線をわかりやすくするために罫線を引きます。
    ../../_images/excel_g_7.png
  3. 各セルの書式を OpenRules の標準に合わせて設定します。
    1行目のヘッダを以下の通りに設定します。
    • セルの揃え方:左揃え
    • セルの背景色(塗りつぶし):黒
    • セルの文字の色:白
    ../../_images/excel_g_8.png
  4. 論理名の列のヘッダ・明細を以下の通りに設定します。
    • セルの揃え方:(ヘッダ)中央揃え、(明細)左揃え
    • セルの背景色(塗りつぶし):グレー( RGB/220,230,241 )
    • セルの文字の色:黒
    • セルの文字の装飾:(ヘッダ)太字
    ../../_images/excel_g_9.png
  5. オブジェクト・物理名のヘッダを以下の通りに設定します。
    • セルの揃え方:中央揃え
    • セルの背景色(塗りつぶし):水色( RGB/141,180,226 )
    • セルの文字の色:黒
    • セルの文字の装飾:(ヘッダ)太字
    ../../_images/excel_g_10.png
  6. 最後にオブジェクトの明細の揃え方を中央揃えにしましょう。
    ../../_images/excel_g_11.png
  7. 項目名のマッピング表(Glossary)が完成しましたので、ファイルを保存します。
    次にルールで利用する項目やデータ型の定義の表を追加していきます。

Excelファイルに項目とデータ型の定義( Datatype )を作成する

項目とデータ型の定義の表の「 Datatype 」で利用する処理用の項目を設定していきましょう。
Datatype 」は、「 Glossary 」で定義したオブジェクトと物理名に基づいて各項目に対応するデータ型を設定します。
../../_images/excel_datatype.png

項目とデータ型の定義( Datatype )のヘッダ部分を作成する

表のヘッダは、 OpenRules のキーワードや項目名をルールに従って設定する必要があります。
最初にヘッダとして必要な内容を設定しましょう。
  1. 先の手順で作成したExcelファイルを開きます。
  2. 項目とデータ型の定義のキーワードは「 Datatype 」になります。
    ../../_images/howto_datatype_1_1.png
  3. テーブルの名称は、業務用語のマッピング表( Glossary )で「Business Concept」(このハンズオンで「オブジェクト」とした列)にする必要があります。
    入力項目のグループ「InputObject」と入力しましょう。
    ../../_images/howto_datatype_1_2.png
    この「 Datatype 」も、他の表と同様に、同じシートに作成する場合には、1つ以上行・列を空けて作成します。
    ../../_images/excel_datatype_1.png
  4. 同様の手順で出力項目のグループ(OutputObject)のヘッダも作成しましょう。
    ../../_images/howto_datatype_1_3.png
    Excelのシートは、以下のようになります。
    ../../_images/excel_datatype_2.png
  5. これで、ヘッダが設定できましたので、一度保存し、次の手順に進みましょう。

項目とデータ型の定義( Datatype )のデータ型と項目名を設定する

項目とデータ型の定義のヘッダができましたので、項目とデータ型を設定していきましょう。
  1. 最初に入力項目のグループ(InputObject)の表を作成していきましょう。
    Datatype 」では、左側にデータ型、右側に業務用語のマッピング表( Glossary )で設定した項目の物理名を入力します。
    ../../_images/howto_datatype_2_1.png
  2. 入力項目のオブジェクトの項目「名前」を設定します。
    「名前」のデータ型は「文字列」となりますので、「String」と入力し、その隣のセルには項目の物理名の「Name」を入力します。
    ../../_images/howto_datatype_2_2.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_datatype_3.png
  3. 次に「年齢」を設定します。
    「年齢」のデータ型は「整数」となりますので、「int」と入力し、その隣のセルには項目名の「Age」を入力します。
    ../../_images/howto_datatype_2_3.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_datatype_4.png
  4. これで、入力項目のグループ(InputObject)の表が設定できましたので、次に出力項目のグループ(OutputObject)を作成していきましょう。
  5. 出力項目のグループの項目「メッセージ」を設定します。
    「メッセージ」のデータ型は「文字列」となりますので、「String」と入力し、その隣のセルには項目名の「message」を入力します。
    ../../_images/howto_datatype_2_4.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_datatype_5.png
  6. これで、項目とデータ型の定義(Datatype)が設定できましたので、一度保存し、次の手順に進みましょう。

項目とデータ型の定義( Datatype )のレイアウトを整える

ルールの表のヘッダ・明細に必要な値を入力しましたので、レイアウトを整えます。
  1. OpenRules のヘッダの1行目は、「データ型」「項目名」の列の範囲で結合する必要がありますので、2列分を結合します。
    ../../_images/excel_datatype_6.png
  2. 各セルの境界線をわかりやすくするために罫線を引きます。
    ../../_images/excel_datatype_7.png
  3. 各セルの書式を OpenRules の標準に合わせて設定します。
    1行目のヘッダを以下の通りに設定します。
    • セルの揃え方:左揃え
    • セルの背景色(塗りつぶし):黒
    • セルの文字の色:白
    ../../_images/excel_datatype_8.png
  4. 残りの明細のセルを以下の通りに設定します。
    • セルの揃え方:中央揃え
    • セルの背景色(塗りつぶし):青( RGB/204,255,255 )
    ../../_images/excel_datatype_9.png
  5. 項目とデータ型の定義(Datatype)が完成しましたので、ファイルを保存します。
    次に実行するために必要な表を追加していきます。

Excelファイルに項目の初期値( Data )を作成する

項目の初期値の表の「 Data/Variable 」で利用する処理用の項目を設定していきましょう。
../../_images/excel_data.png

項目の初期値( Data )のヘッダ部分を作成する

表のヘッダは、 OpenRules のキーワードや項目名をルールに従って設定する必要があります。
最初にヘッダとして必要な内容を設定しましょう。
  1. 先の手順で作成したExcelファイルを開きます。
  2. マッピング表のキーワードは「 Data/Variable 」になります。
    Data/Variable 」では、「Data」「Variable」のどちらを選んでも問題ありません。
    今回のハンズオンでは、「Data」と定義して進めていきます。
    ../../_images/howto_data_1_1.png
  3. テーブルの名称は、業務用語のマッピング表( Glossary )で「Business Concept」(このハンズオンで「オブジェクト」とした列)にする必要があります。
    入力項目のグループ「InputObject」と入力しましょう。
    ../../_images/howto_data_1_2.png
  4. オブジェクト名「InputObject」に続いて、 Data/Variable のヘッダにはインスタンス名も記述します。
    オブジェクト名と同じにするとわかりづらくなるため、「inputObj」と入力しましょう。
    ../../_images/howto_data_1_3.png
    この「 Data/Variable 」も、他の表と同様に、同じシートに作成する場合には、1つ以上行・列を空けて作成します。
    Excelのシートは、以下のようになります。
    ../../_images/excel_data_1.png
  5. 同様の手順で出力項目のオブジェクト(OutputObject)のヘッダも作成しましょう。
    出力項目のインスタンス名は「outputObj」とします。
    ../../_images/howto_data_1_4.png
    Excelのシートは、以下のようになります。
    ../../_images/excel_data_2.png
  6. これで、ヘッダが設定できましたので、一度保存し、次の手順に進みましょう。

項目の初期値( Data )のサブヘッダ部分を作成する

Data/Variable は、サブヘッダに各オブジェクトの項目の物理名と論理名を設定します。
  1. 最初に入力項目のオブジェクト「InputObject」のサブヘッダを設定していきましょう。
    サブヘッダの1行目に物理名、2行目に論理名を入力します。
    ../../_images/howto_data_2_1.png
  2. 左の列に「名前」の項目を設定しますので、物理名に「Name」、論理名に「名前」と入力しましょう。
    ../../_images/howto_data_2_2.png
    Excelのシートは、以下のようになります。
    ../../_images/excel_data_3.png
  3. 右の列に「年齢」の項目を設定しますので、物理名に「Age」、論理名に「年齢」と入力しましょう。
    ../../_images/howto_data_2_3.png
    Excelのシートは、以下のようになります。
    ../../_images/excel_data_4.png
  4. 同様に出力項目のオブジェクト「OutputObject」のサブヘッダを設定していきましょう。
    サブヘッダの1行目に物理名の「message」、2行目に論理名の「メッセージ」を入力します。
    ../../_images/howto_data_2_4.png
    Excelのシートは、以下のようになります。
    ../../_images/excel_data_5.png

コラム

Data/VariableGlossary から便利に作成するには

Glossary を先に作ってから Data/Variable を作成する場合、Excelに「形式を選択して貼り付け」で行列を入れ替えて貼り付けると、手軽に作成できます。

../../_images/column_data.png

項目の初期値( Data )の項目と初期値を設定する

項目の初期値の表のヘッダ、サブヘッダができましたので、初期値を設定していきましょう。
  1. 3行目に項目の初期値を設定します。
    この初期値は、ルールを実行する際のオブジェクトのインスタンス化(初期化)で必要な値になりますので、必ず何らかの値を入力します。
    ../../_images/howto_data_3_1.png
  2. 名前の初期値を設定するために、名前の列の3行目に「太郎」と入力します。
    ../../_images/howto_data_3_2.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_data_6.png
  3. 次に、年齢の初期値を設定するために、年齢の列の3行目に「0」と入力します。
    ../../_images/howto_data_3_3.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_data_7.png
  4. 同様に、出力項目のオブジェクトのメッセージの初期値を設定します。
    ../../_images/howto_data_3_4.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_data_8.png
  5. これで、項目の初期値(Data)が設定できましたので、一度保存し、次の手順に進みましょう。

項目の初期値( Data )のレイアウトを整える

ルールの表のヘッダ・明細に必要な値を入力しましたので、レイアウトを整えます。
  1. OpenRules のヘッダの1行目は、サブヘッダ・明細の列の範囲で結合する必要がありますので、2列分を結合します。
    出力項目のオブジェクト(OutputObject)は、1列で構成されていますので、結合する必要はありません。
    ../../_images/excel_data_9.png
  2. 各セルの境界線をわかりやすくするために罫線を引きます。
    ../../_images/excel_data_10.png
  3. 各セルの書式を OpenRules の標準に合わせて設定します。
    1行目のヘッダを以下の通りに設定します。
    • セルの揃え方:左揃え
    • セルの背景色(塗りつぶし):黒
    • セルの文字の色:白
    ../../_images/excel_data_11.png
  4. 2行目のサブヘッダの物理名を以下の通りに設定します。
    • セルの揃え方:中央揃え
    • セルの背景色(塗りつぶし):水色( RGB/153,204,255 )
    ../../_images/excel_data_12.png
  5. 3行目のサブヘッダの論理名を以下の通りに設定します。
    • セルの揃え方:中央揃え
    • セルの背景色(塗りつぶし):水色( RGB/153,204,255 )
    ../../_images/excel_data_13.png
  6. 最後に明細を中央揃えにします。
    ../../_images/excel_data_14.png
  7. 項目の初期値(Data)が完成しましたので、ファイルを保存します。
    次に実行するために必要な表を追加していきます。

Excelファイルにオブジェクトのインスタンスの設定( DecisionObject )を作成する

項目の初期値の表の「 DecisionObject 」で利用するオブジェクトの値の入出力方法を設定していきましょう。
../../_images/excel_do.png

オブジェクトのインスタンスの設定( DecisionObject )のヘッダ部分を作成する

表のヘッダは、 OpenRules のキーワードや項目名をルールに従って設定する必要があります。
最初にヘッダとして必要な内容を設定しましょう。
  1. 先の手順で作成したExcelファイルを開きます。
  2. マッピング表のキーワードは「 DecisionObject 」になります。
    ../../_images/howto_do_1_1.png
  3. テーブルの名称は、”decisionObjects”と入力します。
    “decisionObjects”以外の名前を設定した場合、実行時にエラーが発生します。
    ../../_images/howto_do_1_2.png
    この「 DecisionObject 」も、他の表と同様に、同じシートに作成する場合には、1つ以上行・列を空けて作成します。
    ../../_images/excel_do_1.png

オブジェクトのインスタンスの設定( DecisionObject )のサブヘッダ部分を作成する

DecisionObject は、サブヘッダにオブジェクトとオブジェクトにインスタンス(入出力値)を割り当てる処理を記述します。
  1. DecisionObject は、左に Glossary で定義している対象のオブジェクト、右の列にはオブジェクトへのインスタンスの割り当て処理を記述します。
    ../../_images/howto_do_2_1.png
  2. サブヘッダは列の用途を表すラベルとして利用され、 OpenRules の標準では「Business Concept」、「Business Object」としています。
    今回はわかりやすくするために、左を「オブジェクト」、右を「値の入出力方法」とします。
    ../../_images/howto_do_2_2.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_do_2.png

オブジェクトへのインスタンスの割当処理を設定する

内部処理・出力用のオブジェクトの定義の表のヘッダ、サブヘッダができましたので、インスタンスの割当処理を設定していきましょう。
  1. 3行目にオブジェクトごとにインスタンスの割当処理を設定します。
    ../../_images/howto_do_3_1.png
  2. 最初に入力項目のオブジェクトの設定をします。
    左にオブジェクトの名前(型名)の「InputObject」と記述しましょう。
    ../../_images/howto_do_3_2.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_do_3.png
  3. 入力項目は、 IM-BIS のデータマッパーから入力値を受け取るため、以下の形式でインスタンスを割り当てる処理を記述します。
    :=  (入力項目のオブジェクト名(型名)) getInputData(decision, 入力項目のオブジェクトのインスタンス名)
    ../../_images/howto_do_3_3.png
  4. すでに定義した DatatypeData/Variable を参考に、オブジェクト名やインスタンス名を設定し、以下のように記述します。
    :=  (InputObject) getInputData(decision, inputObj)
    
    ../../_images/howto_do_3_4.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_do_4.png
  5. 出力項目のオブジェクトの設定をします。
    左にオブジェクトの名前(型名)の「OutputObject」と記述しましょう。
    ../../_images/howto_do_3_5.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_do_5.png
  6. 内部の計算用や出力項目のオブジェクトは、入力項目のオブジェクトと異なる設定をします。
    処理の割当には、以下の形式の式を記述します。
    :=  (出力項目のオブジェクトのインスタンス名)[0]
    
    ../../_images/howto_do_3_6.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_do_6.png
  7. すでに定義した Data/Variable を参考に、インスタンス名を設定し、以下のように記述します。
    :=  outputObj[0]
    
    ../../_images/howto_do_3_7.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_do_7.png

オブジェクトのインスタンスの設定( DecisionObject )のレイアウトを整える

ルールの表のヘッダ・明細に必要な値を入力しましたので、レイアウトを整えます。
  1. OpenRules のヘッダの1行目は、サブヘッダ・明細の列の範囲で結合する必要がありますので、2列分を結合します。
    ../../_images/excel_do_7.png
  2. 各セルの境界線をわかりやすくするために罫線を引きます。
    ../../_images/excel_do_8.png
  3. 各セルの書式を OpenRules の標準に合わせて設定します。
    1行目のヘッダを以下の通りに設定します。
    • セルの揃え方:左揃え
    • セルの背景色(塗りつぶし):黒
    • セルの文字の色:白
    ../../_images/excel_do_9.png
  4. 2行目のサブヘッダを以下の通りに設定します。
    • セルの揃え方:中央揃え
    • セルの背景色(塗りつぶし):水色( RGB/153,204,255 )
    • セルの文字の装飾:太字
    ../../_images/excel_do_10.png
  5. 内部処理・出力用のオブジェクトの定義(DecisionObject)が完成しましたので、ファイルを保存します。
    次に実行するために必要な表を追加していきます。

入出力処理やルールの実行設定( Decision )を作成する

ルールを実行する際に DecisionTable の実行順などをコントロールするための表の「 Decision 」を設定していきましょう。
../../_images/excel_decision.png

入出力処理やルールの実行設定( Decision )のヘッダ部分を作成する

表のヘッダは、 OpenRules のキーワードや項目名をルールに従って設定する必要があります。
最初にヘッダとして必要な内容を設定しましょう。
  1. 先の手順で作成したExcelファイルを開きます。
  2. マッピング表のキーワードは「 Decision 」になります。
    ../../_images/howto_decision_1_1.png
  3. テーブルの名称は、半角英数字で設定できますので、任意の名称を入力します。
    名称は、1つのファイル内で一意になるようにします。
    (複数のファイルにまたがる場合には、1つのデータソース定義に設定するExcelファイルで一意になるようにします。)
    ../../_images/howto_decision_1_2.png
    Excelファイルに設定する各表(テーブル)は、他のテーブルと1つ以上行・列を空ける必要があります。
    作成済みの「 DecisionTable 」と同じシートに設定する場合には、1つ以上行・列を空けて作成していきます。
    ../../_images/excel_decision_1.png
  4. これで、ヘッダが設定できましたので、一度保存し、次の手順に進みましょう。

入出力処理やルールの実行設定( Decision )のサブヘッダ部分を作成する

Decision は、サブヘッダに各列のタイプとラベルを記述します。
  1. Decision では、さまざまな列タイプを設定し、列タイプに応じて必要な内容を設定します。
    ../../_images/howto_decision_2_1.png
  2. 必須の列タイプは「 ActionPrint 」「 ActionExecute 」となりますので、今回はこの2つの項目を設定します。
    (その他に設定できる列タイプは、「 Decision 」の「サブヘッダに利用できるキーワード」を参照してください。)
    サブヘッダの1行目には「ActionPrint」「ActionExecute」と記述します。
    ../../_images/howto_decision_2_2.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_decision_2.png
  3. Decision のサブヘッダの2行目は列の用途を表すラベルとして利用されます。
    今回は、「 ActionPrint 」には「処理名」、「 ActionExecute 」には「実行する処理内容」と設定します。
    ../../_images/howto_decision_2_3.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_decision_3.png
  4. これで、サブヘッダが設定できましたので、一度保存し、次の手順に進みましょう。

入出力処理やルールの実行設定( Decision )の処理内容と順序を設定する

入出力処理やルールの実行設定( Decision )のヘッダができましたので、評価を行う DecisionTable の名前や順序を設定していきましょう。
  1. OpenRules の「 Decision 」は、上から順に DecisionTable を実行するしくみになっています。
    左側の列に処理を表すためのラベル(名前)、右側の列に実行する DecisionTableMethod を呼び出すための式を記述します。
    ../../_images/howto_decision_3_1.png
  2. 今回は処理の最初と最後に、値の入出力がどのように行われるかを確認できるように、入力項目のオブジェクトと出力項目のオブジェクトをコンソール上に出力するための処理を記述します。
    先に左側の処理のラベルに、今回実行させる処理の名前を記述します。
    • 今回の処理内容
      • 入力項目のオブジェクト(InputObject)の内容のコンソールへの出力
      • 作成したルールの表(myRule)の実行
      • 出力項目のオブジェクト(OutputObject)へのルールの実行結果の割当て
      • 出力項目のオブジェクト(OutputObject)の内容のコンソールへの出力
    ../../_images/howto_decision_3_2.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_decision_4.png
  3. 続いて、実行する処理の式を記述します。
    最初に、今回のハンズオンでは、どのように入出力が行われているかを確認できるように、入力項目のオブジェクト、出力用のオブジェクトの内容の出力を記述します。
    オブジェクトの内容をコンソールに出力するには、Javaの標準出力を利用しますので、以下の式になります。
    // 入力項目のオブジェクトの出力
    := System.out.println(getDecisionObject("InputObject"))
    
    // 出力項目のオブジェクトの出力
    := System.out.println(getDecisionObject("OutputObject"))
    
    ../../_images/howto_decision_3_3.png

    コラム

    この標準出力のコードは、 Decision での必須項目ではありませんが、 OpenRules へ値の入出力が想定通りに行われているかなどのデバッグ時に活用できます。

    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_decision_5.png
  4. 次の行に DecisionTable を実行するために、作成した DecisionTable の名前を記述しましょう。
    // DecisionTableの実行
    myRule
    
    ../../_images/howto_decision_3_4.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_decision_6.png
  5. DecisionTable の実行(評価)結果を出力項目のオブジェクトのインスタンスに格納する処理を記述しましょう。
    // 出力項目のオブジェクトのインスタンスへの実行結果のセット
    := decision().put("OutputObject", outputObj)
    
    ../../_images/howto_decision_3_5.png
    Excelファイルのシート上には、このように記述します。
    ../../_images/excel_decision_7.png
  6. 最後にレイアウトを整えて完成させましょう。

入出力処理やルールの実行設定( Decision )のレイアウトを整える

ルールの表のヘッダ・明細に必要な値を入力しましたので、レイアウトを整えます。
  1. OpenRules のヘッダの1行目は、サブヘッダ・明細の列の範囲で結合する必要がありますので、2列分を結合します。
    ../../_images/excel_decision_8.png
  2. 各セルの境界線をわかりやすくするために罫線を引きます。
    ../../_images/excel_decision_9.png
  3. 各セルの書式を OpenRules の標準に合わせて設定します。
    1行目のヘッダを以下の通りに設定します。
    • セルの揃え方:左揃え
    • セルの背景色(塗りつぶし):黒
    • セルの文字の色:白
    ../../_images/excel_decision_10.png
  4. 2行目のサブヘッダの書式を以下の通りに設定します。
    • セルの揃え方:中央揃え
    • セルの背景色(塗りつぶし):グレー( RGB/217,217,217 )
    ../../_images/excel_decision_11.png
  5. 3行目のサブヘッダの書式を以下の通りに設定します。
    • セルの揃え方:中央揃え
    • セルの背景色(塗りつぶし):青( RGB/141,180,226 )
    • セルの文字の色:黒
    • セルの文字の装飾:太字
    ../../_images/excel_decision_12.png
  6. 内部処理・出力用のオブジェクトの定義(DecisionObject)が完成しましたので、ファイルを保存します。
    次に環境設定の表を追加していきます。

環境設定( Environment )を作成する

ルールを実行する際に必要な環境設定の表の「 Environment 」を設定していきましょう。
../../_images/excel_environment.png

環境設定( Environment )のヘッダ部分を作成する

表のヘッダは、 OpenRules のキーワードや項目名をルールに従って設定する必要があります。
最初にヘッダとして必要な内容を設定しましょう。
  1. 先の手順で作成したExcelファイルを開きます。
  2. マッピング表のキーワードは「 Environment 」になります。
    テーブル名等をつける必要はありませんので、これでヘッダが完成します。
    ../../_images/howto_environment_1.png
    Excelファイルに設定する各表(テーブル)は、他のテーブルと1つ以上行・列を空ける必要があります。
    作成済みの他のテーブルと同じシートに設定する場合には、1つ以上行・列を空けて作成していきます。
    ../../_images/excel_environment_1.png
  3. これで、ヘッダが設定できましたので、一度保存し、次の手順に進みましょう。

環境設定( Environment )に IM-BIS との連携情報のファイルを設定する

ルールの実行時には、 IM-BIS との連携に必要な情報が定義されている「IntramartTemplate.xls」を参照する必要があります。
Environment で「IntramartTemplate.xls」を参照する設定を追加しましょう。
  1. 先の手順で作成したExcelファイルを開きます。
  2. 左の列には、参照するリソースのタイプに合わせたキーワードを指定します。
    IntramartTemplate.xlsは、Excvelファイルとなるため、キーワードとして「include」を指定します。
    ../../_images/howto_environment_2.png
  3. 右の列には、参照するリソースのファイルパル・ファイル名やパッケージ名等を指定します。
    「IntramartTemplate.xls」を以下のパスで指定します。
    ../lib/openrules.config/IntramartTemplate.xls
    
    ../../_images/howto_environment_3.png

    コラム

    この設定で参照しているExcelファイルは、以下の場所に配置されています。

    %CONTEXT_PATH%/WEB-INF/im_bis/datasource/rule/lib/openrules.config
    
  4. これで、必要な情報を設定できましたので、一度保存し、次の手順に進みましょう。

環境設定( Environment )のレイアウトを整える

ルールの表のヘッダ・明細に必要な値を入力しましたので、レイアウトを整えます。
  1. OpenRules のヘッダの1行目は、サブヘッダ・明細の列の範囲で結合する必要がありますので、2列分を結合します。
    ../../_images/excel_environment_2.png
  2. 各セルの境界線をわかりやすくするために罫線を引きます。
    ../../_images/excel_environment_3.png
  3. 各セルの書式を OpenRules の標準に合わせて設定します。
    1行目のヘッダを以下の通りに設定します。
    • セルの揃え方:左揃え
    • セルの背景色(塗りつぶし):黒
    • セルの文字の色:白
    ../../_images/excel_environment_4.png
  4. 残りのセルを以下の通りに設定します。
    • セルの背景色(塗りつぶし):青( RGB/204,255,255 )
    ../../_images/excel_environment_5.png
  5. これで、 OpenRules のExcelの定義ファイルが作成できました。
    次の手順で、データソース定義に登録し、 IM-BIS との連携を設定していきましょう。