Quantcast
Viewing all articles
Browse latest Browse all 8500

DFSORT/ICETOOL :: RE: SORT trick needed

Author: bshkris
Posted: Thu May 04, 2017 9:14 pm (GMT 5.5)

Thank you. I got it thru ICE TOOL.
Actaully The business requirement came like.

Code:
 31267892017-01-01
 31267892017-01-11
 31354322017-04-03
 11245622017-03-03
 11245622017-03-03
If 1st part of key, 3126789 is same as next record, but dates are different..exclude both records from process. if dates are also same..then include only one record from that.

Below was my solution.
in 1st step I used below SORT
Code:
 SORT FIELDS=(01,4,CH,A,         /* COMP NO   
              05,09,CH,A,        /* COMP NO   
              14,10,CH,D)        /* DATE       
 SUM FIELDS=NONE,XSUM

In JCL:
Code:
SORTOUT  DD DSN=PMIT.SBDOM.PMIDJ297.SORT1,         
            DISP=(NEW,CATLG,DELETE),               
            SPACE=(CYL,(100,10),RLSE),             
            DCB=(RECFM=FB,LRECL=80)               
SORTXSUM DD DSN=PMIT.SBDOM.PMIDJ297.INDUPS,       
            DISP=(NEW,CATLG,DELETE),               
            SPACE=(CYL,(100,10),RLSE),             
            DCB=(RECFM=FB,LRECL=80)
2nd Step:
Code:
PSD29715 EXEC PGM=ICETOOL                                           
TOOLMSG  DD SYSOUT=*                                               
DFSMSG   DD SYSOUT=*                                               
SYSOUT   DD SYSOUT=*                                               
SYSPRINT DD SYSOUT=*                                               
IN       DD DSN=PMIT.SBDOM.PMIDJ297.SORT1,DISP=SHR                 
OUTNOD   DD DSN=&SORTFILE,DISP=(NEW,CATLG,DELETE),                 
            SPACE=(CYL,(100,10),RLSE),                             
            DCB=(RECFM=FB,LRECL=80)                                 
OUTDUP   DD DSN=PMIT.SBDOM.PMIDJ297.INDUPS2,DISP=(NEW,CATLG,DELETE),
            SPACE=(CYL,(100,10),RLSE),                             
            DCB=(RECFM=FB,LRECL=80)                                 
TOOLIN   DD
SELECT FROM(IN) TO(OUTNOD) ON(01,13,CH) NODUPS 
SELECT FROM(IN) TO(OUTDUP) ON(01,13,CH) ALLDUPS
//*

Then My SORTFILE have only desired records.
Code'd

_________________
hi, good luck, keep in touch


Viewing all articles
Browse latest Browse all 8500

Trending Articles