Anwendungsgebiet: PROCEDURE
Kommandobeschreibung
Ausgabemedium: SYSOUT / SYSLST / Datei / Listenvariable / Bibliothekselement
Ausgabeform:
Der Inhalt von Variablen mit dem Datentyp
INTEGER
wird als Zeichenfolge der Zeichen 0-9 ausgegeben, ggf. mit vorangestelltem Minuszeichen.Der Inhalt von Variablen mit dem Datentyp
BOOLEAN
wird als ZeichenketteFALSE
oderTRUE
ausgegeben.
Die Reihenfolge, in der die Inhalte von Variablenelementen ausgegeben werden, entspricht bei zusammengesetzten Variablen vom Typ STRUKTUR
der Reihenfolge der Elementdeklarationen, bei zusammengesetzten Variablen vom Typ ARRAY
der numerischen Folge der Arrayindizes. Die Ausgabe beginnt für jede Variable jeweils in einer neuen Zeile.
Format
SHOW-VARIABLE |
VARIABLE-NAME = *ALL / *LIST(...) / list-poss(2000): <composed-name 1..255> /<structured-name 1..20 with-wild(40)> *LIST(...) LIST-NAME = <composed-name 1..255> ,FROM-INDEX = *FIRST / *LAST / <integer 1..2147483647> ,NUMBER-OF-ELEMENTS = 1 / *REST / <integer 1..2147483647> ,SELECT = *BY-ATTRIBUTES(...) *BY-ATTRIBUTES(...) SCOPE = *VISIBLE / *PROCEDURE / *CURRENT / *CURRENT-PARAMETERS / *TASK-VISIBLE / *TASK-ALL / *CALLING-PROCEDURES ,INITIALIZATION = *YES / *ANY ,INFORMATION = *PARAMETERS(...) *PARAMETERS(...) VALUE = *WITHOUT-QUOTES / *C-LITERAL / *X-LITERAL / *NONE ,NAME = *FULL-NAME (...) / *ELEMENT-NAME (...) / *NONE *FULL-NAME(...) LIST-INDEX-NUMBER = *NO / *YES *ELEMENT-NAME(..) LIST-INDEX-NUMBER = *NO / *YES ,OUTPUT = *SYSOUT / *SYSLST / <filename 1..54 without-gen-vers>(...) / *VARIABLE(...) / *LIBRARY-ELEMENT(...) <filename 1..54 without-gen-vers>(...) WRITE-MODE = *REPLACE / *EXTEND *VARIABLE(...) VARIABLE-NAME = <composed-name 1..20> ,WRITE-MODE = *REPLACE / *EXTEND *LIBRARY-ELEMENT(...) LIBRARY = <filename 1..54 without-vers> ,ELEMENT = <composed-name 1..64 with-underscore>(...) <composed-name 1..64 with-underscore>(...) VERSION = *HIGHEST-EXISTING / *UPPER-LIMIT / <composed-name 1..24 with-underscore> ,TYPE = S / <alphanum-name 1..8> ,WRITE-MODE = *REPLACE / *EXTEND |
Operandenbeschreibung
VARIABLE-NAME =
Bezeichnet die auszugebenden Variablen.
VARIABLE-NAME = *ALL
Alle Variablen mit dem unter SCOPE angegebenen Geltungsbereich werden in lexikalischer Reihenfolge ihrer Variablennamen ausgegeben. Elemente von Strukturen werden in der Reihenfolge ihrer Deklaration, Arrayelemente in numerischer Reihenfolge ihrer Arrayindizes ausgegeben.
VARIABLE-NAME = *LIST(...)
Es sollen die Elemente einer Listenvariablen ausgegeben werden.
LIST-NAME = <composed-name 1..255>
Name der Listenvariable.
FROM-INDEX = *FIRST / *LAST / <integer 1..2147483647>
Index des Elementes der Listenvariablen, mit dem die Ausgabe beginnen soll. *FIRST: Die Ausgabe beginnt mit dem ersten Element der Liste; Voreinstellung.
Die Angabe *LAST gibt genau das letzte Element der Liste aus. Der Operand NUMBER-OF-ELEMENTS wird in diesem Fall ignoriert.
NUMBER-OF-ELEMENTS = 1 / *REST / <integer 1..2147483647>
Anzahl der Listenelemente, die ausgegeben werden sollen. Voreinstellung: Ein Element wird ausgegeben.
Die Angabe *REST gibt alle Elemente vom angegebenen Startelement (Operand FROM-INDEX) bis zum letzten Element der Liste aus.
VARIABLE-NAME = list-poss(2000): <composed-name 1..255>
Namen der auszugebenden Variablen.
Diese werden in der angegebenen Reihenfolge ausgegeben.
VARIABLE-NAME = <structured-name 1..20 with-wild(40)>
Die Variablen, deren Namen das Suchmuster erfüllen, werden in lexikalischer Reihenfolge ihrer Namen ausgegeben.
SELECT = *BY-ATTRIBUTES(...)
Bestimmt die auszugebenden Variablen näher.
SCOPE =
Bezeichnet den Geltungsbereich der auszugebenden Variablen.
SCOPE = *VISIBLE
Gibt alle sichtbaren Variablen aus.
Eine Variable ist sichtbar, wenn sie nicht von einer Deklaration in einer Include-Prozedur überdeckt ist.
SCOPE = *PROCEDURE
Gibt alle Variablen aus, auch wenn sie von Deklarationen in einer Include-Prozedur überdeckt sind.
SCOPE = *CURRENT
Gibt die aktuellen Variablen aus: innerhalb einer Call-Prozedur die Variablen der Call-Prozedur; innerhalb einer Include-Prozedur die Variablen der Include-Prozedur.
SCOPE = *CURRENT-PARAMETERS
Gibt die aktuellen Prozedurparameter aus: innerhalb einer Call-Prozedur die Prozedurparameter der Call-Prozedur; innerhalb einer Include-Prozedur die Prozedurparameter der Include-Prozedur.
SCOPE = *TASK-ALL
Gibt alle taskglobalen Variablen aus.
SCOPE = *TASK-VISIBLE
Gibt die importierten taskglobalen Variablen aus bzw. die taskglobalen Variablen, die in der Prozedur deklariert wurden.
SCOPE = *CALLING-PROCEDURE
Gibt alle Variablen des Geltungsbereichs der aufrufenden Prozedur aus, die mit IMPORT-ALLOWED = *YES deklariert wurden. Dieser Geltungsbereich besteht bei Vordergrund-Prozeduren aus allen aufrufenden Prozeduren ab der Dialogebene, bei Hintergrund-Prozeduren aus allen aufrufenden Prozeduren ab der ersten Prozedur.
INITIALIZATION =
Bezeichnet, ob nicht-initialisierte Variablen ausgegeben werden sollen oder nicht.
INITIALIZATION = *YES
Es werden nur initialisierte Variablen ausgegeben.
INITIALIZATION = *ANY
Es werden alle (egal ob initialisierte oder nicht-initialisierte) Variablen ausgegeben.
INFORMATION = *PARAMETERS(...)
Bezeichnet die Informationen, die ausgegeben werden.
VALUE =
Gibt an, ob der Wert der Variablen ausgegeben werden soll und in welcher Form.
VALUE = *WITHOUT-QUOTES
Gibt Variablen mit dem Datentyp STRING
ohne Hochkomma aus.
VALUE = *C-LITERAL
Gibt Variablen mit dem Datentyp STRING
als C-Literal aus. Falls nicht initialisiert, wird der String '*NO-INIT' ausgegeben.
VALUE = *X-LITERAL
Gibt Variablen mit dem Datentyp STRING
als X-Literal aus. Falls nicht initialisiert, wird der String '*NO-INIT' ausgegeben.
VALUE = *NONE
Der Wert der Variablen wird nicht ausgegeben, sondern nur der Name (siehe Operand NAME).
NAME =
Bezeichnet in welcher Form der Name der Variablen ausgegeben wird.
NAME = *FULL-NAME(...)
Gibt den vollen Variablennamen aus.
LIST-INDEX-NUMBER = *NO / *YES
Es kann angegeben werden, ob bei Listenlementen statt (*LIST) die Elementnummer an den Namen angehängt wird
LIST-INDEX-NUMBER = *NO | |
Variablenname(*LIST) = <inhalt> | für das erste Element |
LIST-INDEX-NUMBER = *YES | |
Variablenname#1 = <inhalt> | für das erste Element |
NAME = *ELEMENT-NAME(...)
Gibt die Elementnamen der Variablen aus. (Auch bei Variablen vom Datentyp STRUCTURE
.)
LIST-INDEX-NUMBER = *NO / *YES
Es kann angegeben werden, ob bei Listenlementen die Ausgabe mit (*LIST) oder der Elementnummer beginnt.
LIST-INDEX-NUMBER = *NO | |
(*LIST) = <inhalt> | für das erste Element |
LIST-INDEX-NUMBER = *YES | |
#1 = <inhalt> | für das erste Element |
Der Name der Variablen wird nicht ausgegeben.
OUTPUT =
Bezeichnet das Ausgabemedium.
OUTPUT = *SYSOUT
Ausgabe nach SYSOUT.
OUTPUT = *SYSLST
Ausgabe nach SYSLST. (Jede Datenzeile beginnt mit einem „'BLANK'
“, um eine korrekte Druckausgabe zu ermöglichen.)
OUTPUT = <filename 1..54 without-gen-vers>(...)
Ausgabe in die angegebene Datei, die eine SAM-Datei sein muss.
WRITE-MODE = *REPLACE
Der bisherige Inhalt der Datei soll überschrieben werden.
WRITE-MODE = *EXTEND
Die Ausgabe soll an den bisherigen Inhalt angehängt werden.
OUTPUT = *VARIABLE(...)
Ausgabe in eine Listenvariable.
VARIABLE-NAME = <structured-name 1..20>
Name der Listenvariablen.
WRITE-MODE = *REPLACE
Der bisherige Inhalt der Listenvariablen soll überschrieben werden.
WRITE-MODE = *EXTEND
Die Listenvariable soll erweitert werden, das heißt, die Ausgabe soll an den bisherigen Inhalt angehängt werden.
OUTPUT = *LIBRARY-ELEMENT(...)
Ausgabe in das Element einer PLAM-Bibliothek.
LIBRARY = <filename 1..54 without-vers>
Name der PLAM-Bibliothek.
ELEMENT = <composed-name 1..64 with-underscore>(...)
Name des Elements.
VERSION =
Bezeichnet die Version des Elements.
VERSION = *HIGHEST-EXISTING
Wählt die höchste existierende Version.
VERSION = *UPPER-LIMIT
Wählt die höchste mögliche Version.
VERSION = <composed-name 1..24 with-underscore>
Wählt die angegebene Version.
TYPE = S / alphanum-name 1..8
Bezeichnet den Elementtyp.
WRITE-MODE = *REPLACE
Der bisherige Inhalt des Elements soll überschrieben werden.
WRITE-MODE = *EXTEND
Das Element soll erweitert werden, d.h. die Ausgabe soll an den bisherigen Inhalt angehängt werden.
Kommando-Returncode
Es ist möglich, dass ein Teil des Kommandos schon abgearbeitet und ausgeführt wurde, bevor der Fehler auftrat. In diesem Fall ist das Ergebnis des Kommandos nicht garantiert.
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | 0 | CMD0001 | Warnung; keine Variable gefunden |
1 | CMD0202 | Syntaxfehler | |
3 | CMD2203 | Falsche Syntaxdatei | |
32 | CMD0221 | Systemfehler (interner Fehler) | |
64 | SDP0091 | Semantikfehler garantierte Meldung: SDP1008 | |
130 | SDP0099 | Kein Adressraum mehr verfügbar |
Beispiel
In Prozedur „Proz1“ wird folgende Variable deklariert:
/DECLARE-VARIABLE VARIABLE-NAME=WERT(TYPE=*INTEGER,INITIAL-VALUE=122),- /SCOPE=*PROCEDURE(IMPORT-ALLOWED=*YES) /CALL-PROCEDURE Proz2
In Prozedur „Proz2“ ist Folgendes geschrieben:
/SHOW-VARIABLE VARIABLE-NAME=*ALL,SELECT=*BY-ATTRIBUTES- /(SCOPE=*CALLING-PROCEDURES) A=122
Beschreibung der Ausgabeformate
Abhängig von den Angaben bei INFORMATION werden unterschiedliche Ausgabeformate erzeugt. Die Ausgabe entspricht nicht einer Folge von SET-VARIABLE-Kommandos.
Beispiel
/DECLARE-VARIABLE NAME(INIT-VALUE = 'MUELLER') /DECLARE-VARIABLE ALTER(TYPE = *INTEGER, INIT-VALUE = 22) /DECLARE-VARIABLE SPRACHEN,MULTIPLE-ELEMENTS = *LIST /SPRACHEN = 'DEUTSCH', WRITE-MODE = *EXTEND /SPRACHEN = 'ENGLISCH', WRITE-MODE = *EXTEND /DECLARE-VARIABLE NOTEN(TYPE = *STRUCTURE(*BY-SYSCMD)) /BEGIN-STRUCTURE /DECLARE-ELEMENT DEUTSCH(TYPE = *INTEGER, INIT-VALUE = 2) /DECLARE-ELEMENT ENGLISCH(TYPE =*INTEGER) /END-STRUCTURE /DECLARE-VARIABLE DOLMETSCHER(TYPE = *BOOLEAN,INIT-VALUE = TRUE)
1. Ausgabe mit SELECT = *BY-ATTRIBUTES(INITIALIZATION = *YES)
/SHOW-VARIABLE VARIABLE-NAME=*ALL, SELECT=*BY-ATTRIBUTES - (INITIALIZATION = *YES)
Ausgabe
ALTER = 22 DOLMETSCHER= TRUE NAME = MUELLER NOTEN.DEUTSCH = 2 SPRACHEN(*LIST)=DEUTSCH SPRACHEN(*LIST)=ENGLISCH *END-OF-CMD
Nur initialisierte Variablen werden ausgegeben.
2. Ausgabe mit SELECT = *BY-ATTRIBUTES(INITIALIZATION = *ANY)
/SHOW-VARIABLE VARIABLE-NAME=*ALL, SELECT=*BY-ATTRIBUTES - /(INITIALIZATION = *ANY)
Ausgabe
ALTER = 22 DOLMETSCHER= TRUE NAME = MUELLER NOTEN.DEUTSCH = 2 NOTEN.ENGLISCH = *NO-INIT SPRACHEN(*LIST)=DEUTSCH SPRACHEN(*LIST)=ENGLISCH *END-OF-CMD
Alle Variablen, ob initialisiert oder nicht, werden ausgegeben.
3. Ausgabe mit INFORMATION = *PARAMETERS(VALUE = *WITHOUT-QUOTES)
/SHOW-VARIABLE VARIABLE-NAME=*ALL, INFORMATION = *PARAMETERS - /(VALUE = *WITHOUT-QUOTES)
Ausgabe
ALTER = 22 DOLMETSCHER= TRUE NAME = MUELLER NOTEN.DEUTSCH = 2 SPRACHEN(*LIST)=DEUTSCH SPRACHEN(*LIST)=ENGLISCH *END-OF-CMD
String-Variable werden ohne Anführungszeichen ausgegeben.
4. Ausgabe mit INFORMATION = *PARAMETERS(VALUE = *C-LITERAL)
/SHOW-VARIABLE VARIABLE-NAME=*ALL, INFORMATION = *PARAMETERS - /(VALUE = *C-LITERAL)
Ausgabe
ALTER = 22 DOLMETSCHER = TRUE NAME = 'MUELLER' NOTEN.DEUTSCH = 2 SPRACHEN(*LIST) = 'DEUTSCH' SPRACHEN(*LIST) = 'ENGLISCH' *END-OF-CMD
String-Variable werden als C-Literale ausgegeben.
5. Ausgabe mit INFORMATION = *PARAMETERS(VALUE = *X-LITERAL)
/SHOW-VARIABLE VARIABLE-NAME=*ALL, INFORMATION = *PARAMETERS - /(VALUE = *X-LITERAL)
Ausgabe
ALTER = 22 DOLMETSCHER = TRUE NAME = X'D4E4C5D3D3C5D9' NOTEN.DEUTSCH = 2 SPRACHEN(*LIST) = X'C4C5E4E3E2C3C8' SPRACHEN(*LIST) = X'C5D5C7D3C9E2C3C8' *END-OF-CMD
String-Variable werden als X-Literale ausgegeben.
6. Ausgabe mit INFORMATION = *PARAMETERS(VALUE = *NONE)
/SHOW-VARIABLE VARIABLE-NAME=*ALL, INFORMATION = *PARAMETERS - /(VALUE = *NONE)
Ausgabe
ALTER DOLMETSCHER NAME NOTEN.DEUTSCH SPRACHEN(*LIST) SPRACHEN(*LIST) *END-OF-CMD
Es werden nur Variablennamen ausgegeben.
7. Ausgabe mit INFORMATION = *PARAMETERS(NAME=*FULL-NAME)
/SHOW-VARIABLE VARIABLE-NAME=NOTEN, INFORMATION = *PARAMETERS - /(NAME=*FULL-NAME)
Ausgabe
NOTEN.DEUTSCH = 2
Der vollständige Elementname wird ausgegeben.
8. Ausgabe mit INFORMATION = *PARAMETERS(NAME=*ELEMENT-NAME)
/SHOW-VARIABLE VARIABLE-NAME=NOTEN, INFORMATION = *PARAMETERS - /(NAME=*ELEMENT-NAME)
Ausgabe
DEUTSCH = 2
Nur der Element-Teilname wird ausgegeben.
9. Ausgabe mit INFORMATION = *PARAMETERS(NAME=*NONE)
/SHOW-VARIABLE VARIABLE-NAME=NOTEN, INFORMATION = *PARAMETERS - /(NAME=*NONE)
Ausgabe
2
Nur Variablenwerte werden ausgegeben
Weitere Beispiele
Eingabe
/DECLARE-VARIABLE STRASSE('XYZ WEG', *STRING) /DECLARE-VARIABLE NUMMER(12, *INTEGER) /DECLARE-VARIABLE NAME('HUGO') /DECLARE-VARIABLE VERHEIRATET(TRUE, *BOOLEAN) /SHOW-VARIABLE *ALL
Ausgabe
NAME = HUGO NUMMER = 12 STRASSE = XYZ WEG VERHEIRATET = TRUE *END-OF-CMD
Eingabe
/SHOW-VARIABLE (NAME, STRASSE, NUMMER), - / INFO=*PAR(VALUE=*C-LITERAL,NAME= *FULL-NAME)
Ausgabe
NAME = 'HUGO' STRASSE = 'XYZ WEG' NUMMER = 12
Eingabe
/DECLARE-VARIABLE A(TYPE = *STRUCTURE(*DYNAMIC)) /A.C = 'ZWEI' /A.D = 'DREI' /A.B = 'EINS' /SHOW-VARIABLE A, INFO=*PAR(VALUE=*C-LITERAL,NAME= *FULL-NAME)
Ausgabe
A.C = 'ZWEI' A.D = 'DREI' A.B = 'EINS'
Eingabe
/SHOW-VARIABLE A,INFO=*PAR(VALUE=*C-LITERAL,NAME=*ELEMENT-NAME)
Ausgabe
C = 'ZWEI' D = 'DREI' B = 'EINS'
Eingabe
/DECLARE-VARIABLE V2(TYPE=*ANY),MULT-ELEM=*LIST /S = '(ANTON,BERTA,CAESAR,HUGO,FRANZ)' /V2 = *STRING-TO-VARIABLE(S)
Ausgabe
/SHOW-VARIABLE *LIST(LIST=V2,FROM-INDEX=3,NUM-OF-ELEM=*REST),- / INFO=*PAR(VALUE=*C-LITERAL,LIST-INDEX-NUMBER=*YES) V2#3 = 'CAESAR' V2#4 = 'HUGO' V2#5 = 'FRANZ'