PROC 0 - CONSLIST(OFF) /* DEFAULT IS OFF */ - COMLIST(OFF) /* DEFAULT IS OFF */ - SYMLIST(OFF) /* DEFAULT IS OFF */ - TERMMSGS(ON) /* DEFAULT IS OFF */ - CACT0008(CACT0008) /* SELECT RESOURCE TABLE */ - CACC1000(CACC1000) /* SELECT SECURITY CHECK PGM */ - CAAM0013(CAAM0013) /* Edit macro for LIDs */ - CAAM0121(CAAM0121) /* SELECT EDIT macro SEN(pdi) */ - CACM042R(CACM042R) /* SELECT edit macro/CACT0008 */ - CACM0422(CACM0422) /* SELECT edit macro/AUACCESS */ - CNTLDD(CNTL) /* Default DDNAME - Security table */ - PDIDD(PDIDD) /* Default DDNAME - PDI data set */ - TEMP4DD(TEMP4) /* Default DDNAME - TEMP records */ - DIALOGDD(DIALOG) /* Default DDNAME - Authorized users */ - AUACCESSDD(AUACCESS) /* Default DDNAME - Work file */ - TRACE(OFF) /* TRACE ACTIONS AND ERRORS */ /* 06/01/2004 JL.NELSON CREATE TO REPORT NEW FINDINGS /* 07/12/2004 JL.NELSON copied from CARC0420 for TSS /* 11/16/2004 JL.NELSON Added code for Authorized users /* 01/25/2005 JL.NELSON Changed to add dslist to PDIs /* 02/08/2005 JL.NELSON Changed constants to variables /* 03/28/2005 JL.NELSON Added TYPERUN for Reports without PDIs /* 06/06/2006 C. STERN Updated ERROR ROUTINE. /* Removed PDI compress. Done in last step. /* 08/08/2006 CL.FENTON Added 'Not a finding' for empty dsn groups. /* 05/23/2012 CL.FENTON Chgs to allow use of AUACCESS for authorized /* users list to prevent the possible "IKJ56548I INSUFFICIENT /* STORAGE FOR CLIST TO CONTINUE" message from occurring when /* a DIALOG user group contains an excessive number of user, /* CSD-AR003400969. /* 04/08/2019 CL.FENTON Chgs to evaluate ZCIC0021 for system that are /* running both production and test/developement CICS regions, /* STS-021044. SET PGMNAME = &STR(CAAC0120 04/08/19) SET SYSPROMPT = OFF /* CONTROL NOPROMPT */ SET SYSFLUSH = OFF /* CONTROL NOFLUSH */ SET SYSASIS = ON /* CONTROL ASIS - caps off */ /* ERROR ROUTINE */ ERROR DO SET RETURN_CODE = &LASTCC /* save LAST ERROR CODE */ IF &LASTCC GE 16 THEN + WRITE &PGMNAME LASTCC = &LASTCC &ZERRLM RETURN END SET RETURN_CODE = 0 IF &TRACE = ON THEN DO /* TURN messages on */ SET TERMMSGS = ON /* CONTROL MSG */ SET COMLIST = ON /* CONTROL LIST */ SET CONSLIST = ON /* CONTROL CONLIST */ SET SYMLIST = ON /* CONTROL SYMLIST */ END SET SYSSYMLIST = &SYMLIST /* CONTROL SYMLIST/NOSYMLIST */ SET SYSCONLIST = &CONSLIST /* CONTROL CONLIST/NOCONLIST */ SET SYSLIST = &COMLIST /* CONTROL LIST/NOLIST */ SET SYSMSG = &TERMMSGS /* CONTROL MSG/NOMSG */ SET RP = ) SET RETURN_CODE = 0 SET ZISPFRC = 0 ISPEXEC VPUT (ZISPFRC) SHARED ISPEXEC VPUT ( + CONSLIST + COMLIST + SYMLIST + TERMMSGS + CACM0422 + ) ASIS SET AC20VPUT = &RETURN_CODE IF &RETURN_CODE NE 0 THEN + WRITE &PGMNAME VPUT RC = &RETURN_CODE &ZERRSM /* Determine which security system is running */ SET RETURN_CODE = 0 ISPEXEC SELECT CMD(&CACC1000 ACP) ISPEXEC VGET ( + ACPNAME + ACPVERS + ) ASIS IF &NRSTR(&ACPNAME) NE &STR(ACF2) THEN - DO WRITE &PGMNAME ACF2 Job running on the wrong system WRITE &PGMNAME &ACPNAME &ACPVERS SET RETURN_CODE = 12 GOTO ERR_EXIT END /* *************************************** */ /* INITIALIZE LIBRARY MANAGEMENT */ /* *************************************** */ SET RETURN_CODE = 0 ISPEXEC LMINIT DATAID(PDIDD) DDNAME(&PDIDD) SET LMINIT_PDIDD_RC = &RETURN_CODE IF &RETURN_CODE NE 0 THEN DO WRITE &PGMNAME LMINIT_PDIDD_RC &RETURN_CODE &ZERRSM GOTO ERR_EXIT END ISPEXEC LMINIT DATAID(TEMP4) DDNAME(&TEMP4DD) SET LMINIT_TEMP4_RC = &RETURN_CODE IF &RETURN_CODE NE 0 THEN DO WRITE &PGMNAME LMINIT_TEMP4_RC &RETURN_CODE &ZERRSM GOTO ERR_EXIT END ISPEXEC LMINIT DATAID(CNTL) DDNAME(&CNTLDD) SET LMINIT_CNTL_RC = &RETURN_CODE IF &RETURN_CODE NE 0 THEN DO WRITE &PGMNAME LMINIT_CNTL_RC &RETURN_CODE &ZERRSM GOTO ERR_EXIT END ISPEXEC LMINIT DATAID(DIALOG) DDNAME(&DIALOGDD) SET LMINIT_DIALOG_RC = &RETURN_CODE IF &RETURN_CODE NE 0 THEN DO WRITE &PGMNAME LMINIT DIALOG RC = &RETURN_CODE &ZERRSM SET RETURN_CODE = &RETURN_CODE + 16 GOTO ERR_EXIT END ISPEXEC LMINIT DATAID(AUACCESS) DDNAME(&AUACCESSDD) ENQ(EXCLU) SET LMINIT_AUACCESS_RC = &RETURN_CODE IF &RETURN_CODE NE 0 THEN DO WRITE &PGMNAME LMINIT AUACCESS RC = &RETURN_CODE &ZERRSM SET RETURN_CODE = &RETURN_CODE + 16 GOTO ERR_EXIT END SET ODDNAME = TEMP4 LISTDSI &ODDNAME FILE SET LISTDSI_FILE_RCODE = &RETURN_CODE SET LISTDSI_FILE_REASON = &SYSREASON IF &SYSREASON EQ 0 THEN DO SET ODSNAME = &SYSDSNAME SET LISTDSI_FILE_MSGLVL2 = &NRSTR(&SYSMSGLVL2) END ELSE DO WRITE &PGMNAME LISTDSI failed for TEMP4 &SYSREASON WRITE &PGMNAME &SYSMSGLVL1 WRITE &PGMNAME &SYSMSGLVL2 END /* *************************************** */ /* OPEN DATASETS */ /* *************************************** */ SET RETURN_CODE = 0 ISPEXEC LMOPEN DATAID(&PDIDD) OPTION(OUTPUT) SET LMOPEN_PDIDD_RC = &RETURN_CODE IF &RETURN_CODE NE 0 THEN DO WRITE &PGMNAME LMOPEN_PDIDD_RC &RETURN_CODE &ZERRSM GOTO ERR_EXIT END ISPEXEC LMOPEN DATAID(&DIALOG) OPTION(INPUT) SET LMOPEN_DIALOG_RC = &RETURN_CODE IF &RETURN_CODE NE 0 THEN DO WRITE &PGMNAME LMOPEN_DIALOG_RC &RETURN_CODE &ZERRSM GOTO ERR_EXIT END ISPEXEC LMOPEN DATAID(&AUACCESS) OPTION(INPUT) SET LMOPEN_AUACCESS_RC = &RETURN_CODE IF &RETURN_CODE NE 0 THEN DO WRITE &PGMNAME LMOPEN_AUACCESS_RC &RETURN_CODE &ZERRSM GOTO ERR_EXIT END /* *************************************** */ /* GET TABLE VALUES */ /* *************************************** */ SET AUACCCNT = 0 SET RETURN_CODE = 0 SET RECTYPE = 1 SET PDINAME = SET RESNAME = ISPEXEC VPUT ( + RECTYPE + PDINAME + RESNAME + PDIDD + TEMP4 + CNTL + DIALOG + AUACCESS + AUACCCNT + CACT0008 + CAAM0013 + CACM042R + ) ASIS SET RETURN_CODE = 0 ISPEXEC VIEW DATAID(&CNTL) MEMBER(CACT0008) MACRO(&CACM042R) SET VIEW_CACT0008_RC = &RETURN_CODE IF &VIEW_CACT0008_RC GT 4 THEN DO WRITE &PGMNAME VIEW CNTL &CACT0008 RC = &VIEW_CACT0008_RC SET RETURN_CODE = &RETURN_CODE + 16 GOTO BYPASS_CACT0008 END ISPEXEC VGET ( + REC1TBL + ) ASIS DO X = 1 TO &LENGTH(&NRSTR(&REC1TBL)) BY 18 SET PDINAME = &SUBSTR(&X:&X+7,&NRSTR(&REC1TBL)) /* PDI ID SET PDINAME = &PDINAME /* *************************************** */ /* EDIT TEMP4 PDI MEMBER */ /* *************************************** */ ISPEXEC EDIT DATAID(&TEMP4) MACRO(&CAAM0121) MEMBER(&PDINAME) SET VIEW_RESOURCE_RC = &RETURN_CODE SET RETURN_CODE = 0 END /* *************************************** */ /* CLOSE OUTPUT */ /* *************************************** */ CLOSEUP: + SET RETURN_CODE = 0 ISPEXEC LMCLOSE DATAID(&PDIDD) SET LMCLOSE_PDIDD_RC = &RETURN_CODE SET RETURN_CODE = 0 ISPEXEC LMCLOSE DATAID(&DIALOG) SET LMCLOSE_DIALOG_RC = &RETURN_CODE SET RETURN_CODE = 0 ISPEXEC LMCLOSE DATAID(&AUACCESS) SET LMCLOSE_AUACCESS_RC = &RETURN_CODE SET RETURN_CODE = 0 ISPEXEC LMCOMP DATAID(&AUACCESS) SET LMCOMP_AUACCESS_RC = &RETURN_CODE IF &RETURN_CODE NE 0 THEN DO WRITE &PGMNAME LMCOMP_AUACCESS_RC &RETURN_CODE &ZERRSM END /* *************************************** */ /* FREE FILES */ /* *************************************** */ SET RETURN_CODE = 0 ISPEXEC LMFREE DATAID(&TEMP4) SET LMFREE_TEMP4_RC = &RETURN_CODE SET RETURN_CODE = 0 ISPEXEC LMFREE DATAID(&PDIDD) SET LMFREE_PDIDD_RC = &RETURN_CODE SET RETURN_CODE = 0 ISPEXEC LMFREE DATAID(&CNTL) SET LMFREE_CNTL_RC = &RETURN_CODE SET RETURN_CODE = 0 ISPEXEC LMFREE DATAID(&DIALOG) SET LMFREE_DIALOG_RC = &RETURN_CODE SET RETURN_CODE = 0 ISPEXEC LMFREE DATAID(&AUACCESS) SET LMFREE_AUACCESS_RC = &RETURN_CODE SET RETURN_CODE = 0 /* *************************************** */ /* ERROR EXIT */ /* *************************************** */ ERR_EXIT: + IF &MAXCC GE 16 OR + &RETURN_CODE GT 0 THEN DO ISPEXEC VGET (ZISPFRC) SHARED IF &MAXCC GT &ZISPFRC THEN + SET ZISPFRC = &MAXCC ELSE + SET ZISPFRC = &RETURN_CODE ISPEXEC VPUT (ZISPFRC) SHARED WRITE &PGMNAME ZISPFRC = &ZISPFRC END IF &TERMMSGS = ON THEN DO WRITE =============================================================== WRITE &PGMNAME VPUT &AC20VPUT WRITE &PGMNAME LMINIT_PDIDD_RC &LMINIT_PDIDD_RC WRITE &PGMNAME LMINIT_TEMP4_RC &LMINIT_TEMP4_RC WRITE &PGMNAME LMINIT_CNTL_RC &LMINIT_CNTL_RC WRITE &PGMNAME LMINIT_DIALOG_RC &LMINIT_DIALOG_RC WRITE &PGMNAME LMINIT_AUACCESS_RC &LMINIT_AUACCESS_RC WRITE =============================================================== WRITE &PGMNAME LMOPEN_PDIDD_RC &LMOPEN_PDIDD_RC WRITE &PGMNAME LMOPEN_DIALOG_RC &LMOPEN_DIALOG_RC WRITE &PGMNAME LMOPEN_AUACCESS_RC &LMOPEN_AUACCESS_RC WRITE =============================================================== WRITE &PGMNAME VIEW_CACT0008_RC &VIEW_CACT0008_RC WRITE &PGMNAME VIEW_RESOURCE_RC &VIEW_RESOURCE_RC WRITE =============================================================== WRITE &PGMNAME LMCLOSE_PDIDD_RC &LMCLOSE_PDIDD_RC WRITE &PGMNAME LMCLOSE_DIALOG_RC &LMCLOSE_DIALOG_RC WRITE &PGMNAME LMCLOSE_AUACCESS_RC &LMCLOSE_AUACCESS_RC WRITE =============================================================== WRITE &PGMNAME LMCOMP_AUACCESS_RC &LMCOMP_AUACCESS_RC WRITE =============================================================== WRITE &PGMNAME LMFREE_PDIDD_RC &LMFREE_PDIDD_RC WRITE &PGMNAME LMFREE_TEMP4_RC &LMFREE_TEMP4_RC WRITE &PGMNAME LMFREE_CNTL_RC &LMFREE_CNTL_RC WRITE &PGMNAME LMFREE_DIALOG_RC &LMFREE_DIALOG_RC WRITE &PGMNAME LMFREE_AUACCESS_RC &LMFREE_AUACCESS_RC WRITE =============================================================== END EXIT CODE(0) END