View previous topic :: View next topic
Author
Message
Akatsukami Global Moderator Joined: 03 Oct 2009Posts: 1788 Location: Bloomington, IL
kushkush wrote:
Hi Skolusu,
Sorry, I usually get these 37 Strings. But the command output is dynamic.
When you say "the command output is dynamic" do you mean "the output will contain some, but not necessarily all, of these strings" or "these are only a sample of the strings that the command might produce"?
Back to top
kushkush New User Joined: 30 Jun 2005Posts: 37 Location: Germany
No, Usually the command produces 37 Strings but in some cases some strings are missing from output.
Back to top
dbzTHEdinosauer Global Moderator Joined: 20 Oct 2006Posts: 6966 Location: porcelain throne
Come on Akatsukami,
ask him again.
but don't forget - insanity is doing the same thing over and over and expecting a different result.
Back to top
dick scherrer Moderator Emeritus Joined: 23 Nov 2006Posts: 19244 Location: Inside the Matrix
Hello,
Which string can be guaranteed to be there?
Back to top
Skolusu Senior Member Joined: 07 Dec 2007Posts: 2205 Location: San Jose
kushkush,
I specifically asked you which string is always present among the 3 strings that you are validating. You never answered my question. However I made an assumption that the string '-----CATALOG EVENT----' is always present in your report and you are only looking at 4 records from that. Based on that assumption you can use the following control cards.
Code:
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=INIT,BUILD=(1,120,2C' 0',241:X)),
IFTHEN=(WHEN=GROUP,PUSH=(160:24,20),
BEGIN=(64,27,CH,EQ,C'IEC359I CATALOG PERFORMANCE'),
END=(64,23,CH,EQ,C'IEC352I CATALOG ADDRESS',OR,
67,06,CH,EQ,C'ENDREQ')),
IFTHEN=(WHEN=GROUP,RECORDS=4,
BEGIN=(67,22,CH,EQ,C'-----CATALOG EVENT----'),
PUSH=(180:121,16,200:121,16,220:121,16,240:ID=1,SEQ=1)),
IFTHEN=(WHEN=GROUP,PUSH=(180:92,8,103,8),RECORDS=3,
BEGIN=(67,18,CH,EQ,C'Entries to Catalog')),
IFTHEN=(WHEN=GROUP,PUSH=(200:92,8,103,8),RECORDS=2,
BEGIN=(67,18,CH,EQ,C'BCS ENQ Shr Sys')),
IFTHEN=(WHEN=(67,18,CH,EQ,C'BCS ENQ Excl Sys'),
OVERLAY=(220:92,8,103,8))
OUTFIL VTOF,INCLUDE=(241,1,ZD,EQ,4),
BUILD=(160,80,SQZ=(SHIFT=LEFT,MID=C';'))
//*
The output produced from the above is
Code:
2012.119;00:04:17.36;10,737;3.659;15,205;0.053;264;1.059
2012.120;01:04:17.94;18,715;6.130;31,353;0.115;0;0
Back to top
Bill Woodger Moderator Emeritus Joined: 09 Mar 2011Posts: 7309 Location: Inside the Matrix
kushkush wrote:
If these strings are not there then can we put zeroes in the result? so that when we squeeze in the last line, we don't have uneven length results.
And also we need to replace comma from the numerical values e.g., 7,888 should be 7888 so that excel understands it as a number. I tried with findrep but could not get the results. I made a new step copying the file once again and using findrep!
Are you certain that Excel can't understand your figures with commas?
You haven't shown how you failed with FINDREP, so difficult to guess what was wrong.
You could also look at defining each of the counts as SFF and converting them TO=ZD with an appropriate length.
Back to top
dbzTHEdinosauer Global Moderator Joined: 20 Oct 2006Posts: 6966 Location: porcelain throne
Quote:
If these strings are not there then can we put zeroes in the result?
Seems to me (dada dada dada da - catchy tune, always liked that song)
you have to assume that within the iec359 group
there can be the following combinations of the three literals: only 1 present only 2 present or all 3 present
which means there can be
That means we need multiple passes of JOINKEYS in order to create the missing.
So, ICETOOL
First Process:
isolate what is there by looking for the literals
and outfil each to a different temp file.
Second Process:
JOINKEYS file1 and file2 on date/time
UNPAIRED,F1,F2
FORMAT to include date,time and count for both
OUTREC with IFTHEN WHEN one side or the other is missing, supply from the other
that way we always have a date/time and count for both
Third Process:
JOINKEYS output of massaged first JOINKEYS and file3 on date/time
UNPAIRED,F1,F2
FORMAT to include date,time and counts for both
OUTREC is tricky because we could end up with a unpaired F2
which means there are two date/time/counts to plug.
anyway, now we have created an output with date/time/count three times,
which we can build the final output in OUTFIL with BUILD.
anyway, that is how it
seems to me
Back to top
kushkush New User Joined: 30 Jun 2005Posts: 37 Location: Germany
Hi Bill, Hello Skolusu,
Sorry because of time difference, i could not answer you quickly.
Code:
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//TOOLIN DD *
COPY FROM(IN) TO(TMP) USING(PRM0)
COPY FROM(TMP) TO(TMP1) USING(PRM1)
COPY FROM(TMP1) TO(OUT) USING(PRM2)
COPY FROM(TMP1) TO(MYOUT) USING(PRM2)
//IN DD DISP=SHR,DSN=...
//TMP DD DSN=&&T0,
// UNIT=SYSDA,
// SPACE=(CYL,(50,50),RLSE),
// DISP=(,PASS)
//TMP1 DD DSN=&&TA,
// UNIT=SYSDA,
// SPACE=(TRK,(10,10),RLSE),
// DISP=(,PASS)
//MYOUT DD SYSOUT=*
//OUT DD DISP=(NEW,CATLG),
// SPACE=(TRK,(5,5),RLSE),
// DSN=...x
//PRM0CNTL DD *
INCLUDE COND=(15,4,CH,EQ,C'SYSM')
//PRM1CNTL DD *
INREC IFTHEN=(WHEN=INIT,BUILD=(1,150,940:X)),
IFTHEN=(WHEN=GROUP,PUSH=(151:ID=8,160:24,20),
BEGIN=(64,27,CH,EQ,C'IEC359I CATALOG PERFORMANCE'),
END=(64,23,CH,EQ,C'IEC352I CATALOG ADDRESS',OR,
67,06,CH,EQ,C'ENDREQ')),
IFTHEN=(WHEN=GROUP,PUSH=(180:92,8,103,8),RECORDS=37,
BEGIN=(67,18,CH,EQ,C'Entries to Catalog')),
IFTHEN=(WHEN=GROUP,PUSH=(200:92,8,103,8),RECORDS=36,
BEGIN=(67,18,CH,EQ,C'BCS ENQ Shr Sys')),
IFTHEN=(WHEN=GROUP,PUSH=(220:92,8,103,8),RECORDS=35,
BEGIN=(67,18,CH,EQ,C'BCS ENQ Excl Sys')),
IFTHEN=(WHEN=GROUP,PUSH=(240:92,8,103,8),RECORDS=34,
BEGIN=(67,18,CH,EQ,C'BCS DEQ')),
IFTHEN=(WHEN=GROUP,PUSH=(260:92,8,103,8),RECORDS=33,
BEGIN=(67,18,CH,EQ,C'VVDS RESERVE CI')),
IFTHEN=(WHEN=GROUP,PUSH=(280:92,8,103,8),RECORDS=32,
BEGIN=(67,18,CH,EQ,C'VVDS DEQ CI')),
IFTHEN=(WHEN=GROUP,PUSH=(300:92,8,103,8),RECORDS=31,
BEGIN=(67,18,CH,EQ,C'VVDS RESERVE Shr')),
IFTHEN=(WHEN=GROUP,PUSH=(320:92,8,103,8),RECORDS=30,
BEGIN=(67,18,CH,EQ,C'VVDS RESERVE Excl')),
IFTHEN=(WHEN=GROUP,PUSH=(340:92,8,103,8),RECORDS=29,
BEGIN=(67,18,CH,EQ,C'VVDS DEQ')),
IFTHEN=(WHEN=GROUP,PUSH=(360:92,8,103,8),RECORDS=28,
BEGIN=(67,18,CH,EQ,C'SPHERE ENQ Excl Sys')),
IFTHEN=(WHEN=GROUP,PUSH=(380:92,8,103,8),RECORDS=27,
BEGIN=(67,18,CH,EQ,C'SPHERE DEQ')),
IFTHEN=(WHEN=GROUP,PUSH=(400:92,8,103,8),RECORDS=26,
BEGIN=(67,18,CH,EQ,C'CAXWA ENQ Shr')),
IFTHEN=(WHEN=GROUP,PUSH=(420:92,8,103,8),RECORDS=25,
BEGIN=(67,18,CH,EQ,C'CAXWA DEQ')),
IFTHEN=(WHEN=GROUP,PUSH=(440:92,8,103,8),RECORDS=24,
BEGIN=(67,18,CH,EQ,C'VDSPM ENQ')),
IFTHEN=(WHEN=GROUP,PUSH=(460:92,8,103,8),RECORDS=23,
BEGIN=(67,18,CH,EQ,C'VDSPM DEQ')),
IFTHEN=(WHEN=GROUP,PUSH=(480:92,8,103,8),RECORDS=22,
BEGIN=(67,18,CH,EQ,C'BCS Get')),
IFTHEN=(WHEN=GROUP,PUSH=(500:92,8,103,8),RECORDS=21,
BEGIN=(67,18,CH,EQ,C'BCS Put')),
IFTHEN=(WHEN=GROUP,PUSH=(520:92,8,103,8),RECORDS=20,
BEGIN=(67,18,CH,EQ,C'BCS Erase')),
IFTHEN=(WHEN=GROUP,PUSH=(540:92,8,103,8),RECORDS=19,
BEGIN=(67,18,CH,EQ,C'VVDS I/O')),
IFTHEN=(WHEN=GROUP,PUSH=(560:92,8,103,8),RECORDS=18,
BEGIN=(67,18,CH,EQ,C'VLF Retrieve Minor')),
IFTHEN=(WHEN=GROUP,PUSH=(580:92,8,103,8),RECORDS=17,
BEGIN=(67,18,CH,EQ,C'RMM Tape Exit')),
IFTHEN=(WHEN=GROUP,PUSH=(600:92,8,103,8),RECORDS=16,
BEGIN=(67,18,CH,EQ,C'OEM Tape Exit')),
IFTHEN=(WHEN=GROUP,PUSH=(620:92,8,103,8),RECORDS=15,
BEGIN=(67,18,CH,EQ,C'SMF Write')),
IFTHEN=(WHEN=GROUP,PUSH=(640:92,8,103,8),RECORDS=14,
BEGIN=(67,18,CH,EQ,C'IXLCACHE Read')),
IFTHEN=(WHEN=GROUP,PUSH=(660:92,8,103,8),RECORDS=13,
BEGIN=(67,18,CH,EQ,C'IXLCACHE Write')),
IFTHEN=(WHEN=GROUP,PUSH=(680:92,8,103,8),RECORDS=12,
BEGIN=(67,18,CH,EQ,C'Resolve Symbolic')),
IFTHEN=(WHEN=GROUP,PUSH=(700:92,8,103,8),RECORDS=11,
BEGIN=(67,18,CH,EQ,C'Capture UCB')),
IFTHEN=(WHEN=GROUP,PUSH=(720:92,8,103,8),RECORDS=10,
BEGIN=(67,18,CH,EQ,C'SMS Mgmt Class ACS')),
IFTHEN=(WHEN=GROUP,PUSH=(740:92,8,103,8),RECORDS=9,
BEGIN=(67,18,CH,EQ,C'RACROUTE Auth')),
IFTHEN=(WHEN=GROUP,PUSH=(760:92,8,103,8),RECORDS=8,
BEGIN=(67,18,CH,EQ,C'Release Latch')),
IFTHEN=(WHEN=GROUP,PUSH=(780:92,8,103,8),RECORDS=7,
BEGIN=(67,18,CH,EQ,C'DADSM Rename')),
IFTHEN=(WHEN=GROUP,PUSH=(800:92,8,103,8),RECORDS=6,
BEGIN=(67,18,CH,EQ,C'Obtain Latch')),
IFTHEN=(WHEN=GROUP,PUSH=(820:92,8,103,8),RECORDS=5,
BEGIN=(67,18,CH,EQ,C'ENQ SYSZPCCB')),
IFTHEN=(WHEN=GROUP,PUSH=(840:92,8,103,8),RECORDS=4,
BEGIN=(67,18,CH,EQ,C'DEQ SYSZPCCB')),
IFTHEN=(WHEN=GROUP,PUSH=(860:92,8,103,8),RECORDS=3,
BEGIN=(67,18,CH,EQ,C'Release Latch')),
IFTHEN=(WHEN=GROUP,PUSH=(880:92,8,103,8),RECORDS=2,
BEGIN=(67,18,CH,EQ,C'Capture to Actual')),
IFTHEN=(WHEN=(67,18,CH,EQ,C'ENDREQ'),
OVERLAY=(900:92,8,103,8,940:X))
OUTFIL VTOF,INCLUDE=(900,8,CH,GT,C' '),
BUILD=(160,780,SQZ=(SHIFT=LEFT,MID=C';'))
//PRM2CNTL DD *
INREC FINDREP=(IN=C',',OUT=C'')
I removed every junk from input data and put just two command outputs in the input file. Here is my input file:
Code:
MR0000000 SYSM 2012.215 00:04:17.47 X0001937 00000080 IEC359I CATALOG PERFORMANCE REPORT 239
LR SYSM 2012.215 00:04:17.47 239 00000080 *CAS***************************************************
DR SYSM 2012.215 00:04:17.47 239 00000080 * Statistics since 23:04:21.97 on 08/01/2012 *
DR SYSM 2012.215 00:04:17.47 239 00000080 * -----CATALOG EVENT---- --COUNT-- ---AVERAGE--- *
DR SYSM 2012.215 00:04:17.47 239 00000080 * Entries to Catalog 10,369 3.620 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * BCS ENQ Shr Sys 14,755 0.042 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * BCS ENQ Excl Sys 265 0.469 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * BCS DEQ 5,530 0.012 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * VVDS RESERVE CI 2,097 0.018 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * VVDS DEQ CI 2,097 0.034 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * VVDS RESERVE Shr 20,173 0.024 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * VVDS RESERVE Excl 202 0.078 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * VVDS DEQ 20,375 0.033 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * SPHERE ENQ Excl Sys 218 0.036 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * SPHERE DEQ 218 0.031 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * CAXWA ENQ Shr 124 0.030 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * CAXWA DEQ 124 0.007 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * VDSPM ENQ 15,478 0.003 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * VDSPM DEQ 15,478 0.003 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * BCS Get 219,666 0.009 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * BCS Put 78 1.072 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * BCS Erase 151 1.663 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * VVDS I/O 22,812 0.635 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * VLF Retrieve Minor 149 0.004 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * RMM Tape Exit 145 0.000 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * OEM Tape Exit 145 0.000 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * SMF Write 1,740 0.066 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * IXLCACHE Read 2,083 0.770 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * IXLCACHE Write 198 0.597 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * Resolve Symbolic 97 0.149 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * Capture UCB 128 0.005 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * SMS Mgmt Class ACS 3 1.128 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * RACROUTE Auth 1,431 0.159 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * DADSM Scratch 145 14.816 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * DADSM Rename 3 8.063 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * Obtain Latch 27,076 0.000 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * ENQ SYSZPCCB 7,984 0.002 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * DEQ SYSZPCCB 7,984 0.001 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * Release Latch 27,076 0.000 MSEC *
DR SYSM 2012.215 00:04:17.47 239 00000080 * ENDREQ 149 0.002 MSEC *
ER SYSM 2012.215 00:04:17.47 239 00000080 *CAS***************************************************
MR0000000 SYSM 2012.215 01:04:18.76 X0002256 00000080 IEC359I CATALOG PERFORMANCE REPORT 487
LR SYSM 2012.215 01:04:18.76 487 00000080 *CAS***************************************************
DR SYSM 2012.215 01:04:18.76 487 00000080 * Statistics since 0:04:22.56 on 08/02/2012 *
DR SYSM 2012.215 01:04:18.76 487 00000080 * -----CATALOG EVENT---- --COUNT-- ---AVERAGE--- *
DR SYSM 2012.215 01:04:18.76 487 00000080 * Entries to Catalog 19,655 7.305 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * BCS ENQ Shr Sys 33,527 0.287 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * BCS ENQ Excl Sys 1,862 0.349 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * BCS DEQ 10,198 0.020 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VVDS RESERVE CI 3,437 0.045 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VVDS DEQ CI 3,437 0.059 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VVDS RESERVE Shr 31,235 0.040 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VVDS RESERVE Excl 972 0.064 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VVDS DEQ 32,207 0.058 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * SPHERE ENQ Excl Sys 1,640 0.085 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * SPHERE DEQ 1,640 0.065 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * CAXWA ENQ Shr 124 0.034 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * CAXWA DEQ 124 0.007 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VDSPM ENQ 38,687 0.134 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VDSPM DEQ 38,687 0.005 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * BCS Get 530,286 0.023 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * BCS Put 989 1.374 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * BCS Erase 660 1.254 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VVDS I/O 37,223 1.575 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VLF Create Minor 1 0.022 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VLF Retrieve Minor 263 0.005 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * VLF Delete Minor 2 0.018 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * RMM Tape Exit 472 0.028 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * OEM Tape Exit 472 0.000 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * SMF Write 4,911 0.076 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * IXLCACHE Read 18,652 0.537 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * IXLCACHE Write 2,996 0.478 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * Resolve Symbolic 118 0.161 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * Lookup/Pin UCB 2 0.007 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * Unpin UCB 2 0.003 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * Capture UCB 316 0.007 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * Uncapture UCB 1 0.006 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * SMS Active Config 1 0.061 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * SMS Mgmt Class ACS 4 1.292 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * RACROUTE Auth 3,759 0.198 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * RACROUTE Define 94 0.106 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * DADSM Scratch 414 20.318 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * DADSM Rename 4 21.320 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * DADSM Allocate SMS 99 13.672 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * Obtain Latch 59,522 0.001 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * ENQ SYSZPCCB 22,259 0.003 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * DEQ SYSZPCCB 22,259 0.002 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * Release Latch 59,522 0.000 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * Capture to Actual 213 0.003 MSEC *
DR SYSM 2012.215 01:04:18.76 487 00000080 * ENDREQ 503 0.002 MSEC *
ER SYSM 2012.215 01:04:18.76 487 00000080 *CAS***************************************************
Attachment inlined, ( Not everybody can see/download attachments ) and deleted
Code:
12012.215;00:04:17.47;10369;3.620;14755;0.042;265;0.469;5530;0.012;2097;0.018;2097;0.034;20173;0.024;202;0.078;20375;0.033;218;0.036;218;0.031;124;0.030;124;0.007;15478;0.003;15478;0.003;219666;0.009;78;1.072;151;1.663;22812;0.635;149;0.004;145;0.000;145;0.000;1740;0.066;2083;0.770;198;0.597;97;0.149;128;0.005;3;1.128;1431;0.159;145;14.816;3;8.063;27076;0.000;7984;0.002;7984;0.001;27076;0.000;149;0.002
2012.215;01:04:18.76;59522;0.001;22259;0.003;22259;0.002;59522;0.000;213;0.003;503;0.002
This shows that both fields that are not in jcl but are in input file and fields which are in jcl but not in input file create problems.
Solution is to make a jcl of all possible fields and if they are not in input file, to insert zeroes as values. But how?
Back to top
knickraj Warnings : 1 New User Joined: 11 Jun 2007Posts: 50 Location: Euro
Just a thought though...not sure but may work ..not tested also...
it seems with each field you JCL is growing bigger,so may be you create a sample file...with values zero...like...below
Code:
Entries to Catalog 00000
BCS ENQ Shr Sys 00000
BCS ENQ Excl Sys 00000
BCS DEQ 00000
then use joinkeys, if match found you may put the values in sample file
not match will already result in zero..then you can transpose the values.
Back to top
dbzTHEdinosauer Global Moderator Joined: 20 Oct 2006Posts: 6966 Location: porcelain throne
after 33 posts to this thread,
it is now becoming very interesting
(i will use that word instead of stupid/not thought-out/continually changing)
though I am at a loss to understand the requirements.
I thought that the counts,
identified by position and not by any other identifying 'name',
where 3?
knickraj,
you often come up with good ideas,
I know that you wish to help and contribute,
but the counts are (were) oriented (JOINED/MATCHED) by time,
how would you 'JOIN' your "default" file with the extracts?
but maybe my own bias is clouding my understanding of the requirement.
Back to top
knickraj Warnings : 1 New User Joined: 11 Jun 2007Posts: 50 Location: Euro
Dick,
After seeing the TS's job with these many IFTHEN's it may be difficult to even debugg, if some data is missing or wrong,better to write a Cobol.
About my logic...
TS's i/p file one..line..
Code:
DR SYSM 2012.215 00:04:17.47 239 00000080 * Entries to Catalog 10,369 3.620 MSEC
using inrec build make it like this
Code:
Entries to Catalog 10,369 3.620 MSEC 2012.215 00:04:17.47
join with sample file
Code:
Entries to Catalog 00000 0000MSEC 000000000
BCS ENQ Shr Sys 00000 0000MSEC 000000000
o/p
Code:
Entries to Catalog 10,369 3.620 MSEC 2012.215 00:04:17.47
BCS ENQ Shr Sys 00000 0000MSEC 000000000
while build in o/p
we may be interested in only values as below.
Code:
10,369 3.620 MSEC 2012.215 00:04:17.47
00000 0000MSEC 000000000
Then use a resize put the data in one line with comma sepearated format,
with a fixed header of Entries to Catalog..BCS ENQ Shr Sys..etc...etc...
the sample file should be with MAX number of entries expected/fields the TS input may contain 38 I guess...
P.S experts let me now if some flaw is there , it would enhance my learning...
Back to top
Skolusu Senior Member Joined: 07 Dec 2007Posts: 2205 Location: San Jose
kushkush,
*Sigh* You really need to work on your skills of explaining the complete requirement. Initially you started with just validating 3 fields and now you want all the 37~40 fields validated and consolidated into a single record?
The solutions vary based on the requirement. It is easy to provide an optimal solution when we know the complete requirement. When you provide only bits and pieces of the requirement, you actually are forcing other people who are trying to help also follow your idea of the solution which may or may not be the ideal solution.
There is no real need here for using WHEN=GROUP when the date is available on every record in the log. I have no idea as to why I did not notice this earlier.
Either way here is a solution which will consolidate all the data delimiting them with semi-colon and also padding zeros with leading spaces when the record is not available. The output file is also VB, You can convert it to FB, add headers and sqz the data as you like. This will be my last post in this topic. If you're not familiar with DFSORT and DFSORT's ICETOOL, I'd suggest reading through "z/OS DFSORT: Getting Started". It's an excellent tutorial, with lots of examples, that will show you how to use DFSORT, DFSORT's ICETOOL and DFSORT Symbols. You can access it online, along with all of the other DFSORT books, from:
www.ibm.com/support/docview.wss?rs=114&uid=isg3T7000080
Code:
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD DISP=SHR,DSN=ZRA.SYSLOG1
//OUT DD SYSOUT=*
//TOOLIN DD *
SPLICE FROM(IN) TO(OUT) ON(51,8,CH) WITHANY KEEPNODUPS -
WITH(081,20) WITH(101,20) WITH(121,20) WITH(141,20) -
WITH(161,20) WITH(181,20) WITH(201,20) WITH(221,20) -
WITH(241,20) WITH(261,20) WITH(281,20) WITH(301,20) -
WITH(321,20) WITH(341,20) WITH(361,20) WITH(381,20) -
WITH(401,20) WITH(421,20) WITH(441,20) WITH(461,20) -
WITH(481,20) WITH(501,20) WITH(521,20) WITH(541,20) -
WITH(561,20) WITH(581,20) WITH(601,20) WITH(621,20) -
WITH(641,20) WITH(661,20) WITH(681,20) WITH(701,20) -
WITH(721,20) WITH(741,20) WITH(761,20) WITH(781,20) -
WITH(801,20) USING(CTL1)
//*
//CTL1CNTL DD *
OPTION COPY
INCLUDE COND=(15,4,CH,EQ,C'SYSM')
INREC IFTHEN=(WHEN=INIT,
BUILD=(1,4,67,26,90,10,UFF,M10,LENGTH=10,103,8,
60:24,20,C';',740X)),
IFTHEN=(WHEN=GROUP,PUSH=(50:ID=8),
BEGIN=(5,22,CH,EQ,C'-----CATALOG EVENT----'),
END=(5,06,CH,EQ,C'ENDREQ')),
IFTHEN=(WHEN=(5,18,CH,EQ,C'Entries to Catalog'),
OVERLAY=(081:31,10,092:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'BCS ENQ Shr Sys'),
OVERLAY=(101:31,10,112:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'BCS ENQ Excl Sys'),
OVERLAY=(121:31,10,132:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'BCS DEQ'),
OVERLAY=(141:31,10,152:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'VVDS RESERVE CI'),
OVERLAY=(161:31,10,172:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'VVDS DEQ CI'),
OVERLAY=(181:31,10,192:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'VVDS RESERVE Shr'),
OVERLAY=(201:31,10,212:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'VVDS RESERVE Excl'),
OVERLAY=(221:31,10,232:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'VVDS DEQ'),
OVERLAY=(241:31,10,252:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'SPHERE ENQ Excl Sys'),
OVERLAY=(261:31,10,272:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'SPHERE DEQ'),
OVERLAY=(281:31,10,292:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'CAXWA ENQ Shr'),
OVERLAY=(301:31,10,312:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'CAXWA DEQ'),
OVERLAY=(321:31,10,332:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'VDSPM ENQ'),
OVERLAY=(341:31,10,352:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'VDSPM DEQ'),
OVERLAY=(361:31,10,372:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'BCS Get'),
OVERLAY=(381:31,10,392:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'BCS Put'),
OVERLAY=(401:31,10,412:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'BCS Erase'),
OVERLAY=(421:31,10,432:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'VVDS I/O'),
OVERLAY=(441:31,10,452:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'VLF Retrieve Minor'),
OVERLAY=(461:31,10,472:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'RMM Tape Exit'),
OVERLAY=(481:31,10,492:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'OEM Tape Exit'),
OVERLAY=(501:31,10,512:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'SMF Write'),
OVERLAY=(521:31,10,532:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'IXLCACHE Read'),
OVERLAY=(541:31,10,552:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'IXLCACHE Write'),
OVERLAY=(561:31,10,572:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'Resolve Symbolic'),
OVERLAY=(581:31,10,592:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'Capture UCB'),
OVERLAY=(601:31,10,612:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'SMS Mgmt Class ACS'),
OVERLAY=(621:31,10,632:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'RACROUTE Auth'),
OVERLAY=(641:31,10,652:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'Release Latch'),
OVERLAY=(661:31,10,672:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'DADSM Rename'),
OVERLAY=(681:31,10,692:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'Obtain Latch'),
OVERLAY=(701:31,10,712:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'ENQ SYSZPCCB'),
OVERLAY=(721:31,10,732:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'DEQ SYSZPCCB'),
OVERLAY=(741:31,10,752:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'Release Latch'),
OVERLAY=(761:31,10,772:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'Capture to Actual'),
OVERLAY=(781:31,10,792:41,8)),
IFTHEN=(WHEN=(5,18,CH,EQ,C'ENDREQ'),
OVERLAY=(801:31,10,812:41,8))
OUTFIL INCLUDE=(50,1,CH,GT,C' '),
IFTHEN=(WHEN=INIT,
BUILD=(001,04,
060,08,C';',69,11,C';',
081,10,C';',092,08,C';',
101,10,C';',112,08,C';',
121,10,C';',132,08,C';',
141,10,C';',152,08,C';',
161,10,C';',172,08,C';',
181,10,C';',192,08,C';',
201,10,C';',212,08,C';',
221,10,C';',232,08,C';',
241,10,C';',252,08,C';',
261,10,C';',272,08,C';',
281,10,C';',292,08,C';',
301,10,C';',312,08,C';',
321,10,C';',332,08,C';',
341,10,C';',352,08,C';',
361,10,C';',372,08,C';',
381,10,C';',392,08,C';',
401,10,C';',412,08,C';',
421,10,C';',432,08,C';',
441,10,C';',452,08,C';',
461,10,C';',472,08,C';',
481,10,C';',492,08,C';',
501,10,C';',512,08,C';',
521,10,C';',532,08,C';',
541,10,C';',552,08,C';',
561,10,C';',572,08,C';',
581,10,C';',592,08,C';',
601,10,C';',612,08,C';',
621,10,C';',632,08,C';',
641,10,C';',652,08,C';',
661,10,C';',672,08,C';',
681,10,C';',692,08,C';',
701,10,C';',712,08,C';',
721,10,C';',732,08,C';',
741,10,C';',752,08,C';',
761,10,C';',772,08,C';',
781,10,C';',792,08,C';',
801,10,C';',812,08,C';')),
IFTHEN=(WHEN=INIT,
FINDREP=(INOUT=(C'; ;',C'; 0;',
C' ;',C' 0.000;')))
//*
Back to top
kushkush New User Joined: 30 Jun 2005Posts: 37 Location: Germany
Thanks a lot for your help. Really appreciate your patience with fuzzy specifications!
Wish you a nice weekend.
Back to top
Please enable JavaScript!