|
Back To LeighWeb Mainframe Utilities Page
View the documentation associated with this module
ISREDIT MACRO (OPT1 OPT2)
ISPEXEC CONTROL ERRORS RETURN
/**** SET MESSAGE DISPLAY ON/OFF BASED ON THE DEBUG SWITCH ***/
ISPEXEC VGET (DBGSWTCH) PROFILE
IF &DBGSWTCH = &STR(ON) THEN CONTROL MSG LIST CONLIST SYMLIST NOFLUSH
ELSE CONTROL NOMSG NOLIST NOFLUSH NOPROMPT
IF &OPT1 = HELP THEN GOTO HELPSEC
/**********************************************************************
/* UTILITY: INSCOPY *
/* AUTHOR: DAVID LEIGH *
/* FUNCTION: THIS EDIT MACRO PARSES A COBOL PROGRAM LOOKING FOR *
/* UNCOMMENTED "COPY" STATEMENTS, READS THE COPY LIBRARIES, *
/* AND INSERTS THE CONTENTS OF THE COPY LIBRARIES AS *
/* MESSAGE LINES IN THE COBOL PROGRAM. *
/**********************************************************************
/**********************************************************************
/* PARSE ANY PASSED OPTIONS *
/**********************************************************************
SET LINETYPE = MSGLINE
IF &STR(&OPT1) = WRITE THEN +
DO
SET LINETYPE = DATALINE
SET OPT1 = &STR(&SYSNSUB(1,&OPT2))
SET OPT2 =
END
IF &STR(&OPT2) = WRITE THEN +
DO
SET LINETYPE = DATALINE
SET OPT2 =
END
/**********************************************************************
/* SAVE THE USER'S CURRENT LOCATION. *
/**********************************************************************
ISREDIT (SLN,SCL) = CURSOR
/**********************************************************************
/* WHAT EDIT PROFILE NUMBERING SCHEME IS BEING USED? *
/**********************************************************************
ISREDIT (X,Y) = NUMBER
IF &X = ON AND &SYSINDEX(&STR( COBOL),&STR(&Y)) > 0 THEN +
DO
SET COL1 = 1
SET COL2 = 66
END
ELSE +
DO
SET COL1 = 7
SET COL2 = 72
END
/**********************************************************************
/* ATTEMPT TO DETERMINE IF THIS IS A GSS OR SLSS SEARCH *
/**********************************************************************
ISREDIT (DATASET) = DATASET
ISREDIT (MEMBER) = MEMBER
IF &SUBSTR(1:2,&STR(&SYSUID)) = &STR(P@) THEN SET SEARCH = SLSS
IF &SUBSTR(1:2,&STR(&SYSUID)) = &STR(P#) THEN SET SEARCH = GSS
IF &SYSINDEX(&STR(SLSS.),&STR(&DATASET)) > 0 THEN SET SEARCH = SLSS
IF &SYSINDEX(&STR(GSS.),&STR(&DATASET)) > 0 THEN SET SEARCH = GSS
IF &SYSINDEX(&STR(SLS),&STR(&DATASET)) = 1 THEN SET SEARCH = SLSS
IF &SYSINDEX(&STR(GSS),&STR(&DATASET)) = 1 THEN SET SEARCH = GSS
IF &SEARCH = THEN SET SEARCH = SLSS
/**********************************************************************
/* START LOOPING THROUGH THE CODE AND GETTING THE COPY MEMBERS. *
/**********************************************************************
SET GOOD = 0
SET BAD = 0
ISREDIT RESET EXCLUDED
ISREDIT EXCLUDE ALL '*' &COL1
ISREDIT FIND FIRST ' COPY ' &COL1 &EVAL(&COL1 + 55 + 3) NX
DO WHILE &LASTCC = 0
ISREDIT FIND NEXT P'¬' .ZCSR .ZCSR
ISREDIT FIND NEXT ' ' .ZCSR .ZCSR
ISREDIT FIND NEXT P'¬' .ZCSR .ZCSR
ISREDIT (LN,CL1) = CURSOR
/* ISREDIT CURSOR = &LN &EVAL(&CL1 + 8)
/* ISREDIT FIND PREV '.' .ZCSR .ZCSR
/* ISREDIT FIND PREV P'¬' .ZCSR .ZCSR
ISREDIT FIND NEXT ' ' .ZCSR .ZCSR
ISREDIT FIND PREV P'¬' .ZCSR .ZCSR
ISREDIT (NULL,CL2) = CURSOR
ISREDIT (MEMBER) = LINE .ZCSR
IF &SUBSTR(&CL2:&CL2,&STR(&MEMBER)) = &STR(.) THEN +
SET &CL2 = &CL2 - 1
IF &CL2 < &CL1 OR &CL2 > &LENGTH(&STR(&MEMBER)) THEN +
SET MEMBER =
ELSE +
SET MEMBER = &SUBSTR(&CL1:&CL2,&STR(&MEMBER))
IF &STR(&MEMBER) = THEN +
DO
SET ZEDLMSG = &STR(*** PROCESSING "&DSN(&MEMBER)" ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
ISREDIT LABEL .ZCSR = .CURR
ISREDIT SEEK NEXT P'=' 1
IF &LASTCC = 0 THEN SET XLABEL = &STR(.ZCSR)
ELSE +
DO
SET XLABEL = &STR(.ZLAST)
ISREDIT LINE_AFTER .ZLAST = ' '
END
SET HEADER = &STR(*** COULD NOT FIND THE COPYBOOK NAME ON +
THIS LINE ***)
ISREDIT LINE_BEFORE &XLABEL = MSGLINE (HEADER)
SET BAD = &BAD + 1
GOTO GETNEXT
END
/**********************************************************************/
/* THIS SELECT IS REPEATED IN THIS CLIST ELSEWHERE */
/**********************************************************************/
SELECT
WHEN (&SYSDSN('&OPT1(&MEMBER)')=OK) +
SET DSN = &STR(&OPT1)
WHEN (&SYSDSN('&SYSUID..&SEARCH..COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SYSUID..&SEARCH..COPYLIB)
WHEN (&SYSDSN('&SYSUID..STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SYSUID..STR.COPYLIB)
WHEN (&SYSDSN('QDEVL.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(QDEVL.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRD00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRD00.DCLGEN)
WHEN (&SYSDSN('PDBA.USELMD00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USELMD00.DCLGEN)
WHEN (&SYSDSN('QQUAL.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(QQUAL.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRQ00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRQ00.DCLGEN)
WHEN (&SYSDSN('&SEARCH..RFP.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SEARCH..RFP.COPYLIB)
WHEN (&SYSDSN('MMODO.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(MMODO.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRM00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRM00.DCLGEN)
WHEN (&SYSDSN('&SEARCH..PRD.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SEARCH..PRD.COPYLIB)
WHEN (&SYSDSN('PEMER.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(PEMER.STR.COPYLIB)
WHEN (&SYSDSN('PPROD.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(PPROD.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRP00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRP00.DCLGEN)
WHEN (&SYSDSN('SYS4.CICS.COBLIB(&MEMBER)')=OK) +
SET DSN = &STR(SYS4.CICS.COBLIB)
WHEN (&SYSDSN('SYS3.CACOMMON.PROD.CAIMAC(&MEMBER)')=OK) +
SET DSN = &STR(SYS3.CACOMMON.PROD.CAIMAC)
WHEN (&SYSDSN('SYS3.ACF2CICS.PROD.ACFMAC(&MEMBER)')=OK) +
SET DSN = &STR(SYS3.ACF2CICS.PROD.ACFMAC)
WHEN (&SYSDSN('CRS.V2R1M0.SELACOPY(&MEMBER)')=OK) +
SET DSN = &STR(CRS.V2R1M0.SELACOPY)
OTHERWISE SET DSN =
END
IF &STR(&DSN) > THEN +
DO
SET ZEDLMSG = &STR(*** PROCESSING "&DSN(&MEMBER)" ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
ISREDIT LABEL .ZCSR = .CURR
ISREDIT SEEK NEXT P'=' 1
IF &LASTCC = 0 THEN SET XLABEL = &STR(.ZCSR)
ELSE +
DO
SET XLABEL = &STR(.ZLAST)
ISREDIT LINE_AFTER .ZLAST = ' '
END
SET GOOD = &GOOD + 1
SET HEADER = &STR(>>> COPYBOOK "&DSN(&MEMBER)" AS OF +
&SYSDATE &SYSTIME <<<)
ISREDIT LINE_BEFORE &XLABEL = MSGLINE (HEADER)
ISPEXEC LMINIT DATAID(COPYDID) DATASET('&DSN')
ISPEXEC LMOPEN DATAID(©DID)
ISPEXEC LMMFIND DATAID(©DID) MEMBER(&MEMBER)
ISPEXEC LMGET DATAID(©DID) +
MODE(INVAR) +
DATALOC(COPYDD) +
DATALEN(NULL) +
MAXLEN(80)
DO WHILE &LASTCC < 8
ERROR DO
RETURN
END
IF &COL2 = 66 THEN +
SET COPYDD = &SUBSTR(7:80,&STR(&SYSNSUB(1,©DD)))
ERROR OFF
ISREDIT LINE_BEFORE &XLABEL = &LINETYPE (COPYDD)
ISPEXEC LMGET DATAID(©DID) +
MODE(INVAR) +
DATALOC(COPYDD) +
DATALEN(NULL) +
MAXLEN(80)
END
ISPEXEC LMCLOSE DATAID(©DID)
ISPEXEC LMFREE DATAID(©DID)
IF &XLABEL = &STR(.ZLAST) THEN ISREDIT DELETE .ZLAST
END
ELSE +
DO
SET ZEDLMSG = &STR(*** PROCESSING "&DSN(&MEMBER)" ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
ISREDIT LABEL .ZCSR = .CURR
ISREDIT SEEK NEXT P'=' 1
IF &LASTCC = 0 THEN SET XLABEL = &STR(.ZCSR)
ELSE +
DO
SET XLABEL = &STR(.ZLAST)
ISREDIT LINE_AFTER .ZLAST = ' '
END
SET HEADER = &STR(>>> COPYBOOK "&DSN(&MEMBER)" NOT FOUND +
AS OF &SYSDATE &SYSTIME <<<)
ISREDIT LINE_BEFORE &XLABEL = MSGLINE (HEADER)
SET BAD = &BAD + 1
GOTO GETNEXT
END
GETNEXT: +
ISREDIT FIND LAST P'=' .CURR .CURR
ISREDIT FIND NEXT ' COPY ' &COL1 &EVAL(&COL1 + 55 + 3) NX
END
/**********************************************************************
/* START LOOPING THROUGH THE CODE AND GETTING THE CICSCOPY MEMBERS *
/**********************************************************************
ISREDIT RESET EXCLUDED
ISREDIT EXCLUDE ALL '*' &COL1
ISREDIT FIND FIRST ' CICSCOPY ' &COL1 &EVAL(&COL1 + 51 + 3) NX
DO WHILE &LASTCC = 0
ISREDIT FIND NEXT P'¬' .ZCSR .ZCSR
ISREDIT FIND NEXT ' ' .ZCSR .ZCSR
ISREDIT FIND NEXT P'¬' .ZCSR .ZCSR
ISREDIT (LN,CL1) = CURSOR
/* ISREDIT CURSOR = &LN &EVAL(&CL1 + 8)
/* ISREDIT FIND PREV '.' .ZCSR .ZCSR
/* ISREDIT FIND PREV P'¬' .ZCSR .ZCSR
ISREDIT FIND NEXT ' ' .ZCSR .ZCSR
ISREDIT FIND PREV P'¬' .ZCSR .ZCSR
ISREDIT (NULL,CL2) = CURSOR
ISREDIT (MEMBER) = LINE .ZCSR
IF &SUBSTR(&CL2:&CL2,&STR(&MEMBER)) = &STR(.) THEN +
SET &CL2 = &CL2 - 1
IF &CL2 < &CL1 OR &CL2 > &LENGTH(&STR(&MEMBER)) THEN +
SET MEMBER =
ELSE +
SET MEMBER = &SUBSTR(&CL1:&CL2,&STR(&MEMBER))
IF &STR(&MEMBER) = THEN +
DO
SET ZEDLMSG = &STR(*** PROCESSING "&DSN(&MEMBER)" ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
ISREDIT LABEL .ZCSR = .CURR
ISREDIT SEEK NEXT P'=' 1
IF &LASTCC = 0 THEN SET XLABEL = &STR(.ZCSR)
ELSE +
DO
SET XLABEL = &STR(.ZLAST)
ISREDIT LINE_AFTER .ZLAST = ' '
END
SET HEADER = &STR(*** COULD NOT FIND THE COPYBOOK NAME ON +
THIS LINE ***)
ISREDIT LINE_BEFORE &XLABEL = MSGLINE (HEADER)
SET BAD = &BAD + 1
GOTO GETNEXT2
END
/**********************************************************************/
/* THIS SELECT IS REPEATED IN THIS CLIST ELSEWHERE */
/**********************************************************************/
SELECT
WHEN (&SYSDSN('&OPT1(&MEMBER)')=OK) +
SET DSN = &STR(&OPT1)
WHEN (&SYSDSN('&SYSUID..&SEARCH..COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SYSUID..&SEARCH..COPYLIB)
WHEN (&SYSDSN('&SYSUID..STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SYSUID..STR.COPYLIB)
WHEN (&SYSDSN('QDEVL.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(QDEVL.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRD00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRD00.DCLGEN)
WHEN (&SYSDSN('PDBA.USELMD00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USELMD00.DCLGEN)
WHEN (&SYSDSN('QQUAL.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(QQUAL.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRQ00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRQ00.DCLGEN)
WHEN (&SYSDSN('&SEARCH..RFP.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SEARCH..RFP.COPYLIB)
WHEN (&SYSDSN('MMODO.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(MMODO.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRM00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRM00.DCLGEN)
WHEN (&SYSDSN('&SEARCH..PRD.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SEARCH..PRD.COPYLIB)
WHEN (&SYSDSN('PEMER.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(PEMER.STR.COPYLIB)
WHEN (&SYSDSN('PPROD.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(PPROD.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRP00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRP00.DCLGEN)
WHEN (&SYSDSN('SYS4.CICS.COBLIB(&MEMBER)')=OK) +
SET DSN = &STR(SYS4.CICS.COBLIB)
WHEN (&SYSDSN('SYS3.CACOMMON.PROD.CAIMAC(&MEMBER)')=OK) +
SET DSN = &STR(SYS3.CACOMMON.PROD.CAIMAC)
WHEN (&SYSDSN('SYS3.ACF2CICS.PROD.ACFMAC(&MEMBER)')=OK) +
SET DSN = &STR(SYS3.ACF2CICS.PROD.ACFMAC)
WHEN (&SYSDSN('CRS.V2R1M0.SELACOPY(&MEMBER)')=OK) +
SET DSN = &STR(CRS.V2R1M0.SELACOPY)
OTHERWISE SET DSN =
END
IF &STR(&DSN) > THEN +
DO
SET ZEDLMSG = &STR(*** PROCESSING "&DSN(&MEMBER)" ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
ISREDIT LABEL .ZCSR = .CURR
ISREDIT SEEK NEXT P'=' 1
IF &LASTCC = 0 THEN SET XLABEL = &STR(.ZCSR)
ELSE +
DO
SET XLABEL = &STR(.ZLAST)
ISREDIT LINE_AFTER .ZLAST = ' '
END
SET GOOD = &GOOD + 1
SET HEADER = &STR(>>> COPYBOOK "&DSN(&MEMBER)" AS OF +
&SYSDATE &SYSTIME <<<)
ISREDIT LINE_BEFORE &XLABEL = MSGLINE (HEADER)
ISPEXEC LMINIT DATAID(COPYDID) DATASET('&DSN')
ISPEXEC LMOPEN DATAID(©DID)
ISPEXEC LMMFIND DATAID(©DID) MEMBER(&MEMBER)
ISPEXEC LMGET DATAID(©DID) +
MODE(INVAR) +
DATALOC(COPYDD) +
DATALEN(NULL) +
MAXLEN(80)
DO WHILE &LASTCC < 8
ERROR DO
RETURN
END
IF &COL2 = 66 THEN +
SET COPYDD = &SUBSTR(7:80,&STR(&SYSNSUB(1,©DD)))
ERROR OFF
ISREDIT LINE_BEFORE &XLABEL = &LINETYPE (COPYDD)
ISPEXEC LMGET DATAID(©DID) +
MODE(INVAR) +
DATALOC(COPYDD) +
DATALEN(NULL) +
MAXLEN(80)
END
ISPEXEC LMCLOSE DATAID(©DID)
ISPEXEC LMFREE DATAID(©DID)
IF &XLABEL = &STR(.ZLAST) THEN ISREDIT DELETE .ZLAST
END
ELSE +
DO
SET ZEDLMSG = &STR(*** PROCESSING "&DSN(&MEMBER)" ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
ISREDIT LABEL .ZCSR = .CURR
ISREDIT SEEK NEXT P'=' 1
IF &LASTCC = 0 THEN SET XLABEL = &STR(.ZCSR)
ELSE +
DO
SET XLABEL = &STR(.ZLAST)
ISREDIT LINE_AFTER .ZLAST = ' '
END
SET HEADER = &STR(>>> COPYBOOK "&DSN(&MEMBER)" NOT FOUND +
AS OF &SYSDATE &SYSTIME <<<)
ISREDIT LINE_BEFORE &XLABEL = MSGLINE (HEADER)
SET BAD = &BAD + 1
GOTO GETNEXT2
END
GETNEXT2: +
ISREDIT FIND LAST P'=' .CURR .CURR
ISREDIT FIND NEXT ' CICSCOPY ' &COL1 &EVAL(&COL1 + 51 + 3) NX
END
/**********************************************************************
/* START LOOPING THROUGH THE CODE AND GETTING THE INCLUDE MEMBERS *
/**********************************************************************
ISREDIT RESET EXCLUDED
ISREDIT EXCLUDE ALL '*' &COL1
ISREDIT FIND FIRST ' INCLUDE ' &COL1 &EVAL(&COL1 + 52 + 3) NX
DO WHILE &LASTCC = 0
ISREDIT FIND NEXT P'¬' .ZCSR .ZCSR
ISREDIT FIND NEXT ' ' .ZCSR .ZCSR
ISREDIT FIND NEXT P'¬' .ZCSR .ZCSR
ISREDIT (LN,CL1) = CURSOR
/* ISREDIT CURSOR = &LN &EVAL(&CL1 + 8)
/* ISREDIT FIND PREV '.' .ZCSR .ZCSR
/* ISREDIT FIND PREV P'¬' .ZCSR .ZCSR
ISREDIT FIND NEXT ' ' .ZCSR .ZCSR
ISREDIT FIND PREV P'¬' .ZCSR .ZCSR
ISREDIT (NULL,CL2) = CURSOR
ISREDIT (MEMBER) = LINE .ZCSR
IF &SUBSTR(&CL2:&CL2,&STR(&MEMBER)) = &STR(.) THEN +
SET &CL2 = &CL2 - 1
IF &CL2 < &CL1 OR &CL2 > &LENGTH(&STR(&MEMBER)) THEN +
SET MEMBER =
ELSE +
SET MEMBER = &SUBSTR(&CL1:&CL2,&STR(&MEMBER))
IF &STR(&MEMBER) = THEN +
DO
SET ZEDLMSG = &STR(*** PROCESSING "&DSN(&MEMBER)" ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
ISREDIT LABEL .ZCSR = .CURR
ISREDIT SEEK NEXT P'=' 1
IF &LASTCC = 0 THEN SET XLABEL = &STR(.ZCSR)
ELSE +
DO
SET XLABEL = &STR(.ZLAST)
ISREDIT LINE_AFTER .ZLAST = ' '
END
SET HEADER = &STR(*** COULD NOT FIND THE COPYBOOK NAME ON +
THIS LINE ***)
ISREDIT LINE_BEFORE &XLABEL = MSGLINE (HEADER)
SET BAD = &BAD + 1
GOTO GETNEXT2
END
/**********************************************************************/
/* THIS SELECT IS REPEATED IN THIS CLIST ELSEWHERE */
/**********************************************************************/
SELECT
WHEN (&SYSDSN('&OPT1(&MEMBER)')=OK) +
SET DSN = &STR(&OPT1)
WHEN (&SYSDSN('&SYSUID..&SEARCH..COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SYSUID..&SEARCH..COPYLIB)
WHEN (&SYSDSN('&SYSUID..STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SYSUID..STR.COPYLIB)
WHEN (&SYSDSN('QDEVL.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(QDEVL.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRD00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRD00.DCLGEN)
WHEN (&SYSDSN('PDBA.USELMD00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USELMD00.DCLGEN)
WHEN (&SYSDSN('QQUAL.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(QQUAL.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRQ00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRQ00.DCLGEN)
WHEN (&SYSDSN('&SEARCH..RFP.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SEARCH..RFP.COPYLIB)
WHEN (&SYSDSN('MMODO.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(MMODO.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRM00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRM00.DCLGEN)
WHEN (&SYSDSN('&SEARCH..PRD.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(&SEARCH..PRD.COPYLIB)
WHEN (&SYSDSN('PEMER.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(PEMER.STR.COPYLIB)
WHEN (&SYSDSN('PPROD.STR.COPYLIB(&MEMBER)')=OK) +
SET DSN = &STR(PPROD.STR.COPYLIB)
WHEN (&SYSDSN('PDBA.USSTRP00.DCLGEN(&MEMBER)')=OK) +
SET DSN = &STR(PDBA.USSTRP00.DCLGEN)
WHEN (&SYSDSN('SYS4.CICS.COBLIB(&MEMBER)')=OK) +
SET DSN = &STR(SYS4.CICS.COBLIB)
WHEN (&SYSDSN('SYS3.CACOMMON.PROD.CAIMAC(&MEMBER)')=OK) +
SET DSN = &STR(SYS3.CACOMMON.PROD.CAIMAC)
WHEN (&SYSDSN('SYS3.ACF2CICS.PROD.ACFMAC(&MEMBER)')=OK) +
SET DSN = &STR(SYS3.ACF2CICS.PROD.ACFMAC)
WHEN (&SYSDSN('CRS.V2R1M0.SELACOPY(&MEMBER)')=OK) +
SET DSN = &STR(CRS.V2R1M0.SELACOPY)
OTHERWISE SET DSN =
END
IF &STR(&DSN) > THEN +
DO
SET ZEDLMSG = &STR(*** PROCESSING "&DSN(&MEMBER)" ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
ISREDIT LABEL .ZCSR = .CURR
ISREDIT SEEK NEXT P'=' 1
IF &LASTCC = 0 THEN SET XLABEL = &STR(.ZCSR)
ELSE +
DO
SET XLABEL = &STR(.ZLAST)
ISREDIT LINE_AFTER .ZLAST = ' '
END
SET GOOD = &GOOD + 1
SET HEADER = &STR(>>> COPYBOOK "&DSN(&MEMBER)" AS OF +
&SYSDATE &SYSTIME <<<)
ISREDIT LINE_BEFORE &XLABEL = MSGLINE (HEADER)
ISPEXEC LMINIT DATAID(COPYDID) DATASET('&DSN')
ISPEXEC LMOPEN DATAID(©DID)
ISPEXEC LMMFIND DATAID(©DID) MEMBER(&MEMBER)
ISPEXEC LMGET DATAID(©DID) +
MODE(INVAR) +
DATALOC(COPYDD) +
DATALEN(NULL) +
MAXLEN(80)
DO WHILE &LASTCC < 8
ERROR DO
RETURN
END
IF &COL2 = 66 THEN +
SET COPYDD = &SUBSTR(7:80,&STR(&SYSNSUB(1,©DD)))
ERROR OFF
ISREDIT LINE_BEFORE &XLABEL = &LINETYPE (COPYDD)
ISPEXEC LMGET DATAID(©DID) +
MODE(INVAR) +
DATALOC(COPYDD) +
DATALEN(NULL) +
MAXLEN(80)
END
ISPEXEC LMCLOSE DATAID(©DID)
ISPEXEC LMFREE DATAID(©DID)
IF &XLABEL = &STR(.ZLAST) THEN ISREDIT DELETE .ZLAST
END
ELSE +
DO
SET ZEDLMSG = &STR(*** PROCESSING "&DSN(&MEMBER)" ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
ISREDIT LABEL .ZCSR = .CURR
ISREDIT SEEK NEXT P'=' 1
IF &LASTCC = 0 THEN SET XLABEL = &STR(.ZCSR)
ELSE +
DO
SET XLABEL = &STR(.ZLAST)
ISREDIT LINE_AFTER .ZLAST = ' '
END
SET HEADER = &STR(>>> COPYBOOK "&DSN(&MEMBER)" NOT FOUND +
AS OF &SYSDATE &SYSTIME <<<)
ISREDIT LINE_BEFORE &XLABEL = MSGLINE (HEADER)
SET BAD = &BAD + 1
GOTO GETNEXT3
END
GETNEXT3: +
ISREDIT FIND LAST P'=' .CURR .CURR
ISREDIT FIND NEXT ' INCLUDE ' &COL1 &EVAL(&COL1 + 52 + 3) NX
END
SET TOTAL = &EVAL(&GOOD + &BAD)
SET ZEDLMSG = &STR(*** &GOOD OF &TOTAL COPY MEMBERS WERE SUCCESSFULLY +
PROCESSED ***)
IF &TOTAL = &GOOD THEN +
ISPEXEC SETMSG MSG(UTLZ000)
ELSE +
ISPEXEC SETMSG MSG(UTLZ001)
ISREDIT RESET EXCLUDED
ISREDIT CURSOR = &SLN &SCL
EXIT
HELPSEC: + 02480000
ISPEXEC SELECT PGM(ISPTUTOR) PARM(HELPSHEL) 02490000
SET ZEDLMSG = &STR(*** HELP DISPLAYED FOR INSCOPY UTILITY + 02490000
*** NO PROCESSING PERFORMED ***) 02490000
ISPEXEC SETMSG MSG(UTLZ000) 02490000
EXIT
|
|