有几条来自 DFSORT 的消息,由具有多个排序操作的 COBOL 程序在内部使用。我想删除那些 DFSORT 消息并只保留那些来自 COBOL 程序的消息。
2 回答
你有三个选择。
使用 OUTDD(ddname) Enterprise COBOL 编译器选项更改用于 DISPLAY 输出的 DDName。
如您所见,使用 DFSPARM 来更改 DDName SORT 在从程序调用(调用)时用于其消息(如在 COBOL 中使用 SORT 或 MERGE 动词时)。
使用 SORT-MESSAGE 专用寄存器。
如果您的 SORT 是独立的,您还可以使用 OPTION 控制语句更改 SORT 消息文件,OPTION MSGDDN=ddname
. DFSPARM 是允许为调用的 SORT/MERGE 提供 OPTION 的方法。
您还有可以在运行单元期间使用 SYSOUT 的语言环境,用于接收来自语言环境的消息(运行时错误、异常终止、请求的信息)。有一个 MSGFILE(ddname) 运行时选项可以让 LE 使用不同的 ddname。
解决问题的最简单方法是使用 OUTDD(ddname) 编译器选项。然后您不必担心 DFSORT(或不同站点的 SyncSORT)或语言环境。
您可以使用 MSGPRT 选项抑制所有 DFSORT 消息。您可以通过为每次调用指定带有 FREE=CLOSE 的 DFSPARM DD 来区别对待 DFSORT 的多次调用。
COBOL 程序(使用内部排序)的 DFSORT 消息可以通过在 JCL 程序的 exec 步骤中指定 ddname MSGDDN 来重定向。例如
//DFSOUTDD DD DISP=SHR,DSN=XXX.DFSOUT //DFSPARM DD * MSGDDN=DFSOUTDD /*