Pseudo-JCL syntax

The build scripts for z/OS® contain pseudo-JCL.

Pseudo-JCL used by the z/OS® build server is similar to standard JCL in appearance, with some extensions and restrictions. In this topic, a line of script (a line of pseudo-JCL) is referred to as a card.

These are the major differences between the pseudo-JCL that is used in z/OS® build scripts and the JCL that is used to submit an z/OS® job:

  • Pseudo-JCL has no job card.
  • All cards must start with two forward slashes (//), except for in-stream data.
  • You can map a data set to input files that are sent from a build client or to files that are to be returned to a build client as output files. (The keyword CCUEXT is an extension for DD statements that supports this mapping.)
  • You can use the ENQ extension on a DD card to enqueue on the name of the data set allocated by the DD card.
  • You can supply default values for substitution variables that are used within the build script. (The VARS statement supports this.) Thus you can write a generic script and modify it for a particular build by setting the substitution variables.
  • You have more flexibility in specifying conditions for running a job. For example, the method of specifying multiple conditions on which a step is to be run is different from that of actual JCL.
  • The build script contains one or more job steps. The execution of a job step can be dependent on the result of a prior step, using the COND parameter as in standard JCL with one difference: In pseudo-JCL, if you want to specify conditions on more than one step of the job, you specify a COND= keyword for each condition.
The following types of cards are supported:
CALL
Defines a new job step and specify an external JCL job to run.
EXEC
Defines a new job step and the name of the program to run.
DD
Defines the definitions for input and output files.
IF, ELSE, ENDIF
Controls statements that are included.
IF
Specifies the condition and is the start of the conditional statements.
ELSE
Specifies what is done, if the condition is not true.
ENDIF
Indicates the end of the conditional statements.
VARS
Specifies default values for substitution values.