Hinweise zu 'execute' mit CICS
Im Kontext von CICS wird die EGL-Anweisung execute üblicherweise verwendet, um eine native CICS-Anweisung EXEC mit dynamischen Elementen auszuführen. Lokale EGL-Variablen in demselben Programm können in der Anweisung bzw. Bezeichnungen innerhalb derselben Funktion referenziert werden. EGL generiert eine CICS-Anweisung EXEC mit dem bereitgestellten Text sowie den bereitgestellten aufgelösten Variablen- und Bezeichnungsnamen und bettet diese Informationen in das Anwendungsprogramm ein.
Syntax

- cicsStatement (CICS-Anweisung)
- Weitere Informationen zum zulässigen Inhalt dieses Anweisungstyps finden Sie im Referenzhandbuch für CICS-Anwendungsprogrammierer. Der Inhalt der CICS-Anweisung (cicsStatement) kann eine beliebige Kombination aus Text, Variablenverweisen oder Bezeichnungsverweisen umfassen. Sämtlicher Text wird so eingeschlossen, wie er bereitgestellt wird, ohne Übersetzung oder Wechsel zwischen Groß- und Kleinschreibung. Alle referenzierten Variablen müssen lokale EGL-Variablen in demselben EGL-Programm sein. Sie dürfen keine Variablen in anderen Programmen oder Bibliotheken referenzieren. Allen Variablenverweisen wird ein Doppelpunkt (:) vorangestellt, um anzugeben, dass der folgende Text als Variable gelten soll, die aufgelöst werden muss. Alle referenzierten Bezeichnungen müssen EGL-Bezeichnungen in derselben Funktion sein. Sie dürfen keine Bezeichnungen in anderen Funktionen referenzieren. Allen Bezeichnungsverweisen wird ein Prozentzeichen (%) vorangestellt, um anzugeben, dass der folgende Text als Bezeichnung gelten soll, die aufgelöst werden muss.
- Um den CICS-Antwortcode für die Anweisung abzurufen, sollte der Benutzer das Argument 'RESP(:variable)' als Teil der CICS-Anweisung codieren, da kein direkter Zugriff auf die CICS-Variablen 'EIBRESP' oder 'EIBRESP2' besteht. Andernfalls wird der Fehlercode in die referenzierte EGL-Variable geschrieben.
Es folgen einige Beispiele zur Anweisung '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