Re: SMF119 - Subtype 20 and Subtype 21. REXX.

2022-01-03 Thread Massimo Biancucci
Thanks to Paul for the clarification.

I've been told somebody got CC=16 from SORT.
Sorry, I developed the script at a non-DFSort site.
Please modify these two lines:

460,160,SQZ=(VL,MID=C' '),C';',
520,160,SQZ=(VL,MID=C' '),C';',

with:

460,160,SQZ=(SHIFT=LEFT,MID=C' '),C';',
520,160,SQZ=(SHIFT=LEFT,MID=C' '),C';',

Best regards.
Max


Il giorno gio 30 dic 2021 alle ore 19:57 Paul Gilmartin <
000433f07816-dmarc-requ...@listserv.ua.edu> ha scritto:

> On Thu, 30 Dec 2021 10:34:37 +0100, Massimo Biancucci wrote:
> >...
> >EXECIO "0 DISKR SMF" /* OPEN INPUT */
> >
> >EXECIO "0 DISKW OUT" /* OPEN OUTPUT */
> >
> Caution:  From the  z/OS TSO/E REXX Reference:
>
> lines
> The number of lines to be processed.
> ...
> If you specify a value of zero, no I/O operations are performed unless you
> also specify either OPEN, FINIS, or both OPEN and FINIS.
>
> So those two instructions harmlessly do nothing.  If that checks that the
> files are correctly allocated, perhaps a clarifying RCF to the Ref. is
> needed.
>
> -- gil
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to 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


Re: SMF119 - Subtype 20 and Subtype 21. REXX.

2021-12-30 Thread Paul Gilmartin
On Thu, 30 Dec 2021 10:34:37 +0100, Massimo Biancucci wrote:
>...
>EXECIO "0 DISKR SMF" /* OPEN INPUT */
>
>EXECIO "0 DISKW OUT" /* OPEN OUTPUT */
> 
Caution:  From the  z/OS TSO/E REXX Reference:

lines
The number of lines to be processed.
...
If you specify a value of zero, no I/O operations are performed unless you also 
specify either OPEN, FINIS, or both OPEN and FINIS.

So those two instructions harmlessly do nothing.  If that checks that the
files are correctly allocated, perhaps a clarifying RCF to the Ref. is needed.

-- gil

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


SMF119 - Subtype 20 and Subtype 21. REXX.

2021-12-30 Thread Massimo Biancucci
REXX:
/*REXX*/



PARSE ARG BUFFER MAX_BUFFER .



NUMERIC DIGITS 18



IF BUFFER = "" THEN BUFFER = 5000

IF MAX_BUFFER = "" THEN MAX_BUFFER = 0



EXECIO "0 DISKR SMF" /* OPEN INPUT */

EXECIO "0 DISKW OUT" /* OPEN OUTPUT */

I_BLK = 0

I_LETTI = 0

I_LETTI_119 = 0

I_ALTRI = 0

I_SCRITTI = 0



"EXECIO "BUFFER" DISKR SMF (STEM SMF.)"

DO WHILE(SMF.0 > 0)

  IF MAX_BUFFER > 0 & I_BLK = MAX_BUFFER THEN DO

SAY "ABBANDONO ELABORAZIONE PER MAX BLOCCHI"

LEAVE

  END

  I_BLK = I_BLK + 1

  SAY "LETTO BLOCCO:" RIGHT(I_BLK,8),

   "DI" RIGHT(SMF.0,8),

   "RECORDS"

  O = 0

  DROP OUT.

  DO I = 1 TO SMF.0

I_LETTI = I_LETTI + 1

SMF = SMF.I

SMF_RTY = C2D(SUBSTR(SMF,2,1))

SELECT

  WHEN SMF_RTY = 119 THEN DO

CALL ELABORA_REC119

I_LETTI_119 = I_LETTI_119 + 1

  END

  OTHERWISE DO

I_ALTRI = I_ALTRI + 1

  END

END

  END

  "EXECIO "O" DISKW OUT (STEM OUT.)"

  I_SCRITTI = I_SCRITTI + O

  "EXECIO "BUFFER" DISKR SMF (STEM SMF.)"

END



EXECIO "0 DISKW OUT(FINIS)" /* CLOSE */

EXECIO "0 DISKR SMF(FINIS)" /* CLOSE */



SAY "RECORDS SMF LETTI.:" I_LETTI

SAY ".. DI CUI 119.:" I_LETTI_119

SAY ".. DI CUI ALTRI...:" I_ALTRI

SAY "RECORDS SCRITTI...:" I_SCRITTI



EXIT



/*-*/

/* ELABORA RECORDS 119 */

/*-*/

ELABORA_REC119:



SMF119BASE = SUBSTR(SMF,1,20)

SMF119HDFLAGS = SUBSTR(SMF,1,1)

BIT = X2B(C2X(SMF119HDFLAGS))

IF SUBSTR(BIT,2,1) = "0" THEN DO

  SAY "SUBTYPE IS NOT VALID AT RECORD:" I_LETTI

  EXIT 99

END

SMF119HDTYPE = C2D(SUBSTR(SMF,2,1))

SMF119HDTIME = SUBSTR(SMF,3,4)

SMF119HDDATE = SUBSTR(SMF,7,4)

SMF119HDSID = SUBSTR(SMF,11,4)

SMF119HDSSI = SUBSTR(SMF,15,4)

SMF119HDSUBTYPE = C2D(SUBSTR(19,2))



SMF119SDEFSECT = SUBSTR(SMF,21,12)

SMF119SD_TRN = C2D(SUBSTR(SMF119SDEFSECT,1,2))/* N.OF TRIPLETS */

SMF119SDRSVD = SUBSTR(SMF119SDEFSECT,3,2) /* RESERVED */

SMF119IDOFF = C2D(SUBSTR(SMF119SDEFSECT,5,4)) - 3 /* OFF TO IDENT. */

SMF119IDLEN = C2D(SUBSTR(SMF119SDEFSECT,9,2)) /* LL OF IDENT. */

SMF119IDNUM = C2D(SUBSTR(SMF119SDEFSECT,11,2))/* N. OF IDENT. */

IF SMF119IDNUM > 1 THEN DO

  SAY "MORE THAN 1 IDENTIFICATION SECTION AT RECORD:" I_LETTI

  EXIT 99

END



SMF119IDENT = SUBSTR(SMF,SMF119IDOFF,SMF119IDLEN)



/*SAY "NUMERO TRIPLETTE:"SMF119SD_TRN*/



DROP SECTION_TRIPLETS.

TR = 0

OFFS_BASE = 21 + 2 + 2

DO N_SECT = 2 TO SMF119SD_TRN

  OFFS = OFFS_BASE + (N_SECT - 1) * 8

  TR = TR + 1

  SECTION_TRIPLETS.TR = SUBSTR(SMF,OFFS,8)

END

SECTION_TRIPLETS.0 = TR



DO TR = 1 TO SECTION_TRIPLETS.0

  OFFS_BASE = C2D(SUBSTR(SECTION_TRIPLETS.TR,1,4)) - 3

  LEN = C2D(SUBSTR(SECTION_TRIPLETS.TR,5,2))

  NR = C2D(SUBSTR(SECTION_TRIPLETS.TR,7,2))

  /*SAY "TR:"TR "OFFS_BASE:"OFFS_BASE "LEN:"LEN "NR:"NR*/

  DO XX = 1 TO NR

OFFS = OFFS_BASE + (XX - 1) * LEN

REC = SUBSTR(SMF,OFFS,LEN)

O = O + 1

OUT.O = SMF119BASE !!,

SMF119IDENT !!,

SECTION_TRIPLETS.TR !!,

D2C(XX,2) !!,

D2C(I_LETTI,4) !!,

REC

IF O // BUFFER = 0 THEN DO

  "EXECIO "O" DISKW OUT (STEM OUT.)"

  I_SCRITTI = I_SCRITTI + O

  O = 0

END

  END

END



RETURN


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

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