- 论坛徽章:
- 0
|
经过这几天对OS390的理解,基本上熟悉了JCL语言. JCL语言是JOB CTRL Language,顾名思义,也就是说,OS390中的COBOL语言不能自己去实现本身的功能.需要JCL语言对它进行操作. JCL语言中可以分为3大部分,JOB的声明:
XXXXXXA JOB CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),NOTIFY=&SYSUID
其中XXXXXXA为JOB的名字, JOB的名字可以随便去起,但是一般情况下是用你的USERID+一个字付,因为你需要看你返回的LOG , JOB为声明用,就好比INT I; 声明一个I变量一样,CLASS=A为设置JOB的优先级,CLASS=(A~Z AND 0~9) MSGCLASS=H设置MSG的优先级,范围同CLASS一样, NOTIFY=&SYSUID设置信息返回的用户. 你想把完成后的信息返回给谁,就在这添上他的USERID 如果添上&SYSUID系统莫认为当前用户,
EXEC的应用:
STEP1 EXEC PGM=IEFBR14
一般在JCL中我们所编辑的功能需要用到系统的程序,以及所用到的"接口(我是这么理解的)",所以这里需要声明我们所用到的程序名为IEFBR14 STEP1为程序实行的步, 每一个EXEC为一个步骤.
DD的应用:
//DD1 DD DSN=WANGZX.FILE.SOURCE,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(10,10,6)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920)
上面是建立一个PDS的语句. 其中DD1是程序IEFBR14中声明的外部连接的一个变量.弄过COBOL的朋友都知道 SELECT F1 ASSIGN TO XXXX
这个XXXX就是JCL中的DD1 我想我这么说应该是有人明白,这里我不知道怎么去用语言组织.起明白的朋友帮我完善.........
DSN=(DATA SET 名字) DISP=(建立文件,CATLG,DELETE) SPACE=(TRK(初始大小"10TRK",增长大小"10TRK",包含的MENBER数"6的5倍") DCB=文件属性,(这里我不是弄的特别明白,但是我知道是这么写,里面写的是建立文件时的属性)
SYSPRINT DD SYSOUT=* SYSPRINT 是系统所用到的,我们主要说说后面 SYSOUT=* 就是说把MSG输出到后台中 ,"*"就是指后台,A 就是打印机 下面我发下HELLO WORLD 程序的代码:
COBOL文件中
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST1.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
DISPLAY 'HELLO WORLD!'.
STOP RUN.
JCL中
//WANGZXA JOB CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),NOTIFY=WANGZX
//STEP1 EXEC PROC=IGYWCLG
//COBOL.SYSIN DD DSN=WANGZX.COBOL.SOURCE(TEST1),DISP=SHR
//GO.SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//* |
|