Steve Ives提供了ALLMEM代码以对PDS的所有成员运行编辑宏,请参见此处:How can I run ISPF Edit Macros in Batch
我的PDS中的某些成员太大(默认情况下),无法进行编辑/查看,并在行上出现“浏览替换”的问题:
Address 'ISPEXEC' 'EDIT DATAID('data1')',
'MEMBER('member1') MACRO('workmac')'
由于浏览器无法运行edit-macros,因此MACRO('workmac')位不起作用,因此没有发出END命令以将执行返回到ALLMEM的循环,并且整个批处理都停止了,直到我手动点击PF3。
对于这些大型成员,我有什么办法可以迫使TSO保持在EDIT模式?
答案 0 :(得分:4)
对于这些大型文件,有什么方法可以迫使TSO保持在EDIT模式下 成员?
也许。
ISPF Edit has an LRECL limit。如果您的会员人数过多,那么您将无能为力。如果您想使用一些激进的概念,例如将每条记录分成两段,以便它们可编辑,编辑它们,然后将每对记录重新组合成一条记录,那就是单独的问题了。
但是问题可能出在您的LRECL,而不是您的记录数。您可能对此可以做些什么。
您可以尝试为运行ISPF编辑宏的批处理作业增加REGION参数。我不知道您的个人ISPF设置在ISPF批处理作业中是否重要,但是您可以在ISPF编辑会话中输入EDITSET并确保“允许编辑和查看的最大初始存储空间”的值为0,以防万一。
请注意,这可以解决您的问题,但对于ISPF Edit,您的成员可能太大了。在这种情况下,您必须找到另一种机制。由于您已经有了一个编辑宏,也许您可以更改它,将自己的代码替换为ISPF Edit服务,然后对您的数据运行该代码。也许这是一个学习SORT实用程序奇妙功能的机会。还是awk。很多选择。
答案 1 :(得分:1)
如果只有某些成员,那么这不是LRECL问题,而是严格的大小。正如cschneid所提到的,您可以尝试最大限度地利用可用于Edit的存储。但是,如果成员很大,那么您最终将达到存储限制。在这种情况下,当前“编辑”或“视图”将切换为“浏览”。如果您正在运行批处理,那么就会出现您所描述的问题。没有什么可以将其保留在“编辑”中。 RC = 4已被替换为Browse的记录的返回码,但是如果您是批量处理,则可能会出现显示循环。一种可能的解决方案是在ISPPLIB中拥有您自己的ISRBROBA副本,并将其设置为.INIT或)PROC部分中的.RESP = END,以便在使用BROWSE时强制使用END。由于这是批处理作业,因此您不太可能需要标准版本的ISRBROBA。您只需确保您的PANEL库是首先串联的。