We hit a JCL flush on our IF and COND JCL statements.
Tested the following.
JOB1
//ESPCCCHK EXEC PGM=CYBES080,PARM=ESPGRPI ==== RC=0
//STEPLIB DD DISP=SHR,DSN=your.ESP.loadlib.CD7YLOAD
// DD DISP=SHR,DSN=your.loadlib
//SYSPRINT DD SYSOUT=(,)
//SYSIN DD *
//STEP10 EXEC PGM=IDCAMS ==== RC=12
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
// IF STEP10.RC EQ 12 THEN ==== FLUSH
//STEP20 EXEC PGM=IDCAMS,COND=(0000,EQ)
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
// ENDIF
JOB2
//ESPCCCHK EXEC PGM=CYBES080,PARM=ESPGRPI ==== RC=0
//STEPLIB DD DISP=SHR,DSN=your.ESP.loadlib.CD7YLOAD
// DD DISP=SHR,DSN=your.loadlib
//SYSPRINT DD SYSOUT=(,)
//SYSIN DD *
//STEP10 EXEC PGM=IDCAMS ==== RC=12
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
// IF STEP10.RC EQ 12 THEN
//STEP20 EXEC PGM=IDCAMS ==== RC=12 (COND=) statement removed
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
// ENDIF
This is standard MVS JCL but impacted a job where ESP places a CCCHK step into STEP1 which always give RC=0.
Using JCL COND statements and IF statements together is RISKY at best.
JCL IF and COND statement conflict.
ESP not involved. JCL is working as designed.
For samples and details please refer attached document Condition Code Tests.