INDIRECT EXEC Statement
Because of the z/OS 256-byte limitation on scheduling scripts to run in the started task, to pass more than 256 bytes to a script running in the started task, for example passing several long data set names, can be problematic. The platform server addresses these situations through the use of an indirection file that may contain one or more parameters and the data set name of the script to execute that, in aggregate, exceed 256 bytes.
The platform server post processing actions (PPAs) can use an indirection file residing on the z/OS system where the file is to be executed (rather than an actual script file) by including the INDIRECT=YES statement.
The format of the statement is INDIRECT={YES | DELETE | NO}.
Where:
- YES: indicates that the data in the defined data set is not the actual script to run but is the data set whose contents contain the name of the script to run and the required parameters.
- DELETE: indicates that the data in the defined data set is not the actual script to run but is the data set whose contents contain the name of the script to run and the required parameters. When DELETE is specified, the script program deletes that same data set when the script is completed.
- NO: indicates that the data in the defined data set is the actual script to run.
The indirect data set that contains the script name and necessary parameters is built into a single record separating each item with commas.
Scripts are most frequently launched through remote execution statements such as a PPA (for details, see the descriptions of thePOST_ACTION parameter in Batch Interface) where the INDIRECT parameter might be most useful. Another frequent occurrence is when you queue a script through the FUSSCRPT REXX exec.
The following figure shows an example transfer of a UNIX platform uploading a data file that contains the name of the script to be run with the various values to be passed to that script located on the remote z/OS platform: