|
View previous topic :: View next topic
|
| Author |
Message |
Ghellar
New User
Joined: 01 Sep 2005 Posts: 22
|
|
|
|
I'm a beginner in the treatment of SMF records, I'm trying to convert 14 & 15 records.
I decided to use the ICETOOL program, I attach the JCL I use.
To simplify the tests, I entered a data set name to have less OUTPUT data to check: OMA.PIPDR.DAO.CROCDF.FR
| Code: |
//*--------------------------------------------------------------------
//STEP1 EXEC PGM=ICETOOL
//* -----------------
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//RAWSMF DD DSN=......input,
// DISP=SHR
//SMF DD DSN=&&TEMSMF,
// SPACE=(CYL,(15,15)),UNIT=SYSDA
//SMFREP DD SYSOUT=*
//TOOLIN DD *
COPY FROM(RAWSMF) TO(SMF) USING(SMFI)
DISPLAY FROM(SMF) LIST(SMFREP) -
TITLE('SMF TYPE-14&15 RECORDS') DATE(4MD/) TIME PAGE -
ON(6,1,BI) HEADER('SMF#') - * 01 SMF14RTY *
ON(15,4,CH) HEADER('SYS') - * 02 SMF14SID *
ON(19,8,CH) HEADER('JOBNAME') - * 03 SMF14JBN *
ON(69,44,CH) HEADER('DSNNAME') - * 04 JFCBDSNM *
ON(167,1,BI) HEADER('DSORG') - * 05 JFCDSRG1 *
ON(173,2,BI) HEADER('LRECL') - * 06 JFCLRECL *
ON(171,2,BI) HEADER('BLKSZ') - * 07 JFCBLKSI *
ON(169,1,BI) HEADER('RECFM') - * 08 JFCRECFM *
BLANK
//*
//SMFICNTL DD *
INCLUDE COND=((06,01,BI,EQ,X'0E',OR, TYPE RECORD 14 OR
06,01,BI,EQ,X'0F'),AND, TYPE RECORD 15
(69,44,CH,EQ,C'OMA.PIPDR.DAO.CROCDF.FR'))
INREC IFTHEN=(WHEN=(05,01,BI,EQ,X'0E'),OVERLAY=(05:C'INP')),
IFTHEN=(WHEN=(05,01,BI,EQ,X'0F'),OVERLAY=(05:C'OUT'))
/*
//*--------------------------------------------------------------------
|
This is the result I get, but I would also like to do a concersion of the numbers:
14 -> INP
15 -> OUT
| Code: |
***************************** Top of Data ******************************
1SMF TYPE-14&15 RECORDS 2018/12/01 16:36:09 - 1 -
SMF# SYS JOBNAME DSNNAME
---- ---- -------- --------------------------------------------
14 SYS1 CFTMAXXI OMA.PIPDR.DAO.CROCDF.FR
15 SYS1 CFTMAXXI OMA.PIPDR.DAO.CROCDF.FR
14 SYS1 XKK99CDF OMA.PIPDR.DAO.CROCDF.FR
15 SYS1 XKK99CR1 OMA.PIPDR.DAO.CROCDF.FR
15 SYS2 GKK99CPM OMA.PIPDR.DAO.CROCDF.FR
**************************** Bottom of Data ****************************
|
I'm trying to make the conversion, but I can not, I've already tried to do different tests, where am I wrong?
| Code: |
INREC IFTHEN=(WHEN=(05,01,BI,EQ,X'0E'),OVERLAY=(05:C'INP')),
IFTHEN=(WHEN=(05,01,BI,EQ,X'0F'),OVERLAY=(05:C'OUT'))
|
This is the desired:
| Code: |
***************************** Top of Data ******************************
1SMF TYPE-14&15 RECORDS 2018/12/01 16:36:09 - 1 -
SMF# SYS JOBNAME DSNNAME
---- ---- -------- --------------------------------------------
INP SYS1 CFTMAXXI OMA.PIPDR.DAO.CROCDF.FR
OUT SYS1 CFTMAXXI OMA.PIPDR.DAO.CROCDF.FR
INP SYS1 XKK99CDF OMA.PIPDR.DAO.CROCDF.FR
OUT SYS1 XKK99CR1 OMA.PIPDR.DAO.CROCDF.FR
OUT SYS2 GKK99CPM OMA.PIPDR.DAO.CROCDF.FR
**************************** Bottom of Data ****************************
|
Many thanks to anyone who will give me help |
|
| Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
Ghellar,
The ICETOOL - DISPLAY operator notes suggest that we should not use INREC or OUTREC along with the DISPLAY operator, so it would be a good idea to use a PGM=SORT job and format the data records/add your header fields using an OUTFIL statement.
| DISPLAY Operator-DFSORT Appln Programming Guide wrote: |
DFSORT is called to copy the indd data set to ICETOOL's E35 user exit. ICETOOL uses its E35 user exit to print appropriate titles, headings and data in the list data set.
You must not supply your own DFSORT MODS, INREC, or OUTREC statement, because they would override the DFSORT statements passed by ICETOOL for this operator |
|
|
| Back to top |
|
 |
Ghellar
New User
Joined: 01 Sep 2005 Posts: 22
|
|
|
|
| Thanks Arun Raj for the answer, I used ICETOOL because it is more versatile in creating Reports, with the SORT and OUTFIL must be fully escaped in more detail. I wanted to walk the most comfortable way. So there's no way to covert via ICETOOL? |
|
| Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
Ghellar,
I think, it won't be much of a trouble to use a PGM=SORT job for this requirement.
| Quote: |
| So there's no way to covert via ICETOOL? |
Technically, you can still use PGM=ICETOOL and use a COPY operator with OUTFIL-but then it would be more or less the same as a PGM=SORT solution, since the restriction noted is only for the DISPLAY operator, not ICETOOL. |
|
| Back to top |
|
 |
steve-myers
Active Member
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
|
|
|
|
| I'm not so sure I'd trust JFCRECFM, JFCLRECL and JFCBLKSI, though I have to admit I've never researched this. The intended purpose of these data areas is to transfer these values from the DD statement to the user program for OPEN to transfer them to the DCB data area when appropriate, but not for OPEN to transfer the final values back to the JFCB. In fact there are options in the JFCB (JFCBTSDM/JFCNWRIT, JFCBTSDM/JFCNDCB) to prevent this from happening. |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|