ルール仕様アセット > ルールセットの設定 > ルールセットの設定例
  

ルールセットの設定例

ルール仕様内で設定するルールセットの数は、入力データに関して決定する必要があるファクトによって決まります。
ルールセットは以下の方法で設定できます。

単一入力を使用するルールセット

入力カラム内の一連のデータ値を分析する場合は、単一データ入力を読み取るルールセットを設定します。入力に同じ条件ロジックを適用するルール文を定義し、各条件の結果ごとに異なるアクションを定義します。

単一入力の例

航空会社は航空チケットをオンラインで販売しています。航空会社が販売するチケットの価格は、乗客の年齢層に応じて異なります。航空会社は、各乗客の年齢層を顧客データベースで識別するための、ビジネスルールを定義します。顧客データセットで生年月日データを表す入力を設定します。入力データ内のデータ値と現在日を比較する一連のルール文を作成します。
ルールセットに設定するルール文は、以下のとおりです。
IF AGE >= 65 THEN SENIOR
OR IF AGE >= 18 THEN ADULT
OR IF AGE < 18 THEN STUDENT
ルールセットは、アクションを生成できる最初のルール文のデータを返します。したがって、ルール文の順序が関係してきます。ルールセットが最初に2番目のルール文を読み取った場合、乗客の年齢カテゴリがシニアであるかどうかは識別できません。ルールセットが最初に2番目のルール文を読み取った時点で、18歳以上の乗客はすべて成人として識別されます。

依存する条件を持つルールセット

ビジネスルールに従い複数の条件がtrueになる必要がある場合は、ルールセットに依存関係を持つルール文条件を設定します。関連性のある一連の条件を入力に適用するルール文を定義し、条件に対して単一アクションを定義します。
条件を結合する場合は、ルール文内でAND演算子を使用します。

依存関係のある条件の例

市営バス会社はバスの運転手を雇いたいと考えています。このバス会社では、すべての運転手が視力試験に合格し、バスを運転するための免許証を持っている必要があります。バス会社は、各運転手の視力試験および免許証のステータスを従業員データベースで確認するための、ビジネスルールを定義します。視力検査と免許証のデータを表す入力を作成します。ルール文に各入力の条件を設定します。前のルール文への入力が有効でないときは、文字列を返すようにデフォルトルールセットを設定します。
ルールセットに設定するルール文は、以下のとおりです。
IF EYESIGHT TEST IS YES
AND DRIVERS_LICENSE IS YES THEN OK
OR IF NO RULE STATEMENT IS VALID THEN NOT_OK

独立した条件を持つルールセット

ビジネスルールに従い複数の条件の1つがtrueになる必要がある場合は、ルールセットに独立した関係を持つルール文を設定します。

独立した条件の例

銀行は顧客にクレジットカードを提供したいと考えています。銀行は預金残高が5,000ドルを超える顧客、または給与が50,000ドルを超える顧客にクレジットカードの資格を与えることにしました。銀行は、資格のある顧客を顧客データベースで識別するための、ビジネスルールを定義します。この例では、顧客の給与および残高を表す入力を設定します。各入力をテストするルール文を設定します。
ルールセットに設定するルール文は、以下のとおりです。
IF CUSTOMER SALARY >= 50000 THEN OFFER_CARD
OR IF CUSTOMER BALANCE >= 5000 THEN OFFER_CARD
ルールセットは、アクションを生成できる最初のルール文のデータを返します。ただし、この例ではルール文の順序は関係ありません。いずれかの入力のデータが有効な場合、入力行は有効になります。

親子関係のルールセット

ビジネスルールに、他のデータ要件に依存するデータ要件が記述されている場合は、親子関係にあるルールセットを設定します。

親子の例

金物店はさまざまな色および形式の木材防腐剤を販売します。この金物店では、製品データベースで倉庫内の木材防腐剤の在庫を追跡できることを確認する必要があります。金物店は、木材防腐剤の色、形式、および数量のデータが製品データベースで正確に維持されるための、ビジネスルールを定義します。子ルールセットを設定し、木材防腐剤の種類ごとにデータを確認するルール文を含めます。親ルールセットを設定して、子ルールセットの出力を確認します。
以下の子ルールセットを設定します。
ルールセット名:Color
IF COLOR = (PINE, OAK, CHESTNUT) THEN GOOD_COLOR
ルールセット名:Size
IF SIZE = (250, 500, 1000) THEN GOOD_SIZE
ルールセット名:Style
IF STYLE = (GLOSS, MATT) THEN GOOD_STYLE
以下の親ルールセットを設定します。
ルールセット名:Wood Preserver
IF COLOR = GOOD_COLOR
AND SIZE = GOOD_SIZE
AND STYLE = GOOD_STYLE THEN WOOD PRESERVER IS GOOD_PRODUCT
入力を値の範囲と比較するように条件を設定するには、入力関数で[入力:値のリスト]オプションを選択します。在庫内の他の製品についても、同様な親ルールセットおよび子ルールセットを設定できます。
注: 許容される色とスタイルのリストを含むディクショナリを作成することもできます。入力値をディクショナリと比較するように条件を設定します。