JCL新手入门学习教程(2) 2021-02-09

6 篇文章 1 订阅

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值