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.