ISPF 编辑宏,如何防止“浏览替换”发生..?
Posted
技术标签:
【中文标题】ISPF 编辑宏,如何防止“浏览替换”发生..?【英文标题】:ISPF edit macro, how to prevent "Browse substituted" from occurring..? 【发布时间】:2019-04-10 13:42:47 【问题描述】:Steve Ives 提供了 ALLMEM 代码来针对 PDS 的所有成员运行编辑宏,请参见此处:How can I run ISPF Edit Macros in Batch
我的 PDS 中的某些成员太大(默认情况下)无法编辑/查看,并且在线上遭受“浏览替换”:
Address 'ISPEXEC' 'EDIT DATAID('data1')',
'MEMBER('member1') MACRO('workmac')'
由于浏览器无法运行编辑宏,因此 MACRO('workmac') 位没有发挥作用,因此没有发出 END 命令将执行返回到 ALLMEM 中的循环,并且整个批处理执行停止,直到我手动点击我的PF3.
我有什么办法可以强制 TSO 为这些大成员保持 EDIT 模式?
【问题讨论】:
【参考方案1】:有什么方法可以强制 TSO 为这些大型文件保持在 EDIT 模式 会员?
也许吧。
ISPF Edit has an LRECL limit。如果您的成员太大超过了这个值,那么您对此无能为力。如果您想采用激进的概念,例如将每条记录分成两部分以便可编辑,然后对其进行编辑,然后将每条记录对重新组合成一条记录,这是一个单独的问题。
但问题可能不在于您的 LRECL,而在于记录的数量。你也许可以做点什么。
您可以尝试为运行 ISPF 编辑宏的批处理作业增加 REGION 参数。我不知道您的个人 ISPF 设置在 ISPF 批处理作业中是否重要,但您可以在 ISPF 编辑会话中键入 EDITSET 并确保“编辑和查看允许的最大初始存储”的值为 0,就在情况很重要。
请注意,这可能解决您的问题,但您的成员可能对 ISPF Edit 来说太大了。在这种情况下,您必须找到一种替代机制。由于您已经有一个编辑宏,也许您可以更改它,将您自己的代码替换为 ISPF 编辑服务,然后针对您的数据运行该代码。也许这是一个学习 SORT 实用程序奇妙特性的机会。或者awk。很多选择。
【讨论】:
【参考方案2】:如果只是某些成员,那么这不是 LRECL 问题,而是严格的大小问题。正如 cschneid 提到的,您可以尝试最大化可用于编辑的存储空间。但是,如果成员真的很大,那么您最终会达到存储限制。在这种情况下,当前编辑或查看将切换到浏览。如果您正在运行 Batch,那么这会出现您所描述的问题。没有什么可以将其保留在编辑中。 RC=4 已经是 Browse 被替换的记录返回码,但如果你是批量的,那么你可能最终会进入显示循环。一种可能的解决方案是在 ISPPLIB 中拥有自己的 ISRBROBA 副本,并在 )INIT 或 )PROC 部分设置 .RESP = END ,以便在使用 BROWSE 时强制执行 END。由于它是批处理作业,因此您不太可能需要 ISRBROBA 的正常版本。您只需确保首先连接您的 PANEL 库。
【讨论】:
以上是关于ISPF 编辑宏,如何防止“浏览替换”发生..?的主要内容,如果未能解决你的问题,请参考以下文章
从 rexx 代码向 ispf 宏传递参数时出现无效长度错误
使用 ISPF Edit via TN3270 编辑文件时如何插入字符?