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 |
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.
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' |
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"