| IBM MAINFRAME HELP & SUPPORT FORUMS Technical Forums for IBM Mainframe Applications like COBOL, JCL, CICS, DB2, FileAid, DFSORT, Endevor, Xpediter, CoolGen, CA-7&11, AbendAid, IMS, IDMS, PL/I, MqSeries, SyncSort, Assembler, ChangeMan, Easytrieve, InterTest, REXX, CLIST etc...
|
| View previous topic :: View next topic |
| Author |
Message |
mohitsaini
Joined: 15 May 2006
Posts: 41
|
| Posted: Wed Jul 02, 2008 8:26 pm Post subject: how to bypass this record? |
|
|
My data is something like this:
Claim# | Trans | Date/Time | Line-Count
188007615401 | 00 | 20080505/1506373 | 5
188007615401 | 74 | 20080505/1506373 | 4
188007615401 | 00 | 20080505/ 921269 | 4
My requirement is when
"Trans = 74" AND "the previous Trans = 00" AND "Date/Time is matching for both of them"
THEN bypass all the records belonging to claim# 188007615401.
Thanks,
Mohit |
|
| Back to top |
|
Skolusu
Joined: 07 Dec 2007
Posts: 357
Location: San Jose
|
| Posted: Wed Jul 02, 2008 10:43 pm Post subject: Reply to: how to bypass this record? |
|
|
Mohitsaini,
The following DFSORT/ICETOOL JCL will produce the desired results. I assumed that your input is 80 bytes and of FB recfm.
Code:
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD *
----+----1----+----2----+----3----+----4----+----5----+----6
188007615401 | 00 | 20080505/1506373 | 5
188007615401 | 74 | 20080505/1506373 | 4
188007615401 | 00 | 20080505/ 921269 | 4
//OUT DD SYSOUT=*
//TOOLIN DD *
SPLICE FROM(IN) TO(OUT) ON(1,12,CH) KEEPNODUPS WITHALL -
WITH(1,80) KEEPBASE USING(CTL1)
//CTL1CNTL DD *
INREC IFTHEN=(WHEN=(16,2,CH,EQ,C'74'),OVERLAY=(81:20,18))
SORT FIELDS=(01,12,CH,A,81,18,CH,D)
OUTFIL FNAMES=OUT,BUILD=(01,80),
OMIT=(20,18,CH,EQ,81,18,CH,AND,16,2,CH,EQ,C'00')
/*
Hope this helps...
Cheers |
|
| Back to top |
|
mohitsaini
Joined: 15 May 2006
Posts: 41
|
| Posted: Thu Jul 03, 2008 11:40 am Post subject: |
|
|
| Thanks Kolusu |
|
| Back to top |
|
| |
THIS IS AN ARCIVE FORUM IN READ ONLY MODE. IF YOU WANT TO ASK YOUR DOUBTS USE THE ACTUAL FORUM
|