XPDANLYZ1 ;OAK/RSF- BUILD ANALYZER ;10/28/22
;;8.0;KERNEL;**782**;Jul 10, 1995;Build 4
;;Per VHA Directive 2004-038, this routine should not be modified.
;
START(XPDRC) ; OPTION XPDANLYZ which passes XPDRC=4 an XPDRC=5 to run initially for build
; other options pass other numbers to run other things
N XPDARR,END,XPDPG,XPDRTN,XPDR,XPQR,XPDCAR,XPDHR,XPDN,XPDSPC,XPDIS,XPDIS2,TCNT,XTOG S (END,XPDPG,XPDR,XPDIS2,TCNT,XTOG)=0
N X,XPDATE,XPDLINE,XPDBN,%,%H,%I D NOW^%DTC S XPDATE=X,XPDIS=1
I XPDRC=5 S XPDRC=4,XPDIS2=1 ;WILL HAVE FULL SQA CHECK-DOES NOT REFINE CODE CHECKS
I XPDRC=6 S XPDRC=4,XTOG=1 ;SHOW SQA LINES IN ANALYSIS SECTION (NEEDS OPTION CREATED IF WANTED)
I XPDRC=1 S XPDLINE="File Analysis" D FILENUM^XPDANLYZ4 ;THESE THREE HAVE NOT BEEN USED RECENTLY. IF WANTED, WILL NEED CODE CHECKED AND OPTIONS ADDED
I XPDRC=2 S XPDLINE="Option Analysis" D OPTME^XPDANLYZ2
I XPDRC=3 S XPDLINE="RPC Analysis" D RPCHK^XPDANLYZ2
I XPDRC=4 N XPDCS,TRKN,XPOPT,XPDREF,XPRSPL,XPPATH,XPDTOP,XPDBIEN,XPDSQA,XPMM,XTMPARR,XPDXRR,XPDTRR,XPDKT,XPDROUT,XPTL,XPNS,XPEX,XPTK,PFL D BUILDME^XPDANLYZ6
Q:XPDRC>6
G:END X1
;
PME ;Build Analysis report
I XPDIS=1 S END=0 N POP,IO,IOP,%ZIS,ZTIO D G:POP X1
. W ! S %ZIS("A")="Print Analysis to which Device: " S %ZIS="MQ" D ^%ZIS Q:POP Q:'$G(ZTIO)']""
. I $D(IO("Q")) D ;queue the report
.. S ZTRTN="PNT^XPDANLYZ1"
.. S ZTSAVE("ORY(")="",ZTSAVE("*")="" ;,ZTSAVE("XPDRC")=""XPDCOMP,XPDCOMP,XPDR,XPDIS,XPDRC,"XPDARR("
.. S ZTDESC="Build Analysis Report"
.. D ^%ZTLOAD
.. K ZTDESC,ZTRTN,ZTSAVE
.. I $D(ZTSK)[0 W !!?5,"Report canceled!"
.. E W !!?5,"Report queued."
.. D HOME^%ZIS
.. K %ZIS
. I $D(IO("Q")) K IO("Q") S END=1 Q
. ;I '$D(IO("S")) S END=1 Q
. S XPDPG=1,END=0
. U IO
. I $E(IOST,1,2)="C-" W @IOF ;sending to screen, so clear screen first
G:END X1
;
PNT ;Queue the report
N XPDCOMP,XPDNUM,XPDCNT,XPDFLD,XPDW S XPDCNT=0
N XPDSP S XPDSP=$J(" ",3)
I XPDRC'=4 S XPDSP=""
I XPDRC=4 N XPDBB S XPDBB=$O(XPDARR("BUILD",0)) Q:'XPDBB D PB1^XPDANLYZ5
;GET ALL COMPONENTS PLUS BUILD AND FILE
N XPDCHK,XPDC1,CLEN S XPDCHK="BUILD,FILE,"
S XPDC1="" F S XPDC1=$O(XPDCS(XPDC1)) Q:XPDC1']"" S XPDCHK=XPDCHK_XPDC1_","
S XPDCHK=$$TRIM^XLFSTR(XPDCHK,"R",","),CLEN=$L(XPDCHK,",")
N XPDXX,XPDOLD,XPDFNUM S XPDOLD="" F XPDXX=1:1:CLEN S XPDCOMP=$P(XPDCHK,",",XPDXX) S:$D(XPDCS(XPDCOMP)) XPDFNUM=XPDCS(XPDCOMP) D
. S XPDNUM=0 F S XPDNUM=$O(XPDARR(XPDCOMP,XPDNUM)) Q:'XPDNUM D
.. I XPDCOMP="BUILD" S XPDOLD="BUILD"
.. I $G(XPDOLD)]"",XPDOLD'=XPDCOMP D
... I $D(XPDARR(XPDOLD,"WARNING")) D PWARN^XPDANLYZ6(XPDOLD)
... S XPDCNT=XPDCNT+1,XPDW(XPDCNT)=$TR($J("-",79)," ","-"),XPDCNT=XPDCNT+1,XPDW(XPDCNT)=XPDCOMP_":",XPDOLD=XPDCOMP,XPDHR(XPDCNT)=XPDCOMP
.. N TMPTX S TMPTX="" I XPDCOMP["TEMPLATE",XPDCOMP'["LIST" S TMPTX=$J(" ",(40-$L(XPDSP_XPDARR(XPDCOMP,XPDNUM,"NAME"))))_$$GET1^DIQ(XPDFNUM,XPDNUM_",",4)_" file (#"_$$GET1^DIQ(XPDFNUM,XPDNUM_",",4,"I")_")"
.. S:XPDCOMP'="BUILD" XPDCNT=XPDCNT+1,XPDW(XPDCNT)="",XPDCNT=XPDCNT+1,XPDW(XPDCNT)=XPDSP_XPDARR(XPDCOMP,XPDNUM,"NAME")_TMPTX ;_" (#"_XPDNUM_")" ;,XPDCNT=XPDCNT+1,XPDW(XPDCNT)=""
.. S:XPDCOMP="FILE" XPDW(XPDCNT)=XPDSP_XPDARR(XPDCOMP,XPDNUM,"NAME")_" (#"_XPDNUM_")"
.. I XPDRC<4 D
... S XPDCNT=XPDCNT+1,XPDW(XPDCNT)=XPDCOMP_" Description:"
... S:XPDCOMP="OPTION" XPDW(XPDCNT)="Option Description" S:XPDCOMP="REMOTE PROCEDURE" XPDW(XPDCNT)="RPC Description" S:XPDCOMP="MAIL GROUP" XPDW(XPDCNT)="Mail Group Description"
... S:XPDCOMP="BUILD" XPDW(XPDCNT)="BUILD Description" S:XPDCOMP="BULLETIN" XPDW(XPDCNT)="Bulletin Description"
... I XPDARR(XPDCOMP,XPDNUM,"DESCRIPT")="Yes" N II S II=0 F S II=$O(XPDARR(XPDCOMP,XPDNUM,"DESCRIPTION",II)) Q:'II S XPDCNT=XPDCNT+1,XPDW(XPDCNT)=XPDARR(XPDCOMP,XPDNUM,"DESCRIPTION",II)
... I XPDARR(XPDCOMP,XPDNUM,"DESCRIPT")="No" S XPDCNT=XPDCNT+1,XPDW(XPDCNT)=" DESCRIPTION missing."
.. I XPDRC=4,XPDCOMP="BUILD" D BTXT^XPDANLYZ6
.. N FSKP S FSKP=1 ;LINE SKIP IN FILE ;XPDCNT=XPDCNT+1,XPDW(XPDCNT)=$J(" ",5)_"File Issues:"
.. I '$D(XPDARR(XPDCOMP,XPDNUM,"WARNING")),('$D(XPDARR(XPDCOMP,XPDNUM,"FIELD-WARNING"))),XPDCOMP'="BUILD" S XPDCNT=XPDCNT+1,XPDW(XPDCNT)=$J(" ",5)_"No issues noted."
.. E I XPDCOMP="FILE",'$D(XPDARR(XPDCOMP,XPDNUM,"WARNING")) S FSKP=0 ;S XPDCNT=XPDCNT+1,XPDW(XPDCNT)=$J(" ",5)_"File Issues: None"
.. N XPDWRN S XPDWRN="" I $D(XPDARR(XPDCOMP,XPDNUM,"WARNING"))!($D(XPDARR(XPDCOMP,XPDNUM,"FIELD-WARNING"))) D
... I $D(XPDARR(XPDCOMP,XPDNUM,"WARNING")) D:XPDCOMP="FILE" FADJ^XPDANLYZ3(0,"File Issues:") F S XPDWRN=$O(XPDARR(XPDCOMP,XPDNUM,"WARNING",XPDWRN)) Q:XPDWRN']"" S XPDCNT=XPDCNT+1 D
.... I (XPDCOMP="FILE"),((XPDWRN="ADIC")!(XPDWRN="ADIZ")) D @XPDWRN^XPDANLYZ6(XPDARR(XPDCOMP,XPDNUM,"WARNING",XPDWRN))
.... E S XPDW(XPDCNT)=$J(" ",5)_"* "_XPDARR(XPDCOMP,XPDNUM,"WARNING",XPDWRN)
... I $D(XPDARR(XPDCOMP,XPDNUM,"FIELD-WARNING")) D:XPDCOMP="FILE" FADJ^XPDANLYZ3(FSKP,"Field Issues:") S XPDFLD=0 F S XPDFLD=$O(XPDARR(XPDCOMP,XPDNUM,XPDFLD)) Q:'XPDFLD D
.... I $D(XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING")) S XPDWRN=" " F S XPDWRN=$O(XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING",XPDWRN)) Q:XPDWRN']"" S XPDCNT=XPDCNT+1 D
..... I XPDWRN'="SUBFILE" S XPDW(XPDCNT)=$J(" ",5)_"* "_XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING",XPDWRN)
..... I XPDWRN="SUBFILE" D
...... N XPDTMP S XPDTMP=$O(XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING",XPDWRN,"")),XPDW(XPDCNT)=" "_$P(XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING",XPDWRN,XPDTMP),":")_":"
...... S XPDCNT=XPDCNT+1,XPDW(XPDCNT)=$J(" ",7)_"* "_$P(XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING",XPDWRN,XPDTMP),":",2)
;If build, get routine info
S END=0
N XPFNAME1,XPFNAME3,XPFNAME4,XPBA1,TMPT,LNUM I XPDRC=4 S XPDLINE=XPDLINE_" "_XPDBN D RTE1^XPDANLYZ3
I XPDRC'=4 D G:END X1
. N RR S RR=0 F S RR=$O(XPDW(RR)) Q:'RR W !,XPDW(RR) I ($Y+5)>IOSL S TMPT=XPDLINE_" - (continued)" D HDR(TMPT) Q:END
. D PDESC^XPDANLYZ3
;ONLY XPDRC=4 (BUILD)FOR REST OF TAG
N XPDMM I XPDR D MMT^XPDANLYZ3 ;SET SPELL CHECK ARRAY
I XPDIS=1 D G:END=2 X1 G:END=1 X2 ;PRINT
. D BA^XPDANLYZ5
. N RR S RR=0 F S RR=$O(XPBA1(RR)) Q:'RR W !,XPBA1(RR) I $E(IOST,1,2)="C-",($Y+5)>IOSL S LNUM=$O(XPDHR(RR+2),-1),TMPT=XPDARR("BUILD",XPDBB,"NAME")_" - "_XPDHR(LNUM)_" (cont.)" D HDR(TMPT) Q:END
. Q:END
. I ('XPDR)&('XPQR) S END=1 Q ;ONLY WANT TO SEE ANLYSIS SECTION
. I XPQR D Q:END ;W !!,"SQA CHECKLIST REVIEW:",!
.. D SQAMM^XPDANLYZ5
.. N LL S LL=0 F S LL=$O(XPMM(LL)) Q:'LL W !,XPMM(LL) I $E(IOST,1,2)="C-",($Y+5)>IOSL N AA S AA=LL,AA=$O(XPDROUT(AA),-1),TMPT=XPDARR("BUILD",XPDBB,"NAME")_" - SQA LINE REVIEW, "_XPDROUT($G(AA,0))_" (cont.)" D HDR(TMPT) Q:END
. I XPDR Q:'$D(XPDMM) W !! N TTT S TTT=0 F S TTT=$O(XPDMM(TTT)) Q:'TTT D Q:END ;W !!,"Compiling Description/Routine text review." H .5 W !," . " H .5 W ". " H .5
.. W !,XPDMM(TTT) I $E(IOST,1,2)="C-",($Y+5)>IOSL S TMPT=XPDARR("BUILD",XPDBB,"NAME")_" - TEXT REVIEW (cont.)" D HDR(TMPT) Q:END
. W !!,"** Analysis Complete **",!! H 2
. S END=1 Q
I XPDIS=2 D G:END=1 X2 G:END=2 X1 ;CREATE TEXT FILES
. S DIR(0)="F",DIR("A",1)="Set the path to place the .TXT files",DIR("A",2)="or accept the standard default."
. S DIR("A",3)="",DIR("A")="PATH",DIR("B")=XPPATH
. S DIR("?",1)="Full path specification up to, but not including, the filename. This includes "
. S DIR("?",2)="any trailing slashes or brackets."
. S DIR("?")=" "
. D ^DIR S:$D(DTOUT) END=1 S:$D(DIRUT) END=1 Q:END
. S XPPATH=Y
. D FILEME^XPDANLYZ5(1)
. W !!,"Build Analysis file was created."
. W !,"File:"
. W !,?10,XPPATH_XPFNAME1
. I ('XPDR)&('XPQR) S END=1 Q ;ONLY WANT TO SEE ANLYSIS SECTION
. I XPQR W ! H 1 D FILEME^XPDANLYZ5(4) D
.. W !,"SQA Checklist review file was created."
.. W !,"File:"
.. W !,?5,XPPATH_XPFNAME4
. I XPDR W ! H 1 D FILEME^XPDANLYZ5(3) D
.. W !,"Description/Routine text review file was created."
.. W !,"File:"
.. W !,?5,XPPATH_XPFNAME3
. ;W !!,"Use SFTP to move text documents to your PC.",!,"(Detailed instructions for moving files in the Build Analyzer documentation.)"
. W !!,"** Analysis Complete **",!! H 2
. S END=1
I XPDIS=3 N XPSUB,XMSUB,XMTEXT,XMDUZ D Q:END ;CREATE MAILMAN MESSAGES
. D BA^XPDANLYZ5 W !,"BUILD ANALYSIS email:"
. S (XPSUB,XMSUB)="Build Analysis - "_XPDBN,XMTEXT="XPBA1(",XMDUZ="Kernel Build Analyzer" D ^XMD ;,XMY(DUZ)=""
. W !!,"Check for email with subject of "_XPSUB,!
. I ('XPDR)&('XPQR) S END=1 ;ONLY WANT TO SEE ANLYSIS SECTION
. I XPQR W !! D
.. W !!,"SQA Checklist review email:"
.. D SQAMM^XPDANLYZ5 N XSUB3 S (XSUB3,XMSUB)="SQA Analysis - "_XPDBN,XMTEXT="XPMM(",XMDUZ="Kernel Build Analyzer" D ^XMD ;,XMY(DUZ)=""
.. W !,"Check for email with subject of: "
.. W !,?10,XSUB3,! S END=1
. I XPDR Q:'$D(XPDMM) D
.. W !!,"Routine/Component Text email:"
.. N XPSUB1 S (XPSUB1,XMSUB)="Routine and Component Text - "_XPDBN,XMTEXT="XPDMM(",XMDUZ="Kernel Build Analyzer" D ^XMD ;XMY(DUZ)="",
.. W !,"Check for email with subject of: "
.. W !,?10,XPSUB1,! S END=1
. W !!,"** Analysis Complete **",!! H 2
. Q:END
X2 I $E(IOST,1,2)="C-" D
. W !! N DIRUT K DIR S DIR(0)="E",DIR("A")="Press <Enter> or '^' to exit"
. D ^DIR ;Q:$D(DIRUT)
X1 D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@" K DIR,DIC,XPDFARR,FLDARR,XPDRC,Y W @IOF Q
;
HDR(HTXT) ;header information
I $E(IOST,1,2)="C-" D G:END X1
. W !! N DIRUT K DIR S DIR(0)="E",DIR("A")="Press <Enter> to continue or '^' to exit"
. S DIR("?")="Press <Enter> to continue display, ""^"" to exit option."
. D ^DIR ;Q:$D(DIRUT)
. I '$G(Y) S END=2 Q
S XPDPG=XPDPG+1
I $E(IOST,1,2)="C-" W @IOF W !,HTXT,$$RJ^XLFSTR($$FMTE^XLFDT(XPDATE),79-$L(HTXT)," ")
E W !,HTXT,$$RJ^XLFSTR($$FMTE^XLFDT(XPDATE)_"; Pg: "_XPDPG,79-$L(HTXT)," ")
W !,$TR($J("=",79)," ","=")
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXPDANLYZ1 9821 printed Oct 16, 2024@18:03:56 Page 2
XPDANLYZ1 ;OAK/RSF- BUILD ANALYZER ;10/28/22
+1 ;;8.0;KERNEL;**782**;Jul 10, 1995;Build 4
+2 ;;Per VHA Directive 2004-038, this routine should not be modified.
+3 ;
START(XPDRC) ; OPTION XPDANLYZ which passes XPDRC=4 an XPDRC=5 to run initially for build
+1 ; other options pass other numbers to run other things
+2 NEW XPDARR,END,XPDPG,XPDRTN,XPDR,XPQR,XPDCAR,XPDHR,XPDN,XPDSPC,XPDIS,XPDIS2,TCNT,XTOG
SET (END,XPDPG,XPDR,XPDIS2,TCNT,XTOG)=0
+3 NEW X,XPDATE,XPDLINE,XPDBN,%,%H,%I
DO NOW^%DTC
SET XPDATE=X
SET XPDIS=1
+4 ;WILL HAVE FULL SQA CHECK-DOES NOT REFINE CODE CHECKS
IF XPDRC=5
SET XPDRC=4
SET XPDIS2=1
+5 ;SHOW SQA LINES IN ANALYSIS SECTION (NEEDS OPTION CREATED IF WANTED)
IF XPDRC=6
SET XPDRC=4
SET XTOG=1
+6 ;THESE THREE HAVE NOT BEEN USED RECENTLY. IF WANTED, WILL NEED CODE CHECKED AND OPTIONS ADDED
IF XPDRC=1
SET XPDLINE="File Analysis"
DO FILENUM^XPDANLYZ4
+7 IF XPDRC=2
SET XPDLINE="Option Analysis"
DO OPTME^XPDANLYZ2
+8 IF XPDRC=3
SET XPDLINE="RPC Analysis"
DO RPCHK^XPDANLYZ2
+9 IF XPDRC=4
NEW XPDCS,TRKN,XPOPT,XPDREF,XPRSPL,XPPATH,XPDTOP,XPDBIEN,XPDSQA,XPMM,XTMPARR,XPDXRR,XPDTRR,XPDKT,XPDROUT,XPTL,XPNS,XPEX,XPTK,PFL
DO BUILDME^XPDANLYZ6
+10 if XPDRC>6
QUIT
+11 if END
GOTO X1
+12 ;
PME ;Build Analysis report
+1 IF XPDIS=1
SET END=0
NEW POP,IO,IOP,%ZIS,ZTIO
Begin DoDot:1
+2 WRITE !
SET %ZIS("A")="Print Analysis to which Device: "
SET %ZIS="MQ"
DO ^%ZIS
if POP
QUIT
if '$GET(ZTIO)']""
QUIT
+3 ;queue the report
IF $DATA(IO("Q"))
Begin DoDot:2
+4 SET ZTRTN="PNT^XPDANLYZ1"
+5 ;,ZTSAVE("XPDRC")=""XPDCOMP,XPDCOMP,XPDR,XPDIS,XPDRC,"XPDARR("
SET ZTSAVE("ORY(")=""
SET ZTSAVE("*")=""
+6 SET ZTDESC="Build Analysis Report"
+7 DO ^%ZTLOAD
+8 KILL ZTDESC,ZTRTN,ZTSAVE
+9 IF $DATA(ZTSK)[0
WRITE !!?5,"Report canceled!"
+10 IF '$TEST
WRITE !!?5,"Report queued."
+11 DO HOME^%ZIS
+12 KILL %ZIS
End DoDot:2
+13 IF $DATA(IO("Q"))
KILL IO("Q")
SET END=1
QUIT
+14 ;I '$D(IO("S")) S END=1 Q
+15 SET XPDPG=1
SET END=0
+16 USE IO
+17 ;sending to screen, so clear screen first
IF $EXTRACT(IOST,1,2)="C-"
WRITE @IOF
End DoDot:1
if POP
GOTO X1
+18 if END
GOTO X1
+19 ;
PNT ;Queue the report
+1 NEW XPDCOMP,XPDNUM,XPDCNT,XPDFLD,XPDW
SET XPDCNT=0
+2 NEW XPDSP
SET XPDSP=$JUSTIFY(" ",3)
+3 IF XPDRC'=4
SET XPDSP=""
+4 IF XPDRC=4
NEW XPDBB
SET XPDBB=$ORDER(XPDARR("BUILD",0))
if 'XPDBB
QUIT
DO PB1^XPDANLYZ5
+5 ;GET ALL COMPONENTS PLUS BUILD AND FILE
+6 NEW XPDCHK,XPDC1,CLEN
SET XPDCHK="BUILD,FILE,"
+7 SET XPDC1=""
FOR
SET XPDC1=$ORDER(XPDCS(XPDC1))
if XPDC1']""
QUIT
SET XPDCHK=XPDCHK_XPDC1_","
+8 SET XPDCHK=$$TRIM^XLFSTR(XPDCHK,"R",",")
SET CLEN=$LENGTH(XPDCHK,",")
+9 NEW XPDXX,XPDOLD,XPDFNUM
SET XPDOLD=""
FOR XPDXX=1:1:CLEN
SET XPDCOMP=$PIECE(XPDCHK,",",XPDXX)
if $DATA(XPDCS(XPDCOMP))
SET XPDFNUM=XPDCS(XPDCOMP)
Begin DoDot:1
+10 SET XPDNUM=0
FOR
SET XPDNUM=$ORDER(XPDARR(XPDCOMP,XPDNUM))
if 'XPDNUM
QUIT
Begin DoDot:2
+11 IF XPDCOMP="BUILD"
SET XPDOLD="BUILD"
+12 IF $GET(XPDOLD)]""
IF XPDOLD'=XPDCOMP
Begin DoDot:3
+13 IF $DATA(XPDARR(XPDOLD,"WARNING"))
DO PWARN^XPDANLYZ6(XPDOLD)
+14 SET XPDCNT=XPDCNT+1
SET XPDW(XPDCNT)=$TRANSLATE($JUSTIFY("-",79)," ","-")
SET XPDCNT=XPDCNT+1
SET XPDW(XPDCNT)=XPDCOMP_":"
SET XPDOLD=XPDCOMP
SET XPDHR(XPDCNT)=XPDCOMP
End DoDot:3
+15 NEW TMPTX
SET TMPTX=""
IF XPDCOMP["TEMPLATE"
IF XPDCOMP'["LIST"
SET TMPTX=$JUSTIFY(" ",(40-$LENGTH(XPDSP_XPDARR(XPDCOMP,XPDNUM,"NAME"))))_$$GET1^DIQ(XPDFNUM,XPDNUM_",",4)_" file (#"_$$GET1^DIQ(XPDFNUM,XPDNUM_",",4,"I")_")"
+16 ;_" (#"_XPDNUM_")" ;,XPDCNT=XPDCNT+1,XPDW(XPDCNT)=""
if XPDCOMP'="BUILD"
SET XPDCNT=XPDCNT+1
SET XPDW(XPDCNT)=""
SET XPDCNT=XPDCNT+1
SET XPDW(XPDCNT)=XPDSP_XPDARR(XPDCOMP,XPDNUM,"NAME")_TMPTX
+17 if XPDCOMP="FILE"
SET XPDW(XPDCNT)=XPDSP_XPDARR(XPDCOMP,XPDNUM,"NAME")_" (#"_XPDNUM_")"
+18 IF XPDRC<4
Begin DoDot:3
+19 SET XPDCNT=XPDCNT+1
SET XPDW(XPDCNT)=XPDCOMP_" Description:"
+20 if XPDCOMP="OPTION"
SET XPDW(XPDCNT)="Option Description"
if XPDCOMP="REMOTE PROCEDURE"
SET XPDW(XPDCNT)="RPC Description"
if XPDCOMP="MAIL GROUP"
SET XPDW(XPDCNT)="Mail Group Description"
+21 if XPDCOMP="BUILD"
SET XPDW(XPDCNT)="BUILD Description"
if XPDCOMP="BULLETIN"
SET XPDW(XPDCNT)="Bulletin Description"
+22 IF XPDARR(XPDCOMP,XPDNUM,"DESCRIPT")="Yes"
NEW II
SET II=0
FOR
SET II=$ORDER(XPDARR(XPDCOMP,XPDNUM,"DESCRIPTION",II))
if 'II
QUIT
SET XPDCNT=XPDCNT+1
SET XPDW(XPDCNT)=XPDARR(XPDCOMP,XPDNUM,"DESCRIPTION",II)
+23 IF XPDARR(XPDCOMP,XPDNUM,"DESCRIPT")="No"
SET XPDCNT=XPDCNT+1
SET XPDW(XPDCNT)=" DESCRIPTION missing."
End DoDot:3
+24 IF XPDRC=4
IF XPDCOMP="BUILD"
DO BTXT^XPDANLYZ6
+25 ;LINE SKIP IN FILE ;XPDCNT=XPDCNT+1,XPDW(XPDCNT)=$J(" ",5)_"File Issues:"
NEW FSKP
SET FSKP=1
+26 IF '$DATA(XPDARR(XPDCOMP,XPDNUM,"WARNING"))
IF ('$DATA(XPDARR(XPDCOMP,XPDNUM,"FIELD-WARNING")))
IF XPDCOMP'="BUILD"
SET XPDCNT=XPDCNT+1
SET XPDW(XPDCNT)=$JUSTIFY(" ",5)_"No issues noted."
+27 ;S XPDCNT=XPDCNT+1,XPDW(XPDCNT)=$J(" ",5)_"File Issues: None"
IF '$TEST
IF XPDCOMP="FILE"
IF '$DATA(XPDARR(XPDCOMP,XPDNUM,"WARNING"))
SET FSKP=0
+28 NEW XPDWRN
SET XPDWRN=""
IF $DATA(XPDARR(XPDCOMP,XPDNUM,"WARNING"))!($DATA(XPDARR(XPDCOMP,XPDNUM,"FIELD-WARNING")))
Begin DoDot:3
+29 IF $DATA(XPDARR(XPDCOMP,XPDNUM,"WARNING"))
if XPDCOMP="FILE"
DO FADJ^XPDANLYZ3(0,"File Issues:")
FOR
SET XPDWRN=$ORDER(XPDARR(XPDCOMP,XPDNUM,"WARNING",XPDWRN))
if XPDWRN']""
QUIT
SET XPDCNT=XPDCNT+1
Begin DoDot:4
+30 IF (XPDCOMP="FILE")
IF ((XPDWRN="ADIC")!(XPDWRN="ADIZ"))
DO @XPDWRN^XPDANLYZ6(XPDARR(XPDCOMP,XPDNUM,"WARNING",XPDWRN))
+31 IF '$TEST
SET XPDW(XPDCNT)=$JUSTIFY(" ",5)_"* "_XPDARR(XPDCOMP,XPDNUM,"WARNING",XPDWRN)
End DoDot:4
+32 IF $DATA(XPDARR(XPDCOMP,XPDNUM,"FIELD-WARNING"))
if XPDCOMP="FILE"
DO FADJ^XPDANLYZ3(FSKP,"Field Issues:")
SET XPDFLD=0
FOR
SET XPDFLD=$ORDER(XPDARR(XPDCOMP,XPDNUM,XPDFLD))
if 'XPDFLD
QUIT
Begin DoDot:4
+33 IF $DATA(XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING"))
SET XPDWRN=" "
FOR
SET XPDWRN=$ORDER(XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING",XPDWRN))
if XPDWRN']""
QUIT
SET XPDCNT=XPDCNT+1
Begin DoDot:5
+34 IF XPDWRN'="SUBFILE"
SET XPDW(XPDCNT)=$JUSTIFY(" ",5)_"* "_XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING",XPDWRN)
+35 IF XPDWRN="SUBFILE"
Begin DoDot:6
+36 NEW XPDTMP
SET XPDTMP=$ORDER(XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING",XPDWRN,""))
SET XPDW(XPDCNT)=" "_$PIECE(XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING",XPDWRN,XPDTMP),":")_":"
+37 SET XPDCNT=XPDCNT+1
SET XPDW(XPDCNT)=$JUSTIFY(" ",7)_"* "_$PIECE(XPDARR(XPDCOMP,XPDNUM,XPDFLD,"WARNING",XPDWRN,XPDTMP),":",2)
End DoDot:6
End DoDot:5
End DoDot:4
End DoDot:3
End DoDot:2
End DoDot:1
+38 ;If build, get routine info
+39 SET END=0
+40 NEW XPFNAME1,XPFNAME3,XPFNAME4,XPBA1,TMPT,LNUM
IF XPDRC=4
SET XPDLINE=XPDLINE_" "_XPDBN
DO RTE1^XPDANLYZ3
+41 IF XPDRC'=4
Begin DoDot:1
+42 NEW RR
SET RR=0
FOR
SET RR=$ORDER(XPDW(RR))
if 'RR
QUIT
WRITE !,XPDW(RR)
IF ($Y+5)>IOSL
SET TMPT=XPDLINE_" - (continued)"
DO HDR(TMPT)
if END
QUIT
+43 DO PDESC^XPDANLYZ3
End DoDot:1
if END
GOTO X1
+44 ;ONLY XPDRC=4 (BUILD)FOR REST OF TAG
+45 ;SET SPELL CHECK ARRAY
NEW XPDMM
IF XPDR
DO MMT^XPDANLYZ3
+46 ;PRINT
IF XPDIS=1
Begin DoDot:1
+47 DO BA^XPDANLYZ5
+48 NEW RR
SET RR=0
FOR
SET RR=$ORDER(XPBA1(RR))
if 'RR
QUIT
WRITE !,XPBA1(RR)
IF $EXTRACT(IOST,1,2)="C-"
IF ($Y+5)>IOSL
SET LNUM=$ORDER(XPDHR(RR+2),-1)
SET TMPT=XPDARR("BUILD",XPDBB,"NAME")_" - "_XPDHR(LNUM)_" (cont.)"
DO HDR(TMPT)
if END
QUIT
+49 if END
QUIT
+50 ;ONLY WANT TO SEE ANLYSIS SECTION
IF ('XPDR)&('XPQR)
SET END=1
QUIT
+51 ;W !!,"SQA CHECKLIST REVIEW:",!
IF XPQR
Begin DoDot:2
+52 DO SQAMM^XPDANLYZ5
+53 NEW LL
SET LL=0
FOR
SET LL=$ORDER(XPMM(LL))
if 'LL
QUIT
WRITE !,XPMM(LL)
IF $EXTRACT(IOST,1,2)="C-"
IF ($Y+5)>IOSL
NEW AA
SET AA=LL
SET AA=$ORDER(XPDROUT(AA),-1)
SET TMPT=XPDARR("BUILD",XPDBB,"NAME")_" - SQA LINE REVIEW, "_XPDROUT($GET(AA,0))_" (cont.)"
DO HDR(TMPT)
if END
QUIT
End DoDot:2
if END
QUIT
+54 ;W !!,"Compiling Description/Routine text review." H .5 W !," . " H .5 W ". " H .5
IF XPDR
if '$DATA(XPDMM)
QUIT
WRITE !!
NEW TTT
SET TTT=0
FOR
SET TTT=$ORDER(XPDMM(TTT))
if 'TTT
QUIT
Begin DoDot:2
+55 WRITE !,XPDMM(TTT)
IF $EXTRACT(IOST,1,2)="C-"
IF ($Y+5)>IOSL
SET TMPT=XPDARR("BUILD",XPDBB,"NAME")_" - TEXT REVIEW (cont.)"
DO HDR(TMPT)
if END
QUIT
End DoDot:2
if END
QUIT
+56 WRITE !!,"** Analysis Complete **",!!
HANG 2
+57 SET END=1
QUIT
End DoDot:1
if END=2
GOTO X1
if END=1
GOTO X2
+58 ;CREATE TEXT FILES
IF XPDIS=2
Begin DoDot:1
+59 SET DIR(0)="F"
SET DIR("A",1)="Set the path to place the .TXT files"
SET DIR("A",2)="or accept the standard default."
+60 SET DIR("A",3)=""
SET DIR("A")="PATH"
SET DIR("B")=XPPATH
+61 SET DIR("?",1)="Full path specification up to, but not including, the filename. This includes "
+62 SET DIR("?",2)="any trailing slashes or brackets."
+63 SET DIR("?")=" "
+64 DO ^DIR
if $DATA(DTOUT)
SET END=1
if $DATA(DIRUT)
SET END=1
if END
QUIT
+65 SET XPPATH=Y
+66 DO FILEME^XPDANLYZ5(1)
+67 WRITE !!,"Build Analysis file was created."
+68 WRITE !,"File:"
+69 WRITE !,?10,XPPATH_XPFNAME1
+70 ;ONLY WANT TO SEE ANLYSIS SECTION
IF ('XPDR)&('XPQR)
SET END=1
QUIT
+71 IF XPQR
WRITE !
HANG 1
DO FILEME^XPDANLYZ5(4)
Begin DoDot:2
+72 WRITE !,"SQA Checklist review file was created."
+73 WRITE !,"File:"
+74 WRITE !,?5,XPPATH_XPFNAME4
End DoDot:2
+75 IF XPDR
WRITE !
HANG 1
DO FILEME^XPDANLYZ5(3)
Begin DoDot:2
+76 WRITE !,"Description/Routine text review file was created."
+77 WRITE !,"File:"
+78 WRITE !,?5,XPPATH_XPFNAME3
End DoDot:2
+79 ;W !!,"Use SFTP to move text documents to your PC.",!,"(Detailed instructions for moving files in the Build Analyzer documentation.)"
+80 WRITE !!,"** Analysis Complete **",!!
HANG 2
+81 SET END=1
End DoDot:1
if END=1
GOTO X2
if END=2
GOTO X1
+82 ;CREATE MAILMAN MESSAGES
IF XPDIS=3
NEW XPSUB,XMSUB,XMTEXT,XMDUZ
Begin DoDot:1
+83 DO BA^XPDANLYZ5
WRITE !,"BUILD ANALYSIS email:"
+84 ;,XMY(DUZ)=""
SET (XPSUB,XMSUB)="Build Analysis - "_XPDBN
SET XMTEXT="XPBA1("
SET XMDUZ="Kernel Build Analyzer"
DO ^XMD
+85 WRITE !!,"Check for email with subject of "_XPSUB,!
+86 ;ONLY WANT TO SEE ANLYSIS SECTION
IF ('XPDR)&('XPQR)
SET END=1
+87 IF XPQR
WRITE !!
Begin DoDot:2
+88 WRITE !!,"SQA Checklist review email:"
+89 ;,XMY(DUZ)=""
DO SQAMM^XPDANLYZ5
NEW XSUB3
SET (XSUB3,XMSUB)="SQA Analysis - "_XPDBN
SET XMTEXT="XPMM("
SET XMDUZ="Kernel Build Analyzer"
DO ^XMD
+90 WRITE !,"Check for email with subject of: "
+91 WRITE !,?10,XSUB3,!
SET END=1
End DoDot:2
+92 IF XPDR
if '$DATA(XPDMM)
QUIT
Begin DoDot:2
+93 WRITE !!,"Routine/Component Text email:"
+94 ;XMY(DUZ)="",
NEW XPSUB1
SET (XPSUB1,XMSUB)="Routine and Component Text - "_XPDBN
SET XMTEXT="XPDMM("
SET XMDUZ="Kernel Build Analyzer"
DO ^XMD
+95 WRITE !,"Check for email with subject of: "
+96 WRITE !,?10,XPSUB1,!
SET END=1
End DoDot:2
+97 WRITE !!,"** Analysis Complete **",!!
HANG 2
+98 if END
QUIT
End DoDot:1
if END
QUIT
X2 IF $EXTRACT(IOST,1,2)="C-"
Begin DoDot:1
+1 WRITE !!
NEW DIRUT
KILL DIR
SET DIR(0)="E"
SET DIR("A")="Press <Enter> or '^' to exit"
+2 ;Q:$D(DIRUT)
DO ^DIR
End DoDot:1
X1 DO ^%ZISC
if $DATA(ZTQUEUED)
SET ZTREQ="@"
KILL DIR,DIC,XPDFARR,FLDARR,XPDRC,Y
WRITE @IOF
QUIT
+1 ;
HDR(HTXT) ;header information
+1 IF $EXTRACT(IOST,1,2)="C-"
Begin DoDot:1
+2 WRITE !!
NEW DIRUT
KILL DIR
SET DIR(0)="E"
SET DIR("A")="Press <Enter> to continue or '^' to exit"
+3 SET DIR("?")="Press <Enter> to continue display, ""^"" to exit option."
+4 ;Q:$D(DIRUT)
DO ^DIR
+5 IF '$GET(Y)
SET END=2
QUIT
End DoDot:1
if END
GOTO X1
+6 SET XPDPG=XPDPG+1
+7 IF $EXTRACT(IOST,1,2)="C-"
WRITE @IOF
WRITE !,HTXT,$$RJ^XLFSTR($$FMTE^XLFDT(XPDATE),79-$LENGTH(HTXT)," ")
+8 IF '$TEST
WRITE !,HTXT,$$RJ^XLFSTR($$FMTE^XLFDT(XPDATE)_"; Pg: "_XPDPG,79-$LENGTH(HTXT)," ")
+9 WRITE !,$TRANSLATE($JUSTIFY("=",79)," ","=")
+10 QUIT
+11 ;