Domain: PROCEDURE
Command description
The SHOW-VARIABLE-ATTRIBUTES command supplies information about the attributes of the specified variables. The information is output to SYSOUT (or an S variable /
S variable stream) or to SYSLST.
The attributes include the name of the variable, its initial value, data type, whether it is a simple or a complex variable, etc. Variable attributes are declared using the /DECLARE-VARIABLE command or preset at the time the variable is generated.
Format
SHOW-VARIABLE-ATTRIBUTES |
VARIABLE-NAME = *ALL / <structured-name 1...20 with-wild(40)> / <composed-name 1...255> / *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 |
Operands
VARIABLE-NAME =
Specifies the variable whose attributes are to be output.
VARIABLE-NAME = *ALL
All procedure-local, visible variables are to be output.
VARIABLE-NAME = <composed-name 1...255>
Name of the variable whose attributes are to be output.
VARIABLE-NAME = <structured-name 1...20 with-wild(40)>
Specification of one or more variables via a name including wildcards.
VARIABLE-NAME = *LIST(...)
The attributes of the elements of a list variable are to be output.
LIST-NAME = <composed-name 1..255>
Name of the list variable.
FROM-INDEX = *FIRST / *LAST / <integer 1..2147483647>
Index of the element of the list variable with which the output is to begin.
*FIRST: the output will begin with the first element in the list; default.
Specifying *LAST causes the attributes of the last element in the list to be output. In this case the NUMBER-OF-ELEMENTS operand is ignored.
NUMBER-OF-ELEMENTS = 1 / *REST / <integer 1..2147483647>
Number of list elements whose attributes are to be output. Default: the attributes of one element are output.
Specifying *REST causes the attributes of all elements from the specified start element (FROM-INDEX operand) to the last element in the list to be output.
INFORMATION =
Defines the extent of the information to be output.
INFORMATION = *NAME
Only the name of the variable is to be output.
INFORMATION = *VARIABLE-ATTRIBUTES-ONLY
All attributes specified with the DECLARE-VARIABLE command are to be output.
INFORMATION = *ALL-ATTRIBUTES
All attributes specified with the /DECLARE-VARIABLE command are to be output. A list of the names of variable elements is additionally output.
ATTACHED-INFORMATION =
Determines whether the attributes of variable elements are to be output.
ATTACHED-INFORMATION = *NO
Only the attributes of the variable are to be output.
ATTACHED-INFORMATION = *YES
The attributes of the variable as well as its elements are to be output.
OUTPUT =
Determines whether the information is to be output to SYSOUT or to SYSLST.
OUTPUT = *SYSOUT
The information is output to SYSOUT. The ASSIGN-SYSOUT or ASSIGN-STREAM command can be used to stipulate output to an S variable or an S variable stream.
OUTPUT = *SYSLST
The information is output to SYSLST only.
Command return codes
(SC2) | SC1 | Maincode | Meaning |
| 0 | CMD0001 | No error | |
| 1 | CMD0202 | Syntax error | |
| 3 | CMD2203 | Incorrect syntax file | |
| 32 | CMD0221 | System error (internal error) | |
| 64 | SDP0091 | Semantic error (variable does not exist) Guaranteed message: SDP1008 | |
| 130 | SDP0099 | No further address space available |
Example
/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
Note
If the variable is a list variable, the names of its elements are not listed. Variable elements are identified by the variable name followed by the “#” character and the (sequential) element number instead.Note
Formatted output
The following operands are supported for formatted output in variables for the SHOW-VARIABLE-ATTRIBUTES command:
VARIABLE-NAME (all values)
INFORMATION (all values)
ATTACHED-INFORMATION (all values)
Additional information such as the conditions for assigning values to individual variables can be found in the following table.
Output structure
Output information | Name of the S variable1 | T2 | Contents |
Does the variable have a constant | var#.CONSTANT | S | *YES |
Type of the variable container | var#.CONTAIN | S | <composed-name 1..64> |
Name of the variable container | var#.CONTAIN-NAME | S | <structured-name 1..20> |
Element name | var#.ELEM(*LIST) | S | <composed-name 1..255> |
Import of the variable permitted | var#.IMP-ALLOW | S | *YES |
Maximum number (limit) of list | var#.LIM | I | <integer 0..2147483647> |
Lower limit of the array index | var#.LOWER-BOUND | I | <integer -2147483648..2147483647> |
The variable is a list variable, an | var#.MULT-ELEM | S | *LIST |
Number of variable elements | var#.NUM-OF-ELEM | I | <integer 0..2147483647> |
Scope of the variable | var#.SCOPE | S | *INC |
Name of the structure layout | var#.STRUCT-DEFI | S | <structured-name 1..20> |
Type of the variable | var#.TYPE | S | *ANY |
Upper limit of the array index | var#.UPPER-BOUND | I | <integer -2147483648..2147483647> |
Value of the variable | var#.VALUE | S | <string 0..4096> |
Type of the variable value | var#.VALUE-TYPE | S | *NONE |
Name of the variable | var#.VAR-NAME | S | <composed-name 1..255> |
1Variable names are sorted alphabetically
2The T column identifies the data types: B = Boolean, I = INTEGER, S = string