JCL Procedure

1.       编写规则

不能包含以下JCL Statement:

l         JOB 语句

l         流内数据集定义语句 “DD * ” 到 “/*

l         JCL 结束语句:一行空的“//

l         JOBLIB JOBCAT 语句

2.       In-stream procedure

流内过程嵌在JCL 里,以PROC 语句开始,PEND 语句结束

//COPYDATA JOB NOTIFY=&SYSUID

//********* COPY DATASET ***********

//MYPROC PROC INDD=,OUTDD=

//CPY EXEC PGM=IEBGENER

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD DSN=&INDD.,DISP=SHR

//SYSUT2 DD DSN=&OUTDD.,DISP=(NEW,CATLG,DELETE),

// SPACE=(TRK,(2,1)),

// DCB=(RECFM=FB,LRECL=80,BLKSIZE=240,DSORG=PS)

//SYSIN DD DUMMY

//MYEND PEND

//CPYLOAD EXEC MYPROC,INDD=DEVP124.DATA,

//  OUTDD=DEVP124.DATA1

过程代码必须写在调用代码前面

3.       Cataloged Procedure

编目过程要存放在一个分区数据集的成员里,语法与流内过程一样,但不需要使用PEND

4.       过程的调用

//作业步名 EXEC PROC=过程名,[参数名=参数值[,参数名=参数值]]

//作业步名 EXEC 过程名,[参数名=参数值[,参数名=参数值]]

5.       JCLLIB 语句

 //[name] JCLLIB ORDER=(library[,library]...) [comments]

用于指定编目过程所在目录,注意它与JOBLIB的区别。

6.       调用过程时overridden/added/nullified EXEC

PROC P1

//STEP1 EXEC PGM=PAYROLL,TIME=(2,30),ACCT=1876

//STEP2 EXEC PGM=PRINT,TIME=(4,30)

 

JOBSTREAM

//XY2 JOB

//STEPA EXEC P1,TIME.STEP1=(1,10),

// ACCT.STEP1=,PARM.STEP2=TOP

 

RESULTING JCL

//STEP1 EXEC PGM=PAYROLL,TIME=(1,10)

//STEP2 EXEC PGM=PRINT,TIME=(4,30),PARM=TOP

7.       调用过程时overridden/added/nullified DD

PROC P1

//STEP1 EXEC PGM=PAYROLL

//A DD DSN=INPUT,DISP=OLD

//B DD DSN=OUTPUT,DISP=(,CATLG,DELETE),UNIT=3350,

// SPACE=(CYL,(20,5)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=320)

//STEP2 EXEC PGM=PRINT

//A DD DSN=OUTPUT,DISP=(OLD,DELETE),UNIT=3350,VOL=SER=PAK08

//B DD SYSOUT=*

 

JOBSTREAM

//JOB JOB MSGCLASS=A

//FS EXEC P1

//STEP1.A DD DISP=(OLD,DELETE,DELETE)

//STEP1.B DD UNIT=3390,DCB=(BLKSIZE=800)

//STEP1.D DD *

DATA

//STEP2.A DD UNIT=,VOL=SER=,DISP=OLD

 

RESULTING JCL

//JOB JOB MSGCLASS=A

//STEP1 EXEC PGM=PAYROLL

//A DD DSN=INPUT, DISP=(OLD,DELETE,DELETE)

//B DD DSN=OUTPUT,DISP=(,CATLG,DELETE),UNIT=3390,

// SPACE=(CYL,(20,5)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

//D DD *

DATA

//STEP2 EXEC PGM=PRINT

//A DD DSN=OUTPUT,DISP=OLD ,UNIT=3350,VOL=SER=PAK08

//B DD SYSOUT=*

8.       Modifying Symbolic parameters

PROC P1

//P1 PROC UN=3390,OUT=OUTPUT

//STEP1 EXEC PGM=PAYROLL

//A DD DSN=INPUT,DISP=OLD

//B DD DSN=&OUT,DISP=(,CATLG,DELETE),UNIT=&UN,

// SPACE=(CYL,(20,5)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=320)

//STEP2 EXEC PGM=PRINT

//A DD DSN=&OUT,DISP=(OLD,DELETE),UNIT=&UN,VOL=SER=PAK08

//B DD SYSOUT=*

 

JOBSTREAM

//JOB JOB MSGCLASS=A

//FS EXEC P1,UN=3380,OUT=TEST.OUT

 

RESULT

//JOB JOB MSGCLASS=A

//STEP1 EXEC PGM=PAYROLL

//A DD DSN=INPUT,DISP=OLD

//B DD DSN=TEST.OUT,DISP=(,CATLG,DELETE),UNIT=3380,

// SPACE=(CYL,(20,5)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=320)

//STEP2 EXEC PGM=PRINT

//A DD DSN=TEST.OUT,DISP=(OLD,DELETE),UNIT=3380,VOL=SER=PAK08

//B DD SYSOUT=*

 

Note:From 6,7 and 8,we can see the two method of modifying procedures

vOverriding,adding,or nullifying parameters

vSymbolic parameters

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值