下面是一个ISPF面板定义:
)BODY
Hello, world!
)PROC
*REXX
ADDRESS ISPEXEC "CONTROL ERRORS CANCEL"
*ENDREXX
)END
面板显示正常,但嵌入的 REXX 立即失败:
*-* ADDRESS ISPEXEC "CONTROL ERRORS CANCEL"
+++ RC(-3) +++
返回代码 -3 通常表示命令环境不知道如何处理命令。
ISPF小组能够处理ISPF请求似乎是合理的。知道发生了什么吗?
*REXX 代码无法按照文章中的注释 5 发出 ISPF 服务请求:
*REXX 语句。
我建议好好读一读这篇文章。
MikeT 是绝对正确的,如 ISPF 对话框开发人员指南中所述。 如果您将维护或编码ISPF服务,我建议您下载ISPF PDF。
http://www-03.ibm.com/systems/z/os/zos/library/bkserv/v2r2pdf/#ISP
如前所述,ISPF服务在面板REXX中不可用。但这不应该阻止您访问 ISPF 变量并从 REXX 更新它们。
在执行 *REXX(....只需对 ISPF 变量进行 VGET 操作,然后对 *REXX 进行编码
REXX( 变量 1 变量 2 ...(
您将可以访问许多REXX服务(listdsi,sysdsn,...(
您还可以设置一个变量(必须在 *REXX 中定义(,您可以在 ISPF 面板代码中测试该变量以执行某些操作。例如,在 REXX 中设置一个变量,然后在 PANEL 代码中进行测试以发出 ISPF 消息。
希望这有所帮助。