/* REXX */ /* CLS2REXXed by UMLA01S on 26 Aug 2020 at 09:26:06 */ /*trace r?*/ Signal On NoValue Call On Error Signal On Failure Signal On Syntax Parse source opsys . exec_name . /*********************************************************************/ /* 08/26/2020 CL.Fenton Converted script from CLIST to REXX. */ /* */ /* */ /* */ /* */ /*********************************************************************/ CONSLIST = "OFF" /* DEFAULT IS OFF */ COMLIST = "OFF" /* DEFAULT IS OFF */ SYMLIST = "OFF" /* DEFAULT IS OFF */ TERMMSGS = "OFF" /* DEFAULT IS OFF */ CACC1000 = "CACC1000" CARM0008 = "CARM0008" CART0002 = "CART0002" TRACE = "OFF" pgmname = "CARC0004 08/26/20" /***********************************************/ /* CONSLIST = CONLIST */ /* COMLIST = LIST */ /* SYMLIST = SYSSYMLIST */ /* TERMMSGS = MESSAGES */ /* TRACE TURNS ON MESSAGING */ /***********************************************/ INITIALIZE: return_code = 0 /* SET RETURN CODE TO 0 */ sysprompt = "OFF" /* CONTROL NOPROMPT */ sysflush = "OFF" /* CONTROL NOFLUSH */ sysasis = "ON" /* CONTROL ASIS - caps off */ Numeric digits 10 /* default of 9 not enough */ maxcc = 0 lminit_temp5_error = 0 lminit_sensitve_error = 0 lminit_cntl_error = 0 lmopen_temp5_error = 0 lmopen_sensitve_error = 0 view_cntl_error = 0 rm8vge = 0 lmclose_temp5_error = 0 lmclose_sensitve_error = 0 lmfree_sensitve_error = 0 Arg OPTION If option <> "" then do until OPTION = "" parse var OPTION key"("val")" OPTION val = strip(val,"b","'") val = strip(val,"b",'"') optcmd = key '= "'val'"' interpret optcmd end return_code = 0 If trace = "ON" then do /* TURN messages on */ termmsgs = "ON" /* CONTROL MSG */ comlist = "ON" /* CONTROL LIST */ conslist = "ON" /* CONTROL CONLIST */ symlist = "ON" /* CONTROL SYMLIST */ end If CONSLIST = "ON" | COMLIST = "ON" | SYMLIST = "ON" | TRACE = "ON", then Trace ?r syssymlist = symlist /* CONTROL SYMLIST/NOSYMLIST */ sysconlist = conslist /* CONTROL CONLIST/NOCONLIST */ syslist = comlist /* CONTROL LIST/NOLIST */ sysmsg = termmsgs /* CONTROL MSG/NOMSG */ Address ISPEXEC "CONTROL NONDISPL ENTER" "CONTROL ERRORS RETURN" zispfrc = 0 "VPUT (ZISPFRC) SHARED" "VPUT (CONSLIST COMLIST SYMLIST TERMMSGS) ASIS" return_code = 0 "SELECT CMD("cacc1000 "ACP)" "VGET (ACPNAME ACPVERS) ASIS" If acpname <> "RACF" then do Say pgmname "RACF Job running on the wrong system" Say pgmname acpname acpvers return_code = 20 SIGNAL ERR_EXIT end /*******************************************/ /* INITIALIZE LIBRARY MANAGEMENT */ /*******************************************/ LIBRARY_INITIALIZE: return_code = 0 "LMINIT DATAID(TEMP5) DDNAME(TEMP5)" If return_code <> 0 then do lminit_temp5_error = return_code SIGNAL ERR_EXIT /* EXIT */ end "LMINIT DATAID(SENSITVE) DDNAME(SENSITVE)" If return_code <> 0 then do lminit_sensitve_error = return_code SIGNAL ERR_EXIT /* EXIT */ end "LMINIT DATAID(CNTL) DDNAME(CNTL)" If return_code <> 0 then do lminit_cntl_error = return_code SIGNAL ERR_EXIT /* EXIT */ end /*******************************************/ /* OPEN DATASETS */ /*******************************************/ "LMOPEN DATAID("temp5") OPTION(INPUT)" /* OPEN TEMP */ If return_code <> 0 then do lmopen_temp5_error = return_code SIGNAL ERR_EXIT /* EXIT */ end "LMOPEN DATAID("sensitve") OPTION(OUTPUT)" If return_code <> 0 then do lmopen_sensitve_error = return_code SIGNAL ERR_EXIT /* EXIT */ end /*******************************************/ /* PUT VARS IN POOL */ /*******************************************/ "VPUT (TEMP5 SENSITVE) ASIS" /*******************************************/ /* GET TABLE VALUES */ /*******************************************/ "VIEW DATAID("cntl") MACRO("carm0008") MEMBER("cart0002")" If return_code > 4 then do view_cntl_error = return_code SIGNAL ERR_EXIT /* EXIT */ end "VGET (RM8VGE ICNT TROWS) ASIS" Do CNT = 1 to icnt "VGET (ALPHA"cnt "BETA"cnt") ASIS" end /*******************************************/ /* EDIT RACF REPORTS */ /*******************************************/ Do CNT = 1 to icnt alpha = strip(value("ALPHA"cnt)) beta = value("BETA"cnt) return_code = 0 "LMMFIND DATAID("temp5") MEMBER("alpha")" If return_code <> 0 then do /* lmmfind_alpha &cnt_error = return_code*/ /*******************************************/ /* PUT HEADINGS OUT */ /*******************************************/ headline = " "alpha" " ac = headline "LMPUT DATAID("sensitve") MODE(INVAR) DATALOC(AC)", "DATALEN("length(ac)") MEMBER("alpha")" headline = " =======================================" headline = headline"===============================" headline = headline"===============================" headline = headline"===============================" headline = left(" ",133,"=") ac = headline "LMPUT DATAID("sensitve") MODE(INVAR) DATALOC(AC)", "DATALEN("length(ac)") MEMBER("alpha")" ac = " " "LMPUT DATAID("sensitve") MODE(INVAR) DATALOC(AC)", "DATALEN("length(ac)") MEMBER("alpha")" headline = " The Resources in this catagory do not exist or", "have not been defined." ac = headline "LMPUT DATAID("sensitve") MODE(INVAR) DATALOC(AC)", "DATALEN("length(ac)") MEMBER("alpha")" "LMMREP DATAID("sensitve") MEMBER("alpha")" iterate /* SIGNAL CONTINUE2*/ end Else do /*******************************************/ /* PUT VARS IN POOL */ /*******************************************/ aprefix = alpha "VPUT (APREFIX ALPHA BETA XTITLE ICNT TROWS) ASIS" If beta = 1 then do "EDIT DATAID("temp5") MACRO(CARM0062) MEMBER("alpha")" If return_code > 4 then do Say pgmname "EDIT ERROR" alpha " " return_code /* data_edit_alpha &cnt_error = return_code*/ /* SIGNAL ERR_EXIT /* EXIT */*/ end end Else do "EDIT DATAID("temp5") MACRO(CARM0061) MEMBER("alpha")" If return_code > 4 then do Say pgmname "EDIT ERROR" alpha " " return_code /* data_edit_alpha &cnt_error = return_code*/ /* SIGNAL ERR_EXIT /* EXIT */*/ end end end CONTINUE2: end /*******************************************/ /* CLOSE OUTPUT */ /*******************************************/ CLOSEUP: return_code = 0 "LMCLOSE DATAID("temp5")" If return_code <> 0 then do lmclose_temp5_error = return_code end return_code = 0 "LMCLOSE DATAID("sensitve")" If return_code <> 0 then do lmclose_sensitve_error = return_code end /*******************************************/ /* FREE FILES */ /*******************************************/ return_code = 0 "LMFREE DATAID("sensitve")" If return_code <> 0 then do lmfree_sensitve_error = return_code end return_code = 0 "LMFREE DATAID("temp5")" If return_code <> 0 then do lmfree_temp5_error = return_code end /*******************************************/ /* ERROR EXIT */ /*******************************************/ ERR_EXIT: If maxcc >= 16 | return_code > 0 then do "VGET (ZISPFRC) SHARED" If maxcc > zispfrc then, zispfrc = maxcc Else, zispfrc = return_code "VPUT (ZISPFRC) SHARED" Say pgmname "ZISPFRC =" zispfrc end return_code = 0 If termmsgs = "ON" then do Say "===============================================================" Say pgmname "LMINIT_TEMP5_ERROR " lminit_temp5_error Say pgmname "LMINIT_SENSITVE_ERROR " lminit_sensitve_error Say pgmname "LMINIT_CNTL_ERROR " lminit_cntl_error Say pgmname "LMOPEN_TEMP5_ERROR " lmopen_temp5_error Say pgmname "LMOPEN_SENSITVE_ERROR " lmopen_sensitve_error Say pgmname "VIEW_CNTL_ERROR " view_cntl_error Say pgmname " RM8VGE " rm8vge Say pgmname "LMCLOSE_TEMP5_ERROR " lmclose_temp5_error Say pgmname "LMCLOSE_SENSITVE_ERROR " lmclose_sensitve_error Say pgmname "LMFREE_SENSITVE_ERROR " lmfree_sensitve_error Say "===============================================================" end Exit NoValue: Failure: Syntax: say pgmname 'REXX error' rc 'in line' sigl':' strip(ERRORTEXT(rc)) say SOURCELINE(sigl) SIGNAL ERR_EXIT Error: return_code = RC if RC > 4 & RC <> 8 then do say pgmname "LASTCC =" RC strip(zerrlm) say pgmname 'REXX error' rc 'in line' sigl':' strip(ERRORTEXT(rc)) say SOURCELINE(sigl) end if return_code > maxcc then maxcc = return_code return