- 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 Mar 13, 2025@21:08:01 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 ;