スクリプト内でのGroovyの使用

Groovyコードは「Groovyメンバー」ステップ・タイプを使用してスクリプトに組み込むことができます。Groovyコードの各スクリプトには、すべての「Groovyメンバー」ステップを連結して作成された単一のGroovyクラスがあります。

セキュリティのために、Groovyのスクリプトに使用できる製品およびサード・パーティのJavaクラスは制限されています。許可される基本クラスは、コンテキスト依存の「スクリプトのヒント」ゾーンの「Groovy Javadocの表示」リンクを介してGroovy Javadocビューアで表示できます。許可されるサード・パーティのクラスのリストは、「スクリプトのヒント」ゾーンの「サード・パーティのGroovy許可リストの表示」リンクから表示できます。

注意: このシステムでは、バックエンド処理のためにGroovyの使用をサポートしています。ユーザー・インタフェース用には意図していません。Groovyはビジネス・プロセス・アシスタント・スクリプトにも適用できません。

Groovyスクリプト・エンジン

Javaの中から起動されるスクリプトが、その全体をGroovyで書かれている場合は、スクリプト・エンジン・バージョンとしてGroovyを使用する必要があります。このタイプのスクリプトは、Javaで書かれたコードと類似の方法で処理されます。これにより、XML形式との間でのスクリプトの変換が不要になり、システム・オブジェクトに直接作用するコードを使用でき、結果的にパフォーマンスが向上します。

Groovyエンジン・バージョンをサポートするスクリプト・タイプは、次のとおりです。

プラグイン・スクリプト

プラグイン・スクリプトは、Groovy指向のステップ・タイプのみが含まれている場合にGroovyエンジンを使用するように構成できます。プラグイン・スポットAPIを定義する、自動的に生成されたスーパークラスが提供されます。内部的には、プラグインのエントリ・ポイントである起動メソッドの追加、注釈を使用するソフト・パラメータの定義など、GroovyコードはJavaベースのアルゴリズム・タイプのシステム規約に準拠する必要があります。

Groovyライブラリ・スクリプト

Groovyライブラリ・スクリプトは、他のスクリプト内からコールできる、Groovyで記述された共通ルーチンのグループを作成する機能を提供します。このタイプのスクリプトには、ライブラリで公開されているメソッドがリストされた、単一の「Groovyライブラリ・インタフェース」ステップ・タイプが含まれている必要があります。これらのメソッドをサポートするコードは、ライブラリ・スクリプト内の1つ以上の「Groovyメンバー」ステップ・タイプで定義されます。ライブラリに定義されているメソッドは、任意のタイプの引数および戻り値を受け入れます。このタイプのスクリプトは、デフォルトでGroovyエンジンを使用し、スクリプト・ステップ・タイプは使用できません。

Groovyライブラリからメソッドを起動する必要があるスクリプトでは、システムが提供するcreateLibraryScriptメソッドを使用して、ライブラリ・インタフェースをインスタンス化できます。インスタンス化されるクラスに.classというファイル名拡張子が含まれていることを確認してください。

スクリプト・エンジン内でのGroovyの起動

プラグイン・スクリプトまたはサービス・スクリプトが特定のスクリプト・エンジン・バージョンを使用するように構成されている場合は、そのスクリプトに通常のステップ・タイプと「Groovyメンバー」ステップ・タイプが混在している可能性があります。スクリプト・ステップ・タイプには、実行するプロセスを定義します。「Groovyメンバー」ステップには、スクリプト内の「データの編集」ステップ・タイプからinvokeGroovyコマンドを使用してコールできるコードが格納されています。このコマンドを使用してサポートされるのは、引数を受け取らずにvoidを返すGroovyメソッドのみです。詳細は、「データの編集」ステップの項を参照してください。

このオプションを使用するスクリプトには、移動コマンドや文字列評価、ビジネス・オブジェクト、ビジネス・サービスおよびサービス・スクリプトを起動するメソッドなど、共通のスクリプト処理をサポートするメソッドが含まれているスーパークラスがフレームワークで提供されます。サポートされているメソッドの詳細は、Groovy固有のJavadocを参照してください。

Groovyクラスのインポート

スクリプトで使用されるすべてのGroovyクラスは、「Groovyインポート」ステップ・タイプで明示的に宣言されている必要があります。スクリプトを保存するときに、スクリプト内で参照されているクラスが明示的に宣言されていないことが検出されると、警告が発行され、そのクラスのインポート文が自動的に追加されます。スクリプト作成者は、このインポートを調べて正しいクラスであることを確認する必要があります(同じ名前のクラスが2つの異なるパッケージに存在する場合)。

下位互換性

以前のリリースでは、明示的なインポートは不要であり、Groovyで使用可能なすべてのコール可能クラスを自動的に実行時にインポートするロジックがシステムにありました。既存のスクリプトで、そのインポートが明示的に宣言されていない場合は、今後もこれまでどおり、すべてのコール可能クラスが実行時にインポートされます。ただし、これは推奨される方法ではないため、このようなスクリプトを特定して更新することをお薦めします。

システムには、バッチ・プログラムF1-CAGVYが用意されており、正常にコンパイルするために自動インポート・ステップを必要としていたすべてのスクリプトがこれによって報告されます。このバッチ・プログラムは、Groovyのバージョンがアップグレードされるときに、Groovyでの変更が原因で発生する可能性のある、既存のスクリプトをコンパイルする際の問題を事前に検出するためにも役立ちます。実装では、このバッチ・プログラムを早めに実行して明示的なインポートが欠落しているスクリプトを特定および修正するとともに、Groovyのバージョン・アップグレードに備えて、報告された実装所有スクリプトをレビューすることをお薦めします。