第4章 ガイド付きデシジョンテーブル
ガイド付きデシジョンテーブルは、アップロードされるデシジョンテーブルのスプレッドシートに代わる方法で、ウィザードを用いて表形式でビジネスルールを定義します。ガイド付きデシジョンテーブルでは、プロジェクトで指定したデータオブジェクトをもとに、Decision Central の UI ベースのウィザードに従ってルール属性、メタデータ、条件、およびアクションを定義します。ガイド付きデシジョンテーブルを作成すると、定義したルールは、その他のすべてのルールアセットとともに Drools Rule Language (DRL) ルールにコンパイルされます。
ガイド付きデシジョンテーブルに関連するすべてのデータオブジェクトは、ガイド付きデシジョンテーブルと同じプロジェクトパッケージに存在する必要があります。同じパッケージに含まれるアセットはデフォルトでインポートされます。必要なデータオブジェクトとガイド付きデシジョンテーブルの作成後、ガイド付きデシジョンテーブルデザイナーの Data Objects タブを使用して、必要なデータオブジェクトがすべてリストされていることを検証したり、新規アイテム を追加してその他の既存データオブジェクトをインポートしたりできます。
4.1. 交通違反のガイド付きデシジョンテーブルの作成
ガイド付きデシジョンテーブルデザイナーを使用して、交通違反のガイド付きデシジョンテーブルを作成します。このテーブルは、ドライバーの特定の違反とその結果として発生する罰金および点数を指定するためのものです。
前提条件
Violation データオブジェクトと Driver データオブジェクトの両方を作成した。
手順
-
Menu
Design Projects をクリックしてから Driver_department_traffic_violations をクリックします。 Add Asset
Guided Decision Table をクリックし、以下の値を入力します。 -
Guided Decision Table:
SpeedViolationRule
-
Package:
com.myspace.driver_department_traffic_violations
-
Guided Decision Table:
- Hit Policy メニューから Unique Hit を選択します。
- Table format セクションで、Extended entry, values defined in table body を選択します。
Ok をクリックして、Create new Guided Decision Table ウィンドウを開きます。
図4.1 ガイド付きデシジョンテーブルのウィンドウ
4.1.1. Violation Type 列の挿入
Violation Type 列には、ドライバーの速度や、ドライバーが薬物やアルコールの影響下にあったかどうかなどの違反の詳細を含めます。
前提条件
交通違反のガイド付きデシジョンテーブルを作成した。
手順
Columns
Insert Column をクリックしてから Include advanced options を選択します。 図4.2 列のタブ
Add an Attribute column を選択し、Next をクリックします。
図4.3 新しい列の追加ウィンドウ
- Ruleflow-group を選択し、Finish をクリックします。
Attribute 列を展開し、Default value フィールドに
trafficViolation
と入力します。図4.4 属性列ウィンドウ
-
Insert Column をクリックし、Add a Condition
Pattern +Create a new Fact Pattern を選択します。 Fact type メニューから Violation を選択し、Binding フィールドに
v
と入力して、OK をクリックします。図4.5 新しいファクトパターンの作成ウィンドウ
Calculation type
Literal value を選択します。 図4.6 計算タイプのオプション
- Field を選択し、Field メニューから type を選択します。
- Operator を選択し、Operator メニューから equal to を選択します。
-
Value options を選択し、Value list (optional) フィールドに
Speed,Driving while intoxicated,DWI=Driving while under the influence of drugs
と入力します。 Additional info を選択し、Header (description) フィールドに
Violation Type
と入力し、Finish をクリックします。図4.7 Violation Type ヘッダー
-
Insert Column をクリックし、Add a Condition
Pattern を選択して、Pattern メニューから Violation[v] を選択します。 -
Calculation type
Predicate Field を選択し、 actualSpeed-speedLimit > $param
と入力します。 -
Value options を選択してから Additional info を選択し、Header (description) フィールドに
Speed Limit (MPH) >
と入力します。 Finish をクリックします。
図4.8 Speed Limit (MPH) > ヘッダー
-
Insert Column をクリックし、Add a Condition
Pattern を選択して、Pattern メニューから Violation[v] を選択します。 -
Calculation type
Predicate を選択します。 -
Field を選択し、Field フィールドに
actualSpeed-speedLimit < $param
と入力します。 - Operator を選択し、Value options を選択し、Additional info を選択します。
Header (description) フィールドに
Speed Limit (MPH) <
と入力し、Finish をクリックします。図4.9 条件列
4.1.2. Fine Amount
および Points
列の挿入
Fine Amount および Points 列には、対応する Violation Type フィールドの値に基づく罰金と点数を含めます。
前提条件
交通違反のガイド付きデシジョンテーブルに Violation Type 列を挿入した。
手順
-
Insert Column をクリックし、Set the value of a field
Pattern を選択して、Pattern メニューから Violation[v] を選択します。 - Field を選択し、Field メニューから fineAmount を選択します。
-
Value options を選択してから Additional info を選択し、Header (description) フィールドに
Fine Amount
と入力します。 Update engine with changes オプションを選択し、Finish をクリックします。
図4.10 Fine Amount ヘッダー
-
Insert Column をクリックし、Set the value of a field
Pattern を選択して、Pattern メニューから Violation[v] を選択します。 - Field を選択し、Field メニューから points を選択します。
-
Value options を選択してから Additional info を選択し、Header (description) フィールドに
Points
と入力します。 Update engine with changes オプションを選択し、Finish をクリックします。
図4.11 アクション列
4.1.3. ガイド付きデシジョンテーブルの行の挿入
ガイド付きデシジョンテーブルに列を作成したら、デシジョンテーブルデザイナーを使用して行を追加し、ルールを定義します。
前提条件
交通違反のガイド付きデシジョンテーブルに、Violation Type、Fine Amount、および Points 列を作成した。
手順
- Model タブをクリックして、SpeedViolationRule テーブルを表示します。
Insert
Append row をクリックします。この手順を繰り返して、合計 5 つのテーブル行を追加します。 図4.12 Append row メニューの場所
以下の例のようにテーブルに入力します。
図4.13 入力されたデータフィールド
- Save をクリックした後、Save をクリックして変更を確認します。