リンケージ・オプション・パーツの callLink 要素の parmForm プロパティーは、
呼び出しのパラメーターのフォーマットを指定します。
parmForm プロパティーは、呼び出し側プログラムの生成に影響します。
CICS® 環境の COBOL プログラムでは、
このプロパティーは呼び出し先プログラムの生成にも影響します。
COBOL プログラムを生成する場合、
parmForm は以下の条件が両方とも真の場合に適用されます。
- pgmName プロパティーが、生成済みプログラムまたは
生成済みプログラムによって呼び出される CICS ベースのプログラムを参照している。
- type プロパティーが localCall または remoteCall である。
- type が localCall の場合、有効な parmForm 値 (後述) は CHANNEL、CICSOSLINK、COMMDATA、COMMPTR (デフォルト)、および OSLINK (z/OS® バッチのデフォルト)。
- type が remoteCall の場合、有効な parmForm 値は、CHANNEL、CICSOSLINK、COMMDATA
(デフォルト)、(Java™ コードから呼び出される COBOL プログラムを参照している場合) COMMPTR、および OSLINK。
Java プログラムを生成する場合、
parmForm は、次の状況で適用されます。
- pgmName プロパティーが、生成しているプログラムが呼び出す CICS ベースのプログラムを参照している。
- type プロパティーが、ejbCall または remoteCall である。いずれの場合も、有効な parmForm 値 (後述) は CHANNEL、COMMDATA (デフォルト) および COMMPTR です。
Java ラッパーを生成する場合、
parmForm は以下の場合に適用されます。
- pgmName プロパティーが、Java ラッパー経由で呼び出される生成済み COBOL
プログラムを参照している。
- type プロパティーが、ejbcall または remoteCall である。いずれの場合も、有効な parmForm 値 (後述) は CHANNEL、COMMDATA (デフォルト) または COMMPTR です。
次のリストから値を選択してください。
- CHANNEL
CHANNEL パラメーター・フォーマットの場合、コンテナーがチャネルで渡されます。チャネルは、CICS プログラム間でデータを受け渡すパラメーターのように機能する、一連のコンテナーです。
COMMAREA は、CHANNEL パラメーター・フォーマットでは渡されません。
EGL 生成プログラムがチャネルを呼び出し先プログラムに渡す場合、チャネルは呼び出し先プログラムと同じ名前を持ちます。
ただし、EGL 呼び出し先プログラムがチャネルを受け取るとき、プログラムは CICS API 呼び出しを使用して、渡されたチャネルの名前を検索します。
コンテナーの名前は EGL-PARM-1 から EGL-PARM-n であり、n の最大値は 30 です。
例えば、タイプ INT、レコード (33,000 バイト)、および EGL STRING の 3 つのパラメーターを渡す場合、下の表に示すように、チャネルには 3 つのコンテナーが含まれます。
表 1. コンテナーおよびパラメーターの例| コンテナー名 |
コンテナーの値 |
| EGL-PARM-1 |
INT を表す 4 バイト |
| EGL-PARM-2 |
レコードを表す 33,000 バイト |
| EGL-PARM-3 |
STRING へのポインターを表す 4 バイト (呼び出し先プログラムは EGL である必要がある) |
- CICSOSLINK
- 呼び出し先プログラムがデータへのポインターを予期しているという、標準の COBOL のパラメーター渡しの規則が有効であることを指定します。CICS EIB および COMMAREA が常に最初の 2 つの引数として渡され、それに続いてプログラム固有の引数が渡されます。
CICSOSLINK を使用するには、次の設定が必要です。
- type プロパティーが localCall または remoteCall である。
- linkType プロパティーが STATIC または DYNAMIC である。
- COMMDATA
- 呼び出し側がビジネス・データを、(データへのポインターを渡すのではなく) COMMAREA 内に格納することを指定します。
それぞれの引数値は、位置合わせを考慮せずに、先行する値に続けてバッファーに移されます。
type プロパティーが remoteCall または ejbCall の場合は、COMMDATA がデフォルト値になります。
- COMMPTR
- 呼び出し側が以下のように振る舞うことを指定します。
- 渡される引数ごとに 1 つのポインターが対応するように、一連の 4 バイトのポインターを COMMAREA 内に作成する。
- 最後のポインターの高位ビットを 1 に設定する。
type プロパティーの値が localCall の場合は、COMMPTR がデフォルト値になります。
- OSLINK
- 呼び出し先プログラムがデータへのポインターを予期しているという、標準の COBOL のパラメーター渡しの規則が有効であることを指定します。ただし、CICS EIB または COMMAREA を除きます。
OSLINK は、COBOL プログラムを生成する場合にのみ有効です。
OSLINK を使用するには、次の設定が必要です。
- type プロパティーが localCall または remoteCall である。
- linkType プロパティーが STATIC または DYNAMIC である。