論理ルール
論理ルールは、関係を適用するルール・タイプです。 論理ルールを使用すると、モデルの要素間の制約を論理的な関係という観点から表現できます。 たとえば、オプションAを選択すると、オプションBとCが構成に含まれていることが必要になる場合があります。
論理ルールを定義する場合は、次のいずれかのロジック関係でCONSTRAINキーワードを使用して、ルールの動作を指定します:
-
必須
-
否定
-
示す
-
除外
次のセクションでは、各タイプのリレーションについて説明し、それらの動作を示す表を示します。 各表で、矢印は、エンド・ユーザーがオプションを選択した後のロジック状態を指しています。矢印は、ルールが伝播される方向を示します。
ルールは、関係のオペランドAからオペランドBに、またはオペランドBからオペランドAに伝播できます。 また、一部の値と一部のロジック関係ではルールが伝播されないため、ルールの反対側のオプションのロジック状態は変更されないことに注意してください。
必須
「必要」関係を使用するロジック・ルールは「両方をプッシュ」します。つまり、ルールの片側でオプションを選択すると、ルールの反対側のオプションに同じ効果があります。 詳細は、次の例を参照してください。 次の図は、必要関係の影響を示しています。

-
エンドユーザーがルールの片側でオプションを選択すると、ルールの反対側のオプションも選択されます。 エンドユーザーがオプションを選択解除した場合も同様です。 つまり、両方のオプションを構成に含めるか、構成から除外する必要があります。
否定
「否定」関係は「必要」関係に似ているため、「両方向をプッシュ」することもできます。 ただし、Negates関係では、ルールの反対側のオプションが選択されている場合にオプションを選択できません。 つまり、いずれかのオプションを選択すると、もう一方のオプションが構成に含まれなくなります。 次の図は、否定関係の影響を示しています。

-
エンド・ユーザーがオプションAを選択すると、そのオプションがtrueになり、オプションBがfalseに設定されます。
-
エンド・ユーザーがオプションAの選択を解除すると、そのオプションはfalseになり、オプションBはtrueになります。 つまり、オプションBが選択されています
-
エンド・ユーザーが最初にオプションBを選択すると、そのオプションがtrueになり、オプションAがfalseになります。
-
エンド・ユーザーがオプションBの選択を解除すると、オプションAはtrueになります。
示す
次の図は、示す関係の影響を示しています。

-
エンド・ユーザーがオプションAを選択するとtrueになり、オプションBも選択されます。 つまり、オプションBのロジック状態はtrueになります。
-
オプションAの選択を解除すると、オプションAはfalseになり、オプションBの状態は不明になります。 つまり、オプションBは選択可能です。
-
エンド・ユーザーが最初にオプションBを選択すると、そのオプションがtrueになり、オプションAが不明になります。
-
エンド・ユーザーがオプションBの選択を解除すると、オプションBとAの両方がfalseになります。
除外
次の図は、除外リレーションの影響を示しています。

-
エンド・ユーザーがオプションAを選択すると、そのオプションがtrueになり、オプションBがfalseになります。 つまり、オプションBは構成から除外されます。 エンド・ユーザーがオプションBを選択しようとすると、コンフィギュレータに矛盾メッセージが表示されます。
-
エンド・ユーザーがオプションAの選択を解除すると、オプションAはfalseになり、オプションBは不明になります。 つまり、オプションBは選択可能です。
-
エンド・ユーザーが最初にオプションBを選択すると、オプションAはfalseになります。
-
エンド・ユーザーがオプションBの選択を解除すると、オプションAは不明になります。