アップロードしたデシジョンテーブルを使用したデシジョンサービスの作成

Red Hat Decision Manager 7.0

Red Hat Customer Content Services

概要

本書は、Red Hat Decision Manager 7.0 で、アップロードしたデシジョンテーブルを使用してデシジョンサービスを作成する方法を説明します。

前書き

ビジネス分析者またはビジネスルールの開発者は、デシジョンテーブルのスレッドシートをアップロードして、テーブル形式でビジネスルールを定義できます。このルールは Drools Rule Language (DRL) に組み込まれ、プロジェクトのデシジョンサービスの中心となります。

前提条件

デシジョンテーブルのチームおよびプロジェクトが Decision Central に作成されており、各アセットが、チームに割り当てられたプロジェクトに関連付けられています。詳細は『デシジョンサービスの使用ガイド』を参照してください。

第1章 Red Hat Decision Manager におけるルール作成アセット

Red Hat Decision Manager は、デシジョンサービスにビジネスルールを作成するのに使用するアセットを提供します。ルール作成アセットはそれぞれ長所が異なるため、ゴールおよびニーズに適したアセットを 1 つ、または複数を組み合わせて使用できます。

デシジョンサービスでルールを作成する最適な方法を選択できるように、以下の表で、Decision Central のルール作成アセットを紹介します。

表1.1 Decision Central におけるルール作成アセット

アセット主な特徴ドキュメンテーション

ガイド付きデシジョンテーブル

  • Decision Central の UI ベースのテーブルデザイナーで作成するルールのテーブル
  • デシジョンテーブルのスプレッドシートをアップロードするする代わりに、ウィザードを用いて作成する
  • 条件を満たした入力に、フィールドとオプションを提供する
  • ルールテンプレートを作成するテンプレートキーと値をサポートする
  • その他のアセットではサポートされていない、ヒットポリシー、リアルタイム検証などの追加機能をサポートする
  • コンパイルエラーを最小限に抑えるため、制限されているテーブル形式でルールを作成するのに最適

ガイド付きデシジョンテーブルを使用したデシジョンサービスの作成

アップロードしたデシジョンテーブル

  • Decision Central にアップロードした XLS または XLSX 形式のデシジョンテーブルスプレッドシート
  • ルールテンプレートを作成するテンプレートキーと値をサポートする
  • Decision Central 外で管理しているデシジョンテーブルでルールを作成するのに最適
  • アップロード時に適切にルールをコンパイルするために厳しい構文要件がある

アップロードしたデシジョンテーブルを使用したデシジョンサービスの作成

ガイド付きルール

  • Decision Central の UI ベースのルールデザイナーで作成する個々のルール
  • 条件を満たした入力に、フィールドとオプションを提供する
  • コンパイルエラーを最小限に抑えるため、制御されている形式で単独のルールを作成するのに最適

ガイド付きルールを使用したデシジョンサービスの作成

ガイド付きルールテンプレート

  • Decision Central の UI ベースのテンプレートデザイナーで作成する再利用可能なルール構造
  • 条件を満たした入力に、フィールドとオプションを提供する
  • (このアセットの基本となる) ルールテンプレートを作成するテンプレートキーと値をサポートする
  • ルール構造が同じで、定義したフィールド値が異なるルールを多数作成するのに最適

ガイド付きルールテンプレートを使用したデシジョンサービスの作成

DRL ルール

  • .drl テキストファイルに直接定義する個々のルール
  • ルールと、ルール動作に関するその他の技術を定義する柔軟性が最も高い
  • スタンドアロン環境で作成し、Red Hat Decision Manager に統合可能
  • 高度な DRL オプションが必要なルールを作成するのに最適
  • ルールを適切にコンパイルするために厳しい構文要件がある

DRL ルールを使用したデシジョンサービスの作成

第2章 デシジョンテーブル

デシジョンテーブルは、テーブル形式でビジネスルールを定義し、Decision Central にプロジェクトをアップロードするのに使用できる XLS または XLSX のスプレッドシートです。スプレッドシートの各行がルールになり、各列が条件、アクション、または別のルール属性になります。最初にデシジョンテーブルを作成してアップロードします。次に、その他のすべてのルールアセットと同じように、定義したルールを Drools Rule Language (DRL) ルールにコンパイルします。

アップロードしたデシジョンテーブルに関連するデータオブジェクトはすべて、アップロードしたデシジョンテーブルと同じプロジェクトパッケージに置く必要があります。同じパッケージのアセットはデフォルトでインポートされます。その他のパッケージの既存アセットは、デシジョンテーブルを使用してインポートできます。

第3章 データオブジェクト

データオブジェクトは、作成するルールアセットの構成要素です。データオブジェクトは、プロジェクトで指定したパッケージに Java オブジェクトとして実装されているカスタムのデータタイプです。たとえば、データフィールド NameAddress、および Date of Birth を使用して Person オブジェクトを作成し、ローン申し込みルールに詳細な個人情報を指定できます。このカスタムのデータタイプは、アセットとデシジョンサービスがどのデータに基づいているかを指定します。

3.1. データオブジェクトの作成

定義するデータオブジェクトは、プロジェクトのルールアセットの構成要素で、アセットとデシジョンサービスがどのデータに基づいているかを指定します。

手順

  1. MenuDesignProjects に移動して、プロジェクト名をクリックします。
  2. Create New Assetデータオブジェクト をクリックします。
  3. 一意の データオブジェクト 名を入力し、パッケージ を選択します。これにより、その他のルールアセットでもデータオブジェクトを利用できるようになります。同じパッケージに、同じ名前のデータオブジェクトを複数作成することはできません。指定するパッケージは、そのデータオブジェクトを必要とするルールアセットが割り当てられている、もしくはこれから割り当てるパッケージにする必要があります。

    別のパッケージからのデータオブジェクトのインポート

    ルールアセットのパッケージに、別のパッケージから既存のデータオブジェクトをインポートすることもできます。インポートするオブジェクトを選択するには、Project Explorer から (ガイド付きデシジョンテーブル、ガイド付きルールなどの) アセットパネルを展開し、特定のアセットを選択し、アセットデザイナーで Data Objects → New item に移動します。

  4. データオブジェクトを永続化するには、Persistable チェックボックスを選択します。永続型データオブジェクトは、JPA 仕様に準じてデータベースに保存できます。デフォルトの JPA は Hibernate です。
  5. OK をクリックします。
  6. データオブジェクトデザイナーで add field をクリックして、Id 属性、Label 属性、Type 属性を使用するオブジェクトにフィールドを追加します。必須属性にはアスタリスク (*) マークが付いています。

    • Id: フィールドの一意の ID を入力します。
    • Label: (任意) フィールドのラベルを入力します。
    • Type: フィールドのデータ型を入力します。
    • List: このチェックボックスを選択すると、このフィールドで、指定したタイプのアイテムを複数保持できるようになります。

      図3.1 データオブジェクトへのデータフィールドの追加

      Add data fields to a data object
  7. Create をクリックして、新しいフィールドを追加します。Create and continue をクリックすると、新しいフィールドが追加され、別のフィールドを引き続き作成できます。

    注記

    フィールドを編集するには、フィールド行を選択し、画面右側の general properties を使用します。

第4章 デシジョンテーブルのユースケース

オンラインショッピングのサイトでは、注文したアイテムの配送料金が一覧表示されます。このサイトでは、以下の条件で配送料金が無料となります。

  • 注文したアイテム数が 4 点以上、合計金額が 300 ドル以上。
  • 配送の種類で「標準」が選択されている (購入日から 4 - 5 営業日に配送)。

この条件を適用した配送料金は以下のようになります。

表4.1 注文金額が 300 ドル未満の場合

アイテム数配送日配送料金 (米ドル) (N はアイテム数)

3 点以下

翌日

2 日後

標準

35

15

10

4 点以上

翌日

2 日後

標準

N*7.50

N*3.50

N*2.50

表4.2 注文金額が 300 ドルを超える場合

アイテム数配送日配送料金 (米ドル) (N はアイテム数)

3 点以下

翌日

2 日後

標準

25

10

N*1.50

4 点以上

翌日

2 日後

標準

N*5

N*2

無料

この条件と料金は、以下のデシジョンテーブルのサンプルスプレッドシートで指定しています。

図4.1 配送料金のデシジョンテーブル

Decision table example

この例が示すように、デシジョンテーブルを Decision Central にアップロードするには、テーブルが XLS 形式または XLSX 形式のスプレッドシートで、構造と構文の要件に準拠する必要があります。詳細は「5章デシジョンテーブルの定義」を参照してください。

第5章 デシジョンテーブルの定義

デシジョンテーブルのスプレッドシート (XLS または XLSX) には、ルールデータを定義する 2 つの重要な領域、RuleSet 領域と RuleTable 領域が必要です。スプレッドシートの RuleSet 領域には、ルールセット名、ユニバーサルルール属性など、(このスプレッドシートだけでなく) すべてのルールをパッケージ全体に、グローバルに適用する要素を定義します。RuleTable 領域には、実際のルール (行) と、指定したルールセットのルールテーブルを構成する条件、アクション、その他のルール属性 (列) を定義します。デシジョンテーブルのスプレッドシートには RuleTable 領域を複数追加できますが、RuleSet 領域は 1 つだけとなります。

重要

通常、デシジョンテーブルのスプレッドシートは 1 つだけ作成する必要があり、Decision Central の 1 つのルールパッケージに必要なすべての RuleTable 定義がそこに含まれます。複数のパッケージに複数のデシジョンテーブルスプレッドシートを作成することはできますが、同じパッケージに複数のデシジョンテーブルを作成すると、RuleSet 属性または RuleTable 属性が競合するコンパイルエラーが発生する可能性があるため、推奨はされません。

デシジョンテーブルを定義する際は、以下のサンプルスプレッドシートを参照してください。

図5.1 配送料金のデシジョンテーブルのサンプルスプレッドシート

Decision table example

手順

  1. 新しいスプレッドシート (XLS または XLSX) の 2 列目または 3 列目 (サンプルの行 1) のセルに、RuleSet とラベルを付けます。左の列は、(任意で) 記述的メタデータに使用します。
  2. 右隣のセルに、RuleSet の名前を入力します。このルールセットには、ルールパッケージに定義する RuleTable ルールがすべて含まれます。
  3. RuleSet セルの下に、そのパッケージ内のすべてのルールテーブルにグローバルに適用するルール属性 (セルごとに 1 つ) を定義します。右のセルに属性値を指定します。たとえば、ラベルを Import にして、その右隣のセルに、その他のパッケージからデシジョンテーブルのパッケージにインポートするデータオブジェクトを指定します (形式は package.name.object.name)。サポートされるセルのラベルと値については、「RuleSet の定義」 を参照してください。
  4. RuleSet セルと同じ列で、RuleSet 領域の何行か下の新しいセルに、ラベル RuleTable を入力し (サンプルの行 7 )、テーブル名も同じセルに入力します。この名前は、区別のために追加したルールの番号とともに、このルールテーブルに指定した全ルールの名前の最初の部分として使用されます。この自動命名ルールは、NAME 属性列を追加すると上書きできます。
  5. その下の 4 行には、必要に応じて以下の要素を定義します (サンプルの行 8-11)。

    • ルール属性: 条件、アクション、またはその他の属性。サポートされるセルのラベルと値については 「RuleTable の定義」 を参照してください。
    • オブジェクトタイプ: ルール属性が適用されるデータオブジェクト。同じオブジェクトタイプを複数の列に適用したい場合は、(サンプルのデシジョンテーブルに示されるように) 複数のオブジェクトセルを 1 つのセルに結合します。オブジェクトタイプを結合すると、結合範囲の下にあるすべての列が、1 つのパターンに指定する一連の制約になり、一度に一つのファクトに一致するようになります。同じオブジェクトを別の列で繰り返し使用すると、列ごとに別のパターンを作成できます。一致させるファクトは、同一にすることも別にすることもできます。
    • 制約: オブジェクトタイプの制約。
    • 列ラベル: (任意) 見やすくするために説明を入力する列のラベル。使用しない場合は空白にします。

      注記

      オブジェクトタイプと制約セルの両方を追加する代わりに、オブジェクトタイプのセルを空にし、対応する制約セルに完全式を追加します。たとえば、オブジェクトタイプに Order、制約に itemsCount > $1 を (別々に) 追加する代わりに、オブジェクトタイプセルを空にして、制約セルに Order( itemsCount > $1) と入力できます。その他の制約セルでも同じです。

  6. 必要なルール属性 (列) をすべて定義したら、必要に応じて各列の各行に値を入力してルールを生成します (サンプルの行 12-17)。データのないセルは無視されます (条件やアクションなどが適用されません)。

    デシジョンテーブルのスプレッドシートにさらにルールテーブルを追加する場合がある場合は、前のテーブルの最後の行の後に 1 行空け、前のテーブルの RuleTable セルと RuleSet セルと同じ列のセルに、別の RuleTable のラベルを付け、このセクションの手順を繰り返して新しいテーブルを作成します (サンプルの行 19-29)。

  7. XLS または XLSX のスプレッドシートを保存して終了します。
注記

Decision Central にスプレッドシートをアップロードすると、スプレッドシートワークブックの最初のワークシートだけがデシジョンテーブルとして処理されます。RuleTable とともに使用する各 RuleSet の名前は、同じパッケージの全デシジョンテーブルファイルで一意にする必要があります。

Decision Central でデシジョンテーブルをアップロードすると、以下の例のように、サンプルスプレッドシートのルールが DRL ルールとして表示されます。

//row 12
rule "Basic_12"
salience 10
  when
    $order : Order(itemsCount > 0, itemsCount <= 3, deliverInDays == 1)
  then
    insert(new Charge(35));
end

5.1. RuleSet の定義

デシジョンテーブルの RuleSet 領域のエントリーは、(そのスプレッドシートだけでなく) パッケージのすべてのルールに適用される DRL 制約およびルール属性を定義します。 エントリーは、セルのペア (最初のセルにラベル、その右隣のセルに値) が縦方向に積み上げられます。デシジョンテーブルのスプレッドシートには、RuleSet 領域が 1 つだけあります。

以下の表は、RuleSet 定義でサポートされるラベルと値を示しています。

表5.1 サポートされる RuleSet の定義

ラベル使用方法

RuleSet

生成した DRL ファイルのパッケージ名。任意。デフォルトは rule_tableです。

最初のエントリーになります。

Sequential

true または falsetrue の場合は、ルールを上から適用する優先順位を使用します。

任意。1 つまで指定可能。省略すると、適用順は指定されません。

SequentialMaxPriority

整数値

任意。1 つまで指定可能。順次モードでこのオプションを使用して、優先順位の開始値を設定します。省略した場合のデフォルト値は 65535 です。

SequentialMinPriority

整数値

任意。1 つまで指定可能。順次モードでこのオプションを使用して、優先順位の最低値に違反していないかどうかを確認します。省略した場合のデフォルト値は 0 です。

EscapeQuotes

true または falsetrue の場合は、引用符がエスケープされ、DRL にそのまま表示されます。

任意。1 回まで指定可能。省略すると、引用符がエスケープされます。

Import

別のパッケージからインポートする、コンマ区切りの Java クラスのリスト。

任意。繰り返して使用可能。

Variables

DRL グローバルの宣言 (型に変数名が続く)。グローバル定義が複数になる場合は、コンマで区切る必要があります。

任意。繰り返して使用可能。

Functions

DRL 構文に準拠している 1 つまたは複数の関数定義。

任意。繰り返して使用可能。

Queries

DRL 構文に準拠している 1 つまたは複数のクエリー定義。

任意。繰り返して使用可能。

Declare

DRL 構文に準拠している 1 つまたは複数の宣言型。

任意。繰り返して使用可能。

警告

Microsoft Office、LibreOffice、および OpenOffice で二重引用符のエンコード方法が異なり、コンパイルエラーが発生する場合があります。たとえば、“A” は失敗しますが、"A" は成功します。

5.2. RuleTable の定義

デシジョンテーブルの RuleTable 領域のエントリーは、そのルールテーブルのルールに対する条件、アクション、その他のルール属性を定義します。デシジョンテーブルのスプレッドシートには、RuleTable 領域を複数追加できます。

以下の表は、RuleTable 定義でサポートされるラベル (列ヘッダー) および値を示しています。列ヘッダーには、指定のラベル、またはこの表に記載されている文字で始まるカスタムラベルのいずれかを使用できます。

表5.2 サポートされる RuleTable の定義

ラベルまたはカスタムラベルの頭文字使用方法

NAME

N

その行で生成したルールの名前を提供します。デフォルトは、RuleTable タグと行番号に続くテキストから作成されます。

最大 1 列。

DESCRIPTION

I

生成したルールのコメントになります。

最大 1 列。

CONDITION

C

条件内のパターンに制約を構築するコードスニペットおよび補間値。

ルールテーブルごとに最低 1 つ。

ACTION

A

ルールの結果に対するアクションを構築するコードスニペットおよび補間値。

ルールテーブルごとに最低 1 つ。

METADATA

@

ルールに対するメタデータエントリーを構築するコードスニペットおよび補間値。

任意。列の数。

以下のセクションでは、条件、アクション、メタデータのセルデータがどのように使用されるかについて説明します。

条件

CONDITION ヘッダーの列では、連続した行のセルが、条件要素になります。

  • 1 つ下のセル: CONDITION のすぐ下のセルのテキストは、ルール条件のパターンを進化させ、次の行のスニペットを制約として使用します。そのセルを、隣接した 1 つ以上のセルと結合した場合は、複数の制約を持った 1 つのパターンが作成されます。すべての制約が結合して括弧で囲まれ、このセルのテキストに追加されます。

    このセルを空にすると、以下のセルのコードスニペットが自動的に有効な条件要素となります。たとえば、オブジェクトタイプに Order、制約に itemsCount > $1 を (別々に) 追加する代わりに、オブジェクトタイプセルを空にして、制約セルに Order( itemsCount > $1) と入力できます。その他の制約セルでも同じです。

    パターンのテキストの前に別のパターンを記述すれば、制約を使用しないパターンを追加できます。中が空の括弧は追加することも省くこともできます。パターンに from 句を追加することもできます。

    パターンを eval で終了すると、コードスニペットが、eval の後の括弧の中にブール表現を生成します。

  • 2 つ下のセル: CONDITION の 2 つ下のセルのテキストは、1 つ下のセルのオブジェクト参照の制約として処理されます。このセルのコードスニペットは、その列のさらに下にあるセルから値が補間されます。下のセルからの値と == を使用した比較で構成される制約を作成する場合は、フィールドセレクターだけで十分です。その他の比較演算子は、スニペットの最後に指定する必要があり、値は下のセルから追加されます。その他のすべての制約形式については、$param シンボルを使用して、セルの内容を追加する場所を指定する必要があります。$1$2 などのシンボルを使用し、下のセルにコンマで区切った値を指定すれば、複数の値を挿入することもできます。ただし、$1$2 などをコンマで区切らないでください。テーブルの処理に失敗します。

    パターン forall($delimiter){$snippet} に従ってテキストを展開する場合は、その下の各セルで、コンマ区切りの値に対して $snippet がそれぞれ 1 回ずつ使用されます。$ シンボルの場所に値が挿入され、指定した $delimiter で結合します。forall 構文は、他のテキストで囲むことができるのに注意してください。

    1 つ下のセルにオブジェクトが含まれている場合は、そのセルから条件要素に完全なコードスニペットが追加されます。括弧のペアと、(結合したセルのパターンに複数の制約が追加されている場合は) 区切り文字のコンマが自動的に提供されます。1 つ下のセルが空の場合は、このセルのコードスニペットが自動的に有効な条件要素となります。たとえば、オブジェクトタイプに Order、制約に itemsCount > $1 を (別々に) 追加する代わりに、オブジェクトタイプのセルを空にして、制約セルに Order( itemsCount > $1) と入力できます。その他の制約セルでも同じです。

  • 3 つ下のセル: CONDITION の 3 つ下のセルのテキストは、見やすくするためにその列の説明を入力するラベルです。
  • 4 つ下のセル: 4 行目以降の、空セル以外のエントリーは補間データとして提供されます。セルが空の場合は、このルールで制約や条件が省略されます。
アクション

ACTION ヘッダーの列では、連続した行のセルが、アクション命令文になります。

  • 1 つ下のセル: ACTION ヘッダーの 1 つ下のセルのテキストは任意です。テキストがある場合は、オブジェクト参照として解釈されます。
  • 2 つ下のセル: ACTION の 2 つ下のセルのテキストは、その列のさらに下にあるセルの値が補完されるコードスニペットです。挿入が 1 つの場合は、$param シンボルを使用して、セルの内容を追加する場所を指定します。$1$2 などのシンボルを使用し、下のセルにコンマで区切った値を指定すれば、複数の値を挿入することもできます。$1$2 などをコンマで区切らないでください。テーブルの処理に失敗します。

    テキストにマーカーシンボルがない場合は、補完なしでメソッドが呼び出されます。このとき、下の行で空セル以外のエントリーを使用して、命令文を追加します。forall 構文がサポートされます。

    1 つ下のセルにオブジェクトが含まれている場合は、そのセルのテキスト、ピリオド、2 つ下のセルのテキスト、終わりを示すセミコロンが 1 列に並べられ、アクション命令文として追加されるメソッドコールとなります。1 つ下のセルが空の場合は、このセルのコードスニペットが自動的に有効なアクション要素となります。

  • 3 つ下のセル: ACTION の 3 つ下のセルのテキストは、見やすくするためにその列の説明を入力するラベルです。
  • 4 つ下のセル: 4 行目以降の、空セル以外のエントリーは補間データとして提供されます。セルが空の場合は、このルールで制約や条件が省略されます。
メタデータ

ヘッダーが METADATA の列では、連続した行のセルが、生成されるルールのメタデータアノテーションになります。

  • 1 つ下のセル: METADATA の 1 つ下のセルのテキストは無視されます。
  • 2 つ下のセル: METADATA の 2 つ下のセルのテキストは、ルール行のセルの値を使用して補完されます。メタデータのマーカー文字 @ が接頭辞として自動的に追加されるため、このセルのテキストに追加する必要はありません。
  • 3 つ下のセル: METADATA の 3 つ下のセルのテキストは、見やすくするためにその列の説明を入力するラベルです。
  • 4 つ下のセル: 4 行目以降の、空セル以外のエントリーは補完データとして提供されます。セルが空の場合は、このルールでメタデータアノテーションが省略されます。

5.3. RuleSet 定義または RuleTable 定義におけるその他のルール属性

RuleSet 領域および RuleTable 領域は、PRIORITYNO-LOOP などのラベルおよび値もサポートします。RuleSet 領域に指定したルール属性は、(そのスプレッドシートだけでなく) 同じパッケージにあるすべてのルールアセットに影響します。RuleTable 領域に指定したルール属性は、そのルールテーブル内のルールにのみ影響します。各ルール属性は、RuleSet 領域で一度、RuleTable 領域で一度使用できます。同じ属性を、スプレッドシートの RuleSet 領域および RuleTable 領域の両方で使用した場合は、RuleTable が優先され、RuleSet 領域の属性が上書きされます。

以下の表は、その他の RuleSet 定義または RuleTable 定義でサポートされるラベル (列ヘッダー) および値を示します。列ヘッダーには、指定のラベル、またはこの表に記載されている文字で始まるカスタムラベルのいずれかを使用できます。

表5.3 RuleSet 定義または RuleTable 定義におけるその他のルール属性

ラベルまたはカスタムラベルの頭文字

PRIORITY

P

ルールの優先順位 (salience) の値を定義する整数。優先順位の値が高くなると、アクティベーションキューに追加された時の優先順位が高くなります。これは、Sequential フラグで上書きされます。

例: PRIORITY 10

DATE-EFFECTIVE

V

日付定義および時間定義を含む文字列。現在の日時が DATE-EFFECTIVE 属性よりも後の場合は、このルールがアクティブになります。

例: DATE-EFFECTIVE "4-Sep-2018"

DATE-EXPIRES

Z

日時定義を含む文字列。現在日時が DATE-EXPIRES 属性よりも後になると、このルールをアクティブにすることはできません。

例: DATE-EXPIRES "4-Oct-2018"

NO-LOOP

U

ブール値。このオプションを true に設定すると、以前一致した条件がこのルールにより再トリガーとなる場合に、このルールを再度アクティブにする (ループする) ことができません 。

例: NO-LOOP true

AGENDA-GROUP

G

ルールを割り当てるアジェンダグループを指定する文字列。アジェンダグループを使用すると、アジェンダをパーティションで区切り、ルールのグループに対する実行をさらに制御できます。フォーカスを取得したアジェンダグループのルールだけがアクティブになります。

例: AGENDA-GROUP "GroupName"

ACTIVATION-GROUP

ルールを割り当てるアクティベーション (または XOR) グループを指定する文字列。アクティベーショングループでは、ルールを 1 つだけアクティブにできます。発生する最初のルールが、アクティベーショングループの中で、アクティベーションが保留されているルールをすべてキャンセルします。

例: ACTIVATION-GROUP "GroupName"

DURATION

D

ルールの条件が一致している場合に、ルールがアクティブになってからの時間をミリ秒で定義する長整数値。

例: DURATION 10000

TIMER

T

ルールのスケジュールに対する int (間隔) または cron タイマー定義を指定する文字列。

例: TIMER "*/5 * * * *" (5 分ごと)

CALENDAR

E

ルールのスケジュールを指定する Quartz カレンダーの定義。

例: CALENDAR "* * 0-7,18-23 ? * *" (営業時間外を除く)

AUTO-FOCUS

F

アジェンダグループ内のルールにのみ適用可能なブール値。このオプションが true に設定されている場合は、次にルールがアクティブになったときに、そのルールが割り当てられたアジェンダグループにフォーカスが自動的に指定されます。

例: AUTO-FOCUS true

LOCK-ON-ACTIVE

L

ルールフローグループまたはアジェンダグループ内のルールにのみ適用可能なブール値。このオプションを true に設定すると、次回、ルールのルールフローグループがアクティブになるか、ルールのアジェンダグループがフォーカスを受けると、(ルールフローグループがアクティブでなくなるか、アジェンダグループがフォーカスを失うまで) ルールをアクティブにすることができません。これは、no-loop 属性を強力にしたものです。なぜなら、一致するルールのアクティベーションが、(ルールそのものによるものだけでなく) アップデート元にかかわらず破棄されるためです。この属性は、ファクトを修正するルールが多数あり、ルールの再一致と再発行を希望しない計算ルールに適しています。

例: LOCK-ON-ACTIVE true

RULEFLOW-GROUP

R

ルールフローグループを指定する文字列。ルールフローグループで、関連するルールフローによってそのグループがアクティブになった場合に限りルールを発行できます。

例: RULEFLOW-GROUP "GroupName"

図5.2 属性列が含まれるデシジョンテーブルのサンプルスプレッドシート

Example decision table with definitions used

第6章 デシジョンテーブルのアップロード

外部の XLS ファイルまたは XLSX ファイルにルールを定義したら、Decision Central のプロジェクトに、そのファイルをデシジョンテーブルとしてアップロードします。

重要

通常は、デシジョンテーブルのスプレッドシートを 1 つだけアップロードする必要があります。これには、Decision Central の 1 つのルールパッケージに必要なすべての RuleTable 定義が含まれます。複数のパッケージに複数のデシジョンテーブルのスプレッドシートをアップロードすることはできますが、同じパッケージに複数のデシジョンテーブルのスプレッドシートをアップロードすると、RuleSet 属性または RuleTable 属性を競合するコンパイルエラーが発生する可能性があるため、これは推奨されません。

手順

  1. MenuDesignProjects に移動して、プロジェクト名をクリックします。
  2. Create New AssetDecision Table (Spreadsheet) をクリックします。
  3. 参考となる デシジョンテーブル 名を入力し、適切な パッケージ を選択します。
  4. ファイルタイプ (xls または xlsx) を選択し、ファイルの選択 アイコンをクリックし、スプレッドシートを選択します。OK をクリックしてアップロードします。
  5. デシジョンテーブルデザイナーの右上のツールバーで Validate をクリックして、テーブルを検証します。テーブル検証に失敗した場合は、XLS ファイルまたは XLSX ファイルを開いて、構文エラーに対処します。構文のヘルプは「5章デシジョンテーブルの定義」を参照してください。
デシジョンテーブルスプレッドシートの、ガイド付きデシジョンテーブルへの変換

アップロードしたデシジョンテーブルスプレッドシートを、ガイド付きデシジョンテーブルに変換するには、デシジョンテーブルデザイナーの右上のツールバーで Convert をクリックします。このスプレッドシートを、ガイド付きデシジョンテーブルに変換すると、Decision Central でテーブルデータを直接編集できるようになります。ガイド付きデシジョンテーブルの詳細は『ガイド付きデシジョンテーブルを使用したデシジョンサービスの作成』を参照してください。

第7章 次のステップ

付録A バージョン情報

本ドキュメントの最終更新日: 2018 年 7 月 3 日

法律上の通知

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.