DEFCMD
DEFCMD defines (or redefines) REXX user commands.
Operands
- etarget
- is the 1 to 8 character name of the external target environment
you used in a REXX exec issuing this command. This is the external
environment name that you directed the command string to. This environment
name is looked up in a table and together with the command name determines
which REXX program the command string is directed to for processing.
Note: The external target can match the environment name on the ADDRESS keyword instruction or, if REXXCICS is the current environment (the default condition), can be specified as the first token of the command string.
- ecmdnm
- is the first command name token that you used issuing this command. This is the first word of the command name as it is known to you. If a special value of asterisk (*) is specified (as part of this definition), then all commands that you issued with an environment name of etarget and that are not more explicitly defined elsewhere, are covered by this command definition. Command names may be up to 16 characters long.
- itarget
- specifies an internal environment name that this command definition
passes to the agent that processes the command string. This is needed
so that the external environment names known to you can be redefined
without breakage of the agents that process these commands. If the
internal and external names are identical, then there is no need for
you to specify the internal name. A special value of
=
indicates that itarget is the same as etarget. - icmdnm
- is the first word of the internal command name. This is the first
part of the command name that is passed to the REXX command agent
to specify what command is processed. This is specified only if it
is different from ecmdnm. A special value
of
=
indicates that icmdnm is the same as ecmdnm. - pgmname
- specifies the CICS program that is called by an EXEC CICS LINK to process the command.
- CICS_loadmod
- specifies the name of the CICS program called because the CICSLOAD option was specified.
Note: The program is loaded only on the first instance of a command and its address is remembered for subsequent commands.
- execname
- specifies the exec called as a REXX command server processing this command (or commands). If this server exec is already running, this command is routed to the executing server. If a REXX server by this name is not running, Automatic Server Initiation (ASI) is used to start the server automatically. The execname can be either a file name (where the file type defaults to EXEC) or it can be in the form filename.filetype.
- CICSLINK
- is a keyword indicating that the processing agent for the defined REXX command is a standard CICS program that is called by an EXEC CICS LINK.
- CICSLOAD
- is a keyword indicating that the processing agent is a CICS program that is loaded by an EXEC CICSLOAD.
- REXX
- is a keyword indicating that the processing agent for this REXX command is a REXX exec that operates as a command server.
- AUTH
- This is an authorized option.
This is a keyword indicating that this is an authorized REXX/CICS command. It is a command that can be executed only by an authorized REXX/CICS user (specified on AUTHUSER command) or from within an exec loaded from an authorized library.
- CLEAR
- is a keyword indicating that the purpose of this DEFCMD is to clear any previous definitions for the specified external target environment and command names.
Return codes
- 0
- Normal return
- 1001
- Invalid command
- 1021
- Cannot load program
- 1023
- Entry not found
- 1048
- No client available
- 1099
- Internal error
Example
'DEFCMD CICS SEND = = SENDPGM (CICSLINK'This
example defines a command called SEND for this user only. The user
can issue this command, under the default command environment of REXXCICS,
by entering:
'CICS SEND arg1 arg2 ... argn'This
example shows program SENDPGM being called by an EXEC CICS LINK command
to process this command.Note:
- When the REXX/CICS environment name is REXXCICS (which is the default when all execs or macros are called), the first token of the command string is the environment name that could have been used with an ADDRESS environment REXX instruction. This provides a more integrated command environment and removes the need for constant environment switching by ADDRESS instructions.
- The calling and parameter passing sequences for command programs receiving control by an EXEC CICS LINK and an Assembler BASSM instruction (the CICSLOAD option) are similar. Refer to REXX/CICS Command Definition for more information on writing command programs.
- You can use DEFCMD to tailor a user's command set dynamically on a user by user, or application by application basis. DEFCMD commands can be placed in the user's PROFILE EXEC or in application execs. DEFCMD can also be used to override system command definitions.
DEFCMD REXXCICS *is not allowed.- User command definitions are searched before system command definitions (except for DEFCMD, which cannot be overridden).
- REXX commands can be written in REXX. These REXX commands in turn call other REXX commands which are written in REXX, in a building block fashion. Since DEFCMD hides the implementation detail from the REXX user (programmer), a command can be quickly written in REXX and later transparently rewritten in another language, if it becomes performance critical.
