2

官方指南说要使用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 的正确语法应该是什么?抱歉,代码的缩进有点搞砸了......

4

2 回答 2

5

从一些非常简短的测试来看,似乎 REXXSYSC 必须驻留在 ISPF 会话的 SYSPROC 或 SYSEXEC 连接中的库中,然后语法是

R,'CMD(%REXXSYSC)' 
于 2012-10-10T17:55:03.807 回答
1

虽然现在回答这个问题已经很晚了,但我觉得我可能可以添加一两个指针,这可能对寻找类似解决方案的人有用。

要检查包含源 REXX 代码的库是否包含在 SYSPROC / SYSEXEC 中,我们可以触发以下命令:

TSO ISRDDN

您可以轻松验证您的库是否存在。如果没有,则必须包含它,以便可以直接执行您的目标命令。下面的链接说明了如何将您的库添加到 SYSEXEC / SYSPROC

http://ibmmainframes.com/about48417.html

不过请注意,SYSEXEC / SYSPROC 中的库非常敏感,Z/OS 管理员不会高兴看到未经授权的人试图偷看它!

谢谢。

于 2013-08-13T22:13:18.863 回答