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