EXEC语句中的PARM
EXEC语句有两个位置参数,PGM和PROC,每条EXEC语句必须有且仅有其中一个
一、PARM参数
//STEP1 EXEC PGM=UPDT,PARM='P1,123'
//STEP2 EXEC DSNAME=SYS1.LINKLIB(P40),DISP=OLD
//STEP3 EXEC PGM=*.STEP2.DDA
用于向本作业步执行的程序中传递变量信息,ASM或者COBOL程序中会有一个区域,专门用来接收这些信息。
子参数:包含传递给程序的变量信息,这个参数的长度低于100,这个在FOLLOW图中可以直观的表示
//STEP6 EXEC PROC=ASFCLG,PARM.LKED=(MAP,LET)
系统中,将MAP,LET参数传递给过程ASFCLG中名为LKED的过程步
二、COND参数
因为BATCH是一个作业流嘛,不是说一串作业流的执行是嘎嘎顺利的,所以有些后续作业步的执行与否,要依赖于先头JOB传递过来的参数。这些参数也可以用一些返回值代替,会有一些RETURN CODE。一般这些正常的CODE,都不太会看。对**特定的CODE编辑一些测试条件,如果满足条件,那么不进行特别作业步的执行;如果不满足条件,那么启动应急预案,执行特别作业。**如果我们SUB过很多JCL的话,会发现,这些代码种类非常的多,千奇百怪,code:取值范围是0-4096,code后面跟的操作符是:GT,大于;GE,大于等于;EQ,等于;NE,不等于;LT,小于;LE,小于等于。
作业步的返回值,作业步.过程步,主要有这两种返回值判定结构
三、TIME参数
//STEP1 EXEC PGM=READER,TIME=1
//STEP2 EXEC PGM=WRITER
STEP1规定了一分钟的执行时间,STEP2的执行时间由STEP1决定,即STEP2的执行时间=1分钟-STEP2实际运行时间
陪伴是最长情的告白,JCL的运行时间中同样也是这样,因为JCL是在处理排队中作业的一种脚本语言,所以时间窗口是非常重要的,时间就是MONEY.