ルールの論理の指定
文ルールでロジック演算子を使用して、「必要」、「否定」、「暗黙」などの関係を強制します。
この疑似コードについて考えてみます:
If you select option a in the x configured item, then you must also select option y.
ノート
- ロジックは、オペランドxからオペランドyに、またはオペランドyからオペランドxに伝播できます。
- ロジックが関係の値を伝播しない場合、ルールの反対側のオプションのロジックは変更されません。
- trueという用語は、構成にオプションが含まれていることを意味します。
- 「偽」という用語は、構成にオプションが含まれないことを意味します。
- ここでは、trueおよび「偽」という用語を使用して、ルールがどのように機能するかを文書化します。 trueおよび「偽」はコードで使用しません。
必須
ユーザーがオプションを選択すると、Oracle Configuratorでは同じ値が他のオプションに適用されます。

ノート
- ユーザーがオプションaを選択した場合、コンフィギュレータはオプションbも選択します。
- ユーザーがオプションaの選択を解除すると、コンフィギュレータはオプションbも選択解除します。
- ユーザーがオプションbを選択した場合、コンフィギュレータはオプションaも選択します。
- ユーザーがオプションbの選択を解除すると、コンフィギュレータはオプションaも選択解除します。
否定
ユーザーがオプションを選択すると、コンフィギュレータは反対の値をもう一方のオプションに適用します。

ノート
- ユーザーがオプションaを選択した場合、コンフィギュレータはオプションbの選択を解除します。
- ユーザーがオプションaの選択を解除すると、コンフィギュレータはオプションbを選択します。
- ユーザーがオプションbを選択した場合、コンフィギュレータはオプションaの選択を解除します。
- ユーザーがオプションbの選択を解除すると、コンフィギュレータはオプションaを選択します。
示す
暗黙ルールがどのように機能するかを次に示します。

ノート
- ユーザーがオプションaを選択した場合、コンフィギュレータはオプションbも選択します。
- ユーザーがオプションaの選択を解除すると、コンフィギュレータはオプションbの選択を解除し、ユーザーはオプションbを選択または選択解除できます。
- ユーザーがオプションbを選択した場合、コンフィギュレータはオプションaの選択を解除し、ユーザーはオプションaを選択または選択解除できます。
- ユーザーがオプションbの選択を解除すると、コンフィギュレータはオプションaも選択解除します。
除外
除外ルールの仕組みを次に示します。

ノート
- ユーザーがオプションaを選択すると、コンフィギュレータはオプションbの選択を解除し、ユーザーがbを選択できないようにします。これは、ルールによって構成からbが除外されるためです。
- ユーザーがオプションaの選択を解除すると、オプションbが使用可能になり、ユーザーはオプションbを選択または選択解除できます。
- ユーザーがオプションbを選択した場合、コンフィギュレータはオプションaの選択を解除し、ユーザーがオプションaを選択できないようにします。
- ユーザーがオプションbの選択を解除すると、オプションaが使用可能になり、ユーザーはオプションaを選択または選択解除できます。
論理状態とルール変数
コンフィギュレータは、実行時にモデルのノードごとにユーザーが構成できる値を絞り込もうとします。 各ノードの最小値と最大値を指定できます。 ユーザーがそうでない場合:
- オプションを選択または除外すると、コンフィギュレータは変数をバインドしません。
- 選択を行い、値を入力するか、「終了してレビュー」をクリックしてから、コンフィギュレータは変数をバインドしません。
- 選択するか、コンフィギュレータが実行時にオプションを除外していない場合、SelectionState属性およびDetailedSelectionState属性の値は選択可能です。
- コンフィギュレータは、デフォルト、検索ディシジョンまたはオートコンプリートを介してオプションを除外することもできます。