Mr. Steely, meet Mr. Zelden:
https://www.mzelden.com/mvsutil.html
https://www.mzelden.com/mvsfiles/logrrexx.txt

On Wed, Mar 26, 2025 at 5:46 PM Steely.Mark <
[email protected]> wrote:

> I had ChatGPT attempt this, but the generated code failed. Since I am not
> highly skilled in REXX,
> I struggled to troubleshoot and fix the issues.
> Would anyone have a working solution that can read the DATA TYPE(LOGR)
> REPORT(YES) output
> from the IXCMIAPU utility and generate the appropriate DEFINE LOGSTREAM
> control statements?
>
> I will provide what was generated but any other process would be
> appreciated.
>
> Thank You
>
> /* REXX to process IXCMIAPU output and generate DEFINE LOGSTREAM */
> TRACE IR
> PARSE ARG INDS OUTDS
> IF INDS = "" ] OUTDS = "" THEN DO
>     SAY "Usage: EXEC REXX <INPUT_DS> <OUTPUT_DS>"
>     EXIT(8)
> END
>
> /* Assign DDNAMEs */
> INDD  = "INDD"   /* Temporary DDNAME for input */
> OUTDD = "OUTDD"  /* Temporary DDNAME for output */
>
> /* Allocate Input Dataset */
> ADDRESS TSO "ALLOC F("INDD") DA('"INDS"') SHR REUSE"
>
> /* Allocate Output Dataset */
> ADDRESS TSO "ALLOC F("OUTDD") DA('"OUTDS"') NEW CATALOG " ,
>              "SPACE(10,5) TRACKS LRECL(80) RECFM(F B) DSORG(PS)"
>
> /* Read from input dataset */
> ADDRESS TSO "EXECIO * DISKR "INDD" (STEM INPUT.)"
>
> DO I = 1 TO INPUT.0
>     LINE = STRIP(INPUT.I)
>     IF LINE = "" THEN ITERATE
>
>     IF WORD(LINE,1) = "LOGSTREAM" THEN DO
>         LOGSTREAM_NAME = WORD(LINE,2)
>         CMD = "DEFINE LOGSTREAM("LOGSTREAM_NAME") "
>     END
>
>     DO J = 1 TO 21
>         SELECT
>             WHEN WORD(LINE,1) = "STG_SIZE" THEN
>                 CMD = CMD ]] "STG_SIZE("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "HIGH_WATER" THEN
>                 CMD = CMD ]] "HIGH_WATER("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "AUTODELETE" THEN
>                 CMD = CMD ]] "AUTODELETE("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "DASDONLY" THEN
>                 CMD = CMD ]] "DASDONLY("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "DESCRIPTION" THEN
>                 CMD = CMD ]] "DESCRIPTION('"WORD(LINE,2)"') "
>             WHEN WORD(LINE,1) = "DIAG" THEN
>                 CMD = CMD ]] "DIAG("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "DUPLEXMODE" THEN
>                 CMD = CMD ]] "DUPLEXMODE("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "EHLQ" THEN
>                 CMD = CMD ]] "EHLQ("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "GROUP" THEN
>                 CMD = CMD ]] "GROUP("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "HIGHOFFLOAD" THEN
>                 CMD = CMD ]] "HIGHOFFLOAD("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "HLQ" THEN
>                 CMD = CMD ]] "HLQ("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "LOGGERDUPLEX" THEN
>                 CMD = CMD ]] "LOGGERDUPLEX("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "LOWOFFLOAD" THEN
>                 CMD = CMD ]] "LOWOFFLOAD("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "LS_ALLOCAHEAD" THEN
>                 CMD = CMD ]] "LS_ALLOCAHEAD("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "LS_SIZE" THEN
>                 CMD = CMD ]] "LS_SIZE("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "MAXBUFSIZE" THEN
>                 CMD = CMD ]] "MAXBUFSIZE("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "MODEL" THEN
>                 CMD = CMD ]] "MODEL("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "OFFLOADRECALL" THEN
>                 CMD = CMD ]] "OFFLOADRECALL("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "RETPD" THEN
>                 CMD = CMD ]] "RETPD("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "RMNAME" THEN
>                 CMD = CMD ]] "RMNAME("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "STG_DUPLEX" THEN
>                 CMD = CMD ]] "STG_DUPLEX("WORD(LINE,2)") "
>             WHEN WORD(LINE,1) = "WARNPRIMARY" THEN
>                 CMD = CMD ]] "WARNPRIMARY("WORD(LINE,2)") "
>             OTHERWISE NOP
>         END
>     END
>
>     CMDOUT.0 = 0
>
>     IF CMD \= "" THEN DO
>         CMDOUT.0 = CMDOUT.0 + 1
>         CMDOUT.CMDOUT.0 = CMD
>     END
> END
>
> /* Write to output dataset */
> ADDRESS TSO "EXECIO "CMDOUT.0" DISKW "OUTDD" (STEM CMDOUT.)"
> /* Free datasets */
> ADDRESS TSO "FREE F("INDD")"
> ADDRESS TSO "FREE F("OUTDD")"
>
> EXIT(0)
>
>
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to