如何通过 JCL 将参数传递给 REXX 程序
Posted
技术标签:
【中文标题】如何通过 JCL 将参数传递给 REXX 程序【英文标题】:How to pass arguments to REXX program through JCL 【发布时间】:2009-12-25 08:28:44 【问题描述】:我们可以将参数从 JCL 传递给 REXX 程序吗?
我想,JCL PARM 可以像我们用来向 COBOL 程序传递参数一样使用。请把你的想法放在这里...
【问题讨论】:
【参考方案1】:你想要EXEC PGM=IRXJCL,PARM='member_name exec_args'
。 SYSEXEC
应该指向包含member name
的PDS。 SYSTSIN
是PULL
的输入,SYSTSPRT
是SAY
的输出DD
查看"TSO/E Rexx User Guide" book (SA22-7791) 中的“在 TSO/E 和其他 MVS 地址空间中使用 REXX”一章以获取完整示例。
【讨论】:
【参考方案2】:补充说明:如果您的 REXX exec 使用 ISPF 服务,您可以使用 PGM=IKJEFTxx(xx 是变量后缀)批量运行它并在作业步骤中分配 ISPxLIB。
【讨论】:
【参考方案3】:如果参数和 REXX 成员名称一起超过 100 字节,Ron Patterson 提到的方法将不起作用,因为 JCL 语法只允许最大参数长度为 100 字节。在这种情况下,我建议使用 IKJEFTxx(Tony 已经发布)。然后,您必须将 REXX 程序名称作为流内数据传递给 SYSTSIN。这个程序的参数可以简单的写在程序名后面。当您需要多行时,请使用连字符作为行的最后一个字符来指示与下一行的连接。 示例:
//EXAMPLE EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=30
//SYSPRINT DD SYSOUT=*
//SYSEXEC DD DISP=SHR,DSN=YOUR.REXX.LIBRARY
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
SCHLABB PARAMETER1 PARAMETER2 PARAMETER3 -
VERY_LONG_PARAMETER4 -
LAST_PARAMETER5
/*
//
【讨论】:
【参考方案4】:当我尝试运行 IRXJCL 时,我得到了基本 EXECIO、LIBDEF、命令的 RC (-3)。我希望有更好的文档来说明 IRXJCL 能做什么和不能做什么。
最后遵循以下链接中的方法,通过将值写入文件并从文件中读取来动态地将值传递给 REXX。 How to run dymanic SQL through IKJEFT01 Utility?
【讨论】:
以上是关于如何通过 JCL 将参数传递给 REXX 程序的主要内容,如果未能解决你的问题,请参考以下文章