Anwendungsgebiet: Variablenzugriff (Variableneigenschaften)
Die Funktion VARIABLE-ATTRIBUTE( ) liefert für die angegebene Variable den Wert des angegebenen Attributs. Attribute sind die Variableneigenschaften, die mit dem SDF-P-Kommando DECLARE-VARIABLE definiert werden. Schlüsselwörter für die Abfrage sind dabei in der Regel die Operandennamen des Kommandos.
Detailinformationen über Strukturen müssen über ATTRIBUTE = *STRUCTURE-INFO (nicht über ATTRIBUTE = *TYPE) abgefragt werden.
Format
VARIABLE-ATTRIBUTE( ) VAR-ATTR( ) |
VARIABLE-NAME = string_ausdruck ,ATTRIBUTE = *TYPE / *CONTAINER / *CONTAINER-NAME / *CONTAINER-SCOPE / *MULTIPLE-ELEMENTS / *SCOPE / *STRUCTURE-INFO / *VALUE-TYPE |
Ergebnistyp
STRING
Eingabeparameter
VARIABLE-NAME = string_ausdruck
Bezeichnet eine Variable. Der Variablenname muss in Hochkommata eingeschlossen werden, wenn man ihn direkt (als Literal) angeben will (siehe dazu das folgende Beispiel sowie das letzte Beispiel bei IS-DECLARED( ) ).
ATTRIBUTE =
Bezeichnet ein Variablenattribut.
ATTRIBUTE = *TYPE
Liefert den Variablentyp.
Wenn die mit „string_ausdruck“ bezeichnete Variable eine Struktur ist, wird der Wert „*STRUCTURE“ zurückgeliefert.
ATTRIBUTE = *CONTAINER
Liefert den Typ des Variablenbehälters.
ATTRIBUTE = *CONTAINER-NAME
Liefert den Namen des Variablenbehälters.
ATTRIBUTE = *CONTAINER-SCOPE
Liefert den Geltungsbereich des Variablenbehälters.
ATTRIBUTE = *MULTIPLE-ELEMENTS
Liefert den Typ der zusammengesetzten Variablen.
ATTRIBUTE = *SCOPE
Liefert den Geltungsbereich der Variablen.
ATTRIBUTE = *STRUCTURE-INFO
Liefert die Eigenschaften der mit „string_ausdruck“ bezeichneten zusammengesetzten Variablen vom Typ Struktur. Diese Eigenschaften werden im Kommando DECLARE-VARI-ABLE mit dem Operanden TYPE = *STRUCTURE(DEFINITION = ...) definiert.
ATTRIBUTE = *VALUE-TYPE
Weist der Variablen den Datentyp des zugewiesenen Wertes zu.
Ergebnis
Wert des Attributs als String
Eingabeparameter | Ergebnis |
*TYPE | '*ANY' / '*BOOLEAN' / '*INTEGER' / '*STRING' '*STRUCTURE' |
*CONTAINER | '*STD' / '*VARIABLE' / '*JV' / 'composed-name' |
*CONTAINER-NAME | 'name' / '' wenn die Variable keinen Container hat: |
*CONTAINER-SCOPE | '*INCLUDE' / '*PROCEDURE' / '*TASK' wenn die Variable keinen Container hat: |
*MULTIPLE-ELEMENTS | '*ARRAY' / '*LIST' '*NO' |
*SCOPE | '*INCLUDE' Geltungsbereich der mit „string_ausdruck“ bezeichneten |
*STRUCTURE-INFO | '*BY-SYSCMD' '*DYNAMIC' 'name' |
*VALUE-TYPE | *STRING, *INTEGER, *BOOLEAN, *NONE Typ des der Variablen zugewiesenen Wertes. |
Fehlermeldung
SDP0424 VARIABLER '(&00)' KEIN BEHAELTER ZUGEWIESEN SDP0425 BUILTIN-FUNKTION VAR-ATTRIBUTES: VARIABLE IST KEINE STRUKTUR SDP1007 NOCH KEINE VARIABLE ANGELEGT SDP1101 SYNTAX-FEHLER IM VARIABLEN-NAMEN
Beispiel 1
/BEGIN-STRUCTURE PERSON ... /END-STRUCTURE /DECLARE-VARIABLE A (TYPE = *STRUCTURE(PERSON)) ... /B = VARIABLE-ATTRIBUTE(VARIABLE-NAME = 'A', ATTRIBUTE = *TYPE) /SHOW-VARIABLE B B = *STRUCTURE /B = VARIABLE-ATTRIBUTE(VARIABLE-NAME = 'A', ATTRIBUTE = *STRUCTURE-INFO) /SHOW-VARIABLE B B = PERSON
Beispiel 2
/OPEN-VARIABLE-CONTAINER mycontainer,*LIB(mylibrary)
/DECLARE-VARIABLE myvar, CONTAINER= mycontainer
/A = VARIABLE-ATTRIBUTE('myvar',*CONTAINER)
/SHOW-VARIABLE A
A = MYCONTAINER
/A = VARIABLE-ATTRIBUTE('myvar',*CONTAINER-NAME)
/SHOW-VARIABLE A
A = "leerer String"
Beispiel 3
/A = 'STRING_VAL'
/RESULT = VARIABLE-ATTRIBUTE('A',*VALUE-TYPE)
/SHV RESULT
RESULT = *STRING
Beispiel 4
/DCV VARIABLE-NAME=STRUCT(TYPE=*STRUCTURE(DEFINITION=*DYNAMIC))
/STRUCT.A = 12345
/RESULT = VARIABLE-ATTRIBUTE('STRUCT.A', *VALUE-TYPE)
/SHV RESULT
RESULT = *INTEGER
/RESULT = VARIABLE-ATTRIBUTE('STRUCT', *VALUE-TYPE)
/SHV RESULT
RESULT = *NONE