The MODIFY-OPERAND statement is used to modify the definition of an operand in the open syntax file. The operand must be the “current” object. Afterwards the first operand value of the operand is the “current” object.
The MODIFY-OPERAND statement is very similar to the ADD-OPERAND statement. The default value for all operands of the MODIFY-OPERAND statement is *UNCHANGED, i.e. only those parts of an operand definition that are explicitly specified are modified. In guided dialog the operand form displays the current operand assignment rather than *UNCHANGED. When a value other than *UNCHANGED is specified for a MODIFY-OPERAND operand, the old specifications in the operand definition to be modified are replaced by the new ones. This also applies if a list is possible, i.e. instead of being added to the value list, the specified value replaces the list.
There is a special rule for STANDARD-NAME. When the operand to be modified is defined in an assigned reference file (see OPEN-SYNTAX-FILE), the old entries for STANDARD-NAME are retained and the name specified with MODIFY-OPERAND is added to them. All names given to the operand must be unique with respect to all other operands at the same level (or in the same structure). Definitions of the operand values pertaining to the operand are modified by means of the MODIFY-VALUE statement rather than the MODIFY-OPERAND statement.
NAME = *UNCHANGED / <structured-name 1..20>
(External) operand name, to be specified when the command or statement is entered (but see the operand PRESENCE=*INTERNAL-ONLY). The user can abbreviate this name on input, unlike STANDARD-NAME and ALIAS-NAME.
INTERNAL-NAME = *UNCHANGED / *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. When *STD is 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 = *UNCHANGED / *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). If the original external name given in the command or program documentation is declared to be the standard name, it is thereby ensured that the operand can be entered using the original name, regardless of any name changes. Specifying *NAME causes SDF-A to take as STANDARD-NAME the external operand name entered for the NAME operand.
ALIAS-NAME = *UNCHANGED / *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 = *UNCHANGED / *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 commands.
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 = *UNCHANGED
No changes with regard to help texts.
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 = *UNCHANGED / <c-string 1..500 with-low>
Help text. *UNCHANGED is permissible only if a help text has already been defined for the language key.
The help text can contain the special character string “\n” for line breaks.
DEFAULT =
Defines whether a default value exists for the operand.
DEFAULT = *UNCHANGED
No change with regard to the default value.
DEFAULT = *NONE
There is no default value. The operand is a mandatory operand.
DEFAULT = *JV(...)
The operand is optional and 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 = *UNCHANGED
The name of the job variable is not changed.
JV-NAME = <filename 1..54 without-gen-vers>
Name of the job variable.
ALTERNATE-DEFAULT = *UNCHANGED / *NONE / <c-string 1..1800 with-low>(...)
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 = *UNCHANGED / *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 and its default value is stored in the S variable whose name is specified here (see the “SDF-P” [12] 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 must be regarded as mandatory (corresponding to DEFAULT = *NONE). Consequently, DEFAULT=*VARIABLE(...) must not be used together withPRESENCE=*INTERNAL-ONLY.
VARIABLE-NAME = *UNCHANGED
The name of the S variable is not changed.
VARIABLE-NAME = <composed-name 1..255>
Name of the S variable.
ALTERNATE-DEFAULT = *UNCHANGED / *NONE / <c-string 1..1800 with-low>(...)
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 also 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 = *UNCHANGED / *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>(...)
This operand is optional and has the specified default value. It must be specified in accordance with the rules governing the input of operands. The default value may thus be specified as a list enclosed in parentheses and must be contained in a definition of the operand value associated with the operand (see ADD-VALUE). If the default value is contained in the keyword defined with STAR=*MANDATORY, it must also be entered with an asterisk.
ANALYSE-DEFAULT = *UNCHANGED / *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 = *UNCHANGED / *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 = *UNCHANGED / *NO / *YES
Relevant only for an operand that stands 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. (For details, see ADD-OPERAND).
REMOVE-POSSIBLE = *UNCHANGED / *YES / *NO
Specifies whether the operand may be deleted (see REMOVE). If the operand has been defined with REMOVE-POSSIBLE=*NO in one of the assigned reference syntax files (see OPEN-SYNTAX-FILE), SDF-A rejects a change to *YES.
DIALOG-ALLOWED = *UNCHANGED / *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 = *UNCHANGED / *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 = *UNCHANGED / *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 = *UNCHANGED / *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 = *UNCHANGED / *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 = *UNCHANGED
No change with regard to whether a list is allowed.
LIST-POSSIBLE = *NO
No list is allowed.
LIST-POSSIBLE = *YES(...)
A list is allowed.
LIMIT = *UNCHANGED / *STD / <integer 1..3000>
Specifies the maximum number of list elements. Unless otherwise specified, SDF-A sets the value at 2000 (see also ).
FORM = *UNCHANGED / *NORMAL / *OR
Specifies whether the list elements are to be addressed individually (*NORMAL) or passed to the implementation converted into a single value using logical OR (see section “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=<xstring>...).
A specification here 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 = *UNCHANGED / <integer 1..15>
Specifies the number of input lines in the guided dialog form.
PRESENCE =
Specifies whether the operand is to be suppressed.
PRESENCE = *UNCHANGED
No change as far as suppressing the operand is concerned.
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 the DEFAULT operand), a fixed value may be assigned to a parameter implemented in this way without an operand appearing 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(...) orDEFAULT=*VARIABLE(...).
RESULT-OPERAND-LEVEL = *UNCHANGED / <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 at which the operand stands in the input format of the command or statement. It is lower than, equal to or one 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 section “Format of the standardized transfer area”) for statements and for commands defined with IMPLE-MENTOR=*TPR(...,CMD-INTERFACE=*NEW/*TRANSFER-AREA,...) (see ADD-CMD). SDF passes a string in the case of commands defined with IMPLEMENTOR=*PROCEDURE (...) or IMPLEMENTOR= *TPR(...,CMD-INTERFACE=STRING*,...) (see ADD-CMD).
RESULT-OPERAND-NAME = *UNCHANGED
No change with regard to the RESULT-OPERAND-NAME.
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 name specified.
RESULT-OPERAND-NAME = *POSITION(...)
In the transfer area (see section “Format of the standardized transfer area”) or in the string to be passed, the operand has a specified position. A name is not assigned to it.
POSITION = *UNCHANGED / <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(..., CMD-INTERFACE=*STRING,...) (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 = *UNCHANGED / *NO / <integer 1..20>
Specifies whether and, if so, how the operand is to be combined 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 take when concatenated must 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.
VALUE-OVERLAPPING = *UNCHANGED / *YES
Specifies whether overlapping of data types is to be permitted in the definition of the operand values. When the command or statement is input, SDF checks the value which has been entered, with the aid of the data type definitions and in the order they were specified for the operand. If the data type KEYWORD-(NUMBER) has been specified, SDF checks whether the entered value is unique with respect to further definitions of this type. In addition, SDF checks the attributes which have been defined (e.g. length, value range) for the entered value. If these attributes do not match, checking continues with the next data type defined. Overlapping of data types is supported starting with SDF Version 1.3. If a syntax file with the overlapping of data types is used in an older version of SDF, this leads to errors. A list of mutually exclusive data types can be found on ). If the overlapping of data types has been permitted for an operand, this overlapping cannot be canceled by the MODIFY-OPERAND statement (*NO cannot be specified). Modification is possible only by deleting the operand and then redefining it, along with its values.
OVERWRITE-POSSIBLE = *UNCHANGED / *NO / *YES
This is only relevant for statements, and for commands defined with IMPLE-MENTOR=*TPR(...,CMD-INTERFACE=*NEW/*TRANSFER-AREA,...); see the ADD-CMD statement. 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 = *UNCHANGED / *SAME / *EXCEPT(.....) /list-poss(64): <structured-name 1..30>
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.