根据你的定点标准,你的选择是编写基于步骤的COND(你已经知道了)或使用IF…然后。。。否则。。。ENDIF语句围绕您希望根据返回代码阻止运行的步骤块。IF是
许多的
虽然COND更冗长,但比COND更容易编码和阅读。
例如,此作业使用IDCAMS通过SET LASTCC命令强制返回代码。下划线是一个最大为16的整数,任何更大的值都会产生16。
我用2个IF…ENDIF块包裹了步骤。请参阅下文,了解使用触发每个结果的RC的输出。
Command ===> Scroll ===> CSR
000001 //MYJOB JOB (AA-1234),MYJOB,CLASS=P,MSGCLASS=X,REGION=0M,
000002 // NOTIFY=&SYSUID
000003 //*
000004 //STEP1 EXEC PGM=IDCAMS
000005 //SYSPRINT DD SYSOUT=*
000006 //SYSIN DD *
000007 SET LASTCC=_
000008 /*
000009 //IF1 IF RC EQ 0 THEN
000010 //STEP2 EXEC PGM=IDCAMS
000011 //SYSPRINT DD SYSOUT=*
000012 //SYSIN DD *
000013 SET LASTCC=_
000014 /*
000015 //IF2 IF STEP2.RC LT 8 THEN
000016 //STEP3 EXEC PGM=IEFBR14
000017 //STEP4 EXEC PGM=IEFBR14
000018 //STEP5 EXEC PGM=IEFBR14
000019 //EIF2 ENDIF
000020 //EIF1 ENDIF
****** ******************************** Bottom of Data ********************************
将产生以下结果:
当我将STEP1的LASTCC值设置为4,将STEP2设置为
任何
:
14.03.41 JOB26149 IEF403I MYJOB - STARTED - TIME=14.03.41
14.03.41 JOB26149 GSDMV20I -JOBNAME STEPNAME PROCSTEP CCODE ELAPSED-TIME CPU-TIME STEPNO
14.03.41 JOB26149 GSDMV21I -MYJOB STEP1 4 00:00:00 0.02S 1
14.03.41 JOB26149 GSDMV21I -MYJOB STEP2 FLUSH 00:00:00 0.00S 2
14.03.41 JOB26149 GSDMV21I -MYJOB STEP3 FLUSH 00:00:00 0.00S 3
14.03.41 JOB26149 GSDMV21I -MYJOB STEP4 FLUSH 00:00:00 0.00S 4
14.03.41 JOB26149 GSDMV21I -MYJOB STEP5 FLUSH 00:00:00 0.00S 5
14.03.41 JOB26149 IEF404I MYJOB - ENDED - TIME=14.03.41
14.03.41 JOB26149 $HASP395 MYJOB ENDED - RC=0004
当我将STEP1的LASTCC值设置为0,将STEP2设置为4时:
14.02.40 JOB26136 IEF403I MYJOB - STARTED - TIME=14.02.40
14.02.40 JOB26136 GSDMV20I -JOBNAME STEPNAME PROCSTEP CCODE ELAPSED-TIME CPU-TIME STEPNO
14.02.40 JOB26136 GSDMV21I -MYJOB STEP1 0 00:00:00 0.03S 1
14.02.41 JOB26136 GSDMV21I -MYJOB STEP2 4 00:00:00 0.02S 2
14.02.41 JOB26136 GSDMV21I -MYJOB STEP3 0 00:00:00 0.00S 3
14.02.41 JOB26136 GSDMV21I -MYJOB STEP4 0 00:00:00 0.00S 4
14.02.41 JOB26136 GSDMV21I -MYJOB STEP5 0 00:00:00 0.00S 5
14.02.41 JOB26136 IEF404I MYJOB - ENDED - TIME=14.02.41
14.02.41 JOB26136 $HASP395 MYJOB ENDED - RC=0004
当我将STEP1的LASTCC值设置为0,将STEP2设置为8时:
13.59.41 JOB25747 IEF403I MYJOB - STARTED - TIME=13.59.41
13.59.41 JOB25747 GSDMV20I -JOBNAME STEPNAME PROCSTEP CCODE ELAPSED-TIME CPU-TIME STEPNO
13.59.41 JOB25747 GSDMV21I -MYJOB STEP1 0 00:00:00 0.03S 1
13.59.41 JOB25747 GSDMV21I -MYJOB STEP2 8 00:00:00 0.01S 2
13.59.41 JOB25747 GSDMV21I -MYJOB STEP3 FLUSH 00:00:00 0.00S 3
13.59.41 JOB25747 GSDMV21I -MYJOB STEP4 FLUSH 00:00:00 0.00S 4
13.59.41 JOB25747 GSDMV21I -MYJOB STEP5 FLUSH 00:00:00 0.00S 5
13.59.41 JOB25747 IEF404I MYJOB - ENDED - TIME=13.59.41
13.59.41 JOB25747 $HASP395 MYJOB ENDED - RC=0008
希望这在某种程度上有所帮助。