Subcommands may be declared in a PDF. A subcommand determines the variables associated with a collection of given invocation of the proc. A subcommand name has fifteen or fewer characters.
For example, consider the hypothetical TAPE command's PDF:
PROCESS
PARM INTAPE TYPE=(STRING, 10)
SUBCMD COPY
PARM OUTTAPE TYPE=(STRING, 10)
PARM FILES TYPE=INTEGER DEFAULT=1
PARM ERROR TYPE=(STRING,12) DEFAULT=CONTINUE+
VALID=(STOP, CONTINUE, REPORT)
END-SUBCMD
SUBCMD REWIND
END-SUBCMD
SUBCMD SPACE
PARM FILES TYPE=INTEGER DEFAULT=1
LOCAL I TYPE=INTEGER
END-SUB CMD
END-PROC
The SUBCMD and END-SUBCMD commands bracket the parameters associated with a given subcommand. Because the declaration of the INTAPE parameter is outside SUBCMD/END-SUBCMD brackets, it is a parameter common to all subcommands.
Examples of TCL references to the TAPE proc are:
TAE> TAPE-REW INTAPE=MTA5 TAE> TAPE-COPY MTA5,MTA2,25,STOP TAE> TAPE-SPACE INTAPE=HTA5, FILES=1O TAE> TUTOR TAPE-REWIND TAE> TUTOR TAPE
In the TAPE example there is no default subcommand; the default must be explicitly specified. The SUBCMD-DEFAULT command (e.g., "SUBCMD-DEFAULT COPY") declares the "default" subcommand. The default subcommand is assumed when the subcommand specifier is omitted in a reference to the proc.