20
20 DFSORT TRICKS FOR ZOS USERS www.srinimf.com 1

20 DFSORT Tricks For Zos Users - Interview Questions

Embed Size (px)

DESCRIPTION

20 DFSORT Tricks For Zos Users - Interview Questions

Citation preview

Page 1: 20 DFSORT Tricks For Zos Users - Interview Questions

1

20 DFSORT TRICKS

FOR ZOS USERS

www.srinimf.com

Page 2: 20 DFSORT Tricks For Zos Users - Interview Questions

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

19

REFERENCESftp://ftp.software.ibm.com/storage/dfsort/mvs/sorttrck.pdf

Page 20: 20 DFSORT Tricks For Zos Users - Interview Questions

20

Thank Youwww.srinimf.com