あなたは基本を正しく持っています。両方のプログラムで一致するフィールド定義を提供する限り、それは問題ありません。ILE COBOL リンケージ・セクションでは、パラメーター名が参照するものの定義を追加する必要があります。PIC
orLIKE
句がありません。
ILE RPG プログラムでは、COBOL コードへの呼び出しのプロトタイプを定義する必要があります。プロトタイプのパラメーター定義は、
COBOLのパラメーターの形式と一致する必要があります。一方でパック、ゾーン、またはバイナリ整数を使用している場合は、もう一方のそのパラメーターにも同じものを使用する必要があります。
( http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Frzase%2Fsc092540419.htmを参照)
たとえば、RPG PROG1 では、一般的に次のようなものがあります。
D someID 7p 0
D someName 10a
D addInfo PR EXTPROG("PROG2")
D 7p 0
D 10a
callp addInfo (someID:someName);
// or omit the optional callp opcode
addInfo (someID:someName);
次に、COBOL PROG2 では次のようになります。
working storage section.
linkage section.
01 newid pic s9(7) packed-decimal.
01 newname pic x(10).
procedure division using newid, newname.
この時点での最も簡単なオプションは、両方を個別のプログラムとしてコンパイルすることです。しかし、ILE 技法を使用して、COBOL プロシージャーを最終的な RPG プログラム・オブジェクトに結合することもできます。しかし、それは別の機会に取っておきましょう。