2015-12-10 2 views
0

Я пытаюсь взломать это JCL и задаюсь вопросом, что не так.JCL что в этом плохого?

Это мой код:

000001 //SORTJCL JOB           
000002 //SORTSTEP EXEC PGM=SORT        
000003 //SYSOUT DD SYSOUT=*         
000004 //SORTOUT DD SYSOUT=*         
000005 //SORTWK01 DD SPACE=(CYL,(1,1))      
000006 //SORTIN DD DISP=SHR,DSN=Y2015.PUBLIC.DATA(AREACODE) 
000007 //SYSIN  DD *          
000008 SORT FIELDS=(6,10,CH,A)        
000009 // IF RC = 0 THEN          
000010 //COPYSTEP EXEC PGM=ICEGENER       
000011 //SYSUT1 DD DISP=SHR,DSN=Y2015.PUBLIC.DATA($005)  
000012 //SYSUT2 DD DISP=SHR,DSN=&SYSUID..P2.OUTPUT($005) 
000013 //SYSOUT DD SYSOUT=*         
000014 //SYSPRINT DD SYSOUT=*         
000015 //SYSIN  DD DUMMY         
000016 // ELSE            
000017 // ENDIF    

Цель этого кода - для чтения и сортировки Y2015.PUBLIC.DATA(AREACODE) и копировать и записывать вывод в MYID.P2.OUTPUT($005)

Может кто-нибудь объяснить мне, что мне не хватает?

+0

Вау, прошло 30 лет с тех пор, как я увидел JCL. Можете ли вы описать, что он делает сейчас? (Другими словами, каким образом он не производит ожидаемый результат?) –

+3

Вы используете SORTing для SYSOUT (катушка), а затем копируете (с помощью ICEGENER) совершенно другой набор данных для вашего ожидаемого результата. Просто измените SORTOUT DD на набор данных, который вам нужен: «DISP = SHR, DSN = & SYSUID..P2.OUTPUT ($ 005)» и отпустите весь шаг ICEGENER. –

ответ

2

К «чтения и сортировки Y2015.PUBLIC.DATA (AREACODE)», вы уже используете правильный //SORTIN в первом jobstep, в соответствии 000006. В результате этого чтения и сортировки будет записано в //SORTOUT, что в вашем JCL, кажется, написано в SYSOUT=* (золотник), в соответствии 000003.

Но это не то, что вы должны сделать (в соответствии с вашим "копии и записывать вывод в MYID.P2.OUTPUT ($ 005) "). Таким образом, для этого вам необходимо изменить эту строку 000003 следующим образом:

000003 //SYSOUT DD DISP=SHR,DSN=&SYSUID..P2.OUTPUT($005) 

После вы применили эти изменения, вы должны удалить все, что связано с 2 jobstep (так начиная от строки 000009 и все после этой линии).

Если по каким-либо причинам вы все еще хотите, чтобы все эти линии по-прежнему быть включены в этот JCL, просто вставить новую строку в передней линии 000009, который выглядит примерно так:

000009 // 

Это приведет все остальные После этого строки JCL просто игнорируются.

+0

Я согласен с этим :-) –

+0

Спасибо, Билл, между прочим: что бы ни случилось с MFsite в районе 51? Немного стыдно, я думаю, что он не «сделал» это, нет? Любой шанс, который мы могли бы придать этому типу новой попытки? –

Смежные вопросы