Upload
srinimf-techjobsbizsuccess
View
573
Download
2
Embed Size (px)
DESCRIPTION
20 DFSORT Tricks For Zos Users - Interview Questions
Citation preview
1
20 DFSORT TRICKS
FOR ZOS USERS
www.srinimf.com
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
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.
4
DIFFERENCE BETWEEN DATES//SYSIN DD * OPTION COPY INREC OVERLAY=(20:1,8,Y4T,DATEDIFF,10,8,Y4T)/*
Output contains différence between dates.
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')
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.
7
CONVERTING EBCDIC TO ASCII OUTREC OVERLAY=(51:51,100,TRAN=ETOA, 301:301,40,TRAN=ETOA)
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
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)
/*
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
/*
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
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/*
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/*
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)/*
15
FB TO VB CONVERSIONOUTFIL FNAMES=FBVB1,FTOV OUTFIL FNAMES=FBVB2,FTOV,BUILD=(1,10,C'=',21,10)
16
KEEP DUPLICATE RECORDSSUM FIELDS=NONE,XSUM
SUM FIELDS=NONE => it will not keep duplicates. It will remove duplicate records.
17
ZD TO PD CONVERSIONhttp://srinimf.com/2012/04/26/jcl-sort-pd-to-zd-with-length-calculation/
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.
19
REFERENCESftp://ftp.software.ibm.com/storage/dfsort/mvs/sorttrck.pdf