Return to Mainframe Utilities Page
Module
ISREDIT MACRO (HELP) 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 &STR(&HELP) = HELP THEN GOTO HELPSEC /********************************************************************** /* UTILITY: PGMFLOW * /* AUTHOR: DAVID LEIGH * /* FUNCTION: INVOKE THE "TREE" PROGRAM BY DON FAVILLE FOR THE COBOL * /* PROGRAM BEING EDITED. * /********************************************************************** /********************************************************************** /* KEEP THE USER INFORMED * /********************************************************************** SET ZEDLMSG = &STR(*** ALLOCATING FILES FOR THE PROGRAM FLOW UTILITY + ***) ISPEXEC CONTROL DISPLAY LOCK ISPEXEC DISPLAY MSG(UTLZ000) /********************************************************************** /* ESTABLISH SOME INITIAL VARIABLES * /********************************************************************** SET PGMNAME = PGMFLOW 00010003 ISREDIT (MEMBER) = MEMBER 00030003 ISREDIT (DATASET) = DATASET 00040002 SET PRINT_FILE = &STR(&SYSUID..TEMP.&MEMBER..PGMFLOW) SET VSAM_FILE = &STR(&SYSUID..TEMP.&MEMBER..VSAM) 00050001 /********************************************************************** /* FREE, DELETE, AND ALLOCATE VARIOUS FILES * /********************************************************************** FREE DD(WORKFILE SYSDBOUT SYSUDUMP SYSOUT IGZSRTCD SYSOUD PRINTFL + STRUCT SORTWK01 SORTWK02 SORTWK03 SORTWK04 SYSABOUT COBOLFL + PRINTFL) DELETE '&PRINT_FILE' DELETE '&VSAM_FILE' CLUSTER 00053303 DEFINE CLUSTER (NAME('&VSAM_FILE') + 00053403 RECORDSIZE(70 70) + 00053501 SHAREOPTIONS(2) + 00053601 KEYS(32 0) + 00053701 UNIQUE + 00053801 SPEED) + 00053901 DATA (NAME('&VSAM_FILE..D') + 00054003 VOLUME(WRK001) + 00054103 TRACKS(1 1) + 00054201 CONTROLINTERVALSIZE(8192)) + 00054301 INDEX (NAME('&VSAM_FILE..I') + 00054403 TRACKS(1 1) + 00054501 VOLUME(WRK001)) 00054603 ALLOC DD(SYSDBOUT) DUMMY ALLOC DD(SYSUDUMP) DUMMY ALLOC DD(SYSOUT) DUMMY ALLOC DD(IGZSRTCD) DUMMY ALLOC DD(SYSOUD) DUMMY ALLOC DD(COBOLFL) DSN('&DATASET(&MEMBER)') + SHR KEEP ALLOC DD(STRUCT) DSN('&VSAM_FILE') + SHR KEEP ALLOC DD(PRINTFL) DSN('&PRINT_FILE') + NEW CATALOG + UNIT(SYSDA) VOLUME(WRK001) + SPACE(5,5) TRACKS RELEASE + RECFM(F B M) LRECL(133) BLKSIZE(23408) DSORG(PS) ALLOC DD(WORKFILE) NEW + UNIT(SYSDA) VOLUME(WRK001) + SPACE(5,5) TRACKS RELEASE + RECFM(F B) LRECL(88) BLKSIZE(23408) DSORG(PS) ALLOC DD(SORTWK01) UNIT(SYSDA) SPACE(5,1) TRACKS ALLOC DD(SORTWK02) UNIT(SYSDA) SPACE(5,1) TRACKS ALLOC DD(SORTWK03) UNIT(SYSDA) SPACE(5,1) TRACKS ALLOC DD(SORTWK04) UNIT(SYSDA) SPACE(5,1) TRACKS /********************************************************************** /* INVOKE THE PROGRAM * /********************************************************************** SET ZEDLMSG = &STR(*** EXECUTING THE PROGRAM FLOW UTILIY *** + THIS MAY TAKE A MINUTE OR TWO ***) ISPEXEC CONTROL DISPLAY LOCK ISPEXEC DISPLAY MSG(UTLZ000) ISPEXEC SELECT PGM(&PGMNAME) SET PGMCC = &LASTCC 00055201 /********************************************************************** /* CLEANUP * /********************************************************************** DELETE '&VSAM_FILE' CLUSTER 00053303 FREE DD(WORKFILE SYSDBOUT SYSUDUMP SYSOUT IGZSRTCD SYSOUD PRINTFL + STRUCT SORTWK01 SORTWK02 SORTWK03 SORTWK04 SYSABOUT COBOLFL + PRINTFL) /********************************************************************** /* EDIT THE RESULTS DATASET * /********************************************************************** ISPEXEC EDIT DATASET('&PRINT_FILE') EXIT HELPSEC: + 02480000 ISPEXEC SELECT PGM(ISPTUTOR) PARM(HELPSHEL) 02490000 SET ZEDLMSG = &STR(*** HELP DISPLAYED FOR PGMFLOW UTILITY + 02490000 *** NO PROCESSING PERFORMED ***) 02490000 ISPEXEC SETMSG MSG(UTLZ000) 02490000 EXIT
Documentation
The PGMFLOW utility invokes the "TREE" program which Don Faville wrote for the COBOL program currently being edited. The user is then taken into an edit of the results. For instance, you have just checked out a copy of a COBOL program and you want a quick overview of the logic while you are editing the program. You simply type in PGMFLOW and press. "TREE" is then invoked interactively against the program you are editing. When it is finished, PGMFLOW takes you into an edit of the report file produced by the TREE program. You could then do anything you want with the file like invoke PRINTIT to print the file immediately, etc.