我对如何在JCL中为我在COBOL类中执行的赋值创建符号变量感到困惑.
例如,我应该"为PARM选项指定一个符号参数,并指定TEST和APOST作为默认值."
如何将"PARM"选项指定为符号参数?
编辑:原谅疏忽; 似乎我忘了提到我正在运行的操作系统.我正在z/OS中编写这个JCL文件.
提前致谢!
编辑:
@avisser:
所以,你所说的是我可以称之为"&PARM ='TEST,APOST'",如果我想用另一个JCL语句运行这个proc时改变那个参数,列出的parms可以从打电话给JCL?
编辑:
@avisser:
是的,对不起,我真的需要努力更具体......在我的COBOL JCL中,我调用COBOL编译器(IGYCRCTL),链接编辑器(HEWL)和程序获取(EXEC PGM =).
编辑:
也许有助于了解我的输出是什么.到目前为止,我真的非常感谢那些试图提供帮助的人.
输出:
------ JES2工作统计------
37 CARDS READ
61 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
Run Code Online (Sandbox Code Playgroud)
!结束JES SPOOL文件!! 1 // KC03CEFA JOB,'MATT R',MSGCLASS = H,TYPRUN = SCAN JOB07731 //*
2 // STEP01 EXEC PGM = IGYCRCTL,®ION = 248K,
//&PARM ='TEST,APOST'3
// STEPLIB DD DSN = IGY340.SIGYCOMP,DISP = SHR
/*
4 // SYSLIN DD&DSN = && OBJSET,UNIT = DISK,SPACE =(TRK,(3,3)),
//&DISP =(NEW,PASS,DELETE)
5 // SYSPRINT DD SYSOUT =*
6 // SYSUT1 DD UNIT = DISK,SPACE =(CYL,(1,1))
7 // SYSUT2 DD UNIT = DISK,SPACE =(CYL,(1,1))
8 // SYSUT3 DD UNIT = DISK,SPACE =(CYL,(1,1))
9 // SYSUT4 DD UNIT = DISK,SPACE =(CYL,(1,1))
10 // SYSUT5 DD UNIT = DISK,SPACE =(CYL,(1) ,1))
11 // SYSUT6 DD UNIT = DISK,SPACE =(CYL,(1,1))
12 // SYSUT7 DD UNIT = DISK,SPACE =(CYL,(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 =(OLD,DELETE)
16 // SYSLMOD DD DSN = && TEMPLIB(PGM6),
// SPACE =(1024,(50,20,1)),UNIT = DISK,
// DISP =(NEW,CATLG,DELETE)
17 // SYSPRINT DD SYSOUT =*
18 // PRINTER DD SYSOUT =*
19 // SYSUT1 DD UNIT = DISK,SPACE =(TRK,(10,10))
//*
//*
20 // STEP01 EXEC PGM = PGM6,&PARM = TERMTHDACT(DUMP)
21 // STEP LIB DD DSN = && TEMPLIB,DISP = SHR
22 // CEEDUMP
23 // SYSUDUMP
24 // PRINTER DD SYSOUT =*
25 //产品DD DSN = KC02322.CSCI465.SP09(DATA1),DISP = SHR
26 // SYSIN DD*
!结束JES SPOOL文件!! STMT NO.MESSAGE 2 IEFC630I不知名KEYWORD®ION 2 IEFC630I不知名KEYWORD&PARM 4 IEFC630I不知名KEYWORD&DSN 4 IEFC630I不知名KEYWORD&DISP 13 IEFC630I不知名KEYWORD&COND 13 IEFC630I不知名KEYWORD&REAGION 13 IEFC630I不知名KEYWORD&PARM 15 IEFC630I不知名KEYWORD&DSN 15 IEFC630I不知名KEYWORD&DISP 20 IEFC630I不知名KEYWORD &PARM 22 IEFC605I未经授权的操作领域23 IEFC605I未知的操作领域!! 结束JES SPOOL文件!!
符号参数是以&符号开头的名称.在JCL语句中使用时,在运行时它们将转换为提供的值.创建它们的一种方法(在z/OS上)是使用a
// SET name = value
宣言.如果您使用PARM,您应该设计您的程序,以便它可以使用它.或许任务是如何做的是(提示:联合部).或者JCL是您COBOL课程的一部分吗?
TEST和APOST在我看来就像编译指令一样.我不知道你是否可以在你的程序中指定它们,在我的工作场所我们只在调用编译器时提供它们.
编辑:
好吧这对我来说有点不寻常,因为我们倾向于在单独的JCL流中编译和运行我们的程序.但无论如何.
采取你的第二个声明:
2 //STEP01 EXEC PGM=IGYCRCTL,®ION=248K,
// &PARM='TEST,APOST'
Run Code Online (Sandbox Code Playgroud)
REGION和PARM是所谓的位置参数,它们是关键字,并不是真正意义上的符号名称,尽管您可以自由地这样做(这将解释"未知的关键字"消息).
常用 - 适用时 - 是为这些参数的操作数提供符号名称.显然你必须先为它们定义一个值,例如:
// SET OPTIONS='TEST,APOST'
//STEP01 EXEC PGM=IGYCRCTL,REGION=248K,
// PARM=&OPTIONS
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5778 次 |
| 最近记录: |