ISPF编辑宏,如何防止“浏览替换”发生..?

问题描述 投票:0回答:2

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为这些大型会员保持编辑模式吗?

macros edit mainframe ispf tso
2个回答
4
投票

有什么方法可以迫使TSO为这些大型会员保持编辑模式吗?

也许。

ISPF Edit has an LRECL limit。如果你的成员人数太大,你就无法做到这一点。如果你想参与激进的概念,比如将每个记录分成两部分以便它们可编辑,编辑它们,然后将每个记录对重新组合成一条记录,这是一个单独的问题。

但也许问题不是你的LRECL,而是记录的数量。你或许可以做些什么。

您可以尝试增加运行ISPF Edit宏的批处理作业的REGION参数。我不知道您的个人ISPF设置是否在ISPF批处理作业中很重要,但您可以在ISPF编辑会话中键入EDITSET并确保“编辑和查看允许的最大初始存储空间”的值为0,以防万一事项。

请注意,这可能会解决您的问题,但您的会员可能对ISPF Edit来说太大了。在这种情况下,您必须找到备用机制。由于您已经有一个编辑宏,也许您可​​以更改它,用您自己的代码替换ISPF编辑服务,并针对您的数据运行该代码。也许这是一个学习SORT实用程序的奇妙功能的机会。或者awk。很多选择。


1
投票

如果它只是某些成员那么它不是LRECL问题,而是严格的大小。正如cschneid所提到的,您可以尝试最大化Edit可用的存储空间。但是,如果该成员非常大,那么您最终会达到存储限制。在这种情况下,目前Edit或View将切换为Browse。如果您正在运行Batch,那么这会在您描述时出现问题。编辑中没有任何内容可以保留。 RC = 4已经是一个文档化的返回代码,用于替换浏览,但如果你是批处理的,那么你可能最终会进入显示循环。一种可能的解决方案是在ISPPLIB中拥有自己的ISRBROBA副本,并在INIT或)PROC部分设置.RESP = END,以便在使用BROWSE时强制END。由于它是批处理作业,因此您不太可能需要正常版本的ISRBROBA。您只需确保首先连接PANEL库。

© www.soinside.com 2019 - 2024. All rights reserved.