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

Reply via email to