Stefan,

Right off the bat, the reason you are having an issue is that you are only 
formatting the timestamp when=NONE condition ie. the data does NOT contain 
X'FA' or X'00' in position 9, but then you used another OUTREC overlay 
irrespective of the condition.

You also don't need another pass of data to overlay the contents of the 
microseconds

So get rid off

COPY FROM(OUT3) TO(OUT4) USING(CTL3)

And move CTL3CNTL to the end of CTL2CNTL with the following  (untested cards my 
flight is in next 2 hours and I will be offline)

OUTREC IFTHEN=(WHEN=(9,16,CH,EQ,C'{"MFSOURCETYPE":'),
      OVERLAY=(103:083,14,TRAN=UNHEX,
               063:103,7,BI,+1000000,M11,LENGTH=6))

OUTFIL BUILD=(9,1100,SQZ=(SHIFT=LEFT))


PS : Also that is a very old techinque to compare files and match them. Look Up 
JOINKEYS and it can be done a Single pass of data


Thanks,
 Kolusu
DFSORT Development
IBM Corporation

-----Original Message-----
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of 
Stefan Lezzi
Sent: Saturday, September 17, 2022 7:32 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: dfsort - microseconds (STCK/TOD)

That's a kind offer, but please don't look at the (un)elegance of the code. 
This made a different thread :-) Just search for TRNSTCK and OVERLAY, at the 
end.

//TOOLIN    DD *
 COPY FROM(IN)            USING(CTL1)
 COPY FROM(OUT)  TO(OUT2) USING(CTL2)
 SPLICE FROM(OUT2) TO(OUT3) ON(1,8,ZD) WITHANY -
   WITH(500,300) WITH(800,300)
 COPY FROM(OUT3) TO(OUT4) USING(CTL3)
//CTL1CNTL  DD *
 INCLUDE COND=(5,1,CH,EQ,X'FA')
 OUTFIL FNAMES=OUT,VTOF,
 BUILD=(SEQNUM,8,ZD,5,992,/,SEQNUM,8,ZD,993,56,/,
 BUILD=(SEQNUM,8,ZD,5,992,/,SEQNUM,8,ZD,993,56,/,
   SEQNUM,8,ZD,1049,56,/,
   SEQNUM,8,ZD,1105,56,/,
   SEQNUM,8,ZD,1161,56,/,
   SEQNUM,8,ZD,1217,56,/,
   SEQNUM,8,ZD,1273,56,/,
   SEQNUM,8,ZD,1329,56,/,
   SEQNUM,8,ZD,1385,56,/,
   SEQNUM,8,ZD,1441,56,/,
   SEQNUM,8,ZD,1497,56)
//CTL2CNTL  DD *
 INCLUDE COND=(9,1,CH,EQ,X'FA',OR,
  (9,1,BI,EQ,UC,AND,
  10,1,BI,EQ,UC,AND,9,6,BI,NE,C'ALLDBS'),OR,9,1,BI,EQ,X'00')
 INREC IFTHEN=(WHEN=(9,1,BI,EQ,UC,AND,
  10,1,BI,EQ,UC,AND,9,6,BI,NE,C'ALLDBS'),
  BUILD=(1,8,500C' ',
  C'"DB2":"DB2",',
  C'"DBTPLAN":"',9,8,C'",',
  C'"DB2SEL":"',21,4,BI,C'",',
  C'"DB2OPEN":"',25,4,BI,C'",',
  C'"DB2ISRT":"',29,4,BI,C'",',
  C'"DB2DLET":"',33,4,BI,C'",',
  C'"DB2UPD":"',37,4,BI,C'",',
  C'"DB2DDL":"',41,2,BI,C'",',
  C'"DB2DYN":"',43,2,BI,C'",',
  C'"DB2CTRL":"',45,2,BI,C'",',
  C'"DB2OTHER":"',47,2,BI,C'",',
  C'"DB2SSID":"',49,4,C'",',
  C'}'),
  HIT=NEXT),
 IFTHEN=(WHEN=(9,1,BI,EQ,X'00'),
  BUILD=(1,8,800C' ',
  C'"MQ":"MQ",',
  C'"MQGET":"',21,4,BI,C'",',
  C'"MQPUT":"',25,4,BI,C'",',
  C'"MQPUT1":"',29,4,BI,C'",',
  C'"MQSET":"',33,4,BI,C'",',
  C'"MQOPEN":"',37,2,BI,C'",',
  C'"MQCLOSE":"',39,2,BI,C'",',
  C'"MQBACK":"',41,2,BI,C'",',
  C'"MQCMT":"',43,2,BI,C'",',
  C'"MQCONN":"',45,2,BI,C'",',
  C'"MQDISC":"',47,2,BI,C'",',
  C'"MQSSID":"',49,4,C'",',
  C'"MQINQ":"',53,2,BI,C'",',
  C'"MQUNKN":"',55,2,BI,C'",',
  C'}',200C' '),
  HIT=NEXT),
  HIT=NEXT),
 IFTHEN=(WHEN=NONE,
  BUILD=(1,8,C'{',
  C'"MFSOURCETYPE":"CSFA",',
  C'"TRNSTCK":"',393,8,DC1,EDIT=(TTTT-TT-TT),C'T',
                 393,8,TC1,EDIT=(TT:TT:TT),
                 C'.',
                 63:6X,
                 X,
                 83:C'0',
                 393,08,HEX,
  C'+0000:00',C'",',
  C'"ELAMICS":"',(517,8,BI,SUB,393,8,BI),DIV,+4096,C'",',
  C'"TRNARVD":"',117,4,TRAN=HEX,C'",',
  C'"TRNARVTH":"',587,4,TRAN=HEX,C'",',
  C'"TRNIMSID":"',25,4,C'",',
  C'"TRNSMFID":"',29,4,C'",',
  C'"TRNJOBNM":"',37,8,C'",',
  C'"TRNPSBNM":"',61,8,C'",',
  C'"TRNCODE":"',69,8,C'",',
  C'"TRNESSID":"',77,4,C'",',
  C'"TRNLTERM":"',125,8,C'",',
  C'"TRNTCPU":"',509,8,BI,DIV,+4096,EDIT=(TTTT.TTTTTT),C'",',
  C'"TRNSTCKE":"',517,8,DC1,EDIT=(TTTT-TT-TT),C'T',
                  517,8,TC4,EDIT=(TT:TT:TT.TT),C'+0000:00',C'",',
  C'"UOW":"',615,32,TRAN=HEX,C'",',
  C'}'))
//CTL3CNTL  DD *
 OUTREC OVERLAY=(103:83,14,TRAN=UNHEX,
         63:103,7,BI,+1000000,M11,LENGTH=6)
 OUTREC BUILD=(9,1100,SQZ=(SHIFT=LEFT))

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu<mailto:lists...@listserv.ua.edu> with the message: 
INFO IBM-MAIN


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to