機械翻訳について

拡張ルール

拡張ルールは、確立されたインタフェースを使用して記述するコードでコンフィギュレータ・モデルの機能を拡張し、文ルールでは使用できないビジネス要件をサポートします。

  • 拡張ルールは、構成セッション中に発生する可能性がある1つ以上の事前定義済イベントにバインドされます。 例: 小数機能ノードの値の変更。

  • 拡張ルールはベース・ノードに関連付けられています。 ベース・ノードは、ルールがルールにバインドされたイベントをリスニングするモデル・ノードです。 イベントをリスニングすることは、イベントの発生を検出することを意味します。 例: 値が変更された特定の小数点機能ノード。

  • 拡張ルールの動作はルール・テキストで定義され、Groovyスクリプト言語の有効なスクリプトです。 単純な例: Groovyで定義された関数は、販売価格に到達するために、品目の定価に異なる割引を適用した場合の影響を計算します。

    注意: この簡略化された例は、説明のみを目的としています。 実行時にコンフィギュレータに表示される価格構成情報は、通常、Oracle Pricingとの統合によって提供されます。
  • スクリプトで定義されている特定のGroovy関数を呼び出すために、イベントはイベント・バインディングでイベントの出現にバインドされます。 例: 割引関数の起動は、変更された値が適用する新しい割引である小数ノードの値の変更にバインドされます。

  • 柔軟性を実現するために、指定されたイベント・バインド範囲内でバインドされたイベントをリスニングできます。 例: ノード値の変更は、ルールの基本ノードでのみリスニングされます。

  • バインドされた関数に引数がある場合、各引数は、引数バインディングで引数の値のソースにバインドされている必要があります。 例: 割引機能には、定価と割引の引数があります。定価引数は、エンド・ユーザーが定価を入力するモデル・ノードにバインドされ、割引引数はエンド・ユーザーが割引を入力するモデル・ノードにバインドされます。

  • ベース・ノードが複数のインスタンスを持つことができる場合は、インスタンス化スコープを指定して、ルールが起動されるときに、ベース・ノードのインスタンスごとにルールの個別のインスタンスが作成されるか、ベース・ノードのインスタンス・セット全体に対してルールの単一インスタンスが作成されるかを決定する必要があります。