Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to JCL Utilities
JCL Utilities | Advanced | JCL

Multi-Step Job with Dependencies

Problem Description

Create job where step execution depends on previous step outcome.

Expected Output

Conditional step execution flow

Hints

Use IF/THEN/ELSE/ENDIF for modern conditional JCL.

Solution

//MULTISTEP JOB (ACCT),CLASS=A,MSGCLASS=X //* //STEP1 EXEC PGM=EXTRACT //INPUT DD DSN=MY.INPUT.FILE,DISP=SHR //OUTPUT DD DSN=MY.EXTRACT.FILE, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,5)) //SYSPRINT DD SYSOUT=* //* //* IF STEP1 completes successfully (RC=0) // IF STEP1.RC = 0 THEN //* //STEP2 EXEC PGM=SORT //SORTIN DD DSN=MY.EXTRACT.FILE,DISP=SHR //SORTOUT DD DSN=MY.SORTED.FILE, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,5)) //SYSIN DD * SORT FIELDS=(1,10,CH,A) /* //* // ENDIF //* //* IF any previous step failed // IF STEP1.RC > 0 OR STEP2.RC > 0 THEN //* //ERROR EXEC PGM=NOTIFY //SYSIN DD * JOB FAILED - CHECK LOGS /* //* // ENDIF //* //CLEANUP EXEC PGM=IEFBR14,COND=(0,NE) //* This runs if all previous steps had RC=0 //

Explanation:

IF/THEN/ELSE/ENDIF is cleaner than COND parameter for complex logic.