Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

EXECUTE-CMD Kommando ausführen und strukturierte Ausgabe

&pagelevel(4)&pagelevel

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)SC1MaincodeBedeutung

0CMD0001Ohne Fehler

1CMD0202Syntaxfehler

3CMD2203Falsche Syntaxdatei

32CMD0221Systemfehler (interner Fehler)

64SDP0091Semantikfehler

130SDP0099Kein Adressraum mehr verfügbar
xxxxxxxxxxxsonstige Returncodes des ausgeführten Kommandos

Bei Returncode = *NONE / *VARIABLE(...) ist möglich:

(SC2)SC1MaincodeBedeutung

0CMD0001Ohne Fehler (aber nur im EXECUTE-CMD)

1CMD0202Syntaxfehler

3CMD2203Falsche Syntaxdatei

32CMD0221Systemfehler (interner Fehler)

64SDP0091Semantikfehler

130SDP0099Kein Adressraum mehr verfügbar