?TACL ROUTINE #FRAME #PUSH mcgutils { The volume.subvol of the MCGUTILS library. } #PUSH scope^process { The process name of SCOPE. } #PUSH pathcom^process{ The process name of PATHCOM. } #PUSH pathway { The name of the PATHMON process for the PATHWAY. } #PUSH program { The name of the program to run. } #PUSH out { The file to contain the SCOPE output. } #PUSH #OUTFORMAT =============================================================================== #SET mcgutils $DISK1.MCGUTILS #SET #OUTFORMAT PRETTY =============================================================================== [#DEF display^help MACRO |BODY| #OUTPUT #OUTPUT Scopes a Pathway session. #OUTPUT #OUTPUT #OUTPUT FORMAT: TSCOPE & { continued }~[~] #OUTPUT EXAMPLE: TSCOPE $PMT MY-PROGRAM DATAFILE.SCOPELOG #OUTPUT EXAMPLE: TSCOPE $PMT MY-PROGRAM DATAFILE.SCOPELOG & { continued }$ABC #OUTPUT #OUTPUT Where: #OUTPUT is the process name of the Pathmon process #OUTPUT #OUTPUT is the name of the program to be run under Pathway #OUTPUT #OUTPUT is the name of the file where data is logged. #OUTPUT /COLUMN 16/ This should be entry sequenced, record size 4072. #OUTPUT /COLUMN 16/ It will be created if it does not already exist. #OUTPUT #OUTPUT is the optional process name of the intercepting #OUTPUT /COLUMN 16/ process, which becomes the terminal device. #OUTPUT /COLUMN 16/ The process name will automatically be appended #OUTPUT /COLUMN 16/ with the qualifier #SCOPE. #OUTPUT ] [#DEF clean ROUTINE |BODY| #FILTER _ERROR [#CASE [#EXCEPTION] |_CALL| stopproc [scope^process] stopproc [pathcom^process] |_ERROR| #OUTPUT Severe error. #PUSH error^text #ERRORTEXT/CAPTURE error^text/ OUTVAR error^text #POP error^text #RESET FRAMES #RETURN ] ] [#DEF stopproc ROUTINE |BODY| #FRAME #PUSH #BREAKMODE #SET #BREAKMODE DISABLE #PUSH process [#CASE [#ARGUMENT/TEXT process/PROCESSNAME TEXT END] |1| STOP [process] |OTHERWISE| ] #UNFRAME ] [#DEF start^scope MACRO |BODY| CLEAR ALL [#IF [#EMPTYV/BLANK/scope^process] |THEN| #SET scope^process [#CREATEPROCESSNAME] ] [mcgutils].SCOPE/NAME [scope^process],OUT [out],NOWAIT/ ] [#DEF start^pathcom MACRO |BODY| #SET pathcom^process [#CREATEPROCESSNAME] #OUTPUT PATHCOM/NAME [pathcom^process]/[pathway];RUN [program],& { continued }FILE [scope^process].#SCOPE PATHCOM/NAME [pathcom^process]/[pathway];RUN [program],& { continued }FILE [scope^process].#SCOPE ] [#DEF do^work MACRO |BODY| start^scope start^pathcom stopproc [scope^process] #OUTPUT Scoped. See [out]. ] [#DEF do^work^filter ROUTINE |BODY| #FILTER _ERROR _BREAK [#CASE [#EXCEPTION] |_CALL| do^work |_ERROR| #OUTPUT Routine error! #PUSH error^text #ERRORTEXT/CAPTURE error^text/ OUTVAR error^text #POP error^text clean #RESET FRAMES #RETURN |_BREAK| #OUTPUT detected. clean #RESET FRAMES #RETURN |OTHERWISE| #OUTPUT Otherwise!!?? ] ] [#CASE [#ARGUMENT/VALUE pathway/PROCESSNAME END] |1| [#IF [#MATCH [#FILEINFO/FILE/[#PROCESSINFO/PROGRAMFILE/[pathway]]] & PATHMON] |THEN| |ELSE| #OUTPUT Error. Entered process is not a Pathway PATHMON process. #RESET FRAMES #RETURN ] SINK [#ARGUMENT/TEXT program/WORD] SINK [#ARGUMENT/VALUE out/FILENAME/SYNTAX/] SINK [#ARGUMENT/VALUE scope^process/PROCESSNAME/SYNTAX/ END] do^work^filter |2| display^help ] #UNFRAME