ルールのクラスの設定
各文ルールには、実行時にルールを適用する時期と方法をOracle Configuratorに指示するように設定できるクラスがあります。
クラスは次を指定します:
- ルールの動作
- ルールが必要かどうか
- 実行時にルールを適用するタイミング
値の制約
ルールの区分を「制約」に構成した場合、オプションを手動で選択するか値を入力すると、コンフィギュレータは実行時に制約を適用します。
ロジックを含めたり、値を比較したり、制約でオプションに互換性があることを確認できます。
制約では関係演算子を使用できます。 次に、等価( =)演算子と大なり( > )演算子を使用する例を示します:
x = y + (q*z)
a > b
ノート
- 式の左側では、数値の詳細を右側にプッシュできます。
- 式の右側では、数値の詳細を左側にプッシュできます。
制約は常にtrueである必要があります。 たとえば、制約に違反する選択がある場合、コンフィギュレータは、選択に必要な処理を実行できないことを通知するメッセージが表示されます。
コンフィギュレータが実行時に制約を実行するために使用する順序は指定できません。
デフォルト値の設定
ルールのクラスを「デフォルト」に設定した場合、ルールではデフォルト値を使用してソリューションをガイドできます。
花束を販売し、顧客がMy Fall Bouquetの代わりにMy Summer Bouquetを購入し、Glass Vaseの代わりにCrystal Vaseを購入することを好むとします。 これらのルールとこのシーケンスによって、次のことが可能になります:
- 私のブーケは夏を意味
- 私のブーケはクリスタル花瓶を意味
- 秋の花束はクリスタル花瓶を意味
「My Bouquet」を選択すると、コンフィギュレータはデフォルトで「Summer Bouquet」と「Crystal Vase」を自動的に選択します。 「Fall Bouquet」を選択すると、コンフィギュレータは自動的に「Crystal Vase」を選択します。
複数の制約をデフォルトとして作成できます。 モデルにWeightという名前の数値フィーチャが含まれており、その範囲が1,000 ~ 5,000であるとします。 この項目の値が3,000以下である解決策を販売したいので、文ルールを作成し、そのルールをデフォルト・クラスに割り当てます:
Weight <= 3000
コンフィギュレータは、実行時に重み項目の範囲を縮小します:
Range: 1000 to 3000
加重がこの範囲外になるよう選択すると、コンフィギュレータはデフォルトを上書きします。
ノート
- コンフィギュレータは、構成の開始時および選択を行う前に、実行時にデフォルト・ルールを適用します。
- コンフィギュレータは、ルールで指定した順序でデフォルト値を適用します。
- オプションを手動で選択するか、値を入力すると、コンフィギュレータによってデフォルト・ルールが適用される場合があります。
- デフォルトは制約ではありません。 たとえば、デフォルトによってオプション機能にチェックマークが自動的に追加される場合、コンフィギュレータはチェック・マークの削除を妨げません。
- デフォルト・ルールを割当関数として表現できます。
- 選択肢または制約によって競合が発生した場合、デフォルトが失敗することがあります。
検索の指定
ルールのクラスを「ディシジョンの検索」に構成すると、コンフィギュレータはルールを適用します:
- 自動補完中
- すべてのユーザー選択、すべての制約およびすべてのデフォルトを適用した後
- 制約の検索ディシジョンを適用する前に
- ルールで検索ディシジョンを指定した順序と同じです
検索ディシジョン・ルールは、割当て関数、論理式または数値比較として表現できます。