機械翻訳について

Groovyになるためのガイドライン

Groovyスクリプト言語は、ルール・テキストを記述するときに使用し、スクリプト内のインタフェースを使用してコンフィギュレータ・モデルからオブジェクトをインポートして、スクリプトがそれらにアクセスできるようにします。

Be Groovy

拡張ルールを記述するときに使用できるいくつかの重要なGroovy機能を次に示します。

  • 変数の型を宣言せずに変数を宣言するには、defキーワードを使用します。
  • クラス外のメソッドおよび変数を定義し、スクリプト内の任意の場所で使用します。 GroovyはこれらをScriptClassクラスに含め、runメソッドで実行します。
    クラスでのメソッドの定義 クラスでメソッドを定義しない
    • コードに継承およびカプセル化を使用することを推奨します。
    • 通常はJavaプログラミング言語で行う場合など、より複雑なロジックを構築することをお薦めします。
    • 多くのメソッドを定義します。 これらをクラスに追加すると、イベントをバインドするときに、Class属性およびMethod属性から選択しやすくなります。
    コードをすばやく記述してテストする必要があります。 単純に、すべてのイベントをScriptClassおよびrunにバインドできます。

詳細は、Groovyを参照してください。

コンフィギュレータ・オブジェクトへのアクセス

ランタイム構成時に、様々なインタフェースを使用してオブジェクトにアクセスします。 次に、通常使用するオブジェクトの一部を示します。

コードに必要な操作 アクセスに使用するインタフェース オブジェクトの作成に使用するコード オブジェクトを使用する例
メソッドをバインドするときに指定したイベントを取得します。 ICXEvent コードは必要ありません。 ルールを実行すると、スクリプトによってcxEventオブジェクトが自動的に作成されます。 イベントが参照する現在の構成を取得します:

IConfiguration config = cxEvent.getConfiguration()

ルールのベース・ノードを取得します。 ICXEvent def baseNode = cxEvent.getBaseNode() ユーザーがベース・ノードを選択したかどうかをテストします:

if (baseNode.isSelected()) ...

ランタイム・セッション中にアクティブな構成を取得します。 IConfiguration IConfiguration config = cxEvent.getConfiguration() 実行時セッション中にアクティブになっている構成のルート・ノードを取得します:

def root = config.getRootBomModel()

ランタイム・セッション中にアクティブなルート・ノードを取得します。 IBomModelInstance IBomModelInstance root = config.getRootBomModel() モデルの子ノードを取得します。 品目名を使用して、AS54888品目などのモデルを検索し、ルート・ノードで検索を開始します:

def childItem = root.getChildByName("AS54888")

Oracle Configuratorは、バインドするイベントに関連する各オブジェクトを自動的に初期化します。 このオブジェクトは、cxEventという名前のICXEventインタフェースのインスタンスです。

ノード値の管理

各ノードの様々なオブジェクトの値を取得および設定できます。 次に例を示します。

機能のタイプ Javaインタフェース 値を取得するコード 値を設定するコード
整数 IIntegerFeature int getValue() void setIntValue(int value)
小数 IDecimalFeature double getValue() void setDecimalValue(double value)
オプション IOptionFeature IOption getSelectedOption() void select()
Boolean IBooleanFeature boolean isSelected() void toggle()

特定のニーズを満たすために、さらに多くのインタフェースを使用できます。 たとえば:

  • ロジック状態の取得および設定
  • アクセス・プロパティ
  • アクセス・オプション
  • 矛盾の上書き
  • 論理矛盾の管理
  • 例外の管理

oracle.apps.scm.configurator.runtime.coreパッケージには、コンフィギュレータとの対話に使用できるクラスが含まれています。 詳細は、https://docs.oracle.com/にアクセスし、Oracle ConfiguratorのJava APIリファレンスを検索します。

Oracle Configurator Java APIリファレンスには、コンフィギュレータがサポートするオブジェクトのみが拡張ルールに含まれます。 一部のGroovyクラスには、コンフィギュレータがサポートしていないオブジェクトおよびインタフェースが含まれています。 コンフィギュレータがサポートしていないクラスまたはインタフェースがスクリプトで参照されている場合は、コードの検証時にエラーが発生します。 エラーは、正しくない参照を識別します。

Groovyでは、実行時に機能のデータ型を決定できるため、スクリプトで型を宣言する必要はありません。