CALL...BY REFERENCE、CALL...BY VALUE、または CALL...BY CONTENT を使用することにより、 呼び出し先の ILE RPG プログラムまたはプロシージャーにデータを渡すことができます。 CALL...BY REFERENCE、CALL...BY VALUE、または CALL...BY CONTENT の使用の詳細については CALL...BY REFERENCE、BY VALUE、または BY CONTENT を使用したデータの受け渡しを参照してください。
CALL...BY REFERENCE を使用してデータを ILE RPG プログラムに渡すと、ILE RPG プログラムに受け入れられた引き数リストの中にデータ項目へのポインターが入れられます。 CALL...BY CONTENT を使用してデータを ILE RPG プログラムに渡すと、データ項目の値が一時ロケーションにコピーされ、コピーの一時ロケーションのアドレスを含むポインターは、ILE RPG プログラムに受け入れられた引き数リストに置かれます。 CALL...BY VALUE では、ILE RPG プログラムに受け入れられた引き数リストに、項目の値が入れられます。 CALL...BY VALUE は、ILE RPG プロシージャーを呼び出すのに使用できます。 しかし、ILE RPG プログラム・オブジェクトの呼び出しには使用できません。
ILE COBOL プログラムにおいて、ILE RPG プログラムまたはプロシージャーに渡したい引き数をデータ部に記述する方法は、 他のデータ項目をデータ部に記述するときの方法と同じです。 渡したい引き数の記述方法の詳細については プログラム間でのデータの受け渡しと共用を参照してください。
呼び出し先 ILE RPG プログラムにおいて、ILE COBOL プログラムから受け取るパラメーターは、PARM 操作を使用して記述します。 受け取る各パラメーターは、別個の PARM 操作として定義されます。 パラメーターの名前は結果フィールドに指定します。 演算項目 1 および演算項目 2 の指定はオプショナルであり、変数またはリテラルを示します。 演算項目 1 のフィールドの値は、呼び出し時に結果フィールド項目から移されます。 演算項目 2 のフィールドの値は、戻り時に結果フィールドに入れられます。
ILE RPG プログラムでパラメーターを定義するもう 1 つの方法は、それらをプロトタイプに指定することです。 各パラメーターごとに、別個の定義仕様で定義されます。 BY REFERENCE で渡されるパラメーターでは、特別なキーワードは必要ありません。 BY VALUE により渡されるパラメーターでは、VALUE キーワードが使用されます。 ILE RPG プログラムに引き数を記述する方法については、「WebSphere Development Studio: ILE RPG プログラマーの手引き」を参照してください。
ILE RPG と ILE COBOL のデータ・タイプは異なります。 ILE RPG で作成されたプログラムと ILE COBOL で作成されたプログラムとの間でデータを渡したい場合には、 このデータ・タイプの違いに注意する必要があります。 ILE RPG と ILE COBOL のデータ・タイプによっては、相手の言語に直接対応するものがない場合があります。
表 19 に ILE COBOL データ・タイプと ILE RPG データ・タイプの互換性を示します。
ILE COBOL | ILE RPG の I 仕様書、 D 仕様書、または C 仕様書 | 長さ | 説明 |
---|---|---|---|
PIC X(n). | データ・タイプ欄がブランクまたは A、長さ欄が n、小数点以下桁数欄がブランク | n | n=1 〜 32,767 の文字フィールド。 |
PIC 1 INDIC .. | *INxxxx | 1 | 標識。 |
PIC S9(n) DISPLAY | データ・タイプ欄が S、長さ欄が n、小数点以下桁数欄が 0 | n | ゾーン 10 進数。 |
PIC S9(n-p)V9(p) COMP-3 | データ・タイプ欄が P、長さ欄が n、小数点以下桁数欄が p | n/2 + 1 | パック 10 進数。 |
PIC S9(n-p)V9(p) PACKED-DECIMAL. | データ・タイプ欄が P、長さ欄が n、小数点以下桁数欄が p | n/2 + 1 | パック 10 進数。 |
サポートなし。 | データ・タイプ欄が I、長さ欄が 3、小数点以下桁数欄が 0 | 1 | -128〜127 の 1 バイト符号付き整数。 |
サポートなし。 | データ・タイプ欄が U、長さ欄が 3、小数点以下桁数欄が 0 | 1 | 0〜255 の 1 バイト符号なし整数。 |
PIC S9(4) COMP-4. | データ・タイプ欄が B、長さ欄が 4、小数点以下桁数欄が 0 | 2 | -9999〜+9999 の 2 バイト符号付き整数。 |
PIC S9(4) BINARY. | データ・タイプ欄が B、長さ欄が 4、小数点以下桁数欄が 0 | 2 | -9999〜+9999 の 2 バイト符号付き整数。 |
PIC S9(4) BINARY. *NOSTDTRUNC オプション | データ・タイプ欄が I、長さ欄が 5、小数点以下桁数欄が 0 | 2 | -32768〜32767 の 2 バイト符号付き整数。 |
サポートなし。 | データ・タイプ欄が U、長さ欄が 5、小数点以下桁数欄が 0 | 2 | 0〜65535 の 2 バイト符号なし整数。 |
PIC S9(9) COMP-4. | データ・タイプ欄が B、長さ欄が 9、小数点以下桁数欄が 0 | 4 | -999999999〜+999999999 の 4 バイト符号付き整数。 |
PIC S9(9) BINARY. | データ・タイプ欄が B、長さ欄が 9、小数点以下桁数欄が 0 | 4 | -999999999〜+999999999 の 4 バイト符号付き整数。 |
PIC S9(9) BINARY. *NOSTDTRUNC オプション | データ・タイプ欄が I、長さ欄が 10、小数点以下桁数欄が 0 | 4 | -2147483648〜2147483647 の 4 バイト符号付き整数。 |
サポートなし。 | データ・タイプ欄が U、長さ欄が 10、小数点以下桁数欄が 0 | 4 | 0〜4294967295 の 4 バイト符号なし整数。 |
PIC S9(18) COMP-4. | データ・タイプ欄が I、長さ欄が 20、小数点以下桁数欄が 0 | 8 | -9223372036854775808 〜 9223372036854775807 の 8 バイト符号付き整数。 |
PIC S9(18) BINARY. | データ・タイプ欄が I、長さ欄が 20、小数点以下桁数欄が 0 | 8 | -9223372036854775808 〜 9223372036854775807 の 8 バイト符号付き整数。 |
サポートなし。 | データ・タイプ欄が U、長さ欄が 20、小数点以下桁数欄が 0 | 8 | 0〜18446744073709551615 の 8 バイト符号なし整数。 |
USAGE IS COMP-1 | データ・タイプ欄が F、長さ欄が 4 | 4 | 4 バイトの内部浮動小数点フィールド。 |
USAGE IS COMP-2 | データ・タイプ欄が F、長さ欄が 8 | 8 | 8 バイトの内部浮動小数点フィールド。 |
05 VL-FIELD. 10 i PIC S9(4) COMP-4. 10 data PIC X(n). |
データ・タイプ欄が A、長さ欄が n。 キーワードは VARYING。 | n+2 | 可変長フィールド (i は指定した長さ、n は最大長)。 |
05 n PIC 9(9) COMP-4. 05 x redefines n PIC X(4). |
データ・タイプ欄が U、長さ欄が 4。 文字配列によってオーバーレイされたデータ構造内の符号のないフィールドへの移動を操作し、各バイトに対してビット操作を使用するため。 | 4 | ビット・フィールドは 16 進数リテラルを使用して操作可能。 |
01 record 05 field1... 05 field2... |
データ構造 | n | 構造体。 構造体の内容を変更する場合、渡す構造は、構造体を指すポインターとして渡すことが必要。 |
USAGE IS POINTER | データ・タイプ欄が * | 16 | ポインター。 |
PROCEDURE-POINTER | データ・タイプ欄が *、キーワードが PROCPTR | 16 | プロシージャーを指す 16 バイトのポインター。 |
USAGE IS INDEX | データ・タイプ欄が I、長さ欄が 10、小数点以下桁数欄が 0 | 4 | 4 バイトの整数。 |
REDEFINES | データ構造サブフィールド | n | 共用体のエレメント。 |
OCCURS | キーワード OCCURS またはキーワード DIM | n*(data_type の長さ) | 配列。 |
FORMAT DATE | データ・タイプ欄が D | n | 日付データ・タイプ。 |
FORMAT TIME | データ・タイプ欄が T | n | 時刻データ・タイプ。 |
FORMAT TIMESTAMP | データ・タイプ欄が Z | n | タイム・スタンプ・データ・タイプ。 |
PIC G(n) | データ・タイプ欄が G | n*2 | グラフィック (2 バイト) データ・タイプ。 |
サポートなし。 | データ・タイプ欄が C | n*2 | UCS-2 (汎用文字セット) データ・タイプ。 |
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.