The ADD-OPERAND statement is used to define an operand in the open syntax file. The command or statement for which the operand is defined must have already been defined in the syntax file. The position the defined operand receives within this command or statement depends on what the “current object” is at the time ADD-OPERAND is entered. The defined operand is subsequently the current object.
Current object may be: Position of the defined operand is then: |
All names given for the operand must be unique with regard to the other operands at the same level (or in the same structure).
An operand may be defined for a command implemented via system modules only when the command definition is in a group or system syntax file.
The definitions of the operand values belonging to the operand are placed in the syntax file with the ADD-VALUE or COPY statement, rather than the ADD-OPERAND statement.
ADD-OPERAND |
NAME = <structured-name 1..20> ,INTERNAL-NAME = *STD / <alphanum-name 1..8> ,STANDARD-NAME = *NAME / *NO / list-poss(2000): *NAME / <structured-name 1..20> ,ALIAS-NAME = *NO / list-poss(2000): <structured-name 1..20> ,MINIMAL-ABBREVIATION = *NO / <structured-name 1..30> ,HELP = *NO / list-poss(2000): <name 1..1>(...) <name 1..1>(...)
,DEFAULT = *NONE / *JV(...) / *VARIABLE(...) / <c-string 1..1800 with-low>(...) *JV(...)
<c-string 1..1800 with-low>(...)
*VARIABLE(...)
<c-string 1..1800 with-low>(...)
<c-string 1..1800 with-low>(...)
,SECRET-PROMPT = *NO / *YES ,STRUCTURE-IMPLICIT = *NO / *YES ,REMOVE-POSSIBLE = *YES / *NO ,DIALOG-ALLOWED = *YES / *NO ,DIALOG-PROC-ALLOWED = *YES / *NO ,GUIDED-ALLOWED = *YES / *NO ,BATCH-ALLOWED = *YES / *NO ,BATCH-PROC-ALLOWED = *YES / *NO ,LIST-POSSIBLE = *NO / *YES(...) *YES(...) LIMIT= *STD / <integer 1..3000> ,FORM = *NORMAL / *OR ,LINES-IN-FORM = 1 / <integer 1..15> ,PRESENCE= *NORMAL / *EXTERNAL-ONLY / *INTERNAL-ONLY ,RESULT-OPERAND-LEVEL = 1 / <integer 1..5> ,RESULT-OPERAND-NAME = *SAME / <structured-name 1..20> / *POSITION(...) / *LABEL / *COMMAND-NAME *POSITION(...) POSITION= <integer 1..3000> ,CONCATENATION-POS = *NO / <integer 1..20> ,VALUE-OVERLAPPING = *NO / *YES ,OVERWRITE-POSSIBLE = *NO / *YES ,PRIVILEGE= *SAME / *EXCEPT(...) / list-poss(64): <structured-name 1..30> *EXCEPT(...) EXCEPT-PRIVILEGE = list-poss(64): <structured-name 1..30> |
NAME = <structured-name 1..20>
(External) operand name, to be specified when the command or statement is entered (but see operand PRESENCE=*INTERNAL-ONLY). The user can abbreviate this name on input, in contrast to the STANDARD-NAME and ALIAS-NAME.
INTERNAL-NAME = *STD / <alphanum-name 1..8>
Internal operand name. With the help of the internal operand name, SDF identifies an operand defined in several syntax files under different external names as being the same operand. Unless otherwise specified, SDF-A takes as the internal operand name the first eight characters (omitting hyphens) of the external name entered for the NAME operand.
STANDARD-NAME = *NAME / *NO / list-poss(2000): *NAME /<structured-name 1..20>Additional external operand name, which can be alternatively used when entering the command or statement. It must not be abbreviated when entered. In contrast to an ALIAS-NAME, a STANDARD-NAME must not be deleted so long as the operand with this name exists in one of the assigned syntax files (see OPEN-SYNTAX-FILE).
ALIAS-NAME = *NO / list-poss(2000): <structured-name 1..20>
Additional external operand name, which can be alternatively used when entering the command or statement. It must not be abbreviated when entered. In contrast to a STANDARD-NAME, an ALIAS-NAME may be deleted.
MINIMAL-ABBREVIATION = *NO / <structured-name 1..30>
Additional external operand name which defines the shortest permissible abbreviation for the operand. Any shorter abbreviation will not be accepted, even if it is unambiguous with respect to other operands.
The following should be noted:
Checking against the minimum abbreviation is carried out only after SDF has checked the input for ambiguity. It may thus happen that SDF selects the correct operand but then rejects it because the abbreviation entered is shorter than the specified minimum abbreviation.
The minimum abbreviation must be derived from the operand name (NAME).
The ALIAS-NAMEs and STANDARD-NAMEs of the operand must not be shorter than the minimum abbreviation if they are an abbreviation of the operand name.
The minimum abbreviation may only be shortened - not lengthened - within a syntax file hierarchy.
HELP =
Specifies whether there are help texts for the operand, and if so, what those texts are.
HELP = *NO
There are no help texts.
HELP = list-poss(2000): <name 1..1>(...)
There are help texts in the specified languages (E = English, D = German). SDF uses the language specified for message output.
TEXT = <c-string 1..500 with-low>
Help text.
The help text can contain the special character string “\n” for the line break.
DEFAULT=
Specifies whether there is a default value for the operand.
DEFAULT= *NONE
There is no default value. The operand is mandatory.
DEFAULT= *JV(...)
The operand is optional; its default value is stored in the job variable whose name is specified here. If a job variable is used as a default value, this default value is always analyzed by SDF at execution time. If it is not possible to access the job variable, the alternate default value defined with ALTERNATE-DEFAULT is used. If no alternate default value exists, the operand must be regarded as mandatory (corresponding to DEFAULT=*NONE). Consequently, DEFAULT=*JV(...) must not be used together withPRESENCE=*INTERNAL-ONLY.
JV-NAME = <filename 1..54 without-gen-vers>
Name of the job variable.
ALTERNATE-DEFAULT =
Alternate default value to be used if errors occur when accessing the job variable.
ALTERNATE-DEFAULT = *NONE
There is no alternate default value.
ALTERNATE-DEFAULT = <c-string 1..1800 with-low>(...)
Alternate default value, to be specified in accordance with the rules governing the input of operands. The alternate default may thus be given in the form of a list enclosed in parentheses and must be contained in a definition of the operand value associated with the operand (see ADD-VALUE). If this default value is contained in the keyword defined with STAR=*MANDATORY, it must also be entered with an asterisk.
ANALYSE-DEFAULT = *YES / *NO
Specifies whether the given value will be analyzed syntactically by SDF-A as soon as the command or statement definition has been completed. This expedites analysis of the command or statement at runtime, but presupposes that the default value does not consist of a list or introduce a structure.
DEFAULT= *VARIABLE(...)
The operand is optional; its default value is stored in the S variable whose name is specified here (see the “SDF-P” [12 (Related publications)] User Guide).
If an S variable is used as a default value, this default value is always analyzed by SDF at execution time. If it is not possible to access the S variable, the alternate default value defined with ALTERNATE-DEFAULT is used. If no alternate default value exists, this operand is considered mandatory (corresponding to DEFAULT = *NONE). Consequently, DEFAULT=*VARIABLE(...) must not be used together with PRESENCE=*INTERNAL-ONLY.
VARIABLE-NAME = <composed-name 1..255>
Name of the S variable.
ALTERNATE-DEFAULT =
Alternate default value to be used if errors occur when accessing the S variable.
ALTERNATE-DEFAULT = *NONE
There is no alternate default value.
ALTERNATE-DEFAULT = <c-string 1..1800 with-low>(...)
Alternate default value, to be specified in accordance with the rules governing the input of operands. The alternate default may thus be given in the form of a list enclosed in parentheses and must be contained in a definition of the operand value associated with the operand (see ADD-VALUE). If this default value is contained in the keyword defined with STAR=*MANDATORY, it must also be entered with an asterisk.
ANALYSE-DEFAULT = *YES / *NO
Specifies whether the given value will be analyzed syntactically by SDF-A as soon as the command or statement definition has been completed. This expedites analysis of the command or statement at runtime, but presupposes that the default value does not consist of a list or introduce a structure.
DEFAULT= <c-string 1..1800 with-low>(...)
The operand is optional and has the specified default value. This default value is subject to the same rules that govern the input of operands and may thus be entered in the form of a list enclosed in parentheses. The default value must be contained in a definition of the operand value associated with the operand (see ADD-VALUE). If it is contained in a keyword defined with STAR=*MANDATORY, it must also be entered with an asterisk.
ANALYSE-DEFAULT = *YES / *NO
Specifies whether the given value will be analyzed syntactically by SDF-A as soon as the command or statement definition has been completed. This expedites analysis of the command or statement at runtime, but presupposes that the default value does not consist of a list or introduce a structure.
SECRET-PROMPT = *NO / *YES
Specifies whether the operand is treated as a secret operand. The input fields for values of secret operands are kept blank, and logging is suppressed (see also ADD-VALUE..., OUTPUT=*SECRET-PROMPT and ADD-VALUE...,SECRET-PROMPT=*SAME/*NO).
STRUCTURE-IMPLICIT =
Relevant only for an operand contained in a structure and specifies whether the structure containing the operand is implicitly selected via global specification of the operand name when the command or statement is entered.
STRUCTURE-IMPLICIT = *NO
The structure is only implicitly selected when the operand is specified if the operand name is unique throughout the command or statement or within an already selected structure.
STRUCTURE-IMPLICIT = *YES
The structure is implicitly selected when the operand is specified even if other operands with the same name exist. These must be defined using STRUCTURE-IMPLICIT=*NO.
This specification is permitted only for operands whose structure is introduced with the value KEYWORD or KEYWORD-NUMBER.
Example:
SHOW-FILE-ATTR ACCESS-METHOD=*ISAM
is the abbreviated form of
SHOW-FILE-ATTR SEL=*BY-ATTR(ACCESS-METHOD=*ISAM)
Simultaneous specification of the operand both within and outside the structure may lead to errors (such as SDF message CMD0039: MORE THAN ONE VALUE HAS BEEN SPECIFIED FOR AN OPERAND. ONLY THE LAST ONE IS USED).
REMOVE-POSSIBLE = *YES / *NO
Specifies whether the operand may be deleted (see the REMOVE statement, "REMOVE Delete objects from syntax file").
DIALOG-ALLOWED = *YES / *NO
Specifies whether the operand is allowed in interactive mode. Specifying YES presupposes that the command or statement and, where applicable, the operand value introducing the structure are allowed in interactive mode.
DIALOG-PROC-ALLOWED = *YES / *NO
Specifies whether the operand is allowed in interactive mode within a procedure. Specifying YES presupposes that the command or statement and, where applicable, the operand value introducing the structure are allowed in interactive mode within a procedure.
GUIDED-ALLOWED = *YES / *NO
Specifies whether the operand is allowed in guided dialog. Specifying YES presupposes that the command or statement and, where applicable, the operand value introducing the structure are allowed in guided dialog.
GUIDED-ALLOWED=*NO is not suitable for security-related aspects, since operands defined with this setting are shown in the procedure error dialog as well as for /SHOW-CMD and //SHOW-STMT with FORM=*UNGUIDED .
BATCH-ALLOWED = *YES / *NO
Specifies whether the operand is allowed in batch mode. Specifying YES presupposes that the command or statement and, where applicable, the operand value introducing the structure are allowed in batch mode.
BATCH-PROC-ALLOWED = *YES / *NO
Specifies whether the operand is allowed in batch mode within a procedure. Specifying YES presupposes that the command or statement and, where applicable, the operand value introducing the structure, are allowed in batch mode within a procedure.
LIST-POSSIBLE =
Specifies whether a list is allowed at the operand position. The ADD-VALUE statement is used to define for which of the operand values a list is allowed.
LIST-POSSIBLE = *NO
No list is allowed.
LIST-POSSIBLE = *YES(...)
A list is allowed.
LIMIT = *STD / <integer 1..3000>
Specifies the maximum number of list elements. Unless otherwise specified, SDF-A assumes the value 2000 (see also "Format of the standardized transfer area").
FORM = *NORMAL / *OR
Specifies whether the list elements are to be addressed individually (NORMAL) or are to be passed to the implementation converted into a single value using logical OR (see section 6.3, “Format of the standardized transfer area”). The latter is appropriate only for list elements of the data type KEYWORD, for which hexadecimal transfer values have been defined (see ADD-VALUE..,VALUE = <c-string>(..,OUTPUT=<x-string>...). FORM is relevant only when the defined operand pertains to a statement or to a command defined with IMPLEMENTOR=*TPR(..,CMD-INTERFACE=*NEW/*TRANSFER-AREA,...) (see ADD-CMD). The specification made here must be consistent with the transfer area defined in the implementation.
LINES-IN-FORM = 1 / <integer 1..15>
Specifies the number of input lines in the guided dialog form.
PRESENCE =
Specifies whether the operand is to be suppressed.
PRESENCE = *NORMAL
The operand is not suppressed.
PRESENCE = *EXTERNAL-ONLY
Transfer of the operand to the implementation is suppressed (e.g. an operand that is no longer needed but must be retained at the user interface for compatibility reasons, or an operand that serves merely to group further operands in a structure).
PRESENCE = *INTERNAL-ONLY
The operand is suppressed at the user interface. Together with the then mandatory definition of a default value (see operand DEFAULT=), a fixed value may be assigned to a parameter implemented in this way without an operand being visible to the user in the command or statement format. If a structure is attached to the operand, all of the suboperands contained in the structure will be integrated into the higher level. PRESENCE=*INTERNAL-ONLY must not be used together with DEFAULT=*JV(...) or DEFAULT=*VARIABLE(...).
RESULT-OPERAND-LEVEL = 1 / <integer 1..5>
Specifies the structure level at which the operand is to be passed to the implementation. For an operand not attached to a structure, this value must be 1. The following applies to an operand attached to a structure: The RESULT-OPERAND-LEVEL is equal to or less than the structure level on which the operand stands in the input format of the command or statement. It is lower than, equal to or 1 higher than the RESULT-OPERAND-LEVEL of the operand to which the operand value introducing the structure belongs.
For statements and for commands defined with IMPLEMENTOR=*TPR (...,CMD-INTERFACE=*NEW/*TRANSFER-AREA,...), see also ADD-
VALUE...STRUCTURE=*YES(...,FORM=...).
RESULT-OPERAND-NAME =
Specifies how the implementation identifies the operand in the transfer area or string that SDF passes to it.
Note: SDF uses a transfer area (see "Format of the standardized transfer area"ff) for statements and for commands defined with IMPLEMENTOR=*TPR(...,CMD-INTERFACE=*NEW/*TRANSFER-AREA,...) (see ADD-CMD). SDF passes a string in the case of commands defined with IMPLE-MENTOR=*PROCEDURE or IMPLEMENTOR=*TPR(...,CMD-INTERFACE=*STRING,...) (see ADD-CMD).
RESULT-OPERAND-NAME = *SAME
Permissible only when operands are transferred by means of a string. In the string to be passed, the operand has the same name as the one given to it with NAME=.
RESULT-OPERAND-NAME = <structured-name 1..20>
Permissible only when operands are transferred by means of a string. In the string to be passed, the operand has the specified name.
RESULT-OPERAND-NAME = *POSITION(...)
In the transfer area (see "Format of the standardized transfer area"ff) or in the string to be passed, the operand has a specified position. A name is not assigned to it.
POSITION = <integer 1..3000>
Specifies the position. For operands attached to a structure, the position is specified relative to the structure, i.e. the first operand in the structure is assigned position 1 if the RESULT-OPERAND-LEVEL that was defined for the current operand is higher than that of the operand at the level above it.
RESULT-OPERAND-NAME = *LABEL
Permissible only for operands in commands defined with
IMPLEMENTOR=*TPR(...,CALL=*OLD,...) (see ADD-CMD). This operand value is reserved for Fujitsu Development and is therefore not described here.
RESULT-OPERAND-NAME = *COMMAND-NAME
Permissible only for operands in commands defined with IMPLEMENTOR=*TPR(...,CMD-INTERFACE=*STRING,...) (see ADD-CMD). This operand value is reserved for Fujitsu Development and is therefore not described here.
CONCATENATION-POS = *NO / <integer 1..20>
Specifies whether and, if so, how the operand is to be put together with other input operands to form a single operand in the string to be passed to the implementation. The input operands are concatenated. The position they occupy when concatenated should be specified here. It is presupposed that the transfer to the implementation is in the form of a string (commands that are defined with IMPLEMENTOR=*PROCEDURE or IMPLEMENTOR= *TPR(...,CMD-INTERFACE=*STRING,...); see ADD-CMD). All input operands to be concatenated must have the same RESULT-OPERAND-NAME. If the same position is specified for several input operands, SDF uses the first operand it encounters during analysis
VALUE-OVERLAPPING =
Specifies whether overlapping of data types is to be permitted in the definition of the operand values.
VALUE-OVERLAPPING = *NO
No overlapping is allowed (see section “Mutually exclusive data types” for a list of mutually exclusive data types).
VALUE-OVERLAPPING = *YES
Overlapping is allowed.
When the command or statement is entered, SDF checks the operand value using the data type definitions as examples and in the order specified for the operand. SDF outputs an error message if there is no match between the data type and the value entered.
If the data type is KEYWORD(-NUMBER), SDF checks whether the value which has been entered is unique with respect to further definitions of this type. In addition, SDF checks the defined attributes (e.g. length, value range) of the value entered. If these attributes do not apply, the check is continued with the next defined data type.
OVERWRITE-POSSIBLE = *NO / *YES
This is only relevant for statements, and for commands defined with IMPLE-
MENTOR=*TPR(...,CMD-INTERFACE=*NEW/*TRANSFER-AREA,...); see ADD-CMD. OVERWRITE-POSSIBLE determines whether the operand default value can be replaced by a value created dynamically by the implementation (see the DEFAULT operand in the CMDCST, CMDRST and CMDTST macros). The program-generated value must be a valid operand value. In guided dialog, SDF shows the implementation-specific value in the form display.
PRIVILEGE =
Specifies the privileges assigned to the operand.
PRIVILEGE = *SAME
The operand is assigned the same privileges as those defined for the associated command or statement. If the operand is part of a structure, it is assigned the same privileges as the operand value which introduces the structure.
PRIVILEGE = *EXCEPT(...)
With the exception of those defined with *EXCEPT(...), all privileges currently defined and all subsequently defined privileges are assigned to the operand.
EXCEPT-PRIVILEGE = list-poss(64): <structured-name 1..30>
Specifies the privileges that are not assigned to the operand.
PRIVILEGE = list-poss(64): <structured-name 1..30>
Only the privileges specified in this list are assigned to the operand.