CICS の execute に関する考慮事項
通常、CICS® のコンテキストでは、EGL execute ステートメントは 動的要素を持つネイティブ EXEC CICS ステートメントを実行するために使用されます。 このステートメントでは、同じプログラムにあるローカル EGL 変数や、同じ関数内に含まれるラベルが参照される場合があります。 EGL は、指定されたテキスト、解決された変数名、およびラベル名を含む EXEC CICS ステートメントを生成して、 それをアプリケーション・プログラムに組み込みます。
構文

- cicsStatement
- このタイプのステートメントの許容コンテンツについて詳しくは、 資料「CICS Application Programmer Reference」を参照してください。 cicsStatement のコンテンツには、テキスト、変数参照、またはラベル参照が任意の組み合わせで含まれる可能性があります。 テキストはいずれも変換 (大文字小文字変換など) されずにそのまま含まれます。 参照される変数はいずれも、同じ EGL プログラム内のローカル EGL 変数でなければなりません。 別のプログラムやライブラリーにある変数は参照できません。 すべての変数参照の前にコロン (:) が付いています。 これは、コロンの後のテキストが、解決が必要な変数であることを示します。 参照されるラベルはすべて、同じ関数内の EGL ラベルでなければなりません。 別の関数にあるラベルは参照できません。 すべてのラベル参照の前に % 記号 (%) が付いています。 これは、% 記号の後のテキストが、解決が必要なラベルであることを示します。
- ステートメントの CICS 応答コードを取得するには、CICS 変数の EIBRESP や EIBRESP2 に 直接はアクセスできないため、ユーザーが cicsStatement の一部として RESP(:variable) 引数をコーディングする必要があります。 そうしない場合、エラー・コードが参照対象の EGL 変数に書き込まれます。
execute ステートメントの例をいくつか以下に示します。
error int;
message char(80);
leng int;
function main()
execute #cics{WRITEQ TD QUEUE("CSML") FROM(:MESSAGE)
ENGTH(:LENG) RESP(:error)};
. . . . .
execute #cics{HANDLE CONDITION DUPREC(%Y)};
. . . . .
y:
processDuplicateRecord();
end