Anwendungsgebiet: PROCEDURE
Kommandobeschreibung
Das Kommando EXECUTE-CMD übergibt das beim Operanden CMD=... angegebene Kommando zur Ausführung und schreibt die Kommandoausgaben (Meldungen, Ausgabeinformation) in eine anzugebende Variable. Es können unstrukturierte und strukturierte Ausgaben erzeugt werden, je nach Leistung des Kommandoservers. Auf Wunsch wird auch der Kommandoreturncode des ausgeführten Kommandos in Variablen abgelegt.
Die meisten SHOW-Kommandos liefern strukturierte Ausgaben. Die Ausgabestrukturen sind im Handbuch „Kommandos“ [3] bzw. im jeweiligen Produkthandbuch beschrieben.
Garantierte Meldungen können strukturiert in Variablen gelenkt werden.
Hinweis
Bei EXECUTE-CMD sollten nicht Kommandos wie LOAD-/START-EXECUTABLE-PROGRAM (bzw. LOAD-/START-PROGRAM) u.Ä. angegeben werden. Werden solche Kommandos doch angegeben, so werden alle Operanden von /EXECUTE-CMD ignoriert und die Fehlermeldung SDP0229 wird zurückgegeben. Die Kommandos werden dann ausgeführt wie außerhalb von EXECUTE-CMD.
AID-Kommandos sind mit EXECUTE-CMD nicht ausführbar.
Format
EXECUTE-CMD |
CMD = <c-string 0..1800 with-low> / <text 0..1800 with-low> ,TEXT-OUTPUT = *SYSOUT / *NONE / <composed-name 1..255>(...) <composed-name 1..255>(...) WRITE-MODE = *REPLACE / *EXTEND ,STRUCTURE-OUTPUT = *NONE / <composed-name 1..255>(...) <composed-name 1..255>(...) WRITE-MODE = *REPLACE / *EXTEND ,MSG-STRUCTURE-OUTPUT = *NONE / <composed-name 1..255>(...) <composed-name 1..255>(...) WRITE-MODE = *REPLACE / *EXTEND / ,RETURNCODE = *STD / *NONE / *VARIABLE(...) *VARIABLE(...) SUBCODE1 = *NONE / <composed-name 1..255> ,SUBCODE2 = *NONE / <composed-name 1..255> ,MAINCODE = *NONE / <composed-name 1..255> |
Operandenbeschreibung
CMD = <c-string 0..1800 with-low> /<text 0...1800 with-low>
Auszuführendes Kommando (eingeschlossen in runde Klammern, ohne Schrägstrich).
TEXT-OUTPUT =
Ausgabe als Textstring. Falls das auszuführende Kommando durch ein TU (Task Unprivileged)-Programm oder durch eine Prozedur implementiert worden ist, so ist es nicht möglich, die SYSOUT-Ausgaben zu ignorieren oder in eine Variable umzulenken.
TEXT-OUTPUT = *SYSOUT
Ausgabe nach SYSOUT
TEXT-OUTPUT = *NONE
Es soll keine unstrukturierte Ausgabe erfolgen.
TEXT-OUTPUT = <composed-name 1..255>(...)
Ausgabe in eine Listenvariable. Die Listenvariable muss deklariert sein mit MULTIPLE-ELEMENTS = *LIST im Kommando DECLARE-VARIABLE. Eine Ausgabezeile des SYSOUT-Layouts entspricht dann einem Listenelement. Das SYSOUT-Layout ist versionsabhängig und kann nicht garantiert werden.
WRITE-MODE = *REPLACE / *EXTEND
Gibt an, ob die Liste überschrieben oder erweitert wird.
Mit *REPLACE wird die Liste überschrieben.
STRUCTURE-OUTPUT =
Strukturierte Ausgabe mit Meldungen.
Wird STRUCTURE-OUTPUT für Kommandos spezifiziert, die diese Ausgaben nicht erbringen, wird keine Fehlermeldung zurückgeschickt. Ausnahmen sind die Kommandos SHOW-USER-STATUS und SHOW-SYSTEM-STATUS.
STRUCTURE-OUTPUT = *NONE
Eine strukturierte Ausgabe soll nicht erzeugt werden. Für das angegebene Kommando erfolgt auch keine strukturierte Ausgabe in einen S-Variablenstrom, unabhängig von der Zuweisung mit dem Kommando ASSIGN-STREAM.
STRUCTURE-OUTPUT = <composed-name 1..255>(...)
Name der Variablen, in welche die strukturierte Ausgabe erfolgen soll. Die Variable muss als Listenvariable deklariert sein (MULTIPLE-ELEMENTS = *LIST im Kommando DECLARE-VARIABLE).
WRITE-MODE = *REPLACE / *EXTEND
Gibt an, ob die Liste überschrieben oder erweitert wird.
Mit *REPLACE wird die Liste überschrieben.
MSG-STRUCTURE-OUTPUT =
Strukturierte Ausgabe der Meldungen.
MSG-STRUCTURE-OUTPUT = *NONE
Eine strukturierte Ausgabe soll nicht erzeugt werden. Für das angegebene Kommando erfolgt auch keine strukturierte Ausgabe in einen S-Variablenstrom, unabhängig von der Zuweisung mit dem Kommando ASSIGN-STREAM.
MSG-STRUCTURE-OUTPUT = <composed-name 1..255>(...)
Name der Variablen, in welche die strukturierte Ausgabe der Meldungen geschrieben wird. Die Variable muss als Listenvariable deklariert sein (MULTIPLE-ELEMENTS = *LIST im Kommando DECLARE-VARIABLE).
Näheres siehe Abschnitt „Strukturierte Ausgaben in S-Variablen“.
WRITE-MODE = *REPLACE / *EXTEND
Gibt an, ob die Liste überschrieben oder erweitert wird.
Mit *REPLACE wird die Liste überschrieben.
RETURNCODE =
Bei erfolgreicher Ausführung des EXECUTE-CMD legt der Operand fest, wie das Ergebnis (d.h. der Kommandoreturncode und die Spinoff-Anzeige) des ausgeführten Kommandos behandelt werden soll.
RETURNCODE = *STD
EXECUTE-CMD verwirft sein eigenes, erfolgreiches Ergebnis und liefert an den Aufrufer stattdessen das Ergebnis des ausgeführten Kommandos.
RETURNCODE = *NONE
EXECUTE-CMD liefert an den Aufrufer sein eigenes Ergebnis und verwirft das Ergebnis des ausgeführten Kommandos.
RETURNCODE = *VARIABLE(...)
EXECUTE-CMD liefert an den Aufrufer sein eigenes Ergebnis, speichert den Returncode des ausgeführten Kommandos in die angegebenen Variablen und verwirft dessen Spinoff-Anzeige.
SUBCODE1 = *NONE / <composed-name 1..255>
Bezeichnet eine Variable, in die der Subcode1 ausgegeben wird
(Subcode1 = Fehlerklasse).
Die Variable muss mit TYPE = *ANY oder TYPE = *INTEGER deklariert sein.
SUBCODE2 = *NONE / <composed-name 1..255>
Bezeichnet eine Variable, in die der Subcode2 ausgegeben wird
(Subcode2 = Zusatzinformation zu Subcode1).
Die Variable muss mit TYPE = *ANY oder TYPE = *INTEGER deklariert sein.
MAINCODE = *NONE / <composed-name 1..255>
Bezeichnet eine Variable, in die der Fehlerschlüssel ausgegeben wird
(Maincode = Fehlerschlüssel).
Die Variable muss mit TYPE = *ANY oder TYPE = *STRING deklariert sein.
Hinweis
Der Defaultwert von STRUCTURE-OUTPUT und MSG-STRUCTURE-OUTPUT ist jeweils *NONE. Das bedeutet, wenn diese Operanden in EXECUTE-CMD nicht explizit angegeben werden bzw. ihnen dieser Wert zugewiesen wird, werden keine Variablen nach SYSINF und/oder SYSMSG geschrieben. Das gilt auch, wenn diesen Strömen vor dem EXECUTE-CMD mit einem ASSIGN-STREAM-Kommando ein Ziel zugewiesen wurde, denn diese Zuweisung wird für die Dauer des EXECUTE-CMD-Kommandos mit „*NONE“ (d.h. mit einem *DUMMY-Wert) überschrieben.
Kommando-Returncode
Der Returncode hängt von der Einstellung beim Operanden RETURNCODE ab.
Bei RETURNCODE = *STD ist möglich:
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | CMD0202 | Syntaxfehler | |
3 | CMD2203 | Falsche Syntaxdatei | |
32 | CMD0221 | Systemfehler (interner Fehler) | |
64 | SDP0091 | Semantikfehler | |
130 | SDP0099 | Kein Adressraum mehr verfügbar | |
xx | xx | xxxxxxx | sonstige Returncodes des ausgeführten Kommandos |
Bei Returncode = *NONE / *VARIABLE(...) ist möglich:
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler (aber nur im EXECUTE-CMD) | |
1 | CMD0202 | Syntaxfehler | |
3 | CMD2203 | Falsche Syntaxdatei | |
32 | CMD0221 | Systemfehler (interner Fehler) | |
64 | SDP0091 | Semantikfehler | |
130 | SDP0099 | Kein Adressraum mehr verfügbar |