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

Я лично отмечаю поле коллекций моих классов как final, чтобы сохранить пользователей моего класса от проверки, является ли он нулевым или нет. Это работает, потому что, как только значение уже назначено конечной переменной, оно никогда не может быть переназначено другому значению, включая null.

1
задан FRANCESC XAVIER DALMAU PUJOL 27 February 2019 в 13:54
поделиться

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 и скопировать на диск.

0
ответ дан Hogstrom 27 February 2019 в 13:54
поделиться

Да. Вы должны правильно настроить 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                                                        
/*
0
ответ дан cschneid 27 February 2019 в 13:54
поделиться

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

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

0
ответ дан Neeraj Kumar 27 February 2019 в 13:54
поделиться