If 節の条件プロパティの編集
ルール定義では、1 つの条件は 2 つの値とこれらの値間の比較演算子で構成されます。以下に例を示します。
条件が真でない場合は、偽となります。条件プロパティにはその他の可能な値はありません。真または偽のみの結果を、ブーリアン値の結果と呼びます。InterSystems IRIS では、ブーリアン値の結果を整数値として格納します。1 は真で、0 は偽です。ほとんどの場合、この内部表現を使用する必要はありません。ただし、ルーティング・ルールの場合、ルールの制約が真の場合はいつでも、条件プロパティに対応する If 節を実行できます。この場合、条件プロパティを 1 に設定できます。
条件プロパティには、複数の条件を含めることができます。InterSystems IRIS は、対応するルールを実行するかどうか決定する前に、プロパティのすべての条件を評価および比較します。条件どうしのロジックは、AND 演算子または OR 演算子によって決定されます。例えば、以下の値の条件プロパティを考えてみます。
IF Amount <= 5000
AND CreditRating > 5
OR CurrentCustomer = 1
同じ値が、ルール・エディタでは次のように表示されます。
値には、Amount <= 5000、CreditRating > 5、CurrentCustomer = 1 という 3 つの条件があります。各条件は真か偽のいずれかになります。InterSystems IRIS は、これらの条件を個別に評価してから、AND および OR 演算子によって定義された、これらの条件の間の関係を評価します。
AND および OR 演算子は、真の値および偽の値に対してのみ機能します。すなわち、演算子は 2 つのブーリアン値の間に配置し、次のように 1 つのブーリアン値の結果を返す必要があります。
演算子 |
結果が真となる状況 |
AND |
両方の値が真の場合。 |
OR |
少なくとも 1 つの値が真であるか、両方の値が真の場合。1 つの値が偽でもう一方の値が真の場合でも、全体としての結果は真になります。 |
条件プロパティに複数の AND または OR 演算子が含まれる場合、AND 演算子が OR 演算子よりも優先されます。また、すべての AND 演算子が先に実行され、次に OR 演算子が実行されます。例えば、以下の条件セットを考えてみます。
IF Amount <= 5000
AND CreditRating > 5
OR CurrentCustomer = 1
AND CreditRating >= 5
同じ条件セットが、ルール・エディタでは次のように表示されます。
InterSystems IRIS は、条件を次のように評価します。
IF (Amount <= 5000 AND CreditRating > 5)
OR (CurrentCustomer = 1 AND CreditRating >= 5)
以下のいずれかまたは両方の文が真の場合、全体としての条件セットは真となります。
両方の文が偽の場合、全体としての条件セットは偽となります。
別の方法で説明すると、InterSystems IRIS は次の手順を実行して条件セットを評価します。
-
以下の AND 式の結果が真か偽かを判別します。
IF Amount <= 5000
AND CreditRating > 5
この結果を “SafeBet” と呼ぶとします。
-
以下の AND 式の結果が真か偽かを判別します。
IF CurrentCustomer = 1
AND CreditRating >= 5
この結果を “KnownEntity” と呼ぶとします。
-
以下の OR 式の結果が真か偽かを判別します。
IF SafeBet is true
OR KnownEntity is true
SafeBet が真で KnownEntity が偽の場合、条件セットは真となります。同様に、SafeBet が偽で KnownEntity が真の場合でも、条件セットは真となります。最後に、SafeBet と KnownEntity の両方が真の場合、条件セットは真となります。