Java から RPG プログラムまたはプロシージャーを呼び出す場合には、 RPG プログラムまたはプロシージャーのパラメーターを記述したプログラム呼び出しマークアップ言語 (PCML) ソース・ファイルを使用することができます。 Java アプリケーションは、 PCML ソース・ファイルの参照を持つ ProgramCallDocument オブジェクトを作成することで PCML を使用することができます。
INFOSTMF コンパイラー・パラメーターと一緒に PGMINFO(*PCML) コンパイラー・パラメーターを指定して、 生成された PCML を受け取る IFS 出力ファイルの名前を指定すると、 ILE RPG コンパイラーは、ILE RPG プログラムまたはモジュールの PCML ソースを生成します。 CRTBNDRPG の場合、 PCML は *ENTRY PLIST つまりメイン・プロシージャーの「プロシージャー・インターフェース」の内容に基づいて生成されます。 CRTRPGMOD の場合も、 PCML はエクスポート・サブプロシージャー (Java 固有のメソッドは除く) の「プロシージャー・インターフェース」に基づいて生成されます。
CRTRPGMOD を使用し、サービス・プログラムを作成する場合は、 ProgramCallDocument クラスの setPath(String) メソッドを使用して、 Java コードでサービス・プログラムを指定します。 次に、例を示します。
AS400 as400; ProgramCallDocument pcd; String path = "/QSYS.LIB/MYLIB.LIB/MYSRVPGM.SRVPGM"; as400 = new AS400 (); pcd = new ProgramCallDocument (as400, "myModule"); pcd.setPath ("MYFUNCTION", path); pcd.setValue ("MYFUNCTION.PARM1", "abc"); rc = pcd.callProgram("MYFUNCTION");
PCML では、パラメーターおよび戻り値の型について、次の制約事項が適用されます。
上記制約条件のいずれかに違反するプログラムまたはモジュールで PCML を生成すると、 コンパイルは失敗します。 PCML は生成されますが、コメントとしてエラー・メッセージが含まれます。 例えば、パラメーターとして Date フィールドを使用すると、 そのパラメーターに対する PCML は次のようになります。
<data name="DATE" type=" " length="10" usage="input" /> <!-- Error: unsupported data type -->
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.