演算子を使用した相互検証ルールのロードの例
相互検証ルールを作成する際、条件フィルタまたは検証フィルタで同じセグメントが別の値で使用されている場合、アプリケーションはOR演算子を使用します。 また、条件フィルタまたは検証フィルタ内で複数の異なるセグメントが使用されている場合、AND演算子が使用されます。
OR演算子とAND演算子を使用する、次の例について考えてみます。
会社セグメント値「Operations」および「Production」に対して条件フィルタを定義すると、ルールが次の文のように評価されます。
Company = Operations (OR) Company = Production
「Company = OperationおよびBusiness Unit = Albany」の条件フィルタを定義すると、ルールが次のように評価されます。
Company = Operations (AND) Business Unit = Albany
次の表に、サポートされている演算子を示します。
演算子 |
摘要 |
---|---|
STARTSWITH |
次で始まる |
ENDSWITH |
次で終わる |
= |
次と等しい |
<> |
次と等しくない |
> |
次より大きい |
<= |
以下 |
>= |
次以上 |
BETWEEN ('-'を使用して2つの値を区切る) |
次の間 |
NOTBETWEEN |
次の間にない |
CONTAINS |
次を含む |
DOESNOTCONTAIN |
次を含まない |
ISBLANK |
空白である |
ISNOTBLANK |
空白でない |
例1: アクティビティに依存する事業所
アクティビティ・コードが2200と等しい場合、事業所を2201または22EEにすることはできません。
アプリケーションで評価する条件は次のとおりです。
アクティビティ・コード = 2200
条件フィルタが満たされた場合は、次の検証フィルタを適用します。
(Location NOTEQUAL 2201) or (Location NOTEQUAL 22EE)
この図は、相互検証ルールによって条件フィルタが評価され、結果に応じて検証フィルタが適用される様子を示しています。

このCostKffValidationRule.datファイルを使用して、条件フィルタおよび検証フィルタを適用します。
METADATA|CostKffValidationRule|StructureInstanceCode|RuleCode|RuleDescription|ErrorMessageText|EnabledFlag|StartDateActive|EndDateActive|ConditionFilterText|ValidationFilterText
MERGE|CostKffValidationRule|31|HDL_COST_CVR_COST_KFF_INST|ACTIVITY_LOCATION_RULE|Rule to Check Activity and Location|Activity and Rule not Satisfy Rule Check|Y|2010/01/01|4712/12/31|ACTIVITY_CODE = 2200|LOCATION <> 2201,LOCATION <> 22EE
前述の例では、原価組合せに「アクティビティ・コード=2200」が含まれている場合に、事業所が2201または22EEであるかどうかがチェックされます。 事業所がこれらの値のいずれかである場合、その原価組合せは有効な組合せではないため作成されません。 事業所の値が2201または22EE以外である場合は、アクティビティ・コード= 2200が有効と見なされ、その原価コード組合せが作成されます。
例2: アクティビティ・コードと請求アクティビティ・コードに基づくアクティビティ・コード検証
アクティビティ・コードが3で始まる、または請求アクティビティ・コードが4で始まるものと仮定します。 このとき、会社コード=01であればアクティビティ・コードの末尾は{0-7}でなければなりません。
アクティビティ・コードが3で始まる、または請求アクティビティ・コードが4で始まるものと仮定します。 このとき、会社コード=01であればアクティビティ・コードの末尾は{0-7}でなければなりません。
次の検証ルールが適用されます。
会社コード=01であればアクティビティ・コードの末尾は{0-7}でなければなりません。
この図は、相互検証ルールによって条件フィルタが評価され、結果に応じて検証フィルタが適用される様子を示しています。

このCostKffValidationRule.datファイルを使用して、条件フィルタおよび検証フィルタを適用します。
METADATA|CostKffValidationRule|CrossValidationRuleId|StructureInstanceCode|RuleCode|RuleDescription|ErrorMessageText|EnabledFlag|StartDateActive|EndDateActive|ConditionFilterText|ValidationFilterText
MERGE|CostKffValidationRule|32|HDL_COST_CVR_COST_KFF_INST|<RuleCode>|<ruleDesc>|<errorMsgTxt||Y|2010/01/01|4712/12/31|Company = 01,ACTIVITY_CODE STARTSWITH 3, ACTIVITY_CODE STARTSWITH 4|ACTIVITY_CODE ENDSWITH 0,ACTIVITY_CODE ENDSWITH 1,ACTIVITY_CODE ENDSWITH 2,ACTIVITY_CODE ENDSWITH 3,ACTIVITY_CODE ENDSWITH 4,ACTIVITY_CODE ENDSWITH 5,ACTIVITY_CODE ENDSWITH 6,ACTIVITY_CODE ENDSWITH 7
例3: コスト・センターに基づくアクティビティ・コード
コスト・センターが100以下の場合、アクティビティ・コードは2000である必要があります。 「コスト・センターは100以下である」という条件フィルタがアプリケーションによって評価されます。 条件フィルタが満たされた場合、「アクティビティ・コードは2000でなければならない」という検証フィルタが適用されます。
この図は、相互検証ルールによって条件フィルタが評価され、結果に応じて検証フィルタが適用される様子を示しています:

このCostKffValidationRule.datファイルを使用して、条件フィルタおよび検証フィルタを適用します。
METADATA|CostKffValidationRule|StructureInstanceCode|RuleCode|RuleDescription|ErrorMessageText|EnabledFlag|StartDateActive|EndDateActive|ConditionFilterText|ValidationFilterText
MERGE|CostKffValidationRule|33|HDL_COST_CVR_COST_KFF_INST|ACTIVITY_CODE_CHECK_RULE|Check Activity Code|Activity Code must be 2000 for Cost Center less than 100.|Y|2010/01/01|4712/12/31|COST_CENTER <= 100|ACTIVITY_CODE = 2000
例4: 特定のコスト・センターのアクティビティ・コード範囲
コスト・センターが100の場合、アクティビティ・コードは2000から4000の間である必要があります。 「コスト・センターは100以下である」という条件フィルタがアプリケーションによって評価されます。 条件フィルタが満たされた場合、「アクティビティ・コードは2000から4000の間でなければならない」という検証フィルタが適用されます。
この図は、相互検証ルールによって条件フィルタが評価され、結果に応じて検証フィルタが適用される様子を示しています:

この.datファイルを使用して、条件フィルタおよび検証フィルタを適用します:
METADATA|CostKffValidationRule|StructureInstanceId|StructureInstanceCode|RuleC
ode|RuleDescription|ErrorMessageText|EnabledFlag|StartDateActive|EndDateActive
|ConditionFilterText|ValidationFilterText
MERGE|CostKffValidationRule||HDL_COST_CVR_COST_KFF_INST|ACTIVITY_CODE_BETWEEN_
CHECK|Activity Code between validation for Cost Center|Activity Code must be
between 2000 and 4000 if Cost Center is 100|Y|2018/01/01||COST_CENTER =
100|ACTIVITY_CODE BETWEEN 2000-4000