Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Ablage von Kommandoausgaben in Variablen

&pagelevel(4)&pagelevel

Um die Daten- und Meldungsausgaben eines Kommandos innerhalb einer Prozedur aufzufangen und weiter zu analysieren, kann z.B. die SYSOUT-Ausgabe in eine Datei oder eine Listenvariable umgeleitet und anschließend mit Stringzugriffsfunktionen bearbeitet werden. Dieses Verfahren ist jedoch umständlich und fehleranfällig. Mit dem Kommando EXECUTE-CMD können stattdessen die Textausgabe und der Returncode eines beliebigen Kommandos unmittelbar in Variablen übertragen werden. Zusätzlich lassen sich die Ausgaben bestimmter Kommandos auch in Form reiner Nutzdaten in Variablenstrukturen ablegen, sodass sie direkt einer Programmierung zugänglich sind. Das folgende Beispiel erstellt auf diese Weise eine Liste von Dateibezeichnungen, die in einer Schleife zur Versorgung des TRANSFER-FILE-Kommandos benutzt werden:

/DECL-PARAM MUSTER
/DECL-VAR DATLIST(TYPE=*STRUCT),MULT-ELEM=*LIST
/DECL-VAR DATEI(TYPE=*STRUCT)
/EXEC-CMD (SHOW-FILE-ATTR &MUSTER), -
/   TEXT-OUTPUT=*NONE,      "keine Ausgabe nach SYSOUT" -
/   STRUCT-OUTPUT=DATLIST,  "strukt. Ausgabe in Variable" -
/   RETURNCODE=*VAR(SUBCODE1=S1,     "== 0 wenn ok" -
/                   SUBCODE2=*NONE,  "nicht benoetigt" -
/                   MAINCODE=M)      "ggf. Fehlercode"
/IF (S1 > 0)
/  WRITE-TEXT 'Fehler &M'
/  EXIT-PROC ERROR=*YES(MAIN=&M)   "Fehler an Aufrufer weitergeben"
/END-IF
/FOR DATEI = *LIST(DATLIST)
/  TRANSFER-FILE TO,HOSTXYZ,(&(DATEI.F-NAME)),(...)
/END-FOR

Außerdem besteht die Möglichkeit, auch die während der Kommandoausführung ausgegebenen Meldungen in Variablenstrukturen aufzunehmen. Dort sind auch die Meldungsschlüssel sowie die variablen Einfügungen einzeln abgelegt, sodass sie ohne Analyse des eigentlichen Meldungstexts direkt weiterverarbeitet werden können.

Das Kommando EXECUTE-CMD ist auf "EXECUTE-CMD Kommando ausführen und strukturierte Ausgabe " ausführlich beschrieben. Die von SDF-P-Kommandos erzeugten Ausgabestrukturen sind im Abschnitt „Strukturierte Ausgaben in S-Variablen“ (Strukturierte Ausgaben in S-Variablen ), dargestellt; für andere Kommandos, die die strukturierte Ausgabe unterstützen, sei auf die zugehörigen Handbücher verwiesen.