将数据从 sysin jcl 传递到 PL/I 程序

Gag*_*awa 1 mainframe jcl pl-i

我需要将数据从 SYSIN JCL 传递到 PL/I 程序。下面是我来自 JCL 和 PL/I 程序的代码,并且值没有被传递。有人可以帮忙吗?

//SYSIN DD *
12345

PROG: PROC(INPARM) OPTIONS(MAIN REENTRANT) REORDER;
DCL INPARM            CHAR(5) VARYING;

PUT SKIP LIST('INPARAM - '|| INPARM);
Run Code Online (Sandbox Code Playgroud)

phu*_*oft 5

您显示的 PL/1 代码不读取任何文件,它仅消耗 PARM 数据。我猜mainframe你指的是 IBM z/OS?在 z/OS 上,PARM 数据通过 传递EXEC PGM=xyz,PARM=,并且该数据最多可达 100 个字符。因此,将INPARM变量重新定义为CHAR(100) VARYING

\n

SYSIN如图所示为数据集定义;程序需要定义、打开和读取一个ddname(文件名)SYSIN 的数据集。您还需要定义数据结束标志,并定义读取 SYSIN 中的所有数据时触发的 ON 条件。

\n

这是一些代码片段:

\n
DCL SYSIN FILE EXTERNAL RECORD INPUT ENVIRONMENT(FB RECSIZE(80));\nDCL INPUT_RECORD CHAR(80);\nDCL EOF_SYSIN BIT(1) INIT('0'B);\n\nON ENDFILE(SYSIN) BEGIN;\n    EOF_SYSIN = '1'B;\n    END;\n\nOPEN FILE(SYSIN);\n\nDO WHILE (\xc2\xacEOF);\n    ... process the record just read ...\n    READ FILE(SYSIN) INTO(INPUT_RECORD);\n    END;\n\nCLOSE FILE(SYSIN);\n\n
Run Code Online (Sandbox Code Playgroud)\n