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.
    Note: DELETE can only be defined when the data set name is not contained in a DSN containing a member name.
  • 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.

Note: The fully-qualified data set name of the script must be defined first, as shown in the following figure:

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:

Note: The new PPA program, PPASCRPT, is used in this example. See PPA Program: PPASCRPT for more details about the program.