PROC 1 MEMBER DEBUG NB SUMMARY EDIT + CHKCAT + DS1('SYS1.PROCLIB') + DS2('SYS1.TSOPROC') + DS3('SYS1.USERPROC') + DS4('SYS1.TESTPROC') + DS5('SYS1.CHM1PROC') + DS6('SYS1.FIB1PROC') + DS7('SYS1.FIB1TEST') /* PURPOSE: BROWSE A PROCEDURE MEMBER /* ACCORDING TO JES2 PROCLIB CONCATENATION /* SUPPLIED BY DAVID MCRITCHIE AHC 1985/07/10 /* OPTIONS -- */ /* EDIT -- USE EDIT INSTEAD OF BROWSE /* SUMMARY -- WILL PRODUCE A SUMMARY LIST AT END /* NB -- NO BROWSE DS LIBRARIES, USE WITH SUMMARY /* CHKCAT -- CHECK THAT DSNAMES ARE CATALOGED /* DEBUG -- TRACING FOR PROGRAMMER /* ------------------------------------------------- */ /* DOCUMENTATION: IS03.SHARE.TEXT(PROC) */ /* ------------------------------------------------- */ /* CLIST NAMED PROC -- REFRESH INFORMATION ...... */ /* --ONCE SETUP FOR A SYSTEM DO NOT EXPECT CHANGES */ /* USE THE PROC00 CONCATENATION IN THE JES2 PROC */ /* FOR HCCG.CLIST(PROC) USE THE PROC06 CONCATENATION */ /* ------------------------------------------------- */ SET L = &LENGTH(&STR(&MEMBER.)) IF &L. > 8 THEN DO SET INVAL = &STR(INVALID MEMBERNAME LENGTH('&MEMBER.') EXCEEDS 8) WRITE &INVAL. SET &ZEDSMSG = &STR(MEMBERNAME) SET &ZEDLMSG = &STR(&INVAL.) ISPEXEC SETMSG MSG(ISRZ000) EXIT CODE(12) END ISPEXEC CONTROL DISPLAY LINE SET BLANKS = &STR( ) SET BLANKS = &STR(&BLANKS.&BLANKS.) IF CHKCAT = &SYSCAPS(&CHKCAT.) | CHKCAT = &SYSCAPS(&STR(&MEMBER.)) + THEN DO SET CHKCAT = CHKCAT SET MEMBER = &STR(........) END SET DEBUG = &SYSCAPS(&DEBUG) SET NB = &SYSCAPS(&NB) SET CHKCAT = &SYSCAPS(&CHKCAT) IF EDIT = &SYSCAPS(&EDIT) THEN SET BROWSE = EDIT ELSE SET BROWSE = BROWSE SET MULTIMEM = &SYSINDEX(&STR(*),&STR(&MEMBER.)) IF &MULTIMEM = 0 THEN - SET MULTIMEM = &SYSINDEX(&STR(%),&STR(&MEMBER.)) SET SUMMARY = &SYSCAPS(&SUMMARY) ISPEXEC CONTROL DISPLAY LINE SET XCNT = 0 SET N = 1 SET DS = &&DS&N.. DO WHILE &STR(&DS) ^= IF CHKCAT = &SYSCAPS(&CHKCAT.) THEN DO /* CONTROL NOLIST NOCONLIST NOSYMLIST MSG /* SYSOUT TRAPS WILL NOT WORK IF YOU USE LIST SET SYSOUTTRAP = 100 SET SYSOUTLINE7 = &STR(.....................................) LISTCAT ENT('&DS.') VOL SET NS = &SYSOUTLINE SET I = 1 DO WHILE &I <= &NS SET X = &STR(&&SYSOUTLINE&I..) SET X = &STR(&X.) SET I = &I. + 1 END WRITE &SUBSTR(1:4,&N.. ) + &SUBSTR(26:31,&SYSOUTLINE7.&BLANKS.) + &SUBSTR(16:60,&SYSOUTLINE1.&BLANKS.) GOTO AGAIN END IF &MULTIMEM NE 0 THEN DO SET MULTI&N = NO MEMBER(S) FOUND $&BROWSE. '&DS.(&STR(&MEMBER.))' IF &LASTCC. = 0 THEN DO SET XCNT = &XCNT. + 1 SET MULTI&N = MEMBER(S) FOUND END GOTO AGAIN END /* IF YOU DON'T WANT SUMMARY TO BE ABLE TO BROWSE USE... */ /* -- IF &NB = NB OR &SUMMARY = SUMMARY THEN --D-O-- */ IF &NB = NB THEN DO SET MULTI&N. = &STR(&SYSDSN('&DS.(&STR(&MEMBER.))')) WRITE SET MULTI&N. = &STR(&SYSDSN('&DS.(&STR(&MEMBER.))')) SET CHK = &STR(&&MULTI&N.) IF &CHK.= OK THEN SET XCNT = &XCNT. + 1 END ELSE DO IF &STR(&SYSDSN('&DS.(&STR(&MEMBER.))')) = OK THEN DO SET DSNAME = '&DS.(&STR(&MEMBER.))' SET MULTI&N = OK ISPEXEC VPUT DSNAME SHARED IF &STR(&DS.) = &STR(SYS1.CHM1PROC) OR - &STR(&DS.) = &STR(SYS1.FIB1TEST) OR - &STR(&DS.) = &STR(SYS1.FIB1PROC) OR - &STR(&DS.) = &STR(SYS1.TESTPROC) THEN DO ISPEXEC VGET VSTSRVTI SHARED SET HLDSRVTI = &STR(&VSTSRVTI.) SET VSTSRVTI = &STR(&DS.(&STR(&MEMBER.))) ISPEXEC VPUT VSTSRVTI SHARED SET DSNDESC = &STR(&STR(/)*JOBPARM PROCLIB=PROC06 -- + REQUIRED, AND IS 1ST IN CONCATENATION) IF &STR(&DS.) = SYS1.TESTPROC THEN - SET DSNDESC = &STR(&STR(/)*JOBPARM P=PROC04 + | P=PROC03 TO USE BEFORE SYS1.USERPROC) IF &STR(&DS.) = SYS1.FIB1TEST + | &STR(&DS.) = SYS1.FIB1PROC THEN - SET DSNDESC = &STR(&STR(/)*JOBPARM P=PROC07 + | P=PROC08 TO USE BEFORE SYS1.USERPROC) ISPEXEC VPUT DSNDESC SHARED IF &BROWSE = EDIT THEN - ISPEXEC EDIT DATASET('&DS.(&STR(&MEMBER.))') + PANEL(SYSEDDE2) ELSE ISPEXEC BROWSE DATASET('&DS.(&STR(&MEMBER.))') + PANEL(SYSBROB3) SET VSTSRVTI = &STR(&HLDSRVTI) ISPEXEC VPUT VSTSRVTI SHARED END ELSE ISPEXEC &BROWSE DATASET('&DS.(&STR(&MEMBER.))') SET DSNAME = ISPEXEC VPUT DSNAME SHARED SET XCNT = &XCNT. + 1 END ELSE DO SET MULTI&N = &STR(&SYSDSN('&DS.(&STR(&MEMBER.))') IF &SUMMARY ^= SUMMARY AND &NB ^= NB THEN DO IF &DEBUG = DEBUG THEN - WRITE &SUBSTR(1:4,&N.. ) '&DS.(&STR(&MEMBER.))' + -- &STR(&SYSDSN('&DS.(&STR(&MEMBER.))')) END END END AGAIN: + SET N = &N. + 1 SET DS = &&DS&N.. END IF SUMMARY = &SUMMARY THEN DO SET N = 1 WRITE WRITE SUMMARY FOR ===> TSO PROC &MEMBER &NB &SUMMARY &DEBUG WRITE SET DS = &&DS&N.. IF &DS NE &BLANK THEN DO AGAIN3: + SET DS = &&DS&N.. SET CHK = &STR(&&MULTI&N.) WRITE &SUBSTR(1:4,&N.. ) '&DS.(&STR(&MEMBER.))' -- &CHK. SET N = &N + 1 SET DS = &STR(&&DS&N.) IF &DS NE &BLANK THEN GOTO AGAIN3 END END /* IF &XCNT. > 0 THEN EXIT CODE(0) IF &XCNT. = 0 THEN WRITE MEMBER=&STR(&MEMBER.) WAS NOT FOUND + IN ANY OF SELECTED PROCEDURE LIBRARIES ELSE WRITE MEMBER=&STR(&MEMBER.) WAS FOUND IN &XCNT. PROCEDURE + LIBRARIES EXIT CODE(0)