Examples of the INCLUDE statement:

The following examples show INCLUDE statement usage:

  1. The following INCLUDE group is defined in member SYSOUT2 of private library CAMPBELL.SYSOUT.JCL.
    //*  THIS INCLUDE GROUP IS CATALOGED AS...
    //*  CAMPBELL.SYSOUT.JCL(SYSOUT2)
    //SYSOUT2  DD      SYSOUT=A
    //OUT1     OUTPUT  DEST=POK,COPIES=3
    //OUT2     OUTPUT  DEST=KINGSTON,COPIES=30
    //OUT3     OUTPUT  DEST=MCL,COPIES=10
    //*  END OF INCLUDE GROUP...
    //*  CAMPBELL.SYSOUT.JCL(SYSOUT2)
    The system executes the following program:
    //TESTJOB  JOB  ...
    //LIBSRCH  JCLLIB  ORDER=CAMPBELL.SYSOUT.JCL
    //STEP1    EXEC    PGM=OUTRTN
    //OUTPUT1  INCLUDE MEMBER=SYSOUT2
    //STEP2    EXEC    PGM=IEFBR14

    The JCLLIB statement specifies that the system is to search private library CAMPBELL.SYSOUT.JCL for the INCLUDE group SYSOUT2 before it searches any system libraries.

    After the system processes the INCLUDE statement, the JCL stream appears as:
    //TESTJOB  JOB  ...
    //LIBSRCH  JCLLIB  ORDER=CAMPBELL.SYSOUT.JCL
    //STEP1    EXEC    PGM=OUTRTN
    //*  THIS INCLUDE GROUP IS CATALOGED AS...
    //*  CAMPBELL.SYSOUT.JCL(SYSOUT2)
    //SYSOUT2  DD      SYSOUT=A
    //OUT1     OUTPUT  DEST=POK,COPIES=3
    //OUT2     OUTPUT  DEST=KINGSTON,COPIES=30
    //OUT3     OUTPUT  DEST=MCL,COPIES=10
    //*  END OF INCLUDE GROUP...
    //*  CAMPBELL.SYSOUT.JCL(SYSOUT2)
    //STEP2    EXEC    PGM=IEFBR14

    The system imbeds the INCLUDE group in the JCL stream (replacing the INCLUDE statement), and processes the included JCL statements with the JCL stream.

  2. The following example shows the use of the SET statement to assign values to symbolic parameters in an INCLUDE group.
    //*  THIS INCLUDE GROUP IS CATALOGED AS...
    //*  LAMAN.SYSOUT.JCL(SYSOUT2)
    //SYSOUT2  DD      SYSOUT=A
    //OUT1     OUTPUT  DEST=POK,COPIES=3
    //OUT2     OUTPUT  DEST=&AA,COPIES=&NC
    //OUT3     OUTPUT  DEST=&BB,COPIES=10
    //*  END OF INCLUDE GROUP...
    //*  LAMAN.SYSOUT.JCL(SYSOUT2)
    The following program is executed.
    //JOBA     JOB  ...
    //LIBS     JCLLIB  ORDER=LAMAN.SYSOUT.JCL
    //SET1     SET     AA=KINGSTON,BB=STL,NC=10
    //STEP1    EXEC    PGM=OUTRTN
    //OUTPUT1  INCLUDE MEMBER=SYSOUT2
    //STEP2    EXEC    PGM=IEFBR14

    The SET statement, which is easy to change for different jobs, assigns values to the symbolic parameters in INCLUDE group SYSOUT2.

    After the system processes the INCLUDE statement, it executes the JCL stream as:
    //JOBA     JOB  ...
    //LIBS     JCLLIB  ORDER=LAMAN.SYSOUT.JCL
    //STEP1    EXEC    PGM=OUTRTN
    //*  THIS INCLUDE GROUP IS CATALOGED AS...
    //*  LAMAN.SYSOUT.JCL(SYSOUT2)
    //SYSOUT2  DD      SYSOUT=A
    //OUT1     OUTPUT  DEST=POK,COPIES=3
    //OUT2     OUTPUT  DEST=KINGSTON,COPIES=10
    //OUT3     OUTPUT  DEST=STL,COPIES=10
    //*  END OF INCLUDE GROUP...
    //*  LAMAN.SYSOUT.JCL(SYSOUT2)
    //STEP2    EXEC    PGM=IEFBR14

    The system imbeds the INCLUDE group in the JCL stream (replacing the INCLUDE statement), and assigns the values to the symbolic parameters in the INCLUDE group.

  3. The following example shows a JES instream data set within an INCLUDE statement:
    //INCLUDE   MEMBER=HELLO 
    //STEPA     EXEC  PGM=IEBGENER
    //SYSIN     DD    DUMMY 
    //SYSPRINT  DD    SYSOUT=A 
    //SYSUT2    DD    SYSOUT=A 
    //SYSUT1    DD    DATA  
    HELLO WORLD  
    /*