Есть несколько сообщений от DFSORT, который внутренне используется программой COBOL, имеющей несколько операций сортировки. Я хотел бы удалить эти сообщения DFSORT и оставить только сообщения из программы COBOL.
Как удалить сообщения DFSORT из SYSOUT
Ответы (2)
У вас есть три варианта.
Используйте параметр компилятора OUTDD(ddname) Enterprise COBOL, чтобы изменить DDName, используемое для вывода DISPLAY.
Используйте DFSPARM, как вы обнаружили, для изменения DDName SORT, используемого для своих сообщений, когда он вызывается (вызывается) из программы (как при использовании глаголов SORT или MERGE в COBOL).
Используйте специальный регистр SORT-MESSAGE.
Если ваш SORT был автономным, вы также можете изменить файл сообщений SORT с помощью оператора управления OPTION, OPTION MSGDDN=ddname
. DFSPARM — это способ разрешить предоставление OPTION для вызванного SORT/MERGE.
У вас также есть языковая среда, которая может использовать SYSOUT во время выполнения модуля для сообщений из языковой среды (ошибки времени выполнения, прерывания, запрошенная информация). Существует опция времени выполнения MSGFILE(ddname), позволяющая LE использовать другое ddname.
Самое простое решение вашей проблемы — использовать параметр компилятора OUTDD(ddname). Тогда вам не придется беспокоиться о DFSORT (или SyncSORT на другом сайте) или языковой среде.
Вы можете подавить все сообщения DFSORT с помощью параметра MSGPRT. Вы можете по-разному обрабатывать несколько вызовов DFSORT, указав DD DFSPARM с FREE=CLOSE для каждого вызова.
Сообщения DFSORT программы COBOL (с использованием внутренней сортировки) можно перенаправить, указав ddname MSGDDN на шаге выполнения программы в JCL. например
//DFSOUTDD DD DISP=SHR,DSN=XXX.DFSOUT //DFSPARM DD * MSGDDN=DFSOUTDD /*