JCL新手入门学习教程(2)
JCL Coding sheet (JCL编码表)
- 一列与二列:
JCL中的每一行代码都应该以"//"开头 - 三列:
" * "号在第三列表明这行是注释 - 四列至十列:
名称字段 - 十一列:
名称和操作之间应该有一个空格 - 十二列至十五列:
操作 - 十六列:
操作与操作数之间应该有一个空格 - 十七列至七十一列:
操作数 - 七十二列:
延续列
JCL中的每一行将被视为两种类型
1.JCL声明(JCL Statement)
2.JCL评论(JCL comment)
JCL Statement:
- JCL是一个活动语句,指定要完成的操作
- JCL注释是非活动语句,它提供了了解JCL语句的信息
- JCL中,每个语句可以分为四个部分
Name field 名字区
Operation 操作符区
Operand 操作数
Comments 注释
Name field:
- Name字段长度为8个字符
- Name字段指定DD语句中的DD名称、EXEC语句中的步名、job语句中的job名称
- 允许字母、数字、@、#和$的组合
- 第一个字母不能是数字,从第3个字符开始,最多11个字符
- 在连接DD语句时,Name字段是可选的。在其余所有情况下,它是必需的,但不是强制性的
Operation:
- 操作字段描述操作数的类型
- 操作长度为四个字符,从第十二个字符开始至第十五个字符
- 操作对于每个名称字段都是强制性的
- 操作字段应该是IOB、EXEC、DD和PEND中的任意一个
- 如果指定了名称字段,操作字段也可以在操作数编码位置进行编码
Operand:
- 操作数描述操作的参数
- 操作数从第17列开始至72列
- 操作数可以在17到72之间的任意列结束
- 当指定了操作字段是,必选
- 如果操作数大于55个字符,它可以在下一行继续,但需要做两件事
1.当前陈述应该以在72栏结尾
2.其余的操作数可以从下一行的第16列或之前开始 - 如果剩余的操作数没有从第16列开始或在第16列之前开始,那么在JSCAN期间将显示以下错误消息
E1 8 Dss10075E CONTINUATION LINE STARTS BEYOND COLUMN 16.
案例:
=COLS> ----±—1----±—2----±—3----±—4----±—5----±—6----±—7–
****** ***************************** Top of Data ******************************
000001 //MTHUSERR JOB (META007),‘PAWAN Y’,CLASS=A,MSGCLASS=L,MSGLEVEL=(1,1),
000002 // TIME=1440,NOTIFY=&SYSUID
000004 //JOBLIB DD DSN=MTHUSER.MY.LOADLIB,DISP=SHR
000008 //STEP01 EXEC PGM=EXAMPROG
000009 //STEPLIB DD DSN=MTHUSER.TEST.LOADLIB,DISP=SHR
000010 //INPFILE DD DSN=MTHUSER.EXAMPROG.INPUT,DISP=SHR
000011 //OUTFILE DD DSN=MTHUSER.EXAMPROG.OUTPUT,
000012 // DISP=(NEW,CATLG,DELETE),
000013 // UNIT=(SYSDA,20),
000014 // SPACE=(CYL,(50,25)),
000015 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,BUFNO=2)
000017 //SYSPRINT DD SYSOUT=*
000018 //SYSUDUMP DD SYSOUT=*
000019 //SYSOUT DD SYSOUT=*
****** **************************** Bottom of Data ****************************
JCL Comment:
- JCL注释是inactive语句,它提供了有关JCL语句的信息
- 注释用于指定关于当前语句或旁边语句的注释
- 注释的第三列应该有一个*
- 注释文本可以从任何行的任何列开始,但是第三列应该有*否则,JCL会尝试将其视为一个正常的JCL语句,并在执行过程中出现thorow错误
If the Null indicator(//)alone coded in the Job, then it will treat as End of the JOB
案例:
=COLS> ----±—1----±—2----±—3----±—4----±—5----±—6----±—7–
****** ***************************** Top of Data ******************************
000001 //MTHUSERR JOB (META007),‘PAWAN Y’,CLASS=A,MSGCLASS=L,MSGLEVEL=(1,1),
000002 // TIME=1440,NOTIFY=&SYSUID
000003 //*
000004 //JOBLIB DD DSN=MTHUSER.MY.LOADLIB,DISP=SHR
000005 //*
000006 //* EXAMPORG RUNNING STEP
000007 //*
000008 //STEP01 EXEC PGM=EXAMPROG
000009 //STEPLIB DD DSN=MTHUSER.TEST.LOADLIB,DISP=SHR
000010 //INPFILE DD DSN=MTHUSER.EXAMPROG.INPUT,DISP=SHR
000011 //OUTFILE DD DSN=MTHUSER.EXAMPROG.OUTPUT,
000012 // DISP=(NEW,CATLG,DELETE),
000013 // UNIT=(SYSDA,20),
000014 // SPACE=(CYL,(50,25)),
000015 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,BUFNO=2)
000016 //*
000017 //SYSPRINT DD SYSOUT=*
000018 //SYSUDUMP DD SYSOUT=*
000019 //SYSOUT DD SYSOUT=*
****** **************************** Bottom of Data ****************************
参考来源:
http://www.mainframestechhelp.com/tutorials/jcl/jcl-introduction.htm