linkageKey ステートメントのプロパティーはリンケージ・オプション・パーツ内の要素を参照します。要素は、EGL 生成のコードでの呼び出しまたは移動の実装方法を示します。
以下に、
linkageKey プロパティーが含まれる
call ステートメントの例を示します。
call nextProgram (myVar) { linkageKey="CICS3" };
呼び出しについては、割り当てられた値は、callLink 要素内の pgm 属性を参照します。移動については、割り当てられた値は、transferToProgram または transferToTransaction 要素内の toPgm 属性を参照します。
linkageKey プロパティーのデフォルト値は、呼び出し先プログラムの名前です。ただし、以下の例のように、コーディングされたステートメントでプログラム名を直接指定する場合に限ります。
call "PROG3" (myVar);
以下の両方の事例が有効になっている場合のみ、
linkageKey プロパティーが必要になります。
- 呼び出しまたは移動実装のデフォルト値が適切ではない場合。
- EGL が、呼び出しまたは移動に適用されるリンケージ・パーツ要素を識別できない場合。これは、以下の 2 つの理由のいずれかの場合に発生することがあります。
- プログラムの実行時の名前を引用符で囲んで指定し、この実行時名がプログラムのパーツ名と同じでない場合。
これは、呼び出し先プログラムに別名があることや、またロング・ネームをサポートしていない実行時環境でパーツ名が切り捨てられることが原因である可能性があります。
- または、プログラム名を変数で指定した場合。この場合は、値が実行時まで認識されません。このトピックの最初の例では、プログラム名は変数 nextProgram 内に入っています。
複数の
call ステートメントまたは
transfer ステートメントをコーディングする場合は、以下の方法で同じリンケージ・パーツ要素を参照できます。
- linkageKey プロパティーに同じ値を指定します。例えば、いくつかの呼び出しで「CICS3」を使用します。
- または、異なるが関連する値を linkageKey プロパティーに指定します。
この場合は、callLink 要素の pgm 属性の以下の例のように、異なる値 (例えば、「CICS3」や「CICS30」) が、ワイルドカード文字が含まれる単一の属性を参照しています。
pgm="CICS3*"
属性値におけるワイルドカードの詳細については、『リンケージ・オプション・パーツの概要』を参照してください。