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)
您显示的 PL/1 代码不读取任何文件,它仅消耗 PARM 数据。我猜mainframe你指的是 IBM z/OS?在 z/OS 上,PARM 数据通过 传递EXEC PGM=xyz,PARM=,并且该数据最多可达 100 个字符。因此,将INPARM变量重新定义为CHAR(100) VARYING。
SYSIN如图所示为数据集定义;程序需要定义、打开和读取一个ddname(文件名)SYSIN 的数据集。您还需要定义数据结束标志,并定义读取 SYSIN 中的所有数据时触发的 ON 条件。
这是一些代码片段:
\nDCL 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\nRun Code Online (Sandbox Code Playgroud)\n