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