XPDDP1 ;SFISC/RSD - Continue Display a package ;06/24/2008
;;8.0;KERNEL;**525,713**;Jul 10, 1995;Build 15
;Per VHA Directive 2004-038, this routine should not be modified.
PNT(XPDGR) ; Print a package, XPDGR=global root
;XPDFL=0 - Build - ^XPD(9.7 global root
; 1 - Install - ^XTMP global root
; 2 - Packman - ^TMP($J, global root
N I,J,K,X,XPD,XPDDT,XPDI,XPD0,XPDFL,XPDPG,XPDUL,XPDTYPE,XPDTRACK,XPDTXT
Q:$G(XPDGR)="" S XPDGR="^"_XPDGR
Q:'$D(@XPDGR@(0)) S XPD0=^(0)
D ID ; Package Identification
D DESCR Q:$D(DIRUT) ; Description
I XPDTYPE=1 D MULT Q ; Multi-Package
D PREPOST Q:$D(DIRUT) ; Environment check & Pre/Post Routines
I XPDTYPE=2 D GLOBAL Q ; Global Package
D FILES Q:$D(DIRUT) ; Files/DDs
D COMP Q:$D(DIRUT) ; Build Components
Q:XPDFL=2 ; Packman message, called from XMP2 - Summarize
D QUESTS Q:$D(DIRUT) ; Install Questions
D ALFABETA Q:$D(DIRUT) ; Alpha/Beta Testing
D NAMESP Q:$D(DIRUT) ; Include/Exclude Namespaces
D REQDBLD Q:$D(DIRUT) ; Required Builds
Q
ID ; Identify the package
S XPDPG=1,XPDFL=$S($E(XPDGR,1,5)="^TMP(":2,1:$E(XPDGR,1,5)="^XTMP"),$P(XPDUL,"-",IOM)="",XPDDT=$$HTE^XLFDT($H,"1PM"),XPDTYPE=+$P(XPD0,U,3),XPDTRACK=$P(XPD0,U,5)
W:$E(IOST,1,2)="C-" @IOF D HDR W !,XPDUL
W !?12,"TYPE: ",$$EXTERNAL^DILFD(9.6,2,"",XPDTYPE)
W ?51,"TRACK NATIONALLY: ",$$EXTERNAL^DILFD(9.6,5,"",XPDTRACK)
W !,"NATIONAL PACKAGE: ",$P($G(^DIC(9.4,+$P(XPD0,U,2),0),$P(XPD0,U,2)),U)
W ?49,"ALPHA/BETA TESTING: ",$S($P($G(@XPDGR@("ABPKG")),U)="y":"YES",1:"NO")
W !,"DATE DISTRIBUTED: ",$$FMTE^XLFDT($P(XPD0,U,4))
Q
DESCR ; Show patch description
W !!?5,"DESCRIPTION:"
S XPDI=0
F S XPDI=$O(@XPDGR@(1,XPDI)) Q:'XPDI S XPDTXT=$G(^(XPDI,0)) D Q:$D(DIRUT)
. I $L(XPDTXT)'<IOM,$E(XPDTXT,$L(XPDTXT))=" " F S XPDTXT=$E(XPDTXT,1,$L(XPDTXT)-1) Q:$E(XPDTXT,$L(XPDTXT))'=" "
. F D Q:$L(XPDTXT)<IOM!$D(DIRUT)!(IOM<2) S XPDTXT=$E(XPDTXT,IOM,999)
. . Q:$$CHK(2)
. . W !,$S(IOM>1:$E(XPDTXT,1,IOM-1),1:XPDTXT)
Q
PREPOST ; Environment check and pre/post routines
Q:$$CHK(3)
W !!,"ENVIRONMENT CHECK: ",$G(@XPDGR@("PRE"))
W ?49,"DELETE ENV ROUTINE: " I $G(@XPDGR@("PRE"))]"" W $S($P($G(@XPDGR@("INID")),U)="y":"Yes",1:"No")
I 'XPDTYPE D Q:$D(DIRUT)
. Q:$$CHK(2)
. W !," PRE-INIT ROUTINE: ",$G(@XPDGR@("INI"))
. W ?44,"DELETE PRE-INIT ROUTINE: " I $G(@XPDGR@("INI"))]"" W $S($P($G(@XPDGR@("INID")),U,3)="y":"Yes",1:"No")
Q:$$CHK(2)
W !,"POST-INIT ROUTINE: ",$G(@XPDGR@("INIT"))
W ?43,"DELETE POST-INIT ROUTINE: " I $G(@XPDGR@("INIT"))]"" W $S($P($G(@XPDGR@("INID")),U,2)="y":"Yes",1:"No")
I 'XPDTYPE Q:$$CHK(2) W !,"PRE-TRANSPORT RTN: ",$G(@XPDGR@("PRET"))
I 'XPDTYPE Q:$$CHK(2) W !," RESTORE ROUTINE: ",$G(@XPDGR@("REST")) ;p713
Q
FILES ; Show files/DDs
Q:'$O(@XPDGR@(4,0)) ; Quit if no files
S I=$$CHK(8,1) Q:I I '$P(I,"^",2) D HDR1 W !,XPDUL
S XPDI=0
F S XPDI=$O(@XPDGR@(4,XPDI)) Q:'XPDI S XPD=$G(^(XPDI,222)) Q:$$CHK(3,1) D
. ;file number, file name, partial DD
. W !!,XPDI,?12,$S('XPDFL:$P($G(^DIC(XPDI,0),"**unknown**"),U),1:$G(^XTMP("XPDI",XPDA,"FIA",XPDI)))
. ; update DD, send security code, data comes with file
. W ?43,$$EXTERNAL^DILFD(9.64,222.1,"",$P(XPD,U)),?49,$$EXTERNAL^DILFD(9.64,222.2,"",$P(XPD,U,2)),?55,$$EXTERNAL^DILFD(9.64,222.7,"",$P(XPD,U,7))
. ; override site data, resolve pointers, user override
. W ?63,$E($$EXTERNAL^DILFD(9.64,222.8,"",$P(XPD,U,8)),1,4),?69,$$EXTERNAL^DILFD(9.64,222.5,"",$P(XPD,U,5)),?75,$$EXTERNAL^DILFD(9.64,222.9,"",$P(XPD,U,9))
. I $P(XPD,U,3)="p" D Q:$D(DIRUT)
. . ; Print partial DD information
. . N XPDSUB,XPDFLD
. . Q:$$CHK(2,1)
. . W !,"Partial DD:"
. . S (J,XPDSUB)=0
. . F S J=$O(@XPDGR@(4,"APDD",XPDI,J)) Q:'J D Q:$D(DIRUT)
. . . I XPDSUB Q:$$CHK(2,1) W !
. . . W ?12,"subDD: ",J
. . . S XPDSUB=1,(I,XPDFLD)=0
. . . F S I=$O(@XPDGR@(4,"APDD",XPDI,J,I)) Q:'I D Q:$D(DIRUT)
. . . . I XPDFLD Q:$$CHK(2,1) W !
. . . . W ?30,"fld: ",I S XPDFLD=1
. I " "'[$G(@XPDGR@(4,XPDI,223)) Q:$$CHK(2,1) W !,?2,"DD SCREEN : ",^(223)
. I " "'[$G(@XPDGR@(4,XPDI,224)) Q:$$CHK(2,1) W !,?2,"DATA SCREEN: ",^(224)
Q
COMP ; Print Build components
S I=0,XPD=$P(^DD(9.68,.03,0),U,3)
F S I=$O(@XPDGR@("KRN",I)) Q:'I D Q:$D(DIRUT)
. Q:'$D(@XPDGR@("KRN",I,"NM","B"))
. Q:$$CHK(4)
. W !!,$S($D(^DIC(I,0)):$P(^(0),U),XPDFL:$G(^XTMP("XPDI",XPDA,"FIA",I),"UNKNOWN"),1:"UNKNOWN")_":",?47,"ACTION:"
. S J=""
. F S J=$O(@XPDGR@("KRN",I,"NM","B",J)) Q:J="" S X=$O(^(J,0)) D Q:$D(DIRUT)
. . Q:'X
. . S X=$G(@XPDGR@("KRN",I,"NM",X,0)) Q:X=""
. . Q:$$CHK(2)
. . ;write the entry name and write the action
. . W !,?3,$P(X,U),?50,$P($P(XPD,";",$P(X,U,3)+1),":",2)
Q
QUESTS ; Show Install Questions
I '$O(@XPDGR@("QUES",0)),'($D(@XPDGR@("QDEF"))#2) Q
Q:$$CHK(6)
W !!,"INSTALL QUESTIONS: "
S I=0
F S I=$O(@XPDGR@("QUES",I)) Q:'I S X=$P(^(I,0),U),J=$G(^(1)),K=$G(^("A")) D Q:$D(DIRUT)
. Q:$$CHK(4)
. W !!?5,"SUBSCRIPT: ",X
. W !,"DIR(0)=",J
. S J=0
. F S J=$O(@XPDGR@("QUES",I,"A1",J)) Q:'J Q:$$CHK(2) W !,"DIR(""A"",",J,")=",^(J,0)
. I K]"" Q:$$CHK(2) W !,"DIR(""A"")=",K
. I $G(@XPDGR@("QUES",I,"B"))]"" Q:$$CHK(2) W !,"DIR(""B"")=",^("B")
. S J=0
. F S J=$O(@XPDGR@("QUES",I,"Q1",J)) Q:'J Q:$$CHK(2) W !,"DIR(""?"",",J,")=",^(J,0)
. I $G(@XPDGR@("QUES",I,"Q"))]"" Q:$$CHK(2) W !,"DIR(""?"")=",^("Q")
. I $G(@XPDGR@("QUES",I,"QQ"))]"" Q:$$CHK(2) W !,"DIR(""??"")=",^("QQ")
. I $G(@XPDGR@("QUES",I,"M"))]"" Q:$$CHK(2) W !,"M CODE: ",^("M")
Q:$D(DIRUT)
;Show new Defaults for KIDS questions. p463
S X=$G(@XPDGR@("QDEF")) Q:X=""
I '$L($P(X,U,9)),'$L($P(X,U,5)),'$L($P(X,U,11)) Q
Q:$$CHK(3) W !
I $L($P(X,U,9)) Q:$$CHK(2) W !," Default Rebuild Menu Trees Upon Completion of Install: ",$P(X,U,9)
I $L($P(X,U,5)) Q:$$CHK(2) W !," Default INHIBIT LOGONs during the install: ",$P(X,U,5)
I $L($P(X,U,11)) Q:$$CHK(2) W !," Default DISABLE Scheduled Options, Menu Options, and Protocols: ",$P(X,U,11)
Q
ALFABETA ; Alpha/Beta Testing
S XPD=$G(@XPDGR@("ABPKG")) Q:XPD=""
Q:$P(XPD,U)'="y"
Q:$$CHK(4)
W !!,"ALPHA/BETA TESTING: ",$$EXTERNAL^DILFD(9.6,20,"",$P(XPD,U)),?47,"INSTALLATION MESSAGE: ",$$EXTERNAL^DILFD(9.6,21,"",$P(XPD,U,2))
W !,"ADDRESS: ",$P(XPD,U,3)
Q
NAMESP ; Namespaces
Q:'$O(@XPDGR@("ABNS",0))
Q:$$CHK(4)
W !!,"INCLUDE NAMESPACE:",?47,"EXCLUDE NAMESPACE:"
S I=0
F S I=$O(@XPDGR@("ABNS",I)) Q:'I Q:$$CHK(2) W !?3,^(I,0) D Q:$D(DIRUT)
. N XPDNMSP,XPDLF
. S (J,XPDLF)=0
. F S J=$O(@XPDGR@("ABNS",I,1,J)) Q:'J S XPDNMSP=^(J,0) D Q:$D(DIRUT)
. . I XPDLF Q:$$CHK(2) W !
. . W ?50,XPDNMSP
. . S XPDLF=1
Q
REQDBLD ; Required Builds
Q:'$O(@XPDGR@("REQB",0))
Q:$$CHK(4)
W !!,"REQUIRED BUILDS:",?47,"ACTION:"
S XPDI=0
F S XPDI=$O(@XPDGR@("REQB",XPDI)) Q:'XPDI S XPD=$G(^(XPDI,0)) Q:$$CHK(2) D
. W !?3,$P(XPD,U),?50,$$EXTERNAL^DILFD(9.611,1,"",$P(XPD,U,2))
Q
GLOBAL ; Global Package
Q:$$CHK(4)
W !!,"GLOBAL:",?47,"KILL GLOBAL BEFORE INSTALL:"
S XPDI=0
F S XPDI=$O(@XPDGR@("GLO",XPDI)) Q:'XPDI S XPD=$G(^(XPDI,0)) Q:$$CHK(2) D
. W !?3,$P(XPD,U),?50,$$EXTERNAL^DILFD(9.65,1,"",$P(XPD,U,2))
Q
MULT ; Multi-Package
Q:$$CHK(4)
W !!,"SEQUENCE OF BUILDS:"
S XPDI=0
F S XPDI=$O(@XPDGR@(10,XPDI)) Q:'XPDI S XPD=$G(^(XPDI,0)) Q:$$CHK(2) D
. W !?2,XPDI,?8,$E($P(XPD,U),1,44),?54,$S($P(XPD,U,2)=1:"",1:"Not ")_"Required to Continue"
Q
CHK(Y,XPD) ;Y=excess lines XPD=1 print file header, return 1 to exit
;return 0 if header was not written, else "0^1"
Q:$Y<(IOSL-Y) 0
Q:'$$CONT 1
S XPD=$G(XPD),XPDPG=XPDPG+1
W @IOF D HDR,HDR1:XPD
W !,XPDUL
Q "0^1"
;
CONT() ; Press Return to continue; ^ to exit.
Q:$D(DIRUT) 0
Q:$E(IOST,1,2)'="C-" 1
N DIR,I,J,K,X,Y
S DIR(0)="E" D ^DIR
Q Y
;
HDR ;
W "PACKAGE: ",$P(XPD0,U)," ",XPDDT,?70,$$RJ^XLFSTR("PAGE "_XPDPG,9)
Q
HDR1 ;
W !!,?43,"UP SEND DATA USER"
W !,?43,"DATE SEC. COMES SITE RSLV OVER"
W !,"FILE #",?12,"FILE NAME",?43,"DD CODE W/FILE DATA PTRS RIDE"
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXPDDP1 8119 printed Nov 22, 2024@17:13:31 Page 2
XPDDP1 ;SFISC/RSD - Continue Display a package ;06/24/2008
+1 ;;8.0;KERNEL;**525,713**;Jul 10, 1995;Build 15
+2 ;Per VHA Directive 2004-038, this routine should not be modified.
PNT(XPDGR) ; Print a package, XPDGR=global root
+1 ;XPDFL=0 - Build - ^XPD(9.7 global root
+2 ; 1 - Install - ^XTMP global root
+3 ; 2 - Packman - ^TMP($J, global root
+4 NEW I,J,K,X,XPD,XPDDT,XPDI,XPD0,XPDFL,XPDPG,XPDUL,XPDTYPE,XPDTRACK,XPDTXT
+5 if $GET(XPDGR)=""
QUIT
SET XPDGR="^"_XPDGR
+6 if '$DATA(@XPDGR@(0))
QUIT
SET XPD0=^(0)
+7 ; Package Identification
DO ID
+8 ; Description
DO DESCR
if $DATA(DIRUT)
QUIT
+9 ; Multi-Package
IF XPDTYPE=1
DO MULT
QUIT
+10 ; Environment check & Pre/Post Routines
DO PREPOST
if $DATA(DIRUT)
QUIT
+11 ; Global Package
IF XPDTYPE=2
DO GLOBAL
QUIT
+12 ; Files/DDs
DO FILES
if $DATA(DIRUT)
QUIT
+13 ; Build Components
DO COMP
if $DATA(DIRUT)
QUIT
+14 ; Packman message, called from XMP2 - Summarize
if XPDFL=2
QUIT
+15 ; Install Questions
DO QUESTS
if $DATA(DIRUT)
QUIT
+16 ; Alpha/Beta Testing
DO ALFABETA
if $DATA(DIRUT)
QUIT
+17 ; Include/Exclude Namespaces
DO NAMESP
if $DATA(DIRUT)
QUIT
+18 ; Required Builds
DO REQDBLD
if $DATA(DIRUT)
QUIT
+19 QUIT
ID ; Identify the package
+1 SET XPDPG=1
SET XPDFL=$SELECT($EXTRACT(XPDGR,1,5)="^TMP(":2,1:$EXTRACT(XPDGR,1,5)="^XTMP")
SET $PIECE(XPDUL,"-",IOM)=""
SET XPDDT=$$HTE^XLFDT($HOROLOG,"1PM")
SET XPDTYPE=+$PIECE(XPD0,U,3)
SET XPDTRACK=$PIECE(XPD0,U,5)
+2 if $EXTRACT(IOST,1,2)="C-"
WRITE @IOF
DO HDR
WRITE !,XPDUL
+3 WRITE !?12,"TYPE: ",$$EXTERNAL^DILFD(9.6,2,"",XPDTYPE)
+4 WRITE ?51,"TRACK NATIONALLY: ",$$EXTERNAL^DILFD(9.6,5,"",XPDTRACK)
+5 WRITE !,"NATIONAL PACKAGE: ",$PIECE($GET(^DIC(9.4,+$PIECE(XPD0,U,2),0),$PIECE(XPD0,U,2)),U)
+6 WRITE ?49,"ALPHA/BETA TESTING: ",$SELECT($PIECE($GET(@XPDGR@("ABPKG")),U)="y":"YES",1:"NO")
+7 WRITE !,"DATE DISTRIBUTED: ",$$FMTE^XLFDT($PIECE(XPD0,U,4))
+8 QUIT
DESCR ; Show patch description
+1 WRITE !!?5,"DESCRIPTION:"
+2 SET XPDI=0
+3 FOR
SET XPDI=$ORDER(@XPDGR@(1,XPDI))
if 'XPDI
QUIT
SET XPDTXT=$GET(^(XPDI,0))
Begin DoDot:1
+4 IF $LENGTH(XPDTXT)'<IOM
IF $EXTRACT(XPDTXT,$LENGTH(XPDTXT))=" "
FOR
SET XPDTXT=$EXTRACT(XPDTXT,1,$LENGTH(XPDTXT)-1)
if $EXTRACT(XPDTXT,$LENGTH(XPDTXT))'=" "
QUIT
+5 FOR
Begin DoDot:2
+6 if $$CHK(2)
QUIT
+7 WRITE !,$SELECT(IOM>1:$EXTRACT(XPDTXT,1,IOM-1),1:XPDTXT)
End DoDot:2
if $LENGTH(XPDTXT)<IOM!$DATA(DIRUT)!(IOM<2)
QUIT
SET XPDTXT=$EXTRACT(XPDTXT,IOM,999)
End DoDot:1
if $DATA(DIRUT)
QUIT
+8 QUIT
PREPOST ; Environment check and pre/post routines
+1 if $$CHK(3)
QUIT
+2 WRITE !!,"ENVIRONMENT CHECK: ",$GET(@XPDGR@("PRE"))
+3 WRITE ?49,"DELETE ENV ROUTINE: "
IF $GET(@XPDGR@("PRE"))]""
WRITE $SELECT($PIECE($GET(@XPDGR@("INID")),U)="y":"Yes",1:"No")
+4 IF 'XPDTYPE
Begin DoDot:1
+5 if $$CHK(2)
QUIT
+6 WRITE !," PRE-INIT ROUTINE: ",$GET(@XPDGR@("INI"))
+7 WRITE ?44,"DELETE PRE-INIT ROUTINE: "
IF $GET(@XPDGR@("INI"))]""
WRITE $SELECT($PIECE($GET(@XPDGR@("INID")),U,3)="y":"Yes",1:"No")
End DoDot:1
if $DATA(DIRUT)
QUIT
+8 if $$CHK(2)
QUIT
+9 WRITE !,"POST-INIT ROUTINE: ",$GET(@XPDGR@("INIT"))
+10 WRITE ?43,"DELETE POST-INIT ROUTINE: "
IF $GET(@XPDGR@("INIT"))]""
WRITE $SELECT($PIECE($GET(@XPDGR@("INID")),U,2)="y":"Yes",1:"No")
+11 IF 'XPDTYPE
if $$CHK(2)
QUIT
WRITE !,"PRE-TRANSPORT RTN: ",$GET(@XPDGR@("PRET"))
+12 ;p713
IF 'XPDTYPE
if $$CHK(2)
QUIT
WRITE !," RESTORE ROUTINE: ",$GET(@XPDGR@("REST"))
+13 QUIT
FILES ; Show files/DDs
+1 ; Quit if no files
if '$ORDER(@XPDGR@(4,0))
QUIT
+2 SET I=$$CHK(8,1)
if I
QUIT
IF '$PIECE(I,"^",2)
DO HDR1
WRITE !,XPDUL
+3 SET XPDI=0
+4 FOR
SET XPDI=$ORDER(@XPDGR@(4,XPDI))
if 'XPDI
QUIT
SET XPD=$GET(^(XPDI,222))
if $$CHK(3,1)
QUIT
Begin DoDot:1
+5 ;file number, file name, partial DD
+6 WRITE !!,XPDI,?12,$SELECT('XPDFL:$PIECE($GET(^DIC(XPDI,0),"**unknown**"),U),1:$GET(^XTMP("XPDI",XPDA,"FIA",XPDI)))
+7 ; update DD, send security code, data comes with file
+8 WRITE ?43,$$EXTERNAL^DILFD(9.64,222.1,"",$PIECE(XPD,U)),?49,$$EXTERNAL^DILFD(9.64,222.2,"",$PIECE(XPD,U,2)),?55,$$EXTERNAL^DILFD(9.64,222.7,"",$PIECE(XPD,U,7))
+9 ; override site data, resolve pointers, user override
+10 WRITE ?63,$EXTRACT($$EXTERNAL^DILFD(9.64,222.8,"",$PIECE(XPD,U,8)),1,4),?69,$$EXTERNAL^DILFD(9.64,222.5,"",$PIECE(XPD,U,5)),?75,$$EXTERNAL^DILFD(9.64,222.9,"",$PIECE(XPD,U,9))
+11 IF $PIECE(XPD,U,3)="p"
Begin DoDot:2
+12 ; Print partial DD information
+13 NEW XPDSUB,XPDFLD
+14 if $$CHK(2,1)
QUIT
+15 WRITE !,"Partial DD:"
+16 SET (J,XPDSUB)=0
+17 FOR
SET J=$ORDER(@XPDGR@(4,"APDD",XPDI,J))
if 'J
QUIT
Begin DoDot:3
+18 IF XPDSUB
if $$CHK(2,1)
QUIT
WRITE !
+19 WRITE ?12,"subDD: ",J
+20 SET XPDSUB=1
SET (I,XPDFLD)=0
+21 FOR
SET I=$ORDER(@XPDGR@(4,"APDD",XPDI,J,I))
if 'I
QUIT
Begin DoDot:4
+22 IF XPDFLD
if $$CHK(2,1)
QUIT
WRITE !
+23 WRITE ?30,"fld: ",I
SET XPDFLD=1
End DoDot:4
if $DATA(DIRUT)
QUIT
End DoDot:3
if $DATA(DIRUT)
QUIT
End DoDot:2
if $DATA(DIRUT)
QUIT
+24 IF " "'[$GET(@XPDGR@(4,XPDI,223))
if $$CHK(2,1)
QUIT
WRITE !,?2,"DD SCREEN : ",^(223)
+25 IF " "'[$GET(@XPDGR@(4,XPDI,224))
if $$CHK(2,1)
QUIT
WRITE !,?2,"DATA SCREEN: ",^(224)
End DoDot:1
+26 QUIT
COMP ; Print Build components
+1 SET I=0
SET XPD=$PIECE(^DD(9.68,.03,0),U,3)
+2 FOR
SET I=$ORDER(@XPDGR@("KRN",I))
if 'I
QUIT
Begin DoDot:1
+3 if '$DATA(@XPDGR@("KRN",I,"NM","B"))
QUIT
+4 if $$CHK(4)
QUIT
+5 WRITE !!,$SELECT($DATA(^DIC(I,0)):$PIECE(^(0),U),XPDFL:$GET(^XTMP("XPDI",XPDA,"FIA",I),"UNKNOWN"),1:"UNKNOWN")_":",?47,"ACTION:"
+6 SET J=""
+7 FOR
SET J=$ORDER(@XPDGR@("KRN",I,"NM","B",J))
if J=""
QUIT
SET X=$ORDER(^(J,0))
Begin DoDot:2
+8 if 'X
QUIT
+9 SET X=$GET(@XPDGR@("KRN",I,"NM",X,0))
if X=""
QUIT
+10 if $$CHK(2)
QUIT
+11 ;write the entry name and write the action
+12 WRITE !,?3,$PIECE(X,U),?50,$PIECE($PIECE(XPD,";",$PIECE(X,U,3)+1),":",2)
End DoDot:2
if $DATA(DIRUT)
QUIT
End DoDot:1
if $DATA(DIRUT)
QUIT
+13 QUIT
QUESTS ; Show Install Questions
+1 IF '$ORDER(@XPDGR@("QUES",0))
IF '($DATA(@XPDGR@("QDEF"))#2)
QUIT
+2 if $$CHK(6)
QUIT
+3 WRITE !!,"INSTALL QUESTIONS: "
+4 SET I=0
+5 FOR
SET I=$ORDER(@XPDGR@("QUES",I))
if 'I
QUIT
SET X=$PIECE(^(I,0),U)
SET J=$GET(^(1))
SET K=$GET(^("A"))
Begin DoDot:1
+6 if $$CHK(4)
QUIT
+7 WRITE !!?5,"SUBSCRIPT: ",X
+8 WRITE !,"DIR(0)=",J
+9 SET J=0
+10 FOR
SET J=$ORDER(@XPDGR@("QUES",I,"A1",J))
if 'J
QUIT
if $$CHK(2)
QUIT
WRITE !,"DIR(""A"",",J,")=",^(J,0)
+11 IF K]""
if $$CHK(2)
QUIT
WRITE !,"DIR(""A"")=",K
+12 IF $GET(@XPDGR@("QUES",I,"B"))]""
if $$CHK(2)
QUIT
WRITE !,"DIR(""B"")=",^("B")
+13 SET J=0
+14 FOR
SET J=$ORDER(@XPDGR@("QUES",I,"Q1",J))
if 'J
QUIT
if $$CHK(2)
QUIT
WRITE !,"DIR(""?"",",J,")=",^(J,0)
+15 IF $GET(@XPDGR@("QUES",I,"Q"))]""
if $$CHK(2)
QUIT
WRITE !,"DIR(""?"")=",^("Q")
+16 IF $GET(@XPDGR@("QUES",I,"QQ"))]""
if $$CHK(2)
QUIT
WRITE !,"DIR(""??"")=",^("QQ")
+17 IF $GET(@XPDGR@("QUES",I,"M"))]""
if $$CHK(2)
QUIT
WRITE !,"M CODE: ",^("M")
End DoDot:1
if $DATA(DIRUT)
QUIT
+18 if $DATA(DIRUT)
QUIT
+19 ;Show new Defaults for KIDS questions. p463
+20 SET X=$GET(@XPDGR@("QDEF"))
if X=""
QUIT
+21 IF '$LENGTH($PIECE(X,U,9))
IF '$LENGTH($PIECE(X,U,5))
IF '$LENGTH($PIECE(X,U,11))
QUIT
+22 if $$CHK(3)
QUIT
WRITE !
+23 IF $LENGTH($PIECE(X,U,9))
if $$CHK(2)
QUIT
WRITE !," Default Rebuild Menu Trees Upon Completion of Install: ",$PIECE(X,U,9)
+24 IF $LENGTH($PIECE(X,U,5))
if $$CHK(2)
QUIT
WRITE !," Default INHIBIT LOGONs during the install: ",$PIECE(X,U,5)
+25 IF $LENGTH($PIECE(X,U,11))
if $$CHK(2)
QUIT
WRITE !," Default DISABLE Scheduled Options, Menu Options, and Protocols: ",$PIECE(X,U,11)
+26 QUIT
ALFABETA ; Alpha/Beta Testing
+1 SET XPD=$GET(@XPDGR@("ABPKG"))
if XPD=""
QUIT
+2 if $PIECE(XPD,U)'="y"
QUIT
+3 if $$CHK(4)
QUIT
+4 WRITE !!,"ALPHA/BETA TESTING: ",$$EXTERNAL^DILFD(9.6,20,"",$PIECE(XPD,U)),?47,"INSTALLATION MESSAGE: ",$$EXTERNAL^DILFD(9.6,21,"",$PIECE(XPD,U,2))
+5 WRITE !,"ADDRESS: ",$PIECE(XPD,U,3)
+6 QUIT
NAMESP ; Namespaces
+1 if '$ORDER(@XPDGR@("ABNS",0))
QUIT
+2 if $$CHK(4)
QUIT
+3 WRITE !!,"INCLUDE NAMESPACE:",?47,"EXCLUDE NAMESPACE:"
+4 SET I=0
+5 FOR
SET I=$ORDER(@XPDGR@("ABNS",I))
if 'I
QUIT
if $$CHK(2)
QUIT
WRITE !?3,^(I,0)
Begin DoDot:1
+6 NEW XPDNMSP,XPDLF
+7 SET (J,XPDLF)=0
+8 FOR
SET J=$ORDER(@XPDGR@("ABNS",I,1,J))
if 'J
QUIT
SET XPDNMSP=^(J,0)
Begin DoDot:2
+9 IF XPDLF
if $$CHK(2)
QUIT
WRITE !
+10 WRITE ?50,XPDNMSP
+11 SET XPDLF=1
End DoDot:2
if $DATA(DIRUT)
QUIT
End DoDot:1
if $DATA(DIRUT)
QUIT
+12 QUIT
REQDBLD ; Required Builds
+1 if '$ORDER(@XPDGR@("REQB",0))
QUIT
+2 if $$CHK(4)
QUIT
+3 WRITE !!,"REQUIRED BUILDS:",?47,"ACTION:"
+4 SET XPDI=0
+5 FOR
SET XPDI=$ORDER(@XPDGR@("REQB",XPDI))
if 'XPDI
QUIT
SET XPD=$GET(^(XPDI,0))
if $$CHK(2)
QUIT
Begin DoDot:1
+6 WRITE !?3,$PIECE(XPD,U),?50,$$EXTERNAL^DILFD(9.611,1,"",$PIECE(XPD,U,2))
End DoDot:1
+7 QUIT
GLOBAL ; Global Package
+1 if $$CHK(4)
QUIT
+2 WRITE !!,"GLOBAL:",?47,"KILL GLOBAL BEFORE INSTALL:"
+3 SET XPDI=0
+4 FOR
SET XPDI=$ORDER(@XPDGR@("GLO",XPDI))
if 'XPDI
QUIT
SET XPD=$GET(^(XPDI,0))
if $$CHK(2)
QUIT
Begin DoDot:1
+5 WRITE !?3,$PIECE(XPD,U),?50,$$EXTERNAL^DILFD(9.65,1,"",$PIECE(XPD,U,2))
End DoDot:1
+6 QUIT
MULT ; Multi-Package
+1 if $$CHK(4)
QUIT
+2 WRITE !!,"SEQUENCE OF BUILDS:"
+3 SET XPDI=0
+4 FOR
SET XPDI=$ORDER(@XPDGR@(10,XPDI))
if 'XPDI
QUIT
SET XPD=$GET(^(XPDI,0))
if $$CHK(2)
QUIT
Begin DoDot:1
+5 WRITE !?2,XPDI,?8,$EXTRACT($PIECE(XPD,U),1,44),?54,$SELECT($PIECE(XPD,U,2)=1:"",1:"Not ")_"Required to Continue"
End DoDot:1
+6 QUIT
CHK(Y,XPD) ;Y=excess lines XPD=1 print file header, return 1 to exit
+1 ;return 0 if header was not written, else "0^1"
+2 if $Y<(IOSL-Y)
QUIT 0
+3 if '$$CONT
QUIT 1
+4 SET XPD=$GET(XPD)
SET XPDPG=XPDPG+1
+5 WRITE @IOF
DO HDR
if XPD
DO HDR1
+6 WRITE !,XPDUL
+7 QUIT "0^1"
+8 ;
CONT() ; Press Return to continue; ^ to exit.
+1 if $DATA(DIRUT)
QUIT 0
+2 if $EXTRACT(IOST,1,2)'="C-"
QUIT 1
+3 NEW DIR,I,J,K,X,Y
+4 SET DIR(0)="E"
DO ^DIR
+5 QUIT Y
+6 ;
HDR ;
+1 WRITE "PACKAGE: ",$PIECE(XPD0,U)," ",XPDDT,?70,$$RJ^XLFSTR("PAGE "_XPDPG,9)
+2 QUIT
HDR1 ;
+1 WRITE !!,?43,"UP SEND DATA USER"
+2 WRITE !,?43,"DATE SEC. COMES SITE RSLV OVER"
+3 WRITE !,"FILE #",?12,"FILE NAME",?43,"DD CODE W/FILE DATA PTRS RIDE"
+4 QUIT