Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

SHOW-VARIABLE Inhalte von Variablen ausgeben

&pagelevel(4)&pagelevel

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 Zeichenkette FALSE oder TRUE 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                                               Kurzname: SHV

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>
Variablenname(*LIST) = <inhalt>

für das erste Element
für das zweite Element, usw.

LIST-INDEX-NUMBER = *YES

Variablenname#1 = <inhalt>
Variablenname#2 = <inhalt>

für das erste Element
für das zweite Element, usw.


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>
(*LIST) = <inhalt>

für das erste Element
für das zweite Element, usw.

LIST-INDEX-NUMBER = *YES

#1 = <inhalt>
#2 = <inhalt>

für das erste Element
für das zweite Element, usw.


NAME = *NONE 

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

0CMD0001Ohne Fehler
10CMD0001Warnung; keine Variable gefunden

1CMD0202Syntaxfehler

3CMD2203Falsche Syntaxdatei

32CMD0221Systemfehler (interner Fehler)

64SDP0091Semantikfehler
garantierte Meldung: SDP1008

130SDP0099Kein 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'