ビジネス・ルールの定義

「ビジネス・ルール・チェック」プロセッサを使用すると、一連のビジネス・ルールをEDQの外で定義および保持することができ、単一のプロセッサを使用して適用できます。ルールは、属性の観点で定義され、データ構造とは無関係です。属性には、a1、a2、a3などのタグがあり、ビジネス・ルール・チェック・プロセッサが構成されている場合、入力データ内の適切なフィールドにマップする必要があります(「ビジネス・ルール・チェック」のトピックを参照)。

ビジネス・ルールは、次の方法で定義できます。

ビジネス・ルール構造

ビジネス・ルールは、次の3つのコンポーネント・タイプで構成されます。

  • チェックは、再使用可能な小さいロジックです。ユーザー定義名、実行するチェックのタイプ、および意味がタイプに応じて異なるいくつかのオプションがゼロまたは複数含まれます。チェックは、より複雑な条件を作成するために構築したり、ルール内で直接使用できます。「チェックの定義」を参照してください。

  • 条件は、より複雑なロジックであり、チェックを属性に適用しますが、完全なルールではありません。ビジネス・ルール構成での条件の使用はオプションであり、必ずしも必要ではありません。条件は、ルールへのゲートウェイとして機能できます。ルールに条件が割り当てられている場合、条件にパスした場合のみルールの残りが評価されます。条件は、チェックまたは他の条件を使用して構築でき、複雑な論理構造を持つことができます。「条件の定義」を参照してください。

  • ルールは、どのチェックをどの属性に適用するかを指定します。ルールには、参照しやすいようにIDおよびラベルがあり、ルール違反があった場合のエラー・コード、エラー・メッセージおよびエラーの重大度が指定されます。「ルールの定義」を参照してください。

チェックの定義

チェックには、次のような特徴があります。

  • 名前: ユーザーが定義し、他の場所からチェックを参照できるようにします。

  • チェック・タイプ: チェックが実行する操作を定義します。

  • 最大3つのオプション: チェック操作が機能するために必要な追加情報を提供します。

チェックでは、処理の対象となる属性は指定されません。

次の表はサポートされているチェック・タイプを示しています。

名前 説明 オプション

データなしチェック

フィールドがブランクであることのチェックに使用します。フィールドにデータが含まれていると、このチェックは失敗します。

なし

移入のチェック

フィールドがブランクでないことのチェックに使用します。フィールドにデータが含まれていないと、このチェックは失敗します。

なし

文字のチェック

フィールド内のデータに、指定したリストからの文字のみが含まれていることのチェックに使用します。

オプション1 = 許可されている文字のリスト(後述の注意を参照)

オプション2 = 許可されている文字を含むワークシートの名前(Excelベースのルールでのみ使用)

オプション3 = 許可されている文字を含む参照データの名前

無効な文字のチェック

フィールド内のデータに、指定したリストからの文字が含まれていないことのチェックに使用します。

オプション1 = 無効な文字のリスト(後述の注意を参照)

オプション2 = 無効な文字を含むワークシートの名前(Excelベースのルールでのみ使用)

オプション3 = 無効な文字を含む参照データの名前

最小長のチェック

フィールド内の文字列データの最小長の指定に使用します

オプション1 = データ・フィールドの最小長

最大長のチェック

フィールド内の文字列データの最大長の指定に使用します

オプション1 = データ・フィールドの最大長

リスト・チェック

フィールド内のデータに、指定したリストからの値のみが含まれていることのチェックに使用します。

オプション1 = 許可されている単一の値

オプション2 = 許可されている値を含むワークシートの名前(Excelベースのルールでのみ使用)

オプション3 = 許可されている値を含む参照データの名前

無効なリストのチェック

フィールド内のデータに、指定したリストからの値が含まれていないことのチェックに使用します。

オプション1 = 無効な単一の値

オプション2 = 無効な値を含むワークシートの名前(Excelベースのルールでのみ使用)

オプション3 = 無効な値を含む参照データの名前

正規表現チェック

フィールド内のデータが正規表現を順守していることのチェックに使用します。

オプション1 = 正規表現

オプション2 = 正規表現を含むワークシートの名前(Excelベースのルールでのみ使用)

オプション3 = 正規表現を含む参照データの名前

無効な正規表現のチェック

フィールド内のデータが正規表現を順守していないことのチェックに使用します。

オプション1 = 無効な正規表現

オプション2 = 無効な正規表現を含むワークシートの名前(Excelベースのルールでのみ使用)

オプション3 = 無効な正規表現を含む参照データの名前

スクリプト

データに対する処理を実行する外部スクリプトの指定に使用します。

オプション1 = 実行するスクリプトのスクリプト・コードまたは名前

オプション2 = スクリプト言語。有効な値は、javascriptまたはgroovyです。オプションが指定されていない場合、言語はjavascriptにデフォルト設定されます。

失敗

常に失敗するチェックの指定に使用します。

なし

注意:

有効または無効の文字のリストでは、大/小文字が区別され、すべての文字(英数字、空白文字および特殊文字)を含むことができます。リストがチェック内で直接指定される場合、区切り文字または空白文字なしで単一の文字列として入力する必要があります(これらは、それ自体がリストの一部として解釈されるためです)。

条件の定義

条件は、チェックを属性と関連付けます。条件は、単一のチェックを単一の属性に関連付けるだけでなく、2つのチェックを単一の属性に適用したり、単一のチェックを2つの属性に適用できます。また、他の条件を統合し、より複雑な条件を作成するためにも使用できます。条件には、次の属性があります。

  • 名前: ユーザーが定義し、他の場所から条件を参照できるようにします。

  • 「タイプ」フィールド: 条件フィールド内のエントリのタイプ(チェック、属性、条件)を指定します。

  • 少なくとも1つの「条件」フィールド。「条件」フィールドには、「タイプ」で指定されているように、チェック、属性または条件を含めることができます。

  • 「属性」または「チェック」'フィールド: 内容は「タイプ」の値に依存します。タイプが「チェック」の場合、このフィールドには、チェックが適用される属性が含まれます。タイプが「属性」の場合、このフィールドには、属性に適用されるチェックが含まれます。タイプが「条件」の場合、このフィールドは使用されません。

  • 演算子フィールド: 論理演算子AND、ORおよびNOTのいずれかを含むことができます。このフィールドが「AND」に設定されていて、値が複数の「条件」フィールドで設定されている場合、両方の条件は、条件が全体としてtrueを返すためにはtrueに評価される必要があります。「OR」に設定されている場合、条件全体がtrueに評価されるようにするには、セットの1つの条件のみがtrueを返す必要があります。「NOT」に設定されている場合、最初の「条件」フィールドに指定されている式の反対に条件が評価される必要があります。このフィールドがNULLの場合、その意味はANDとみなされます。演算子ANDおよびORは、2つ以上の条件フィールドが設定されていない場合は意味がありません。

次の表は、2つの条件フィールド(Condition1およびCondition2)が使用されている場合の動作をまとめたものです。

タイプの設定 Condition1およびCondition2の内容... 属性またはチェックの内容... Condition1およびCondition2が設定されている場合... AND演算子の場合、条件が返す値 OR演算子の場合、条件が返す値

チェック数

チェック(複数可)

属性

2つのチェックは両方とも属性に適用されます。

両方の条件が属性に対してTRUEを返す場合のみTRUE

いずれかの条件が属性に対してTRUEを返す場合はTRUE

属性

属性(複数も可)

チェック

チェックは両方の属性に適用されます。

条件が両方の属性に対してTRUEを返す場合のみTRUE

条件が属性のいずれかに対してTRUEを返す場合はTRUE

条件

条件

なし

両方の条件が評価されます。

両方の条件がTRUEを返す場合のみTRUE

いずれかの条件がTRUEを返す場合はTRUE

チェックを様々な属性および演算子と組み合せ、結果である条件をまとめてより複雑な条件を形成することで、複雑な論理チェックを構築できることがわかります。

ルールの定義

ルールは、ビジネス・ルール・チェック内の最上位のエンティティです。ルールは、チェックと条件をまとめ、チェックが適用される属性を指定し、ルールの違反時に発生させるエラー・コードおよびエラー・メッセージを指定します。さらに、エラーの重大度をこのレベルで指定できます。

ルールには、次のフィールドがあります。

  • 「ルールID」はルールの数値識別子です。

  • ルール・ラベルはルールの判読可能な名前です。

  • 「無効化」フィールドは「はい」に設定すると、削除せずに処理からルールを除外できます。

  • 「属性に適用」フィールドは、チェックが適用される属性を示します。

  • 「条件」フィールドは、ルールを適用するまえに評価する必要がある条件を示します。条件を満たさない場合、ルールは適用されません。

  • エラー・コードは、ルールに違反があった場合に返されるエラー・コードを示します。エラー・コードは、完全にユーザーの裁量で定義され、任意の書式で指定できます。

  • エラー・メッセージは、ルールに違反があった場合に返されるユーザー定義メッセージです。

  • エラー重大度は、ルール違反の重大度の表示を示します。エラー重大度は、完全にユーザーの裁量で定義され、任意の書式で指定できます。

  • チェック1は、属性に適用される最初のチェックを指定します。

  • チェック2 は、属性に適用される2番目のチェックを示します。

2つのチェックが指定されている場合、属性が両方のチェックをパスした場合のみルールはパスしたことになります。つまり、結果は、両方のチェックの論理ANDです。

注意:

複雑な条件セットがtrueではないようにするために、条件をルールに適用できます。無効な構成を記述するロジックは、条件を使用して指定されます。次に、条件によって制御され、チェック1が「失敗」に設定される非常に単純なルールを作成できます。ルールがこのように構成された場合、条件は分析済の各行に対して評価され、条件を満たす場合ルールは常に失敗します。

Excelスプレッドシートでのビジネス・ルールの定義

Excelスプレッドシートを使用してビジネス・ルールを定義する場合、次のルールを順守する必要があります。

  • [Install Path]/oedq_local_home/businessrulesディレクトリに配置され、この場合の[Install Path]はEDQインストールのルートを表します。

  • ルール、条件およびチェックは、3つの異なるワークシート、名前付きルール、条件およびチェックでそれぞれ定義する必要があります。

  • 同じExcelファイル内の追加のワークシートで、リスト・チェックなどで使用するための追加データを含むように指定できます。

  • ルール・ワークシートは、次のような名前の列を含む必要があります。

    • ルールID

    • ルール・ラベル

    • 無効化

    • 適用先属性

    • 条件

    • エラー・コード

    • エラー重大度

    • エラー・メッセージ

    • チェック1

    • チェック2

  • 条件ワークシートは、次のような名前の列を含む必要があります。

    • 条件名

    • 属性またはチェック

    • タイプ

    • 演算子

    • Condition1

    • 条件2...条件N

  • チェック・ワークシートは、次のような名前の列を含む必要があります。

    • チェック名

    • チェック・タイプ

    • オプション1

    • オプション2

    • オプション3

参照データでのビジネス・ルールの定義

参照データを使用してビジネス・ルールを含める場合、次のルールを順守する必要があります。

  • ルール、条件およびチェックをそれぞれ指定する、参照データの3つの異なるセット(または条件を使用しない場合は2つのセット)が使用可能である必要があります。

  • 参照データの構造は、前述のExcelスプレッドシートで説明されている構造と同じである必要があります。