10 Best DFSORT Really useful Ready to Use Examples

1. How to copy data set in DFSORT

SORT FIELDS=COPY
FIELDS - The input data set is copied to the output data set 
without sorting or merging.

2. How to compare Dates in DFSORT

INCLUDE FORMAT=Y2T,
COND=(3,4,GE,Y’9901’,AND,
3,4,LE,Y’0312’,OR,
3,4,LE,Y’0000’) 

This example illustrates how to only include records in which:  
A C'yymm' date field  in bytes 3 through 6 is between January 1999 
and December 2003
OR INCLUDE Control Statement

Note that the century window in effect will be used to interpret 
the Y'9901' and Y'0312' date constants, as well as real dates in 
the C'yymm' date field. However, the century window will not be 
used to interpret the Y'0000' special indicator constant or 
special indicators in the C'yymm' date field.

INCLUDE COND=(2,3,Y2X,LT,36,5,Y2T)
This example illustrates how to only include records in which
a P'dddyy' date field in bytes 2 through 4 is less than a Z'yyddd' 
date field in bytes 36 through 40.

Note that the century window in effect will be used to interpret 
real dates in the P'dddyy' and Z'yyddd' date fields. However, 
the century window will not be used to interpret special 
indicators in the P'dddyy' and Z'yyddd' date fields

3. How to Sort dataset in DFSORT

SORT FIELDS=(7025,4,A,5048,8,A),FORMAT=ZD,EQUALS
FIELDS - The major control field begins on byte 7025 of each 
record, is 4 bytes long, contains zoned decimal data (FORMAT=ZD), 
and is to be sorted in ascending sequence. The second control 
field begins on byte 5048, is 8 bytes long, has the same data 
format as the first field, and is also to be sorted in ascending order.

FORMAT - FORMAT=ZD is used to supply ZD format for the p,m,s 
fields and is equivalent to specifying p,m,ZD,s for these fields.  
With FORMAT=f, you can mix p,m,s and p,m,f,s fields when that's 
convenient such as when all or most of the fields have the same 
format (although you can always code p,m,f,s for all fields 
and not use FORMAT=f, if you prefer). For example, 
the following are also valid uses of the FORMAT=f parameter:

SORT FORMAT=BI,FIELDS=(21,4,A,5,4,PD,A,31.3,1.4,A,52,20,A)

SORT FIELDS=(16,4,A,22,8,BI,D,3,2,A),FORMAT=FI
EQUALS - specifies that the sequence of equal collating 
records is to be preserved from input to output.

4. How to use DFSORT Include and Exclude

Read DFSORT Include here

Read OMIT Exclude here

5. How to get Current Date from DFSORT

Operand Constant April 19, 2001, 04:52:45 PM 
DATE1    C'yyyymmdd'            C'20010419' 
DATE1(c) C'yyyycmmcdd'          C'2001/04/19' 

DATE2    C'yyyymm'              C'200104' 

DATE2(c) C'yyyycmm'             C'2001/04' 

DATE3    C'yyyyddd'             C'2001109' 

DATE3(c) C'yyyycddd'             C'2001/109' 

DATE4    C'yyyy-mm-dd-hh.mm.ss' C'2001-04-19-16.52.45'

INCLUDE COND=(1,13,CH,GT,DATE4) – Here DATE4 is a timsestamp

6. How to represent Hex in DFSORT

           Hex             Value               Length
           ---             ----                ------
Valid      X'FF'             FF                   1 

Valid      X'BF3C'           BF3C                  2 

Valid      3X'00000F'        00000F00000F00000F     9

Valid      4000X'FFFF'      FF repeated 8000 times    8000

7. How to use IFTHEN, INREC in DFSORT

Read best examples here

 7a. How to use Lookup table in DFSORT

OPTION COPY,Y2PAST=1985
INREC FIELDS=(SEQNUM,4,BI,
8,5,ZD,TO=PD,
31,2,PD,TO=FI,LENGTH=2,
15,6,Y2TP,
25,3,CHANGE=(1,C’L92’,X’01’,C’M72’,X’02’,C’J42’,X’03’),
NOMATCH=(X’FF’))

This example illustrates how a sequence number can be generated, 
how values in one numeric or date format can be converted to a
nother format, and how a lookup table can be used.

The reformatted input records will look as follows:

Position Contents
1-4 A binary sequence number that starts at 1 and increments by 1.
5–7 A PD field containing the converted ZD field from input positions
8 through 12.
8–9 An FI field containing the converted PD field from input positions
31 through 32.
10–14 A P’yyyymmdd’ date field containing the C’yymmdd’ date field
from input positions 15-20 transformed according to the specified
century window of 1985-2084.
15 A BI field containing X’01’, X’02’, X’03’ or X’FF’ as determined by
using a lookup table for the input field in positions 25-27.

The SORT statement can now refer to the “sort” field in 
the reformatted input records. The OUTREC statement is 
used to restore the records to their original format.

8. How to remove Duplicates in DFSORT

SUM FIELDS=(5,5,ZD,12,6,PD,21,3,PD,35,7,ZD)
SUM FORMAT=ZD,FIELDS=(5,5,12,6,PD,21,3,PD,35,7)
SUM FIELDS=(5,5,ZD,12,6,21,3,35,7,ZD),FORMAT=PD
SUM FIELDS=NONE ......removes duplicates

The permissible field formats are shown under the description of ‘f’ for fields.
Default: None.

FORMAT=f must be specified if any field is specified as p,m rather tha n p,m,f.

9. How to use IFTHEN overlay in DFSORT

Read IFTHEN,OVERLAY here

10. How to Use Packed or Zoned decimal in DFSORT

Read more about PD, ZD here

Advertisements

Author: Srini

Experienced software developer. Skills in Development, Coding, Testing and Debugging. Good Data analytic skills (Data Warehousing and BI). Also skills in Mainframe.