/* REXX */ /* CLS2REXXed by FSOX001 on 26 Apr 2017 at 09:54:25 */ Signal On NoValue Call On Error Signal On Failure Signal On Syntax Parse source opsys . exec_name . /*********************************************************************/ /* 10/19/2005 JL Nelson Moved ALLOC parms to JCL */ /* 11/03/2005 CL Fenton removed information checks for SYSPRINT */ /* 04/25/2006 CL Fenton added information on checking on use of */ /* backup or primary security database. */ /* 06/06/2006 C Stern Updated ERROR ROUTINE. */ /* 01/31/2008 CL Fenton Chgs made to use RESTYPE of DSN */ /* 07/16/2009 CL Fenton Changes CACT0001 to CACT0000, CAAM0001 to */ /* CACM000T. Changes for reflect new table information. */ /* 05/19/2017 CL Fenton Converted script from CLIST to REXX. */ /* 10/16/2025 CL Fenton Changed output for error codes. */ /* */ /* */ /*********************************************************************/ 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 */ CACT0000 = "CACT0000" /* DEFAULT ID TABLE */ CACC1000 = "CACC1000" /* Security check program */ CAAC1000 = "CAAC1000" /* Setup security envoronment */ CACM000T = "CACM000T" /* Edit macro for CT0401/stc* */ CAAM0002 = "CAAM0002" /* Edit macro for APF/LINK/LPA */ CAAM0003 = "CAAM0003" /* Edit macro for IEA* */ CAAM0013 = "CAAM0013" /* Edit macro for JES2 parms */ TYPERUN = "FSO" /* Run for SRRAUDIT | FSO */ TRACE = "OFF" /* TRACE ACTIONS AND ERRORS */ pgmname = "CAAC0001 10/16/25" 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_cntl_rc = "N/A" lminit_output_rc = "N/A" lminit_temp3_rc = "N/A" lminit_temp4_rc = "N/A" edit_temp4_rc = "N/A" lmopen_output_rc = "N/A" vput_cntl_rc = "N/A" view_cntl_rc = "N/A" tbl_vget_cntl_rc = "N/A" view_temp3_rc = "N/A" lmclose_output_rc = "N/A" lmfree_cntl_rc = "N/A" lmfree_output_rc = "N/A" lmfree_temp3_rc = "N/A" lmfree_temp4_rc = "N/A" 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 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" /*******************************************/ /* NO VARIABLES ARE PASSED TO THIS CLIST */ /* BUT KEYWORDS OF */ /* CAN BE PASSED TO LET */ /* THIS CLIST BE AWARE OF WHAT ACCESS */ /* CONTROL PRODUCT AND EXAMINE VERSION */ /* YOU ARE */ /* WORKING WITH */ /*******************************************/ /* CONSLIST = CONLIST */ /* COMLIST = LIST */ /* SYMLIST = SYMLIST */ /* TERMMSGS = MESSAGES */ /* TRACE TURNS ON MESSAGING */ /*******************************************/ return_code = 0 /* SET RETURN CODE TO 0 */ lidline = 0 restype = "DSN" "VPUT (LIDLINE RESTYPE TYPERUN CONSLIST CACT0000 COMLIST SYMLIST", "TERMPRO TERMMSGS) ASIS" ac01vput = return_code If return_code <> 0 then Say pgmname "VPUT RC =" return_code strip(zerrsm) /* Determine which security system is running */ return_code = 0 "SELECT CMD("cacc1000 "ACP)" "VGET (ACPNAME ACPVERS) ASIS" If acpname <> "ACF2" then do Say pgmname "ACF2 Job running on the wrong system" Say pgmname acpname acpvers return_code = 12 SIGNAL ERR_EXIT end /*******************************************/ /* INITIALIZE LIBRARY MANAGEMENT */ /*******************************************/ return_code = 0 /* SET RETURN CODE TO 0 */ Address TSO "ALLOC FI(SYSUT1) NEW DELETE UNIT(SYSDA) SPACE(3 1) CYL" Address TSO "ALLOC FI(SYSUT2) NEW DELETE UNIT(SYSDA) SPACE(3 1) CYL" return_code = 0 /* SET RETURN CODE TO 0 */ "LMINIT DATAID(CNTL) DDNAME(CNTL)" lminit_cntl_rc = return_code If return_code <> 0 then do Say pgmname "LMINIT_CNTL_RC" return_code strip(zerrsm) SIGNAL ERR_EXIT end return_code = 0 /* SET RETURN CODE TO 0 */ "LMINIT DATAID(TEMP3) DDNAME(TEMP3)" lminit_temp3_rc = return_code If return_code <> 0 then do Say pgmname "LMINIT_TEMP3_RC" return_code strip(zerrsm) SIGNAL ERR_EXIT end return_code = 0 /* SET RETURN CODE TO 0 */ "LMINIT DATAID(OUTPUT) DDNAME(REPORT)" lminit_output_rc = return_code If return_code <> 0 then do Say pgmname "LMINIT_OUTPUT_RC" return_code strip(zerrsm) SIGNAL ERR_EXIT end return_code = 0 /* SET RETURN CODE TO 0 */ "LMINIT DATAID(TEMP4) DDNAME(TEMP4)" lminit_temp4_rc = return_code If return_code <> 0 then do Say pgmname "LMINIT_TEMP4_RC" return_code strip(zerrsm) SIGNAL ERR_EXIT end return_code = 0 /* SET RETURN CODE TO 0 */ "EDIT DATAID("temp4") MEMBER(LIDS) MACRO("caam0013")" edit_temp4_rc = return_code return_code = 0 /* SET RETURN CODE TO 0 */ /*******************************************/ /* ALLOCATE ALTERNATE ACF2 DATABASE FILES */ /*******************************************/ "SELECT CMD("caac1000")" return_code = 0 /* SET RETURN CODE TO 0 */ /*******************************************/ /* OPEN DATASETS */ /*******************************************/ "LMOPEN DATAID("output") OPTION(OUTPUT)" lmopen_output_rc = return_code If return_code <> 0 then do Say pgmname "LMOPEN_OUTPUT_RC" return_code zerrsm SIGNAL ERR_EXIT end return_code = 0 /* SET RETURN CODE TO 0 */ /*******************************************/ /* GET TABLE VALUES */ /*******************************************/ "VIEW DATAID("cntl") MACRO("cacm000t") MEMBER("cact0000")" view_cntl_rc = return_code If return_code > 4 then SIGNAL ERR_EXIT /* EXIT */ return_code = 0 "VGET (TBLMBR) ASIS" tblmbr = tblmbr tbl_vget_cntl_rc = return_code If return_code > 0 then SIGNAL ERR_EXIT /* EXIT */ return_code = 0 /*******************************************/ /* PUT VARS IN POOL */ /*******************************************/ "VPUT (CNTL OUTPUT TEMP3 TEMP4 CAAM0003 CAAM0013) ASIS" vput_cntl_rc = return_code If return_code <> 0 then do Say pgmname "VPUT_CNTL_RC" return_code zerrsm SIGNAL ERR_EXIT end return_code = 0 /*******************************************/ /* VIEW TEMP3 DATA SETS */ /*******************************************/ "VIEW DATAID("temp3") MACRO("caam0002")" view_temp3_rc = return_code return_code = 0 /*******************************************/ /* CLOSE OUTPUT */ /*******************************************/ "LMCLOSE DATAID("output")" lmclose_output_rc = return_code return_code = 0 /*******************************************/ /* FREE FILES */ /*******************************************/ "LMFREE DATAID("cntl")" lmfree_cntl_rc = return_code return_code = 0 "LMFREE DATAID("temp3")" lmfree_temp3_rc = return_code return_code = 0 "LMFREE DATAID("output")" lmfree_output_rc = return_code return_code = 0 "LMFREE DATAID("temp4")" lmfree_temp4_rc = return_code return_code = 0 /*******************************************/ /* 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 "VGET (CM0TVGET CM0TVPUT AM2VGE AM2INT AM2EDT AM2FRE AM2LMP", "AM2LMMA AM3VGE AM13VGE) ASIS" If termmsgs = "ON" then do Say "===============================================================" Say pgmname "LMINIT_CNTL_RC "lminit_cntl_rc Say pgmname "LMINIT_OUTPUT_RC "lminit_output_rc Say pgmname "LMINIT_TEMP3_RC "lminit_temp3_rc Say pgmname "LMINIT_TEMP4_RC "lminit_temp4_rc Say "===============================================================" Say pgmname "EDIT_TEMP4_RC "edit_temp4_rc Say "===============================================================" Say pgmname "LMOPEN_OUTPUT_RC "lmopen_output_rc Say "===============================================================" Say pgmname "VPUT_CNTL_RC "vput_cntl_rc Say "===============================================================" Say pgmname "VIEW_CNTL_RC "view_cntl_rc Say pgmname cacm000t "CM0TVGET "cm0tvget Say pgmname cacm000t "CM0TVPUT "cm0tvput Say "===============================================================" Say pgmname "TBL_VGET_CNTL_RC "tbl_vget_cntl_rc Say "===============================================================" Say pgmname "VIEW_TEMP3_RC "view_temp3_rc Say pgmname caam0002 "AM2VGE "am2vge Say pgmname caam0002 "AM2INT "am2int Say pgmname caam0002 "AM2EDT "am2edt Say pgmname caam0002 "AM2FRE "am2fre Say pgmname caam0002 "AM2LMP "am2lmp Say pgmname caam0002 "AM2LMMA "am2lmma Say pgmname caam0003 "AM3VGE "am3vge Say pgmname caam0013 "AM13VGE "am13vge Say "===============================================================" Say pgmname "LMCLOSE_OUTPUT_RC "lmclose_output_rc Say "===============================================================" Say pgmname "LMFREE_CNTL_RC "lmfree_cntl_rc Say pgmname "LMFREE_OUTPUT_RC "lmfree_output_rc Say pgmname "LMFREE_TEMP3_RC "lmfree_temp3_rc Say pgmname "LMFREE_TEMP4_RC "lmfree_temp4_rc Say "===============================================================" end Exit (0) /*******************************************/ /* 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