Code: |
//STEP0100 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN DD * HEADER 02/05/2004 522222222 -----------------------------> 517001053 -----------------------------> 517001194 -----------------------------> 517001202 -----------------------------> DETAIL RECORDS 517001210 -----------------------------> DETAIL RECORDS 517001228 TRAILER 000000018 //T1 DD DSN=&T1,DISP=(,PASS),SPACE=(TRK,(1,1),RLSE) //T2 DD DSN=&T2,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE) //T3 DD DSN=&T3,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE) //CON DD DSN=&T1,DISP=OLD,VOL=REF=*.T1 // DD DSN=&T3,DISP=OLD,VOL=REF=*.T3 //OUT DD DSN=YOUR OUTPUT SORTED FILE, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(CYL,(X,Y),RLSE) //TOOLIN DD * COPY FROM(IN) USING(CTL1) SORT FROM(T2) USING(CTL2) SORT FROM(CON) USING(CTL3) //CTL1CNTL DD * OUTFIL FNAMES=T1,INCLUDE=(1,7,CH,EQ,C'HEADER ',OR, 1,7,CH,EQ,C'TRAILER'), OUTREC=(1,80,81:1,7,CHANGE=(8,C'HEADER ',C'00000000', C'TRAILER',C'99999999'), NOMATCH=(C'99999999')) OUTFIL FNAMES=T2,SAVE //CTL2CNTL DD * SORT FIELDS=(1,9,ZD,A) OUTFIL FNAMES=T3,OUTREC=(1,80,SEQNUM,8,ZD) //CTL3CNTL DD * SORT FIELDS=(81,8,ZD,A) OUTFIL FNAMES=OUT,OUTREC=(1,80) /* |
Code: |
HEADER 02/05/2004 517001053 -----------------------------> 517001194 -----------------------------> 517001202 -----------------------------> DETAIL RECORDS 517001210 -----------------------------> DETAIL RECORDS 517001228 522222222 -----------------------------> TRAILER 000000018 |
Code: |
//STEP0100 EXEC PGM=SYNCTOOL
//TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN DD DSN=TSORGOV.STMP05D1.TEST.SORT,DISP=SHR //T1 DD DSN=&T1,DISP=(,PASS),SPACE=(TRK,(1,1),RLSE) //T2 DD DSN=&T2,DISP=(,PASS),SPACE=(CYL,(5,5),RLSE) //T3 DD DSN=&T3,DISP=(,PASS),SPACE=(CYL,(5,5),RLSE) //CON DD DSN=&T1,DISP=OLD,VOL=REF=*.T1 // DD DSN=&T3,DISP=OLD,VOL=REF=*.T3 //OUT DD DSN=TSORGOV.TEST.ICETOOL.OUTPUT, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(CYL,(10,10),RLSE) //TOOLIN DD * COPY FROM(IN) USING(CTL1) SORT FROM(T2) USING(CTL2) SORT FROM(CON) USING(CTL3) //CTL1CNTL DD * OUTFIL FNAMES=T1,INCLUDE=(1,7,CH,EQ,C'HEADER ',OR, 1,7,CH,EQ,C'TRAILER'), OUTREC=(1,80,81:1,7,CHANGE=(8,C'HEADER ',C'00000000', C'TRAILER',C'99999999'), NOMATCH=(C'99999999')) OUTFIL FNAMES=T2,SAVE //CTL2CNTL DD * SORT FIELDS=(1,9,ZD,A) OUTFIL FNAMES=T3,OUTREC=(1,80,SEQNUM,8,ZD) //CTL3CNTL DD * SORT FIELDS=(81,8,ZD,A) OUTFIL FNAMES=OUT,OUTREC=(1,80) /* THanks, Ramesh |
Code: |
//STEP0200 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN DD * HEADER 02/05/2004 522222222 -----------------------------> 517001053 -----------------------------> 517001194 -----------------------------> 517001202 -----------------------------> DETAIL RECORDS 517001210 -----------------------------> DETAIL RECORDS 517001228 TRAILER 000000018 //OUT DD DSN=YOUR OUTPUT FILE, // DISP=(MOD,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(CYL,(X,Y),RLSE) //TOOLIN DD * COPY FROM(IN) USING(CTL1) SORT FROM(IN) USING(CTL2) COPY FROM(IN) USING(CTL3) //CTL1CNTL DD * OPTION STOPAFT=1 OUTFIL FNAMES=OUT //CTL2CNTL DD * OMIT COND=(1,7,CH,EQ,C'HEADER ',OR,1,7,CH,EQ,C'TRAILER') SORT FIELDS=(1,9,ZD,A) OUTFIL FNAMES=OUT //CTL3CNTL DD * INCLUDE COND=(1,7,CH,EQ,C'TRAILER') OUTFIL FNAMES=OUT /* |
Code: |
//R012 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD * HEADER 02/05/2004 522222222 -----------------------------> 517001053 -----------------------------> 517001194 -----------------------------> 517001202 -----------------------------> DETAIL RECORDS 517001210 -----------------------------> DETAIL RECORDS 517001228 TRAILER 000000018 /* //SORTOUT DD DSN=MY OUTPUT FILE, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // AVGREC=K, // SPACE=(80,(10,2),RLSE), // DCB=(RECFM=FB,LRECL=80) //SYSIN DD * INREC FIELDS=(1,7,CHANGE=(8,C'HEADER ',C'HEADER 1', C'TRAILER',C'TRAILER '), NOMATCH=(1,7),8,73) SORT FIELDS=(8,1,CH,D,1,9,CH,A) OUTFIL OUTREC=(1,7,9,73) /* |
Code: |
INREC FIELDS=(1,7,1,7,CHANGE=(1,C'HEADER ',C'3', C'TRAILER',C'1'), NOMATCH=(C'2'),8,73) SORT FIELDS=(8,1,CH,D,1,9,CH,A) OUTFIL OUTREC=(1,7,9,73) |
Code: |
INREC FIELDS=(1,80,1,7,CHANGE=(1,C'HEADER ',C'3', C'TRAILER',C'1'), NOMATCH=(C'2')) SORT FIELDS=(81,1,CH,D,1,9,CH,A) OUTFIL OUTREC=(1,80) |
Code: |
********************************MEMBERBFS ********************************** ********************************MEMBERFILEHDR ********************************** PEMP 033 090195K.B. THOMAS 7134831380 NSTS21286SM2 AA EMP.1R............003392.EMP.1R..... AB ********************************MEMBERFILE01 ********************************** PEMP 033 090195K.B. THOMAS 7134831380 NSTS21286SM2 AA 1CA PF01 102S OUT 1501 CB01 P03K6097J 04EVENT DEPL HEATERS PWR ON (K2) O CC ********************************MEMBERFILE02 ********************************** 2CA P03K6035L 05EVENT SFMDM EEPROM WRITE ENABLE CORES CC P03K6035L L O ON 02 PF01SIO101501 SS X S L 32CD P03K6035L P03K6035E P33M9001J CE ********************************MEMBERFILE03 ********************************** 3CA ********************************MEMBERFILE04 ********************************** 907 53 L O 1.00BIPL08051201600200 20032820.184615TA 907 53FFAFC40 F0001 U0000004 1 2 16 TB 906 53 L O 1.00BIPL08009800400100 10003125.000000TA ********************************MEMBERFILE05 ********************************** EMP 033 020491MICHAEL PLATOFF 7134838487 NSTS18411SM2 AA 1CA ********************************MEMBERFILE06 ********************************** 2CA P33K9901L 24EVENT HTRS ON/OFF HTRS ON/OFF CC P33K9901L O ON 01 QQ X H L CD P33K9901L 10003D00018098D5550000020002F1D5550000020001F2D55510000 CL01 P33K9901L 0000022000D3D5550000021000E3D5550000 CL02 P33K9901L 02008073D5550000020040B3 CL03 P33K9902L 56EVENT PCB K-RELAYS PCB K-RELAYS CC |
Code: |
********************************MEMBERFILEHDR **********************************BFS EMP 033 020491MICHAEL PLATOFF 7134838487 NSTS18411SM2 AA FILEHD OARE 014 061390RICHARD O. DRAKE7134833043 SM2 AA FILEHD PCSDLST 092 040595M. WILLIS 7134831040 NSTS18411SM2 AA FILEHD PEMP 033 090195K.B. THOMAS 7134831380 NSTS21286SM2 AA FILEHD PTSS 013 090595K.B. THOMAS 7134831380 NSTS21286SM2 AA FILEHD TSS 013 020491MICHAEL PLATOFF 7134838487 NSTS18411SM2 AA FILEHD UMP.UMP3 004 080295SONJA SUMMERS 7134834217 NSTS21249SM2 AA FILEHD EMP.1R............003392.EMP.1R..... AB FILEHD EMP.1R.HZD.CMDS...003133.EMP.1R..... AB FILEHD OARE..............001719............ AB FILEHD TSS.1R............003392.TSS.1R..... AB FILEHD TSS.1R.HZD.CMDS...003133.TSS.1R..... AB FILEHD TSS.1R.PCS.SUPPORT003133.TSS.1R..... AB FILEHD USMP.3............003407.USMP.3..... AB FILEHD 1CA FILE01 PF01 102S OUT 1501 CB01FILE01 PEMP 033 090195K.B. THOMAS 7134831380 NSTS21286SM2 AA FILE01 P03K6097J 04EVENT DEPL HEATERS PWR ON (K2) O CC FILE01 2CA FILE02 P03K6035L 05EVENT SFMDM EEPROM WRITE ENABLE CORES CC FILE02 P03K6035L L O ON 02 PF01SIO101501 SS X S L 32CD FILE02 3CA FILE03 P03C2201A 10AMP EMP EXPERIMENT DC CURRENT TI FILE04 P03C2201A J BSS L O 0 500 TJ FILE04 |
Code: |
********************************MEMBERFILEHDR **********************************BFS |
Code: |
********************************MEMBERFILEHDR **********************************FILEHDR |
Code: |
col 1- 38 col 39-44 col 77 - 78 ****************header rec1***************** detail rec 3 key400 cc detail rec 2 key100 aa .... ****************header rec2***************** detail rec 1 key300 cc detail rec 5 key200 aa .... |
Code: |
****************one header***************** detail rec 2 key100 aa key100 detail rec 5 key200 aa key200 detail rec 1 key300 cc key300 detail rec 3 key400 cc key400 |
Code: |
col 1- 38 39-44 77 - 78 ****************header key001******** detail rec 3 cc detail rec 2 aa .... ****************header key002******** detail rec 1 cc detail rec 5 aa .... |
Quote: |
1. you just want 1 header record (Yes! the first one only) 2. sort all the detail records on col 39 -44 and col 77- 78 (Yes!) 3. you want to append the columns 39 thru 44 at the end of each record (Yes!) |
Code: |
col 1- 38 39-44 77-78 81-82 ****************header key001***************** detail rec 2 aa key001 detail rec 3 cc key001 .... detail rec 5 aa key002 detail rec 1 cc key002 ... |
Code: |
col 1- 38 39-44 77-78 ****************key001************* detail rec 3 cc detail rec 2 aa .... ****************key002************* detail rec 1 cc detail rec 5 aa ... |
Code: |
col 1- 38 39-44 77-78 81-82 ****************key001***************** detail rec 2 aa key001 detail rec 3 cc key001 .... detail rec 5 aa key002 detail rec 1 cc key002 |
Code: |
//STEP0100 EXEC PGM=ICETOOL //DFSMSG DD SYSOUT=* //TOOLMSG DD SYSOUT=* //IN DD DSN=YOUR INPUT FILE, // DISP=SHR //HDR DD DSN=&HDR,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE) //DET DD DSN=&DET,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE) //CON DD DSN=*.HDR,VOL=REF=*.HDR,DISP=OLD // DD DSN=*.DET,VOL=REF=*.DET,DISP=OLD //T3 DD DSN=&T3,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE) //OUT DD SYSOUT=* //TOOLIN DD * COPY FROM(IN) USING(CTL1) SORT FROM(CON) USING(CTL2) SPLICE FROM(T3) TO(OUT) - ON(87,8,CH) - WITH(1,80) - WITHALL USING(CTL3) //CTL1CNTL DD * INREC FIELDS=(1,80,SEQNUM,8,ZD) OUTFIL FNAMES=HDR,INCLUDE=(1,1,CH,EQ,C'*'), OUTREC=(1,80,8C'0',SEQNUM,8,ZD,C'H',39,6) OUTFIL FNAMES=DET,SAVE, OUTREC=(1,88,SEQNUM,8,ZD,C'Z',6X) //CTL2CNTL DD * OPTION EQUALS INREC FIELDS=(1,96,(81,8,ZD,SUB,89,8,ZD),M11,LENGTH=8,97,7) SORT FIELDS=(97,8,ZD,A,105,1,CH,A,1,12,CH,A) OUTFIL FNAMES=T3,OUTREC=(1,80,106,6,97,8) //CTL3CNTL DD * OUTFIL FNAMES=OUT,OUTREC=(1,86) /* |
Code: |
OUTREC=(1,80,8C'0',SEQNUM,8,ZD,C'H',39,6) OUTFIL FNAMES=DET,SAVE, OUTREC=(1,88,SEQNUM,8,ZD,C'Z',6X) |
Code: |
OUTREC=(1,80, $ Copy 80 bytes from pos1 of input 8C'0', $ pad 8 zeroes SEQNUM,8,ZD, $ seqnum( record #) C'H', $ char of 'h' 39,6) $ Copy 6 bytes from pos 39 of input OUTFIL FNAMES=DET,SAVE, OUTREC=(1,88, $ Copy 88 bytes from pos 1 of inrec SEQNUM,8,ZD, $ seqnum( record #) C'Z', $ char of 'z' 6X) $ pad 6 spaces. |
Code: |
IF COND = 'A' OR 'B' OR 'C' PUT OUTPUT1 ELSE PUT OUTPUT2 END-IF |
Code: |
//CTL2CNTL DD * OPTION EQUALS INREC FIELDS=(1,96,(81,8,ZD,SUB,89,8,ZD),M11,LENGTH=8,97,7) SORT FIELDS=(97,8,ZD,A,1,9,CH,A,105,1,CH,A,1,12,CH,A) OUTFIL FNAMES=T3,OUTREC=(1,80,106,6,97,8) //CTL3CNTL DD * OUTFIL FNAMES=OPFILE,OUTREC=(1,86) /* If INREC FIELDS 1-1 is not blank and/or .... SORT FIELDS=(97,8,ZD,A,1,9,CH,A,105,1,CH,A,1,12,CH,A) ElseIf INREC FIELDS 1-1 is blank and/or INREC FIELDS 77-78 is "CA" and/or ..... SORT FIELDS=(97,8,ZD,A,105,1,CH,A,1,12,CH,A) Else SORT FIELDS=(97,8,ZD,A,105,1,CH,A,1,12,CH,A............) |
Code: |
//CTL2CNTL DD * OPTION EQUALS INREC FIELDS=(1,96,(81,8,ZD,SUB,89,8,ZD),M11,LENGTH=8,97,7) SORT FIELDS=(97,8,ZD,A,105,1,CH,A,1,12,CH,A) OUTFIL FNAMES=T3,OUTREC=(1,80,106,6,97,8) //CTL3CNTL DD * OUTFIL FNAMES=OUT,OUTREC=(1,86) /* |
Code: |
INREC FIELDS=(1,96,(81,8,ZD,SUB,89,8,ZD),M11,LENGTH=8,97,7) |
Code: |
Sort fields=(97,8,ZD,A, $ sort on 8 bytes starting at 97 105,1,CH,A, $ sort on 1 byte starting at 105 1,12,CH,A) $ sort on 12 bytes starting at 1 |
Code: |
OUTFIL FNAMES=T3, $ output file DD name OUTREC=(1,80, $ copy 80 bytes from pos 1 106,6, $ copy 6 bytes from pos 106 97,8) $ copy 8 bytes from pos 97 |
Code: |
//CTL3CNTL DD * OUTFIL FNAMES=OUT, $ output file DD name OUTREC=(1,86) $ copy 86 bytes from pos 1 |
Code: |
OUTREC=(1,80, $ Copy 80 bytes from pos1 of input 8C'0', $ pad 8 zeroes SEQNUM,8,ZD, $ seqnum( record #) C'H', $ char of 'h' 39,6) $ Copy 6 bytes from pos 39 of input |
Code: |
[80 bytes from byte 1][8 zeros][8 bytes sequence number][H][6 bytes from byte 39] |
Quote: |
so total record length = 80+8+8+1+6 = 103 ???? |
Code: |
I tried to catalog all the temporary datasets, so that I can see the actual data being put in them, but couldn't get it to work (I am very bad in mainframe), so I have to ask you this one more time: |
Quote: |
All you need to do is to create & catalog the datasets before the sort step. use IEFBR14 to create an empty file (& catalog it). Then use the datasets in the SYNCTOOL/ICETOOL with DISP as SHR. |
Code: |
//T1 DD DSN=USERID.TEMP.DSN1,DISP=(,CATLG),SPACE=(CYL,(X,Y),RLSE) //T2 DD DSN=USERID.TEMP.DSN2,DISP=(,CATLG),SPACE=(CYL,(X,Y),RLSE) //CON DD DSN=*.T1,VOL=REF=*.T1,DISP=OLD // DD DSN=*.T2,VOL=REF=*.T2,DISP=OLD |
Code: |
//TOOLIN DD * COUNT FROM(IPFILE) COPY FROM(IPFILE) USING(CTL1) COPY FROM(CON) USING(CTL2) SPLICE FROM(TEMP1) TO(TEMP2) - ON(87,8,CH) - WITH(1,80) - WITHALL USING(CTL3) COPY FROM(TEMP2) USING(CTL4) //CTL1CNTL DD * INREC FIELDS=(1,80,SEQNUM,8,ZD) OUTFIL FNAMES=HEADER,INCLUDE=(1,1,CH,EQ,C'*'), OUTREC=(1,80,8C'0',SEQNUM,8,ZD,C'H',39,6) OUTFIL FNAMES=DETAIL,SAVE, OUTREC=(1,88,SEQNUM,8,ZD,C'Z',6X) //CTL2CNTL DD * INREC FIELDS=(1,96,(81,8,ZD,SUB,89,8,ZD),M11,LENGTH=8,97,7) OUTFIL FNAMES=TEMP1,OUTREC=(1,80,106,6,97,8,89,8) //CTL3CNTL DD * OUTFIL FNAMES=TEMP2,OUTREC=(1,86,SEQNUM,7,ZD) //CTL4CNTL DD * OUTFIL FNAMES=TEMP3,INCLUDE COND=(1,1,CH,EQ,C' ',OR, 77,2,CH,EQ,C'TA',OR, 77,2,CH,EQ,C'TB',OR, 77,2,CH,EQ,C'TC',OR),OUTREC=(1,93,2,4,6X) $ PUT INTO TEMP3 THIS INCLUDE COND= DOES NOT WORK. OUTFIL FNAMES=TEMP4,INCLUDE=(77,2,CH,EQ,C'TT'),OUTREC=(1,93,10X,11,4) $ PUT INTO TEMP4 OUTFIL FNAMES=TEMP5,SAVE,OUTREC=(1,93,1,10) $ PUT EVERYTHING ELSE INTO TEMP5 /* |
Code: |
//CTL4CNTL DD * OUTFIL FNAMES=TEMP3, INCLUDE=(1,1,CH,EQ,C' ',OR, 77,2,CH,EQ,C'TA',OR, 77,2,CH,EQ,C'TB',OR, 77,2,CH,EQ,C'TC'), OUTREC=(1,93,2,4,6X) OUTFIL FNAMES=TEMP4,INCLUDE=(77,2,CH,EQ,C'TT'), OUTREC=(1,93,10X,11,4) OUTFIL FNAMES=TEMP5,SAVE, OUTREC=(1,93,1,10) /* |
Code: |
You have an extra OR in the include cond after 'TC' for Temp3. |
Code: |
Also you should just have INCLUDE on OUTFIL , instead of INCLUDE COND. Change your CTL4CNTL to the following. |
Code: |
STMT NO. MESSAGE 297 IEF645I INVALID REFERBACK IN THE DSNAME FIELD 298 IEF645I INVALID REFERBACK IN THE DSNAME FIELD 299 IEF645I INVALID REFERBACK IN THE DSNAME FIELD 300 IEF645I INVALID REFERBACK IN THE DSNAME FIELD 301 IEF645I INVALID REFERBACK IN THE DSNAME FIELD 302 IEF645I INVALID REFERBACK IN THE DSNAME FIELD |
Code: |
283 //IPFILE DD DSN=NSDC656.TEMP1,DISP=SHR 284 //OPFILE DD DSN=NSDC656.OLDLIST,DISP=(OLD,KEEP) 285 //HEADER DD DSN=NSDC656.HEADER, // DISP=(NEW,CATLG),SPACE=(CYL,(20,10),RLSE) 286 //DETAIL DD DSN=NSDC656.DETAIL, // DISP=(NEW,CATLG),SPACE=(CYL,(20,10),RLSE) 287 //CON DD DSN=*.HEADER,VOL=REF=*.HEADER,DISP=OLD 288 // DD DSN=*.DETAIL,VOL=REF=*.DETAIL,DISP=OLD 289 //TEMP1 DD DSN=NSDC656.A1,DISP=(NEW,CATLG),SPACE=(CYL,(20,10),RLSE) 290 //TEMP2 DD DSN=NSDC656.A2,DISP=(NEW,CATLG),SPACE=(CYL,(20,10),RLSE) 291 //TEMP3 DD DSN=NSDC656.A3,DISP=(NEW,CATLG),SPACE=(CYL,(20,10),RLSE) 292 //TEMP4 DD DSN=NSDC656.A4,DISP=(NEW,CATLG),SPACE=(CYL,(20,10),RLSE) 293 //TEMP5 DD DSN=NSDC656.A5,DISP=(NEW,CATLG),SPACE=(CYL,(20,10),RLSE) 294 //TEMP6 DD DSN=NSDC656.A6,DISP=(NEW,CATLG),SPACE=(CYL,(20,10),RLSE) 295 //TEMP7 DD DSN=NSDC656.A7,DISP=(NEW,CATLG),SPACE=(CYL,(20,10),RLSE) 296 //TEMP8 DD DSN=NSDC656.A8,DISP=(NEW,CATLG),SPACE=(CYL,(20,10),RLSE) 297 //TEMP9 DD DSN=*.A3,VOL=REF=*.A3,DISP=OLD 298 // DD DSN=*.A4,VOL=REF=*.A4,DISP=OLD 299 // DD DSN=*.A5,VOL=REF=*.A5,DISP=OLD 300 // DD DSN=*.A6,VOL=REF=*.A6,DISP=OLD 301 // DD DSN=*.A7,VOL=REF=*.A7,DISP=OLD 302 // DD DSN=*.A8,VOL=REF=*.A8,DISP=OLD 303 //TOOLIN DD * |
Code: |
//TEMP9 DD DSN=*.A3,VOL=REF=*.A3,DISP=OLD // DD DSN=*.A4,VOL=REF=*.A4,DISP=OLD // DD DSN=*.A5,VOL=REF=*.A5,DISP=OLD // DD DSN=*.A6,VOL=REF=*.A6,DISP=OLD // DD DSN=*.A7,VOL=REF=*.A7,DISP=OLD // DD DSN=*.A8,VOL=REF=*.A8,DISP=OLD |
Code: |
//TEMP9 DD DSN=*.TEMP3,VOL=REF=*.TEMP3,DISP=OLD // DD DSN=*.TEMP4,VOL=REF=*.TEMP4,DISP=OLD // DD DSN=*.TEMP5,VOL=REF=*.TEMP5,DISP=OLD // DD DSN=*.TEMP6,VOL=REF=*.TEMP6,DISP=OLD // DD DSN=*.TEMP7,VOL=REF=*.TEMP7,DISP=OLD // DD DSN=*.TEMP8,VOL=REF=*.TEMP8,DISP=OLD |
Code: |
//HEADER DD DSN=&&&&HEADER,DISP=(NEW,PASS) //DETAIL DD DSN=&&&&DETAIL,DISP=(NEW,PASS) //COMBIN DD DSN=*.HEADER,VOL=REF=*.HEADER,DISP=OLD // DD DSN=*.DETAIL,VOL=REF=*.DETAIL,DISP=OLD |
Code: |
317 IEF648I INVALID DISP FIELD- PASS SUBSTITUTED 318 IEF648I INVALID DISP FIELD- PASS SUBSTITUTED |
Code: |
//HEADER DD DSN=&&&&HEADER,DISP=(NEW,PASS) //DETAIL DD DSN=&&&&DETAIL,DISP=(NEW,PASS) //COMBIN DD DSN=HEADER // DD DSN=DETAIL |
Code: |
//HEADER DD DSN=&&HEADER,DISP=(NEW,PASS),SPACE=(CYL,(X,Y),RLSE) //DETAIL DD DSN=&&DETAIL,DISP=(NEW,PASS),SPACE=(CYL,(X,Y),RLSE) //COMBIN DD DSN=*.HEADER,VOL=REF=*.HEADER,DISP=OLD // DD DSN=*.DETAIL,VOL=REF=*.DETAIL,DISP=OLD |
Code: |
//HEADER DD DSN=&HEADER,DISP=(NEW,PASS),SPACE=(CYL,(X,Y),RLSE) //DETAIL DD DSN=&DETAIL,DISP=(NEW,PASS),SPACE=(CYL,(X,Y),RLSE) //COMBIN DD DSN=*.HEADER,VOL=REF=*.HEADER,DISP=OLD // DD DSN=*.DETAIL,VOL=REF=*.DETAIL,DISP=OLD |
Code: |
//DETAIL DD DSN=&&&&DETAIL,DISP=(NEW,PASS) //COMBIN DD DSN=&&&&HDR1,VOL=REF=*.HEADER,DISP=(NEW,PASS) // DD DSN=&&&&DET1,VOL=REF=*.DETAIL,DISP=(NEW,PASS) |
Code: |
//CON&DSN1 IF ( (&DSN1 EQ 1 OR (&DSN1 EQ 2)) AND // (&DSN2 EQ 'OLDLIST' OR (&DSN2 EQ 'NEWLIST' ) ) ) THEN |
Quote: |
I have another question, I have problem to find the correct syntax for the following statements? could you please show me how this is done the right way. Thanks you! //CON&DSN1 IF ( (&DSN1 EQ 1 OR (&DSN1 EQ 2)) AND // (&DSN2 EQ 'OLDLIST' OR (&DSN2 EQ 'NEWLIST' ) ) ) THEN |
Code: |
I am lost here ! what is the language you are referring to ? |
Code: |
// IF ( (&DSN1 = 1 | &DSN1 = 2) & (&DSN2 = OLDLIST | &DSN2 = NEWLIST ) ) THEN // statement............... // ENDIF |
Code: |
//********************************************************************** //*RUN ICETOOL UTILITY TO CONSTRUCT SORT KEYS THEN SORT THE RECORDS //********************************************************************** //SORT&DSN1 EXEC PGM=ICETOOL,REGION=512K //DFSMSG DD SYSOUT=* //TOOLMSG DD SYSOUT=* //IPFILE DD DSN=&USERID..TEMP&DSN1,DISP=SHR //OPFILE DD DSN=&USERID..&DSN2,DISP=(OLD,KEEP) //HEADER DD DSN=&&HEADER, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //DETAIL DD DSN=&&DETAIL, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //COMBIN DD DSN=*.HEADER,VOL=REF=*.HEADER,DISP=OLD // DD DSN=*.DETAIL,VOL=REF=*.DETAIL,DISP=OLD //TEMP1 DD DSN=&&T1, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //TEMP2 DD DSN=&&T2, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //TEMP3 DD DSN=&&T3, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //TEMP4 DD DSN=&&T4, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //TEMP5 DD DSN=*.TEMP3,VOL=REF=*.TEMP3,DISP=OLD // DD DSN=*.TEMP4,VOL=REF=*.TEMP4,DISP=OLD //TEMP6 DD DSN=&&T6, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //TEMP7 DD DSN=&&T7, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //TEMP8 DD DSN=&&T8, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //TEMP9 DD DSN=&&T9, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //TEMP10 DD DSN=&&T10, // DISP=(NEW,PASS),SPACE=(CYL,(10,20),RLSE) //TEMP11 DD DSN=*.TEMP6,VOL=REF=*.TEMP6,DISP=OLD // DD DSN=*.TEMP7,VOL=REF=*.TEMP7,DISP=OLD // DD DSN=*.TEMP8,VOL=REF=*.TEMP8,DISP=OLD // DD DSN=*.TEMP9,VOL=REF=*.TEMP9,DISP=OLD // DD DSN=*.TEMP10,VOL=REF=*.TEMP10,DISP=OLD //TOOLIN DD * COUNT FROM(IPFILE) COPY FROM(IPFILE) USING(CTL1) COPY FROM(COMBIN) USING(CTL2) SPLICE FROM(TEMP1) TO(TEMP2) - ON(87,8,CH) - WITH(1,80) - WITHALL USING(CTL3) COPY FROM(TEMP2) USING(CTL4) COPY FROM(TEMP5) USING(CTL5) SORT FROM(TEMP11) USING(CTL6) //CTL1CNTL DD * INREC FIELDS=(1,80,SEQNUM,8,ZD) OUTFIL FNAMES=HEADER, INCLUDE=(1,1,CH,EQ,C'*'), OUTREC=(1,80,8C'0',SEQNUM,8,ZD,C'H',39,6) OUTFIL FNAMES=DETAIL,SAVE, OUTREC=(1,88,SEQNUM,8,ZD,C'Z',6X) //CTL2CNTL DD * INREC FIELDS=(1,96,(81,8,ZD,SUB,89,8,ZD),M11,LENGTH=8,97,7) OUTFIL FNAMES=TEMP1, OUTREC=(1,80,106,6,97,8,89,8) //CTL3CNTL DD * OUTFIL FNAMES=TEMP2, OUTREC=(1,86,SEQNUM,7,ZD) //CTL4CNTL DD * OUTFIL FNAMES=TEMP3, INCLUDE=(1,1,CH,EQ,C' ',OR, 77,2,CH,EQ,C'TA',OR, 77,2,CH,EQ,C'TB',OR, 77,2,CH,EQ,C'TC'), OUTREC=(1,93,2,4,10X) OUTFIL FNAMES=TEMP4,SAVE, OUTREC=(1,93,1,10,4X) //CTL5CNTL DD * OUTFIL FNAMES=TEMP6, INCLUDE=(77,2,CH,EQ,C'TT'), OUTREC=(1,103,11,4) OUTFIL FNAMES=TEMP7, INCLUDE=(77,2,CH,EQ,C'CA'), OUTREC=(1,103,73,4) OUTFIL FNAMES=TEMP8, INCLUDE=(77,2,CH,EQ,C'FM'), OUTREC=(1,103,4X) OUTFIL FNAMES=TEMP9, INCLUDE=(77,2,CH,EQ,C'DL'), OUTREC=(1,103,1,4) OUTFIL FNAMES=TEMP10,SAVE, OUTREC=(1,103,4X) //CTL6CNTL DD * OPTION EQUALS INREC FIELDS=(1,107) SORT FIELDS=(81,6,CH,A, 94,10,CH,A, 77,2,CH,A, 104,4,CH,A, 79,2,CH,A, 87,7,CH,A) OUTFIL FNAMES=OPFILE, OUTREC=(1,86) /* |
output generated using printer-friendly topic mod. All times are GMT - 5 Hours