// SPACE=(TRK,(1,1)),UNIT=SYSDA #DD语句续行
PS: 注释有两种方法,记住了哦^_^
JOB语句:
语句格式://作业名 JOB 位置参数[,关键字参数][,关键字参数]...[注释说明] 作业名建议为USERID+数字或字符
[位置参数]
1、记帐信息:提供用户使用系统的合法性、机时及纸张收费管理等。 格式:([account-number][,accounting-information]...) account-number:用户帐号
accounting-information:附加记帐信息,如部门..等 //ST018A JOB (ST018,'6/7/2006',PGMBIN) //ST018B JOB ST018
2、程序员名:表示作业的所有者(owner)信息,长度不得超过20个字符 //ST018A JOB 2006,W.I.L.L.I.A.M //ST018B JOB 2006,WILLIAM
//ST018C JOB 2006,'WILLIAM''LIN' 例子:
全部位置参数: //ST018EXP JOB (20006,60),WILLIAM,CLASS=S,.... 缺省记帐信息: //ST018EXP JOB ,WILLIAM,CLASS=S,.... 不带位置参数: //ST018EXP JOB CLASS=S,....
[关键字参数]
1、ADDRSPC:指明作业 所需之存储类型。有两个子参数:VIRT(缺省)、REAL。前者表示作业请求页式存储,后者表示作业请求实存存储空间。
2、BYTES:指明打印作业的系统输出数据集的最大千字节数,并指出当超过所为最大字节数时系统对作业的处理方式。处理方式包括:CANCEL(取消且不转储)、DUMP(取消且转储)、WARNING(继续作业且发出警告信息)。类似BYTES(千数)的关键字参数有:CARDS(卡数)、LINES(行数)、PAGES(页数)。 3、CLASS:规定作业的类别,JCL可选的作业类别有36个,用字母A~Z、数字0~9表示。相同类别处于同一输入队列等待执行。
4、MSGCLASS:对作业日志(job log:与作业相关信息的记录)设置输出类别。类别种类和CLASS中的类别一样。
5、MSGLEVEL:控制JCL作业输出清单的内容。格式:
MSGLEVEL={[statements][,messages]}。其中,statements、messages的说明如下:
statements=0:仅打印出作业的JOB语句
=1:打印出作业中包括过程语句在内的所有JCL语句 =2: 打印出输入流中的所有控制语句
messages=0:仅当作业 异常终止时,才打印出有关JCL、JES、操作员及SMS的处理信息
=1:无论作业是否异常终止,都打印出有关JCL、JES操作员及SMS的处理信息。
例如://EXMP JOB ,MSGLEVEL=(2,1) //EXMP JOB ,JSGLEVEL=0 //EXMP JOB ,MSGLEVEL=(,0)
6、 NOTIFY:请求系统在后台作业处理完毕时给指定用户发信息。NOTIFY={USERID}
7、PRTY:为输入队列设置优先级。PRTY=priority。priority的取值范围:0~15(JES2)、0~14(JES3)。对于同一优先级的作业,采用FIFO的方法执行。 8、REGION:指定作业所需的实存或虚存空间的大小 REGION={valueK}
={valueM}
例子://ACCT1 JOB A23,SMITH,REGION=100K //ACCT2 JOB A23,REGION=2M
9、TIME:指定作业占用处理器的最长时间。当作业时间超过限制后,系统将终止该作业。
TIME={([minutes][,seconds])}
={1440} #无限制 ={NOLIMIT} #无限制
={MAXIMUM} #运行时间为357912分钟 10、TYPRUN:请求特殊的作业 处理
TYPRUN={COPY} #仅支持JES2;请求JES2将输入作业流直接拷贝的输出数据集进行处理。
={HOLD} #请求系统在执行前将其挂起,等待某特定事件发生。
={JCLHOLD} #请求JES2在JCL执行前挂起,直到操作员将其释放。
={SCAN} #只对作业的JCL进行语法检查,不执行也不分配设备。
11、(待续??)
EXEC语句:
//[作业名] EXEC 位置参数[,关键字参数]...[符号参数=值]...[注释]
[位置参数]
有两个位置参数,只能二选其一。
1、PGM:指明所要执行的程序名。该程序必须是PDS的成员或系统库、私有库及临时库的PDSE的成员。调用方法有直接调用和间接调用。 PGM={program-name}
={*.stepname.ddname}
={*.stepname.procstepname.ddname}
program-name:指明要执行程序的成员名或别名,程序名由1~8个字母或通配符开头的字符数字构 成。
*.stepname.ddname:表示要执行的程序名由本作业步前名为“ stepname” 的作业步内名为
”ddname”的DD语句的DSN参数决定。
*.stepname.procstepname.ddname:表示要执行的程序名由本作业步前名为“stepname”的作业步
里所调用过程名为“procstepname”的过程步中相应名为“ddname”DD语句的DSN参数决定。
2、PROC:指明作业步所要运行的过程名。格式如下: {RPOC=procedure-name} {procedure-name}
//SP EXEC PROC=PAYWRKS //SP EXEC OPERATE
procedure-name:调用的过程名可以是:编目过程的成员名或别名;由PROC语句定义的流内过程的过程名,该流内过程必须在本作业内且本作业步前定义。
[关键字参数]
P.S 作用范围仅限于本作业步,总的书写格式:关键字参数[.过程步名]=值 1、ACCT:指明作业步所需懂的一个或多个记帐信息子参数.格式:ACCT[.过程步名]=(记帐信息)
//STP3 EXEC PROC-=LOOKUP,ACCT=('/83468')
2、ADDRSPC:指明作业步所需之存贮类型,方法同JOB中的ADDRSPC参数. 3、REGION:同JOB语句中的REGION 4、TIME:同JOB中的TIME
5、COND:用于对先前作业步执行的返回码(return code)进行测试,以决定是否执行本作业步.当条件满足时(有一个满足即可)系统不执行本作业步,即跳过本作业步.格式如下:
COND[.过程步名]=(code,operator)
=((code,operator[,作业步名][,过程步名]) [,(code,operator[,作业步名][,过程步名])],...[,EVEN])
[,ONLY] COND=EVEN COND=ONLY
说明:最多可测试8个返回码,EVEN(ONLY)也算一个返回码的名额.code0用来与返回码的比较,取值范围0~4095。operator表示比较类型,GT(大于)、GE(大于等于)、EQ(等于)、NE(不等于)、LT(小于)、LE(小于等于)。EVEN表示无论先前作业步是否异常终止,本作业步都要执行(测试先哦)。ONLY表示只有先前作业步异常终止时,本作业步才执行(还要测试滴)。 //STEP2 EXEC PGM=DUMPINT,COND=((16,GE),(90,LE,STEP1),ONLY)
//STP4 EXEC PROC=BILLING,COND.PAID=((20,LT),EVEN), // COND.LATE=(60,GT,FIND),
// COND.BILL=((20,GE),(30,LT,CHGE))
6、PARM:用于向本作业步执行的程序传递变量信息。该程序必须有相应的指令接受这些信息。
PARM[.过程步名]=子参数
=(子参数,子参数) =('子参数',子参数) ='子参数,子参数'
//RUN1 EXEC PGM=APG22,PARM='P1,123,P2=5' #将参数P1、123、P2=5传递给APG22
//STP6 EXEC PROC=ASFCLGP,PARM.LKED=(MAP,LET)
# 将参数MAP、LET传递到过程ASFCLG中名为LKED的过程步
DD语句:
//[dd名 ] DD [位置参数][,关键字参数]...[注释] [过程步名.dd名] //[dd名 ] DD
[过程步名.dd名]
dd名不能与系统定义的dd名重复
[位置参数] 此三者取其一
1、*:开始一个流内数据。数据记录跟在DD语句之后,其第一、第二列不能是“//”或“/*”(因为这两个符号标记了流内数据记录的结束)。倘若数据记录需要以“//”开始,就必须以DATA参数代替*。 //INPUT1 DD * . . data . //INPUT2 DD .....
//STEP2 EXEC PROC=FRESH
//SETUP.WORK DD UNIT=3400-6,LABEL=(,NSL) //SETUP.INPUT1 DD *
. .
data /*
相关推荐: