![Page 1: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/1.jpg)
1
20 DFSORT TRICKS
FOR ZOS USERS
www.srinimf.com
![Page 2: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/2.jpg)
2
CONVERTING DATESI am giving here only sysin code so that you can get quick refresh:Y4T = YYYYMMDD//SORTOUT DD SYSOUT=*//SYSIN DD * OPTION COPY INREC BUILD=(1,8,Y4T,TOJUL=Y4T)/*We converted to Julian date YYYYDDD
![Page 3: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/3.jpg)
3
FILTER INVALID DATESOPTION COPY
OUTREC OVERLAY=(30:16,8,Y4T,TOGREG=Y2T)
OUTFIL INCLUDE=(30,1,CH,EQ,C'*'),BUILD=(1,25)
Wherever ‘*’ is there in date starting position. Those records we can get in the output.
![Page 4: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/4.jpg)
4
DIFFERENCE BETWEEN DATES//SYSIN DD * OPTION COPY INREC OVERLAY=(20:1,8,Y4T,DATEDIFF,10,8,Y4T)/*
Output contains différence between dates.
![Page 5: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/5.jpg)
5
SET STATEMENT IN SYSIN CARDS// SET INPVAR1='BBDY1'// SET INPVAR2='BBJOB'the following DFSORT symbols would be built in SYMNAMES:the INCLUDE statement would be transformed to: INCLUDE COND=(8,5,CH,EQ,C'BBDY1',OR,8,5,CH,EQ,C'BBJOB')
![Page 6: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/6.jpg)
6
SPLIT INPUT FILE//SYSIN DD *
OPTION COPY
OUTFIL FNAMES=OUT1,INCLUDE=(1,4,CH,EQ,C'1010'),ACCEPT=100
OUTFIL FNAMES=OUT2,INCLUDE=(1,4,CH,EQ,C'1020'),ACCEPT=100
OUTFIL FNAMES=OUT3,INCLUDE=(1,4,CH,EQ,C'1030'),ACCEPT=100
OUTFIL FNAMES=OUT4,INCLUDE=(1,4,CH,EQ,C'1040'),ACCEPT=100
/*
This trick we use to split input record into 4 outfiles.
![Page 7: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/7.jpg)
7
CONVERTING EBCDIC TO ASCII OUTREC OVERLAY=(51:51,100,TRAN=ETOA, 301:301,40,TRAN=ETOA)
![Page 8: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/8.jpg)
8
JOIN FIELDS BASED ON KEY//JK1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//IN1 DD DSN=... file 1
//IN2 DD DSN=... file 2
//OUT DD DSN=... output file
//SYSIN DD *
JOINKEYS F1=IN1,FIELDS=(1,3,A),SORTED
JOINKEYS F2=IN2,FIELDS=(1,3,A),SORTED
REFORMAT FIELDS=(F1:1,9,F2:5,5)
OPTION COPY
OUTFIL FNAMES=OUT,BUILD=(1,9,X,10,5)
/*
File A
000 $$$$$
File B
001 BBBBB
Output
001 AAAAA BBBBB
![Page 9: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/9.jpg)
9
GET MATCHING FIELDS FROM 2 FILES//JK2 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//IN1 DD DSN=... input file1 (FB/18)
//IN2 DD DSN=... input file2 (FB/22)
//OUT DD DSN=... output file (FB/27)
//SYSIN DD *
JOINKEYS F1=IN1,FIELDS=(12,4,A,3,9,A)
JOINKEYS F2=IN2,FIELDS=(1,4,A,6,9,A)
REFORMAT FIELDS=(F2:1,22,F1:1,1,17,2)
OPTION COPY
OUTFIL FNAMES=OUT,BUILD=(1,22,X,23,1,X,24,2)
/*
![Page 10: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/10.jpg)
10
CARTESIAN JOIN BASED ON KEY//CJ EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//IN1 DD DSN=... input fileA (FB/30)
//IN2 DD DSN=... input fileB (FB/16)
//SORTOUT DD DSN=... output file (FB/36)
//SYSIN DD *
JOINKEYS F1=IN1,FIELDS=(1,10,A)
JOINKEYS F2=IN2,FIELDS=(1,10,A)
REFORMAT FIELDS=(F2:1,16,F1:11,20)
OPTION COPY
/*
![Page 11: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/11.jpg)
11
MATCHING WITH KEY – NEED DATA FROM ONLY ONE FILE//JK2 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//IN1 DD DSN=... input file1 (FB/25)
//IN2 DD DSN=... input file2 (FB/15)
//SORTOUT DD DSN=... output file (FB/15)
//SYSIN DD *
JOINKEYS F1=IN1,FIELDS=(7,9,A)
JOINKEYS F2=IN2,FIELDS=(1,9,A)
REFORMAT FIELDS=(F2:1,15)
OPTION COPY
/*
=> Now the data is from File2
![Page 12: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/12.jpg)
12
NEED FILE1 DATA WITHOUT MATCHING IN FILE2//SYSIN DD * JOINKEYS F1=IN1,FIELDS=(7,9,A) JOINKEYS F2=IN2,FIELDS=(1,9,A) JOIN UNPAIRED,F1,ONLY OPTION COPY/*
![Page 13: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/13.jpg)
13
NEED FILE1(VB) DATA WITHOUT MATCHING IN FILE2- VB
//JK4 EXEC PGM=SORT//SYSOUT DD SYSOUT=*//IN1 DD DSN=... input file1 (VB)//IN2 DD DSN=... input file2 (VB)//SORTOUT DD DSN=... output file (VB)//SYSIN DD * JOINKEYS F1=IN1,FIELDS=(11,9,A) JOINKEYS F2=IN2,FIELDS=(5,9,A) JOIN UNPAIRED,F1,ONLY OPTION COPY/*
![Page 14: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/14.jpg)
14
MATCH IN FILE1, MATCH IN FILE2, NO MATCH OF FILE1 AND FILE2//JK5 EXEC PGM=SORT//SYSOUT DD SYSOUT=*//IN1 DD DSN=... input File1 (FB/10)//IN2 DD DSN=... input File2 (FB/10)//OUT12 DD SYSOUT=* names in File1 and File2//OUT1 DD SYSOUT=* names in File1 only//OUT2 DD SYSOUT=* names in File2 only//SYSIN DD * JOINKEYS F1=IN1,FIELDS=(1,10,A) JOINKEYS F2=IN2,FIELDS=(1,10,A) JOIN UNPAIRED,F1,F2 REFORMAT FIELDS=(F1:1,10,F2:1,10,?) OPTION COPY OUTFIL FNAMES=OUT12,INCLUDE=(21,1,CH,EQ,C'B'), BUILD=(1,10) OUTFIL FNAMES=OUT1,INCLUDE=(21,1,CH,EQ,C'1'), BUILD=(1,10) OUTFIL FNAMES=OUT2,INCLUDE=(21,1,CH,EQ,C'2'), BUILD=(11,10)/*
![Page 15: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/15.jpg)
15
FB TO VB CONVERSIONOUTFIL FNAMES=FBVB1,FTOV OUTFIL FNAMES=FBVB2,FTOV,BUILD=(1,10,C'=',21,10)
![Page 16: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/16.jpg)
16
KEEP DUPLICATE RECORDSSUM FIELDS=NONE,XSUM
SUM FIELDS=NONE => it will not keep duplicates. It will remove duplicate records.
![Page 17: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/17.jpg)
17
ZD TO PD CONVERSIONhttp://srinimf.com/2012/04/26/jcl-sort-pd-to-zd-with-length-calculation/
![Page 18: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/18.jpg)
18
HEADER, TITLE AND FOOTERThese will be used for report generation purpose. Some shops use SORT, and others use Easytrieve.
Just go through reference section. These are commonly asked questions in Interviews.
![Page 19: 20 DFSORT Tricks For Zos Users - Interview Questions](https://reader035.vdocuments.net/reader035/viewer/2022073101/54c17c6e4a79590b338b4609/html5/thumbnails/19.jpg)
19
REFERENCESftp://ftp.software.ibm.com/storage/dfsort/mvs/sorttrck.pdf