PCML の使用による Java からの RPG プログラムの呼び出し
Java™ から RPG プログラムまたはプロシージャーを呼び出す場合には、RPG プログラムまたはプロシージャーのパラメーターを記述したプログラム呼び出しマークアップ言語 (PCML) ソース・ファイルを使用することができます。Java アプリケーションは、PCML ソース・ファイルの参照を持つ ProgramCallDocument オブジェクトを作成することで PCML を使用することができます。
ILE RPG コンパイラーは、 コマンドまたは制御仕様書で PGMINFO(*PCML) コンパイラー・パラメーターを指定する場合、 ILE RPG プログラムまたはモジュール用に PCML 情報を生成します。コマンドで PGMINFO パラメーターの Location 部分に *STMF または *ALL を指定する場合、 PCML 情報をストリーム・ファイルに生成することができます。 INFOSTMF コマンド・パラメーターでストリーム・ファイルの名前を指定します。コマンドで PGMINFO パラメーターの Location 部分に *MODULE または *ALL を指定する場合、 または制御仕様書で PGMINFO キーワードを指定する場合、 PCML 情報をモジュールに直接生成できます。この情報は、後で QBNRPII API を使用して取り出すことができます。
CRTBNDRPG の場合、PCML は *ENTRY PLIST つまりメイン・プロシージャーの「プロシージャー・インターフェース」の内容に基づいて生成されます。CRTRPGMOD の場合も、PCML はエクスポート・サブプロシージャー (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 での大/小文字混合名の獲得
CTL-OPT PGMINFO(*DCLCASE) NOMAIN;
DCL-PROC myFunction export;
DCL-PI *N;
parm1 CHAR(10);
END-PI;
END-PROC;
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");
