如何在 z/OS 中调用对话框面板命令?
Posted
技术标签:
【中文标题】如何在 z/OS 中调用对话框面板命令?【英文标题】:How do you invoke dialog panel command in z/OS? 【发布时间】:2012-10-10 02:13:46 【问题描述】:official guide 说要使用 CMD(your_statement) 函数,但我不断收到无法识别的关键字错误。我正在尝试自定义 ISPF 主选项菜单,我需要编辑面板,以便当您按“R”时它会运行 Rexx 执行程序。这是我正在使用的面板中的一些代码:
%
% ******************
% * *
% * $2 %Edit *
% * $3 %Utility *
% * $6 %Command *
% * $SD %SDSF *
% * $D %Datasets *
% * $X %eXit *
% * $R %REXX *
% * *
% ******************
)PROC
&ZSEL = TRANS ( TRUNC (&ZCMD,'.')
2,'PGM(ISREDIT) PARM(P,ISREDM01) SCRNAME(EDIT)'
3,'PANEL(ISRUTIL) SCRNAME(UTIL)'
D,'PGM(ISRUDL) PARM(ISRUDLP) SCRNAME(DSLIST)'
6,'PGM(ISRPTC) SCRNAME(CMD)'
SD,'PGM(ISFISP) NOCHECK NEWAPPL(ISF) SCRNAME(SDSF)'
R,'CMD(TSO EXEC 'IBM####.REXX(REXXSYSC)')'
' ',' '
X,'EXIT'
*,'?' )
&NEXTOPT = .TRAIL
)END
当我尝试将命令语句分配给“R”时发生错误。我的猜测是引号有干扰,但 TSO 命令必须使用这些引号来指定 Rexx exec 的位置。从指定文件夹运行此 Rexx exec 的正确语法应该是什么?抱歉,代码的缩进有点搞砸了......
【问题讨论】:
【参考方案1】:从一些非常简短的测试来看,似乎 REXXSYSC 必须驻留在一个库中,该库位于 ISPF 会话的 SYSPROC 或 SYSEXEC 连接中,然后语法是
R,'CMD(%REXXSYSC)'
【讨论】:
正确,Sysproc 用于 clist 或 rexx 程序(第一行需要 /*rexx*/); sysexec 用于 rexx。【参考方案2】:虽然现在回答这个问题已经很晚了,但我觉得我可能可以添加一两个指针,这可能对寻找类似解决方案的人有用。
要检查包含源 REXX 代码的库是否包含在 SYSPROC / SYSEXEC 中,我们可以触发以下命令:
TSO ISRDDN
您可以轻松验证您的库是否存在。如果没有,则必须包含它,以便可以直接执行您的目标命令。下面的链接说明了如何将您的库添加到 SYSEXEC / SYSPROC
http://ibmmainframes.com/about48417.html
但请注意,SYSEXEC / SYSPROC 中的库非常敏感,Z/OS 管理员不会高兴看到未经授权的人试图偷看它!
谢谢。
【讨论】:
以上是关于如何在 z/OS 中调用对话框面板命令?的主要内容,如果未能解决你的问题,请参考以下文章