Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

ADD-CMD Define command

&pagelevel(4)&pagelevel

The ADD-CMD statement is used to define, in the syntax file being processed, the global characteristics for a command, such as

  • the command name

  • the help text

  • the domain to which the command is to belong.

This command is then the “current” object. With the exception of RESULT-INTERNAL-NAME, all names assigned to the command must be unambiguously distinguishable within the overall set of commands.

BS2000 commands (implemented via system modules) can be defined only in a system or group syntax file.

The definitions of the operands and operand values pertaining to a command are placed in the syntax file by means of the ADD-OPERAND and ADD-VALUE statements, respectively, or by means of the COPY statement, rather than by using the ADD-CMD statement.

ADD-CMD

NAME = <structured-name 1..30>

,INTERNAL-NAME = *STD / <alphanum-name 1..8>

,RESULT-INTERNAL-NAME = *SAME / <alphanum-name 1..8>

,STANDARD-NAME = *NAME / *NO / list-poss(2000): *NAME / <structured-name 1..30>

,ALIAS-NAME = *NO / list-poss(2000): <structured-name 1..30>

,MINIMAL-ABBREVIATION = *NO / <structured-name 1..30>

,HELP = *NO / list-poss(2000): <name 1..1>(...)

<name 1..1>(...)

   TEXT = <c-string 1..500 with-low>

,DOMAIN = *NO / list-poss(2000): <structured-name 1..30>

,IMPLEMENTOR = *PROCEDURE(...) / *TPR(...) / *APPLICATION(...) / *BY-TPR(...)

*PROCEDURE(...)
   NAME = <c-string 1..280> / *BY-IMON(...)

*BY-IMON(...)
   LOGICAL-ID = <filename 1..30 without-cat-user-gen-vers>
  ,INSTALLATION-UNIT = <text 1..30 without-sep>
  ,VERSION = *STD / <product-version>
  ,DEFAULT-PATH-NAME = <filename 1..54>
  ,ELEMENT = *NONE / <composed-name 1..64>

  ,CALL-TYPE = *CALL-PROCEDURE / *INCLUDE-PROCEDURE / *ENTER-PROCEDURE
  ,CALL-OPTIONS = *NONE / <c-string 1..1800 with-low>
  ,UNLOAD-PROGRAM = *YES / *NO

*TPR(...)

ENTRY = <name 1..8>   
,INTERFACE = *ASS / *SPL / *ISL(...)

*ISL(...)
   VERSION = 1 / <integer 1..2>   

  ,CMD-INTERFACE = *STRING(...) / *TRANSFER-AREA(...) / *NEW(...)

*STRING(...)
   OUT-CMD-NAME = *SAME / <structured-name 1..30>

*TRANSFER-AREA(...)
   MAX-STRUC-OPERAND = *STD / <integer 1..3000>
  ,CMD-VERSION = *NONE / <integer 1..999>

*NEW(...)
   MAX-STRUC-OPERAND = *STD / <integer 1..3000>

  ,LOGGING = *BY-SDF / *BY-IMPLEMENTOR
  ,INPUT-FORM = *NONE / *INVARIANT / *STANDARD
  ,SCI = *NO / *YES

*APPLICATION(...)
   LOGGING = *BY-SDF / *BY-IMPLEMENTOR

*BY-TPR(...)
|   TPR-CMD = <structured-name 1..30>

,REMOVE-POSSIBLE = *YES / *NO

,DIALOG-ALLOWED = *YES(...) / *NO(...)

*YES(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

*NO(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

,DIALOG-PROC-ALLOWED = *YES(...) / *NO(...)

*YES(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

*NO(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

,GUIDED-ALLOWED= *YES(...) / *NO(...)

*YES(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

*NO(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

,BATCH-ALLOWED = *YES(...) / *NO(...)

*YES(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

*NO(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

,BATCH-PROC-ALLOWED = *YES(...) / *NO(...)

*YES(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

*NO(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

,CMD-ALLOWED = *YES(...) / *NO(...)

*YES(...)

  UNLOAD = *NO / *YES

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

*NO(...)

  PRIVILEGE= *SAME / list-poss(64): <structured-name 1..30>

,NEXT-INPUT = *CMD / *STMT / *DATA / *ANY

,PRIVILEGE= *ALL / *EXCEPT(...) / list-poss(64): <structured-name 1..30>

*EXCEPT(...)

  EXCEPT-PRIVILEGE = list-poss(64): <structured-name 1..30>

NAME = <structured-name 1..30>
(External) command name, to be specified when the command is entered. In contrast to STANDARD-NAME and ALIAS-NAME, the user may abbreviate this name when entering the command.

INTERNAL-NAME = *STD / <alphanum-name 1..8>
Internal command name. This name cannot be changed. With the help of the internal command name, SDF identifies a command defined in several syntax files under different external names as being the same command. If the command is implemented via system modules and transfer is formatted (IMPLEMENTOR=*TPR(...,CMD-
INTERFACE=*NEW/*TRANSFER-AREA,...)), the executing module knows the command by its internal name. Unless otherwise specified, SDF-A takes as the internal name the first eight characters (omitting hyphens) of the external name entered for the NAME operand.

RESULT-INTERNAL-NAME = *SAME / <alphanum-name 1..8>
This operand is of significance only for some of the commands implemented via system modules. Implementation via system modules is reserved for Fujitsu System Software Development. For this reason the RESULT-INTERNAL-NAME operand is not described here.

STANDARD-NAME = *NAME / *NO / list-poss: *NAME / <structured-name 1..30>Additional external command name, which may be alternatively used when entering the command. It must not be abbreviated when entered. In contrast to an ALIAS-NAME, a STANDARD-NAME cannot be deleted so long as the command with this name exists in one of the assigned reference syntax files (see OPEN-SYNTAX-FILE).

ALIAS-NAME = *NO / list-poss(2000): <structured-name 1..30>
Additional external command name, which can be alternatively used when the command is entered. 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 command name which defines the shortest permissible abbreviation for the command. Any shorter abbreviation will not be accepted, even if it is unambiguous with respect to other commands.
The following should be noted:

  1. 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 command but then rejects it because the abbreviation entered is shorter than the specified minimum abbreviation.

  2. The minimum abbreviation must be derived from the command name (NAME).

  3. The ALIAS-NAMEs and STANDARD-NAMEs of the command must not be shorter than the minimum abbreviation if they are an abbreviation of the command name.

  4. The minimum abbreviation may only be shortened - not lengthened - within a syntax file hierarchy.

HELP =
Specifies whether there are help texts for the command, 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.

DOMAIN = *NO / list-poss(2000): <structured-name 1..30>
Specifies whether the command is assigned to a domain, and if so, to which one.

IMPLEMENTOR =
Specifies how the command is implemented.

IMPLEMENTOR = *PROCEDURE(...)

The command is implemented via a procedure. Entering the command causes the procedure to be called.

NAME=
Name of the procedure to be called.

NAME = <c-string 1..280>
Name of the file containing the procedure.
If SDF-P is loaded, the name of a list variable containing the procedure may also be specified. A variable can be specified in the form ’*VARIABLE(VARIABLE-NAME=varname)’.
Library elements can be specified with
’*LIBRARY-ELEMENT(LIBRARY=library,ELEMENT=element)’
If ’library(element)’ is specified, the value of CALL-OPTIONS is ignored. This notation should therefore no longer be used.

It is the user’s responsibility to ensure that the string to specify the container of the procedure is correctly constructed. Errors made at this position can only be detected when the newly defined command is first called.

NAME = *BY-IMON(...)
The name of the procedure or of the library that contains this procedure as a library element is provided by calling IMON-GPN the installation path manager (see the “IMON” manual [13 (Related publications)]).

LOGICAL-ID = <filename 1..30 without-cat-user-gen-vers>
Logical name of the procedure or of the library that contains this procedure as a library element implementing the command, e.g. SYSSPR.

INSTALLATION-UNIT =<text 1..30 without-sep>
Name of the installation unit, e.g. SDF-A.

VERSION = *STD / <product-version>
Version of the installation unit (see also “product-version” (SDF syntax description) and "ADD-VALUE Define operand value").

When *STD is specified, the version which was selected using the command SELECT-PRODUCT-VERSION is used. If this command has not yet been carried out for the relevant installation unit, the highest version is used.

DEFAULT-PATH-NAME = <filename 1..54>
Full file name of a procedure which is called if IMON-GPN is not available or if LOGICAL-ID, INSTALLATION-UNIT or VERSION is not recognized in the system. If the procedure is stored in a library element, the file name specified here designates the library from which the procedure specified in the ELEMENT operand is called.
In the case of other errors the command is rejected with an error message, i.e. the procedure specified here is not called.

ELEMENT = *NONE / <composed-name 1..64>
Specifies if the procedure is stored in a library element.

ELEMENT = <composed-name 1..64>
Name of the library element that contains the procedure. The element name is passed to IMON-GPN.

CALL-TYPE = *CALL-PROCEDURE / *INCLUDE-PROCEDURE / *ENTER-PROCEDURE
Defines whether the procedure is called with CALL-PROCEDURE or INCLUDE-PROCEDURE or ENTER-PROCEDURE. CALL-PROCEDURE and ENTER-PROCEDURE can be used to call S procedures as well as non S procedures; INCLUDE-PROCEDURE can only be used to call S procedures (see also the manuals “SDF-P” [12 (Related publications)] and “Commands” [4 (Related publications)]).

Example:
To call the procedure with
CALL-PROCEDURE NAME=*LIB-ELEM(LIBRARY=xxx,ELEMENT=yyy) the command must be defined as follows:

ADD-CMD ...,IMPLEMENTOR=*PROC(NAME=’*LIB-ELEM(LIBRARY=xxx,
ELEMENT=yyy)’,CALL-TYPE=*CALL-PROCEDURE...

CALL-OPTIONS = *NONE / <c-string 1..1800 with-low>
Specifies a character string containing additional operands (e.g. LOGGING) for the procedure call (using CALL-PROCEDURE, INCLUDE-PROCEDURE or ENTER-PROCEDURE) in the following format:

CALL-OPTIONS=’operandx=valuex,operandy=valuey,...’.

This character string must not contain the PROCEDURE-PARAMETERS operand of the CALL-PROCEDURE, INCLUDE-PROCEDURE or ENTER-PROCEDURE command.

UNLOAD-PROGRAM = *YES / *NO
Specifies if a program is to be unloaded when the command defined in the NAME operand is executed in the program via the CMD macro.
The procedure called may not contain any commands defined with CMD-ALLOWED= *YES(UNLOAD=*YES), and in particular no TU program may be called in the procedure.

IMPLEMENTOR = *TPR(...)
The command is implemented via system modules. This alternative for implementing commands is reserved for Fujitsu System Software Development. For this reason, the structure *TPR(...) is not described here.

IMPLEMENTOR = *APPLICATION(...)
The command is generated by a $CONSOLE application. This option is reserved for system administration. The prerequisites for its use are described in the manual “Introductory Guide to Systems Support” [6] (Related publications). The required commands CONNECT-CMD-SERVER and DISCONNECT-CMD-SERVER are detailed in the “Commands” [4 (Related publications)] manual.

LOGGING = *BY-SDF / *BY-IMPLEMENTOR
The operand is reserved for Fujitsu System Software Development. For this reason, it is not described here.

IMPLEMENTOR = *BY-TPR(...)
An existing command serves as the basis for the new command.

TPR-CMD = <structured-name 1..30>
Name of a command defined with IMPLEMENTOR=*TPR(...) which is known in the syntax file hierarchy.

Example:
The user syntax file is opened and if necessary positioned using EDIT, and a new X-SET-PROCEDURE-DIALOG command is defined using the following statements:

//ADD-CMD X-SET-PROCEDURE-DIALOG,-
//IMPLEMENTOR=*BY-TPR(TPR-CMD=MODIFY-SDF-OPTIONS),PRIVIL=*STD-PROCESSING
//COPY *COMMAND(MODIFY-SDF-OPTIONS),FROM-FILE=$.SYSSDF.SDF.041(*SYSTEM),-
//ATTACHED-INFO=*ONLY
//EDIT *OPERAND(PROCEDURE-DIALOG,ORIGIN=*COMMAND(X-SET-PROCEDURE-DIALOG))
//MODIFY-OPERAND DEFAULT='*YES'
//END

After the user syntax file processed in this way, the user can use the new commands. The two following commands now act identically:

/X-SET-PROC-DIALOG
/MODIFY-SDF-OPTIONS PROCEDURE-DIALOG=*YES

REMOVE-POSSIBLE = *YES / *NO
Specifies whether the command may be deleted (see the description of the REMOVE statement, "REMOVE Delete objects from syntax file").

DIALOG-ALLOWED =
Specifies whether the command is allowed in interactive mode.

DIALOG-ALLOWED = *YES(...)
The command is allowed in interactive mode for all user tasks which have at least one of the privileges specified for PRIVILEGE.

PRIVILEGE =
The command is allowed for all user tasks with the privileges specified here(possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command is allowed for user tasks with exactly the same privileges as those defined for the command itself (see the PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is only allowed for user tasks that have the privileges defined in this list.

DIALOG-ALLOWED = *NO(...)
The command is not allowed in interactive mode for user tasks which have only the privileges specified for PRIVILEGE.

PRIVILEGE =
The command is not allowed for user tasks with the privileges specified here(possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME

The command is not allowed for user tasks with exactly the same privileges as those defined for the command itself (see the EXCEPT-PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is not allowed for user tasks with the privileges defined in this list. If a user task has at least one privilege that is not included in this list, it may execute the command.

DIALOG-PROC-ALLOWED =
Specifies whether the command is allowed in interactive mode within a procedure.

DIALOG-PROC-ALLOWED = *YES(...)

The command is allowed in interactive mode within a procedure for all user tasks which have at least one of the privileges specified for PRIVILEGE.

PRIVILEGE =
The command is allowed for all user tasks with the privileges specified here (possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command is allowed for user tasks with exactly the same privileges as those defined for the command itself (see the PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is only allowed for user tasks with the privileges defined in this list.

DIALOG-PROC-ALLOWED = *NO(...)
The command is not allowed in interactive mode within a procedure for user tasks which have only the privileges specified for PRIVILEGE.

PRIVILEGE =
The command is not allowed for user tasks with the privileges specified here (possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command is not allowed for user tasks with exactly the same privileges as those defined for the command itself (see the EXCEPT-PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is not allowed for user tasks with the privileges defined in this list. If a user task has at least one privilege that is not included in this list, it may execute the command.

GUIDED-ALLOWED =
Specifies whether the command is allowed in guided dialog.

GUIDED-ALLOWED = *YES(...)

The command is allowed in guided dialog for all user tasks which have at least one of the privileges specified for PRIVILEGE.

PRIVILEGE =
The command is allowed for all user tasks with the privileges specified here (possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command is allowed for user tasks with exactly the same privileges as those defined for the command itself (see the PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is allowed only for the privileges defined in this list.

GUIDED-ALLOWED = *NO(...)
The command is not allowed in guided dialog for user tasks which have only the privileges specified for PRIVILEGE.

PRIVILEGE =
The command is not allowed for user tasks with the privileges specified here (possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command is not allowed for user tasks with exactly the same privileges as those defined for the command itself (see the EXCEPT-PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is not allowed for user tasks with the privileges defined in this list. If a user task has at least one privilege that is not included in this list, it may execute the command.

BATCH-ALLOWED =
Specifies whether the command is allowed in batch mode.

BATCH-ALLOWED = *YES(...)

The command is permitted in batch mode for all user tasks which have at least one of the privileges specified for PRIVILEGE.

PRIVILEGE =
The command is allowed for all user tasks with the privileges specified here (possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command is allowed for user tasks with exactly the same privileges as those defined for the command itself (see the PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is only allowed for user tasks with the privileges defined in this list.

BATCH-ALLOWED = *NO(...)
The command is not permitted in batch mode for user tasks which have only the privileges specified for PRIVILEGE.

PRIVILEGE =
The command is not allowed for user tasks with the privileges specified here(possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command is not allowed for user tasks with exactly the same privileges as those defined for the command itself (see the EXCEPT-PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is not allowed for user tasks with the privileges defined in this list. If a user task has at least one privilege that is not included in this list, it may execute the command.

BATCH-PROC-ALLOWED =
Specifies whether the command is allowed in batch mode within a procedure.

BATCH-PROC-ALLOWED = *YES(...)
The command is permitted in batch mode within a procedure for all user tasks which have at least one of the privileges specified for PRIVILEGE.

PRIVILEGE =
The command is allowed for all user tasks with the privileges specified here(possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command is allowed for user tasks with exactly the same privileges as those defined for the command itself (see the PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is only allowed for user tasks with the privileges defined in this list.

BATCH-PROC-ALLOWED = *NO(...)
The command is not permitted in batch mode within a procedure for user tasks which have only the privileges specified for PRIVILEGE.

PRIVILEGE =
The command is not allowed for user tasks with the privileges specified here(possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command is not allowed for user tasks with exactly the same privileges as those defined for the command itself (see the EXCEPT-PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is not allowed for user tasks with the privileges defined in this list. If a user task has at least one privilege that is not included in this list, it may execute the command.

CMD-ALLOWED =
Specifies whether the command can be called with the CMD macro.

CMD-ALLOWED = *YES(...)
The command can be called with the CMD macro. Calling with the CMD macro is permitted for all user tasks which have at least one of the privileges specified for PRIVILEGE. Possible restrictions as to the permissible modes of operation (DIALOG-ALLOWED, DIALOG-PROC-ALLOWED, BATCH-ALLOWED, BATCH-PROC-ALLOWED) do not apply when the command is called with the CMD macro.

UNLOAD = *NO / *YES
Specifies whether the calling program is to be unloaded. For commands implemented via a command procedure the calling program is always unloaded. Whether or not the calling program is unloaded is defined in this case in the UNLOAD-PROGRAM operand (see the IMPLEMENTOR= PROCEDURE(...) operand, "ADD-CMD Define command").

PRIVILEGE =
The command may be called by user tasks with the privileges specified here(possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command may be called by user tasks with exactly the same privileges as those defined for the command itself (see the PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is only allowed for user tasks with the privileges defined in this list.

CMD-ALLOWED = *NO(...)
Calling the command with the CMD macro is not permitted for user tasks which have only the privileges specified for PRIVILEGE.

PRIVILEGE =
The command cannot be called by user tasks with the privileges specified here(possible privileges are listed in the “SECOS” manual [10 (Related publications)]).

PRIVILEGE = *SAME
The command cannot be called by user tasks with exactly the same privileges as those defined for the command itself (see the EXCEPT-PRIVILEGE operand on "ADD-CMD Define command").

PRIVILEGE = list-poss(64): <structured-name 1..30>
The command is not allowed only for the privileges defined in this list.

NEXT-INPUT =
Specifies what type of input is to follow the command. SDF needs this specification to conduct the guided dialog.

NEXT-INPUT = *CMD
A command is expected as the next entry. SDF interprets input in the NEXT field of the guided dialog as a command.

NEXT-INPUT = *STMT

A statement is expected as the next entry. SDF interprets input in the NEXT field of the guided dialog as a statement.
Example: A command implemented by means of a procedure starts a program whose first step is to read in a statement.

NEXT-INPUT = *DATA
Data is expected as the next entry. SDF interprets input in the NEXT field of the guided dialog as data.
Example: A command implemented by means of a procedure starts a program whose first step is to read in data.

NEXT-INPUT = *ANY
It is not possible to predict what type of input will follow.

PRIVILEGE =
Specifies the privileges assigned to the command.

PRIVILEGE = *ALL
All privileges currently defined and all subsequently defined privileges are assigned to the command.

PRIVILEGE = *EXCEPT(...)
With the exception of those defined with *EXCEPT(...), all privileges currently defined and all subsequently defined privileges are assigned to the command.

EXCEPT-PRIVILEGE = list-poss(64): <structured-name 1..30>
Specifies the privileges that are not assigned to the command.

PRIVILEGE = list-poss(64): <structured-name 1..30>
Only the privileges specified in this list are assigned to the command.