|
Back To LeighWeb Mainframe Utilities Page
View the documentation associated with this module
/**********************************************************************
/* UTILITY: APPLCMPR *
/* AUTHOR: DAVID LEIGH *
/* FUNCTION: THIS UTILITY COMPARES ALL THE ELEMENTS OF AN APPLICATION *
/* USING THE LISTAD ELEMENT AND CREATING PRINTS OF EACH OF *
/* THESE COMPONENT ELEMENTS BEGINNING AT DEVL AND BEGINNING *
/* AT QUAL (WITH THE SEARCH OPTION). THIS OUTPUT IS THEN *
/* WRITTEN TO TWO PDS'S AND THEY ARE COMPARED. *
/**********************************************************************
PROC 1 CSP_APPLICATION +
ROMSL1('QDEVL.STRMSV.MSL') +
ROMSL2('QQUAL.STRMSV.MSL') +
ROMSL3('MMODO.STRMSV.MSL') +
ROMSL4('PEMER.STRMSV.MSL') +
ROMSL5('PPROD.STRMSV.MSL') +
ACCESS(DIRECT) +
ENVIRON(QUAL) +
STAGE1(D) +
STAGE2(Q) +
TYPE(LISTAD) +
SYSTEM(STR) +
SUBSYS(UNIPAC) +
CCID(UTILITY) +
CLASS('1,TIME=(1,00)') +
BATCH +
USERID() +
UTILITY(APPLCMPR) +
EDIT +
HELP
/**********************************************************************
/* MISCELLANEOUS INITIALIZATION *
/**********************************************************************
ISPEXEC CONTROL ERRORS RETURN
ISPEXEC VGET DBGSWTCH PROFILE 02
IF &DBGSWTCH = ON THEN + 02
CONTROL MSG LIST CONLIST SYMLIST NOFLUSH PROMPT ASIS 00000702
ELSE + 02
CONTROL NOMSG NOLIST NOFLUSH PROMPT ASIS 00000902
IF &HELP = HELP THEN GOTO HELPSEC
02
/**********************************************************************
/* CHECK TO SEE IF THE USER IS IN ENDEVOR FIRST *
/**********************************************************************
IF &BATCH ¬= BATCH THEN +
DO
ISPEXEC EDIT DATASET('&SYSUID..ISPF.ISPPROF(CTLIPROF)') +
MACRO(APPLCHKM)
IF &LASTCC = 14 THEN +
DO
SET ZEDSMSG =
SET ZEDLMSG = &STR(*** PLEASE EXIT ENDEVOR BEFORE +
EXECUTING "APPLCMPR" ***)
ISPEXEC SETMSG MSG(UTLZ001)
EXIT
END
END
02
/**********************************************************************
/* GET THE USER'S FULL NAME *
/**********************************************************************
IF &STR(&USER) > THEN GOTO SETVAR
SET USERID = &STR(&SYSUID)
SET SYSOUTTRAP = 1000
ACF
LIST *
END
SET SYSOUTTRAP = 0
SET SYSDVAL = &STR(&SYSNSUB(1,&SYSOUTLINE1))
READDVAL A B NAME1 NAME2 NAME3 NAME4 NAME5
SET FULLNAME = &STR(&NAME1 &NAME2 &NAME3 &NAME4 &NAME5)
02
/**********************************************************************
/* LOAD THE MSL CONCATENATION TABLE *
/**********************************************************************
SET OLDMSLS =
SET NEWMSLS =
ISPEXEC TBCREATE TEMPMSL NOWRITE REPLACE KEYS(MSLNAME)
DO &I = 1 TO 20
SET MSLNAME = &STR(&SYSNSUB(2,&&ROMSL&I))
IF &STR(&MSLNAME) > THEN +
DO
IF &I > 1 THEN +
SET OLDMSLS = &STR(&OLDMSLS,ROMSL&I)
SET NEWMSLS = &STR(&NEWMSLS,ROMSL&I)
ISPEXEC TBADD TEMPMSL
END
ELSE +
SET I = 21
END
SET NEWMSLS = &SUBSTR(2:&LENGTH(&STR(&NEWMSLS)),&STR(&NEWMSLS))
SET OLDMSLS = &SUBSTR(2:&LENGTH(&STR(&OLDMSLS)),&STR(&OLDMSLS))
02
/**********************************************************************
/* ESTABLISH SOME PROCESSING VARIABLES *
/**********************************************************************
SETVAR: +
CALL 'SYS2.USC1.LINKLIB(USERINFO)' '&USERID '
SET APPL = &STR(&CSP_APPLICATION)
SET COMMENTS = &STR(&APPL COMPARE¦&USERID¦&SYSSDATE¦&SYSSTIME)
SET TMESTAMP = &STR(D)+
&SUBSTR(1:2,&STR(&SYSSDATE))+
&SUBSTR(4:5,&STR(&SYSSDATE))+
&SUBSTR(7:8,&STR(&SYSSDATE))+
&STR(.T)+
&SUBSTR(1:2,&STR(&SYSTIME))+
&SUBSTR(4:5,&STR(&SYSTIME))+
&SUBSTR(7:8,&STR(&SYSTIME))
SET TEMPJCL = &STR(&USERID..TEMP.APPLCMPR.&TMESTAMP..JCL)
SET TEMPFILE = &STR(&USERID..TEMP.APPLCMPR.&TMESTAMP..ENDEVOR)
SET EXITCC = 0
SET LP = &STR((
SET RP = &STR()
/**********************************************************************
/* INFORM THE USER *
/**********************************************************************
SET ZEDLMSG = &STR(*** PREPARING TO CALL ENDEVOR TO EXTRACT THE +
"LISTAD" FOR "&APPL" ***)
IF &BATCH = BATCH THEN WRITE &STR(&ZEDLMSG)
ELSE +
DO
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY PANEL(MSGPANEL)
END
/**********************************************************************
/* PREPARE FOR A CALL TO ENDEVOR *
/**********************************************************************
FREE DDNAME(SYSPRINT C1MSGS1 C1PRINT PRINTDD BSTIPT01)
ALLOC DD(SYSPRINT) DUMMY
IF &DBGSWTCH = ON THEN +
ALLOC DD(C1MSGS1) DA(*)
ELSE +
ALLOC DD(C1MSGS1) DUMMY
ALLOC DD(C1PRINT) DUMMY
DELETE '&TEMPFILE'
ALLOC DD(PRINTDD) +
DSN('&TEMPFILE') +
NEW CATALOG +
UNIT(SYSDA) VOLUME(WRK$$$) +
SPACE(1,1) CYLINDERS RELEASE +
RECFM(F B) LRECL(133) BLKSIZE(23408) DSORG(PS)
ALLOC DD(BSTIPT01) +
NEW CATALOG +
UNIT(SYSDA) +
SPACE(1,1) TRACKS RELEASE +
RECFM(F B) LRECL(80) BLKSIZE(23440) DSORG(PS)
OPENFILE BSTIPT01 OUTPUT
SET BSTIPT01 = &STR(PRINT ELEMENTS '&APPL')
PUTFILE BSTIPT01
SET BSTIPT01 = &STR(FROM ENVIRONMENT '&ENVIRON' )
PUTFILE BSTIPT01
SET BSTIPT01 = &STR( STAGE '&STAGE1' )
PUTFILE BSTIPT01
SET BSTIPT01 = &STR( SYSTEM '&SYSTEM' )
PUTFILE BSTIPT01
SET BSTIPT01 = &STR( SUBSYSTEM '&SUBSYS' )
PUTFILE BSTIPT01
SET BSTIPT01 = &STR( TYPE '&TYPE')
PUTFILE BSTIPT01
SET BSTIPT01 = &STR( TO FILE 'PRINTDD' )
PUTFILE BSTIPT01
SET BSTIPT01 = &STR(OPTIONS NOSEARCH )
PUTFILE BSTIPT01
SET BSTIPT01 = &STR(. )
PUTFILE BSTIPT01
CLOSFILE BSTIPT01
SET ZEDLMSG = &STR(*** EXTRACTING THE "LISTAD" FOR "&APPL" FROM +
ENDEVOR ***)
IF &BATCH = BATCH THEN WRITE &STR(&ZEDLMSG)
ELSE +
DO
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY PANEL(MSGPANEL)
END
ISPEXEC SELECT PGM(NDVRC1) PARM(C1BM3000)
SET NDVRCC = &LASTCC
FREE DDNAME(SYSPRINT C1MSGS1 C1PRINT PRINTDD BSTIPT01)
ISPEXEC EDIT DATASET('&TEMPFILE') MACRO(APPLMACR)
/**********************************************************************
/* GET OUT IF THERE IS NO LISTAD TYPE *
/**********************************************************************
ISPEXEC TBQUERY TEMPGET ROWNUM(ROWS)
IF &ROWS = 0 THEN +
DO
SET EXITCC = &NDVRCC
IF NDVRCC < 8 THEN +
DO
SET ZEDLMSG = &STR(*** NO LISTAD ELEMENT FOUND FOR +
APPLICATION "&APPL" ***)
ISPEXEC SETMSG MSG(UTLZ000)
END
ELSE +
DO
SET ZEDLMSG = &STR(*** ENDEVOR CC: &NDVRCC TRYING TO +
LIST "&TYPE" ELEMENTS ***)
ISPEXEC SETMSG MSG(UTLZ000)
END
EXIT CODE(&NDVRCC)
END
/**********************************************************************
/* INFORM THE USER *
/**********************************************************************
SET ZEDLMSG = &STR(*** GENERATING JCL TO COMPARE "&APPL" ***)
IF &BATCH = BATCH THEN WRITE &STR(&ZEDLMSG)
ELSE +
DO
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY PANEL(MSGPANEL)
END
/**********************************************************************
/* GENERATE JCL TO DO THE COMPARE *
/**********************************************************************
DELETE '&TEMPJCL'
FREE DDNAME(ISPFILE)
ALLOCATE DDNAME(ISPFILE) DSN('&TEMPJCL') +
NEW CATALOG +
UNIT(SYSDA) VOLUME(WRK$$$) +
SPACE(1,1) TRACKS RELEASE +
RECFM(F B) LRECL(80) BLKSIZE(23440) DSORG(PS)
ISPEXEC FTOPEN
ISPEXEC FTINCL APPLCMPR
SET SAVECC = &LASTCC
ISPEXEC FTCLOSE
FREE DDNAME(ISPFILE)
IF &EDIT = EDIT THEN +
DO
IF &SAVECC > 0 THEN +
DO
ISPEXEC VGET ZERRLM
SET ZEDSMSG = &STR(JCL CREATION ERROR)
SET ZEDLMSG = &STR(&ZERRLM)
ISPEXEC SETMSG MSG(UTLZ001)
ISPEXEC EDIT DATASET('&TEMPJCL')
END
ELSE +
DO
SET ZEDLMSG = &STR(*** NOTE: YOU MUST SUBMIT THIS +
JCL YOURSELF ***)
ISPEXEC SETMSG MSG(UTLZ000W)
ISPEXEC EDIT DATASET('&TEMPJCL')
END
END
ELSE +
DO
IF &SAVECC > 0 THEN +
DO
ISPEXEC VGET ZERRLM
SET ZEDSMSG = &STR(JCL CREATION ERROR)
SET ZEDLMSG = &STR(&ZERRLM)
ISPEXEC SETMSG MSG(UTLZ001)
ISPEXEC EDIT DATASET('&TEMPJCL')
END
ELSE +
DO
SUBMIT '&TEMPJCL'
SET ZEDSMSG = &STR(JOB SUBMITTED)
SET ZEDLMSG = &STR(*** THE CREATED JCL WAS SUBMITTED +
***)
ISPEXEC SETMSG MSG(UTLZ000)
END
END
/**********************************************************************
/* CLEANUP AND GET OUT *
/**********************************************************************
FINISH: +
EXIT
/**********************************************************************
/* DISPLAY ANY "HELP" WHICH IS AVAILABLE FOR THIS UTILITY *
/**********************************************************************
HELPSEC: +
ISPEXEC SELECT PGM(ISPTUTOR) PARM(HELPSHEL)
SET ZEDLMSG = &STR(*** HELP DISPLAYED FOR APPLCMPR UTILITY +
*** NO PROCESSING PERFORMED ***)
ISPEXEC SETMSG MSG(UTLZ000)
EXIT
|
|