Можно ли вывести содержимое JCL SYSOUT в плоский файл a z/OS?

Мне интересно знать, возможно ли получить содержимое JCL SYSOUT в плоский файл z/OS; либо на том же шаге JCL, либо на шаге JCL, выполняемом позже в том же JCL.

Внимание ¡, я не имею в виду наоборот; который генерирует SYSOUT непосредственно в файле z/OS и, после, на другом шаге JCL, сбрасывает его в SYSOUT.

Например; в следующем шаге JCL мне интересно получить содержимое SYSOUT=2 в виде плоского файла.

Может кто-нибудь пролить свет на этот вопрос?

Спасибо заранее.

//WNMPRAD5 EXEC PGM=WNMPRAD5,COND=(4,LT)                     
//SYSPRINT DD SYSOUT=1                                       
//SYSDBOUT DD SYSOUT=1                                       
//ENTRADA  DD DSN=WNMT.SCADUC.WGPT022.ZXDALMA.UNLDBI,DISP=OLD
//SORTIDA  DD DSN=WNMT.SCADUC.WGPT022.ZXDALMA.OUTPUT.V02,    
//            DISP=(NEW,CATLG,DELETE),UNIT=DISK,             
//            DCB=(RECFM=FB,LRECL=278),                      
//            SPACE=(27998,(2500,2500),RLSE)                 
//SYSOUT   DD SYSOUT=2                                       
//SYSIN    DD *                                              
N0100                                                        
/*                                                           

3 ответа

SYSOUT ничем не отличается от любого другого DD, но по соглашению используется для вывода. Вы можете создать DD в STEP, который создает файл:

//SYSOUT   DD DSN=MY.SYSOUT,    
//            DISP=(NEW,CATLG,DELETE),UNIT=DISK,             
//            DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0),                      
//            SPACE=(27998,(2500,2500),RLSE)                 

DCB будет варьироваться в зависимости от 133 (при условии, что символ ASA) является обычным. Нет необходимости в другом шаге.

Если вы хотите, вы можете на следующем шаге использовать IEBGENER, чтобы скопировать диск на другой SYSOUT, чтобы сохранить содержимое в JOB. Насколько я знаю, невозможно легко получить SYSOUT на следующем шаге и скопировать на диск.

Укажите параметр расположения и имя набора данных в sysout. Итак, это будет что-то вроде

//sysout dd dsn=abc.xyz,disp=(по вашему выбору)

Да. Вы должны правильно настроить LRECL и RECFM, но вы можете получить их из исходного кода в программу, которую вы выполняете. Большинство стандартных отчетов - 133 и FB или 132 и FBA. Кажется, я помню, IDCAMS был 121 и VBA.

//WNMPRAD5 EXEC PGM=WNMPRAD5,COND=(4,LT)                     
//SYSPRINT DD SYSOUT=1                                       
//SYSDBOUT DD SYSOUT=1                                       
//ENTRADA  DD DSN=WNMT.SCADUC.WGPT022.ZXDALMA.UNLDBI,DISP=OLD
//SORTIDA  DD DSN=WNMT.SCADUC.WGPT022.ZXDALMA.OUTPUT.V02,    
//            DISP=(NEW,CATLG,DELETE),UNIT=DISK,             
//            DCB=(RECFM=FB,LRECL=278),                      
//            SPACE=(27998,(2500,2500),RLSE) 
//SYSOUT   DD  DISP=(NEW,CATLG,DELETE),
//             DSN=&SYSUID..STEPNAME.SYSOUT,
//             AVGREC=K,
//             LRECL=133,
//             RECFM=FB,
//             SPACE=(500,(10,10))
//SYSIN    DD *                                              
N0100                                                        
/*
Другие вопросы по тегам