Introduction


DFSORT is one of the IBM Data Facility family products. The DFSORT is a high-performance data arranger developed by IBM for OS/390 and MVS/ESA users.

Using DFSORT,

  1. The datasets can be sorted, merged, and copied.
  2. List of names can be alphabetized
  3. Performing data management tasks with record-level editing capability.
  4. Manipulate the data(records) in the data sets(group of records).

DFSORT processing can be affect the whole data set mostly. Some form of DFSORT processing effects certain individual records in the data set.The term "record" refers collection of related information used as a unit(Field).

Other names that can be used to invoke SORT are ICEMAN, IERRCO00, IGHRCOOO and SYNCSORT.The below are list of major tasks that can be done by SORT

Sorting data sets


DFSORT used to reorder the records in data sets. Sorting is arranging records in either ascending or descending order within a file.Data can be sorted in many different formats.

Merging data sets


DFSORT used to merge data sets. DFSORT merges data sets by combining two or more files to a single file.The data sets merge must have previously sorted into the same order (ascending or descending).The sorting position should be same among the merging files.

Copying data sets


DFSORT can copy data sets/files as it is without any sorting or merging in effect. Data can be copied in the same way that how the sort or merge copied them.

Joining data sets


DFSORT can perform various "join" operations on two or more data sets based on one or more keys. Join operation can be done in a various ways including inner join, full outer join, left outer join, right outer join and unpaired combinations.

The one or more input data sets can be of different types (fixed, variable, VSAM, etc,.) . The one or more input data sets can have joining keys in different positions. DFSORT always invoked by using JCL.

Sample JCL:


//STEPSORT EXEC PGM=SORT,PARM=sort-parms
//SORTIN   DD DSN=MTHUSR.SORTDATA.INPUT1,DISP=SHR 
//SORTINnn DD DSN=MTHUSR.SORTDATA.INPUT2,DISP=SHR 
//SORTOUT  DD DSN=MTHUSR.SORTDATA.OUTPUT,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=SYSDA,
//            SPACE=(CYL,(2,2),RLSE),
//            DCB=(LRECL=80,BLKSIZE=0,RECFM=FB,DSORG=PS)
//SORTOFnn DD DSN=MTHUSR.SORTDATA.OUTPUT1, 
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=SYSDA,
//            SPACE=(CYL,(2,2),RLSE),
//            DCB=(LRECL=80,BLKSIZE=0,RECFM=FB,DSORG=PS)
//SORTXSUM DD DSN= MTHUSR.SORTDATA.OUTPUT2,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=SYSDA,
//            SPACE=(CYL,(2,2),RLSE),
//            DCB=(LRECL=80,BLKSIZE=0,RECFM=FB,DSORG=PS)
//SORTWKnn DD SPACE=(CYL,(20,15),RLSE),UNIT=SYSDA
//SYSOUT DD SYSOUT=*
//SYSIN DD *
	control statements
/*