Anwendungsgebiet: PROCEDURE
Kommandobeschreibung
Das Kommando SHOW-VARIABLE-ATTRIBUTES informiert über die Attribute der angegebenen Variablen. Die Ausgabe erfolgt nach SYSOUT (oder S-Variable / S-Variablenstrom) oder nach SYSLST.
Die Attribute umfassen Name der Variablen, Anfangswert, Datentyp, einfache oder zusammengesetzte Variable usw. Die Attribute werden mit dem Kommando /DECLARE-
VARIABLE oder per Voreinstellung bei der Erzeugung der Variablen festgelegt.
Format
SHOW-VARIABLE-ATTRIBUTES |
VARIABLE-NAME = *ALL / <composed-name 1..255> /<structured-name 1..20 with-wild(40)> / *LIST(...) *LIST(...) LIST-NAME = <composed-name 1..255> ,FROM-INDEX = *FIRST / *LAST / <integer 1..2147483647> ,NUMBER-OF-ELEMENTS = 1 / *REST / <integer 1..2147483647> ,INFORMATION = *NAME / *VARIABLE-ATTRIBUTES-ONLY / *ALL-ATTRIBUTES ,ATTACHED-INFORMATION = *NO / *YES ,OUTPUT = *SYSOUT / *SYSLST |
Operandenbeschreibung
VARIABLE-NAME =
Name der Variablen, deren Attribute ausgegeben werden sollen.
VARIABLE-NAME = *ALL
Alle prozedurlokalen, sichtbaren Variablen.
VARIABLE-NAME = <composed-name 1...255>
Name der Variablen, deren Attribute ausgegeben werden sollen.
VARIABLE-NAME = <structured-name 1...20 with-wildcards(40)>
Bezeichnung einer oder mehrerer Variablen unter Benutzung von Musterzeichen im Namen.
VARIABLE-NAME = *LIST(...)
Es sollen die Attribute der 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 die Attribute des letztes Elements der Liste aus. Der Operand NUMBER-OF-ELEMENTS wird in diesem Fall ignoriert.
NUMBER-OF-ELEMENTS = 1 / *REST / <integer 1..2147483647>
Anzahl der Listenelemente, deren Attribute ausgegeben werden sollen. Voreinstellung: Die Attribute eines Elements werden ausgegeben.
Die Angabe *REST gibt die Attribute aller Elemente vom angegebenen Startelement (Operand FROM-INDEX) bis zum letzten Element der Liste aus.
INFORMATION =
Bestimmt den Umfang der auszugebenden Information.
INFORMATION = *NAME
Nur der Name der Variablen wird ausgegeben.
INFORMATION = *VARIABLE-ATTRIBUTES-ONLY
Es werden alle Attribute ausgegeben, die mit dem Kommando DECLARE-VARIABLE spezifiziert wurden.
INFORMATION = *ALL-ATTRIBUTES
Es werden alle Attribute ausgegeben, die mit dem Kommando DECLARE-VARIABLE spezifiziert wurden. Zusätzlich werden die Namen der Elemente der Variablen aufgelistet.
ATTACHED-INFORMATION =
Bestimmt, ob die Attribute der Variablenelemente ausgegeben werden sollen.
ATTACHED-INFORMATION = *NO
Es werden nur die Attribute der Variablen ausgegeben.
ATTACHED-INFORMATION = *YES
Die Attribute der Variablen und der Variablenelemente werden ausgegeben.
OUTPUT =
Bestimmt, ob die Informationen nach SYSOUT oder nach SYSLST ausgegeben werden.
OUTPUT = *SYSOUT
Die Informationen werden nach SYSOUT ausgegeben. Mit den Kommandos ASSIGN-SYSOUT oder ASSIGN-STREAM kann die Ausgabe auch in eine S-Variable erfolgen oder einem S-Variablenstrom zugewiesen werden.
OUTPUT = *SYSLST
Die Informationen werden nur nach SYSLST geschrieben.
Kommando-Returncode
| (SC2) | SC1 | Maincode | Bedeutung |
| 0 | CMD0001 | Ohne Fehler | |
| 1 | CMD0202 | Syntaxfehler | |
| 3 | CMD2203 | Falsche Syntaxdatei | |
| 32 | CMD0221 | Systemfehler (interner Fehler) | |
| 64 | SDP0091 | Semantikfehler (Variable existiert nicht) garantierte Meldung: SDP1008 | |
| 130 | SDP0099 | Kein Adressraum mehr verfügbar |
Beispiel
/declare-variable S(type = *structure),multiple-elements=*array
/S#81.A = 'First Value'
/S#81.B#5 = 'Second Value'
/S#81.B#27 = 'Third Value'
/S#97.A = 'First Value'
/S#97.B#8 = 'Second Value'
/S#97.B#13 = 'Third Value'
/show-variable-attributes s,info=*all-attributes,attached-information=*yes
VARIABLE-NAME = S
TYPE = *STRUCTURE(DEFINITION = *DYNAMIC)
MULTIPLE-ELEMENTS = *ARRAY(LOWER-BOUND = 0, UPPER-BOUND = 2147483647)
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *NONE
VALUE =
NUMBER-OF-ELEMENTS = 2
ELEM#1 = S#81
ELEM#2 = S#97
VARIABLE-NAME = S#81
TYPE = *STRUCTURE(DEFINITION = *DYNAMIC)
MULTIPLE-ELEMENTS = *NO
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *NONE
VALUE =
NUMBER-OF-ELEMENTS = 2
ELEM#1 = S#81.A
ELEM#2 = S#81.B
VARIABLE-NAME = S#81.A
TYPE = *ANY
MULTIPLE-ELEMENTS = *NO
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *STRING
VALUE = First Value
NUMBER-OF-ELEMENTS = 0
VARIABLE-NAME = S#81.B
TYPE = *ANY
MULTIPLE-ELEMENTS = *ARRAY(LOWER-BOUND = -2147483648, UPPER-BOUND =
2147483647)
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *NONE
VALUE =
NUMBER-OF-ELEMENTS = 2
ELEM#1 = S#81.B#5
ELEM#2 = S#81.B#27
VARIABLE-NAME = S#81.B#5
TYPE = *ANY
MULTIPLE-ELEMENTS = *NO
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *STRING
VALUE = Second Value
NUMBER-OF-ELEMENTS = 0
VARIABLE-NAME = S#81.B#27
TYPE = *ANY
MULTIPLE-ELEMENTS = *NO
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *STRING
VALUE = Third Value
NUMBER-OF-ELEMENTS = 0
VARIABLE-NAME = S#97
TYPE = *STRUCTURE(DEFINITION = *DYNAMIC)
MULTIPLE-ELEMENTS = *NO
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *NONE
VALUE =
NUMBER-OF-ELEMENTS = 3
ELEM#1 = S#97.A
ELEM#2 = S#97.B
ELEM#3 = S#97.B13
VARIABLE-NAME = S#97.A
TYPE = *ANY
MULTIPLE-ELEMENTS = *NO
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *STRING
VALUE = First Value
NUMBER-OF-ELEMENTS = 0
VARIABLE-NAME = S#97.B
TYPE = *ANY
MULTIPLE-ELEMENTS = *ARRAY(LOWER-BOUND = -2147483648, UPPER-BOUND =
2147483647)
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *NONE
VALUE =
NUMBER-OF-ELEMENTS = 1
ELEM#1 = S#97.B#8
VARIABLE-NAME = S#97.B#8
TYPE = *ANY
MULTIPLE-ELEMENTS = *NO
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *STRING
VALUE = Second Value
NUMBER-OF-ELEMENTS = 0
VARIABLE-NAME = S#97.B13
TYPE = *ANY
MULTIPLE-ELEMENTS = *NO
SCOPE = *PROCEDURE(IMPORT-ALLOWED = *NO)
CONTAINER = *STD
CONSTANT = *NO
VALUE-TYPE = *STRING
VALUE = Third Value
NUMBER-OF-ELEMENTS = 0
Bei einer Listenvariablen werden die Elementnamen nicht aufgelistet. Der Elementname ist immer der Variablenname, gefolgt von dem Zeichen „#“ und der (sequenziellen) Elementnummer.Hinweis
Strukturierte Ausgabe
Für die strukturierte Ausgabe in Variablen werden beim Kommando SHOW-VARIABLE-ATTRIBUTES die folgenden Operanden unterstützt:
VARIABLE-NAME (alle Werte)
INFORMATION (alle Werte)
ATTACHED-INFORMATION (alle Werte)
Weitere Informationen, wie z.B. die Bedingungen für die Belegungen der einzelnen Variablen, sind der nachfolgenden Tabelle zu entnehmen.
Ausgabestruktur
Ausgabe-Information | Name der S-Variablen1) | T2) | Inhalt |
hat die Variable einen konstanten | var#.CONSTANT | S | *YES |
Typ des Variablencontainers | var#.CONTAIN | S | <composed-name 1..64> |
Name des Variablencontainers | var#.CONTAIN-NAME | S | <structured-name 1..20> |
Elementname | var#.ELEM(*LIST) | S | <composed-name 1..255> |
Import der Variablen erlaubt | var#.IMP-ALLOW | S | *YES |
Maximale Anzahl (Limit) der | var#.LIM | I | <integer 0..2147483647> |
untere Grenze des Arrayindexes | var#.LOWER-BOUND | I | <integer -2147483648..2147483647> |
Die Variable ist eine List- oder | var#.MULT-ELEM | S | *LIST |
Anzahl der Variablenelemente | var#.NUM-OF-ELEM | I | <integer 0..2147483647> |
Geltungsbereich der Variablen | var#.SCOPE | S | *INC |
Name des Strukturlayouts | var#.STRUCT-DEFI | S | <structured-name 1..20> |
Variablentyp | var#.TYPE | S | *ANY |
obere Grenze des Arrayindexes | var#.UPPER-BOUND | I | <integer -2147483648..2147483647> |
Variablenwert | var#.VALUE | S | <string 0..4096> |
Typ des Variablenwerts | var#.VALUE-TYPE | S | *NONE |
Name der Variablen | var#.VAR-NAME | S | <composed-name 1..255> |
1)Die Variablennamen sind alphabetisch geordnet
2)In der Spalte T sind die Datentypen aufgeführt: B = Boolean, I = INTEGER, S = String