Steve Ives 提供了 ALLMEM 代码来针对 PDS 的所有成员运行编辑宏,请参阅此处:如何批量运行 ISPF 编辑宏
我的PDS中的某些成员太大(默认情况下)无法编辑/查看,并且在行上遭受"浏览替换":
Address 'ISPEXEC' 'EDIT DATAID('data1')',
'MEMBER('member1') MACRO('workmac')'
由于浏览无法运行编辑宏,因此宏('workmac')位不会发挥作用,因此没有发出END命令将执行返回到ALLMEM中的循环,并且整个批处理执行停止,直到我手动点击PF3。
有什么方法可以强制TSO为这些大型成员保持编辑模式吗?
方法可以强制TSO为这些大型保持编辑模式 成员?
或。
ISPF 编辑有一个 LRECL 限制。 如果你的成员太大超过这个,你无能为力。 如果你想参与激进的概念,比如将每条记录一分为二以便它们可编辑,编辑它们,然后将每个记录对重新组装回单个记录,这是一个单独的问题。
但也许问题不在于您的 LRECL,而在于记录的数量。 你也许可以对此做点什么。
您可以尝试增加运行 ISPF 编辑宏的批处理作业的 REGION 参数。 我不知道您的个人 ISPF 设置在 ISPF 批处理作业中是否重要,但您可以在 ISPF 编辑会话中键入 EDITSET,并确保"允许编辑和查看的最大初始存储"的值为 0,以防万一。
请注意,这可能会解决您的问题,但您的成员对于 ISPF 编辑来说可能太大了。 在这种情况下,您必须找到替代机制。 由于您已经有一个编辑宏,也许您可以更改它,将您自己的代码替换为 ISPF 编辑服务,然后针对您的数据运行该代码。 也许这是一个学习 SORT 实用程序奇妙功能的机会。 或者尴尬。 很多选择。
如果只是某些成员,那么这不是 LRECL 问题,而是严格的大小。 正如 cschneid 提到的,您可以尝试最大化可用于 Edit 的存储空间。 但是,如果成员非常大,那么您最终会达到存储限制。 在这种情况下,当前"编辑"或"查看"将切换到"浏览"。 如果您正在运行 Batch,那么如您所描述的那样,这会带来问题。 没有什么可以将其保留在编辑中。 RC=4 已经是被替换的 Browse 的记录返回代码,但如果您是批处理的,那么您可能最终会进入显示循环。 一种可能的解决方案是在ISPPLIB中拥有自己的ISRBROBA副本并对其进行设置。RESP = END 在 )INIT 或 )PROC 部分中,以便在使用 BROWSE 时强制使用 END。 由于这是一项批处理作业,因此您不太可能需要 ISRBROBA 的普通版本。 您只需确保首先连接您的 PANEL 库即可。