符号JCL混淆
对于如何在JCL中为我在COBOL类中执行的赋值创建符号变量,我有点困惑符号JCL混淆,jcl,Jcl,对于如何在JCL中为我在COBOL类中执行的赋值创建符号变量,我有点困惑 37 CARDS READ 61 SYSOUT PRINT RECORDS
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
例如,我应该“为PARM选项指定一个符号参数,并将TEST和APOST指定为默认值。”
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
如何将“PARM”选项指定为符号参数
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
编辑:原谅疏忽;似乎我忘了提到我正在运行的操作系统。我正在z/OS中编写这个JCL文件
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
提前谢谢
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
编辑:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
@阿维瑟:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
那么,您的意思是,我可以将其称为“&PARM='TEST,APOST'”,如果我想在使用另一个JCL语句运行该过程时更改该参数,那么可以从调用JCL更改列出的PARM
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
编辑:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
@阿维瑟:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
是的,对不起,我真的需要更具体一些。。。在我的COBOLJCL中,我调用COBOL编译器(IGYCRCTL)、链接编辑器(HEWL)和程序获取(EXEC PGM=)
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
编辑:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
也许这会有助于了解我的输出是什么。我真的很感谢所有到目前为止试图帮助我的人
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
输出:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
------JES2就业统计------
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
!!JES假脱机文件结束!!
1//KC03CEFA作业,“马特R”,MSGCLASS=H,TYPRUN=SCAN作业07731
//*2//STEP01 EXEC PGM=IGYCRCTL,®ION=248K,
//&PARM='TEST,apst'
3//STEPLIB DD DSN=IGY340.SIGYCOMP,DISP=SHR
/*
4//SYSLIN DD&DSN=&&OBJSET,UNIT=磁盘,SPACE=(TRK,(3,3)),
//&DISP=(新建、通过、删除)
5//SYSPRINT DD SYSOUT=*
6//SYSUT1 DD单元=磁盘,空间=(循环,(1,1))
7//SYSUT2 DD单元=磁盘,空间=(循环,(1,1))
8//SYSUT3 DD单元=磁盘,空间=(循环,(1,1))
9//SYSUT4 DD单元=磁盘,空间=(循环,(1,1))
10//SYSUT5 DD单元=磁盘,空间=(循环,(1,1))
11//SYSUT6 DD单元=磁盘,空间=(循环,(1,1))
12//SYSUT7 DD单元=磁盘,空间=(循环,(1,1))
//*
//*
13//STEP02 EXEC PGM=HEWL,&COND=,&REAGION=2048K,
//&PARM=
14//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
15//SYSLIN DD&DSN=&&OBJSET,&DISP=(旧,删除)
16//SYSLMOD DD DSN=&&templab(PGM6),
//空间=(1024,(50,20,1)),单位=磁盘,
//DISP=(新建、CATLG、删除)
17//SYSPRINT DD SYSOUT=*
18//打印机DD SYSOUT=*
19//SYSUT1 DD单元=磁盘,空间=(TRK,(10,10))
//*
//*
20//STEP01 EXEC PGM=PGM6,&PARM=termthdac(转储)
21//STEPLIB DD DSN=&&TEMPLIB,DISP=SHR
22//CEEDUMP
23//SYSUDUMP
24//打印机DD SYSOUT=*
25//PRODUCTS DD DSN=KC02322.CSCI465.SP09(数据1),DISP=SHR
26//SYSIN DD*
!! JES假脱机文件结束!! STMT编号信息 2 IEFC630I未识别的关键字和地区 2 IEFC630I未识别的关键字和PARM 4 IEFC630I未识别关键字和DSN 4 IEFC630I未识别的关键字和显示 13 IEFC630I未识别的关键字和条件 13 IEFC630I未识别的关键字和区域 13 IEFC630I未识别关键字和PARM 15 IEFC630I未识别关键字和DSN 15 IEFC630I未识别的关键字和显示 20 IEFC630I未识别关键字和PARM 22 IEFC605I未识别的操作场 23 IEFC605I未识别的操作字段
!! JES假脱机文件结束 符号参数是前面带有符号和的名称。在JCL语句中使用时,它们在运行时会转换为提供的值。(在z/OS上)创建它们的一种方法是使用
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
//设置名称=值
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
声明。
如果您使用PARM,您应该设计您的程序,使其能够与PARM一起工作。也许作业是关于如何做到这一点(提示:链接部分)。或者JCL是您的COBOL类的一部分
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
TEST和APOST在我看来就像编译器指令。我不知道您是否可以在程序中指定它们,在我的工作场所,我们只在调用编译器时提供它们
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
编辑:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
这对我来说有点不寻常,因为我们倾向于在单独的JCL流中编译和运行我们的程序。但无论如何
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
在你的第二次发言中:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
2 //STEP01 EXEC PGM=IGYCRCTL,®ION=248K,
// &PARM='TEST,APOST'
REGION和PARM是所谓的位置参数,它们是关键字,实际上并不表示为符号名,尽管您可以随意这样做(这将解释“未识别关键字”消息)。常见用途(如果适用)是为的操作数提供符号名 这些参数。显然,您必须首先为它们定义一个值,例如:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
// SET OPTIONS='TEST,APOST'
//STEP01 EXEC PGM=IGYCRCTL,REGION=248K,
// PARM=&OPTIONS
好的,我做了一些挖掘工作,在阿维瑟给我的指导下,我能够弄清楚我必须做什么。因此,对于任何可能有这个问题(或类似问题)的人来说,以下是我得出的结论:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
步骤1:创建一个包含您将要使用的变量的“PROC”
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
例如,我想在我的COBOL编译器中使用默认值为“TEST”和“APOST”的“PARM”变量,所以我写了如下内容:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
//PROC1 PROC CPARM='TEST,APOST',
步骤2:在实际的JCL步骤中使用这些新定义的符号参数。“&”字符表示后面的任何内容都是符号参数
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
例如,我在COBOL编译步骤中使用了前面提到的“CPARM”:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
//COB EXEC PGM=IGYCRCTL,REGION=&CREGION,
// PARM='&CPARM'
步骤3:在实际步骤之后,用“PEND”语句结束“PROC”
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
例如,在我列出了所有变量和所有编译步骤(编译器名称,可以找到编译器的地方,以及在PEND语句之前可以看到的SYSUT1-SYSUT7语句)之后,放置您的PED关键字:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
//SYSUT7 DD UNIT=DISK,SPACE=(CYL,(1,1))
// PEND
步骤4:向源文件中添加任何额外的JCL步骤和/或代码,您就可以退出了
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
注:
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
-在一个JCL文件中可以有多个PROC语句。我有三个:一个用于COBOL编译,一个用于linkag