CICS uses transaction identifiers associated with programs to determine which programs to execute. REXX/CICS uses a table created by the REXX/CICS command, DEFTRNID, to associate CICS transaction identifiers with specific REXX execs. The CICS transaction identifier associated with the REXX/CICS supplied exec, CICRXTRY, is known as the default REXX/CICS transaction identifier. The supplied default is REXX. If REXX is entered from a CICS screen alone, the CICRXTRY exec is started. If other operands are specified, for example: REXX MYEXEC ABC, the exec MYEXEC is started and ABC is passed to it as an argument. CICS transaction identifiers other than the REXX/CICS default transaction identifier cause the associated exec to be started and any other operands are passed as an argument to the exec. For example: EDIT TEST.EXEC causes the REXX/CICS editor exec, CICEDIT, to start and TEST.EXEC, the argument, names the file to edit or create. All REXX/CICS transaction identifiers must have CICS definitions which associate them with the REXX/CICS main module, CICREXD.
REXX/CICS execs may be started using the CICS START command. The START command names the CICS transaction identified to start and the table created by the REXX/CICS DEFTRNID command names the exec to start. If the exec is CICRXTRY and CICS start data is present, the first operand names the exec to start and any other operands are passed to the exec as an argument. If no start data is present, then CICRXTRY is started. For execs other than CICRXTRY, start data is passed to the exec as an argument. Usually, REXX/CICS execs have a terminal associated with them. However, if a REXX/CICS exec does not have a terminal associated to the transaction, any terminal output is either discarded or directed to a CICS temporary storage queue as specified by the REXX/CICS SET TERMOUT command. An error is generated if terminal input is requested for a transaction for which no terminal is associated.
The REXX/CICS interface program CICREXD may be invoked using the CICS LINK or XCTL command. A COMMAREA must be passed to the interface program when invoked in this way. The COMMAREA must contain operands that name the exec to start and an argument to be passed. The exec name is expected as the first blank delimited token in the COMMAREA.