/* REXX */ /* CLS2REXXed by UMLA01S on 29 Mar 2024 at 16:43:51 */ /*Trace ?r*/ Signal On NoValue Call On Error Signal On Failure Signal On Syntax Parse source opsys . exec_name . /*********************************************************************/ /* This script (CATC1001) generates reports for selected resources */ /* through the use of TSS commands, (i.e. TSS WHOHAS and TSS */ /* WHOOWNS commands). */ /*********************************************************************/ /* 03/29/2024 CL Fenton Converted script from CLIST to REXX. */ /* */ /* */ /*********************************************************************/ CONSLIST = "OFF" /* DEFAULT IS OFF */ COMLIST = "OFF" /* DEFAULT IS OFF */ SYMLIST = "OFF" /* DEFAULT IS OFF */ TERMPRO = "OFF" /* DEFAULT IS OFF */ TERMMSGS = "OFF" /* DEFAULT IS OFF */ sysflush = 'OFF' CACC1000 = "CACC1000" /* Edit macro for CACC1000 */ TRACE = "OFF" /* TRACE ACTIONS AND ERRORS */ pgmname = "CATC1001 03/29/24" sysprompt = "OFF" /* CONTROL NOPROMPT */ sysflush = "OFF" /* CONTROL NOFLUSH */ sysasis = "ON" /* CONTROL ASIS - caps off */ Numeric digits 10 /* default of 9 not enough */ maxcc = 0 Arg OPTION do until OPTION = "" parse var OPTION key"("val")" OPTION val = strip(val,"b","'") val = strip(val,"b",'"') optcmd = key '= "'val'"' interpret optcmd end Address ISPEXEC "CONTROL NONDISPL ENTER" "CONTROL ERRORS RETURN" 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 */ MESSAGE_HOUSEKEEPING: return_code = 0 "SELECT CMD("cacc1000 "ACP)" "VPUT (CONSLIST COMLIST SYMLIST TERMPRO TERMMSGS) ASIS" /********************************************************************/ /* MAIN PROCESS LOOP */ /********************************************************************/ return_code = 0 /* SET RETURN CODE TO 0 */ lminit_cntl_rc = "N/A" lmopen_cntl_rc = "N/A" vget_rc = "N/A" lminit_output_rc = "N/A" lmfree_cntl_rc = "N/A" lmfree_output_rc = "N/A" zispfrc = 0 "VPUT (ZISPFRC) SHARED" return_code = 0 "LMINIT DATAID(CNTL) DDNAME(CNTL)" lminit_cntl_rc = return_code If return_code <> 0 then, SIGNAL ERR_EXIT /* EXIT */ /*******************************************/ /* GET TABLE VALUES */ /*******************************************/ "EDIT DATAID("cntl") MACRO(CATM1005) MEMBER(CATT1001)" edit_cntl_rc = return_code If return_code > 4 then, SIGNAL ERR_EXIT /* EXIT */ return_code = 0 "VGET (TABLE) ASIS" vget_rc = return_code If return_code > 0 then, SIGNAL ERR_EXIT /* EXIT */ return_code = 0 "LMINIT DATAID(OUTPUT) DDNAME(OUTPUT) ENQ(EXCLU)" lminit_output_rc = return_code Do INDEX = 1 to length(table) by 15 resource = substr(table,index,15) "VPUT (RESOURCE OUTPUT) ASIS" member = strip("WHOO"substr(resource,9,4),"T") "EDIT DATAID("output") MACRO(CATM1001) MEMBER("member")" return_code = 0 "LMCOMP DATAID("output")" End return_code = 0 "LMFREE DATAID("cntl")" lmfree_cntl_rc = return_code return_code = 0 "LMFREE DATAID("output")" lmfree_output_rc = return_code 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 If termmsgs = "ON" then do Say Say "===============================================================" Say pgmname "LMINIT_CNTL_RC " lminit_cntl_rc Say pgmname "LMINIT_OUTPUT_RC " lminit_output_rc Say pgmname "VGET_RC " vget_rc Say pgmname "LMFREE_CNTL_RC " lmfree_cntl_rc Say pgmname "LMFREE_OUTPUT_RC " lmfree_output_rc Say "===============================================================" end Exit /*******************************************/ /* SYSCALL SUBROUTINES */ /*******************************************/ 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