1 | XPDIJ1 ;SFISC/RSD - Cont. of Install Job ;05/11/2001 09:07
|
---|
2 | ;;8.0;KERNEL;**41,68,108,200**;Jul 10, 1995
|
---|
3 | IN ;install XPDA
|
---|
4 | ;XPDA=ien of file 9.7, XPDNM=package name
|
---|
5 | Q:'$D(^XTMP("XPDI",XPDA))!'$D(^XPD(9.7,XPDA,0))
|
---|
6 | ;check if already installed
|
---|
7 | I $P($G(^XPD(9.7,XPDA,1)),U,3) D BMES^XPDUTL(" "_XPDNM_" Already Installed ") Q
|
---|
8 | N DIFROM,XPD,XPD0,XPDBLD,XPDCHECK,XPDCP,XPDI,XPDGREF,XPDIST,XPDIDTOT,XPDIDCNT,XPDIDMOD,XPDRTN
|
---|
9 | ;XPDBLD subscript for build entry i.e. ^XTMP("XPDI",XPDA,"BLD",XPDBLD
|
---|
10 | S DIFROM=$$VER^XPDUTL(XPDNM),XPDBLD=$O(^XTMP("XPDI",XPDA,"BLD",0)),XPDGREF="^XTMP(""XPDI"","_XPDA_",""TEMP"")"
|
---|
11 | D TITLE^XPDID(XPDNM)
|
---|
12 | ;the $T is there only for installing patch 41 to prevent a noline error
|
---|
13 | ;check that Package file has entry
|
---|
14 | I $T(PKGADD^XPDIP)]"" S Y=$$PKGADD^XPDIP
|
---|
15 | S XPD0=^XTMP("XPDI",XPDA,"BLD",XPDBLD,0)
|
---|
16 | I '$$CHK(11) D
|
---|
17 | .D BMES^XPDUTL(" Install Started for "_XPDNM_" : "),STMP(11)
|
---|
18 | .;update status, installed by fields and distribution date
|
---|
19 | .S XPD(9.7,XPDA_",",.02)=2,XPD(9.7,XPDA_",",9)=DUZ,XPD(9.7,XPDA_",",51)=$P(XPD0,U,4)
|
---|
20 | .D FILE^DIE("","XPD")
|
---|
21 | E D BMES^XPDUTL(" Install Restarted for "_XPDNM_" at "_$$HTE^XLFDT($H))
|
---|
22 | D BMES^XPDUTL("Build Distribution Date: "_$$FMTE^XLFDT($P(XPD0,U,4)))
|
---|
23 | D RTN Q:$D(XPDABORT)
|
---|
24 | D PRE Q:$D(XPDABORT)
|
---|
25 | D FMDATA Q:$D(XPDABORT)
|
---|
26 | D COMP Q:$D(XPDABORT)
|
---|
27 | D POST:$G(XPDT("MASTER"))'=XPDA
|
---|
28 | Q ;Finshed
|
---|
29 | ;
|
---|
30 | RTN I '$$CHK(12) D
|
---|
31 | .D BMES^XPDUTL(" Installing Routines:"),SETTOT^XPDID(9.8),RTN^XPDIJ(XPDA),STMP(12)
|
---|
32 | E D BMES^XPDUTL(" Routines already installed.")
|
---|
33 | Q
|
---|
34 | ;
|
---|
35 | PRE S XPDCP="INI"
|
---|
36 | ;check if pre-install has completed
|
---|
37 | I '$$VERCP^XPDUTL("XPD PREINSTALL COMPLETED") D Q:$D(XPDABORT)
|
---|
38 | .;setup XPDQUES array with pre-install questions/answers
|
---|
39 | .D QUES^XPDIQ("PRE")
|
---|
40 | .;XPDCHECK=ien of current checkpoint, (0)=name of checkpoint
|
---|
41 | .;XPDCP="INI"-pre install or "INIT"-post install
|
---|
42 | .;loop thru check points starting with INSTALL STARTED
|
---|
43 | .S XPDCHECK=1
|
---|
44 | .F S XPDCHECK=$O(^XPD(9.7,XPDA,"INI",XPDCHECK)) Q:'XPDCHECK S XPD=^(XPDCHECK,0) D Q:$D(XPDABORT)
|
---|
45 | ..;if there is no call back, quit
|
---|
46 | ..Q:$G(^XPD(9.7,XPDA,"INI",XPDCHECK,1))="" S XPDRTN=^(1)
|
---|
47 | ..;check if checkpoint has been completed
|
---|
48 | ..Q:$P(XPD,U,2)
|
---|
49 | ..I XPDCHECK=2 D BMES^XPDUTL(" Running Pre-Install Routine: "_XPDRTN)
|
---|
50 | ..;zero the progress bar
|
---|
51 | ..I $D(XPDIDVT) S XPDIDTOT=0 D UPDATE^XPDID(0)
|
---|
52 | ..D @XPDRTN
|
---|
53 | ..;write message and abort if developer wants
|
---|
54 | ..I $D(XPDABORT) D BMES^XPDUTL("Install ** ABORTED ** in Pre-Install program") Q
|
---|
55 | ..S %=$$COMCP^XPDUTL(XPDCHECK)
|
---|
56 | .Q:$D(XPDABORT)
|
---|
57 | .;complete pre-init check point
|
---|
58 | .S %=$$COMCP^XPDUTL("XPD PREINSTALL COMPLETED")
|
---|
59 | E D BMES^XPDUTL(" Pre-Install already finished.")
|
---|
60 | Q
|
---|
61 | ;
|
---|
62 | FMDATA ;build XPDQUES arrays for all of the FM Files
|
---|
63 | D QUES^XPDIQ("XPF")
|
---|
64 | ;check the last file and see if it's already installed
|
---|
65 | S XPD=$G(^(+$O(^XPD(9.7,XPDA,4,"A"),-1),0))
|
---|
66 | I '$P(XPD,U,2) D:$D(^XTMP("XPDI",XPDA,"FIA"))
|
---|
67 | .D BMES^XPDUTL(" Installing Data Dictionaries: "),SETTOT^XPDID(4),FIA^XPDIK,MES^XPDUTL(" "_$$HTE^XLFDT($H))
|
---|
68 | E D BMES^XPDUTL(" Data Dictionaries already installed.")
|
---|
69 | S %=+$O(^XTMP("XPDI",XPDA,"DATA",""),-1),XPD=$G(^XPD(9.7,XPDA,4,%,0))
|
---|
70 | I '$P(XPD,U,3) D:%
|
---|
71 | .D BMES^XPDUTL(" Installing Data: "),DAT^XPDIK,MES^XPDUTL(" "_$$HTE^XLFDT($H))
|
---|
72 | E D BMES^XPDUTL(" Data already installed.")
|
---|
73 | Q
|
---|
74 | ;
|
---|
75 | COMP S (%,XPD)=""
|
---|
76 | F S %=+$O(^XPD(9.7,XPDA,"KRN",%)) Q:'% S XPD=$G(^(%,0)) Q:'$P(XPD,U,2)
|
---|
77 | I '$P(XPD,U,2) D:$D(^XTMP("XPDI",XPDA,"KRN"))
|
---|
78 | .D BMES^XPDUTL(" Installing PACKAGE COMPONENTS: "),KRN^XPDIK,MES^XPDUTL(" "_$$HTE^XLFDT($H))
|
---|
79 | E D BMES^XPDUTL(" PACKAGE COMPONENTS already installed.")
|
---|
80 | Q
|
---|
81 | ;
|
---|
82 | POST S XPDCP="INIT"
|
---|
83 | ;check if post-install has completed
|
---|
84 | I '$$VERCP^XPDUTL("XPD POSTINSTALL COMPLETED") D Q:$D(XPDABORT)
|
---|
85 | .;setup XPDQUES array with post-install questions/answers
|
---|
86 | .D QUES^XPDIQ("POS")
|
---|
87 | .;loop thru check points starting with INSTALL STARTED
|
---|
88 | .S XPDCHECK=1
|
---|
89 | .F S XPDCHECK=$O(^XPD(9.7,XPDA,"INIT",XPDCHECK)) Q:'XPDCHECK S XPD=^(XPDCHECK,0) D Q:$D(XPDABORT)
|
---|
90 | ..;if there is no call back, quit
|
---|
91 | ..Q:$G(^XPD(9.7,XPDA,"INIT",XPDCHECK,1))="" S XPDRTN=^(1)
|
---|
92 | ..;quit if checkpoint has completed time
|
---|
93 | ..Q:$P(XPD,U,2)
|
---|
94 | ..I XPDCHECK=2 D BMES^XPDUTL(" Running Post-Install Routine: "_XPDRTN)
|
---|
95 | ..;zero the progress bar
|
---|
96 | ..I $D(XPDIDVT) S XPDIDTOT=0 D UPDATE^XPDID(0)
|
---|
97 | ..D @XPDRTN
|
---|
98 | ..;write message and abort if developer wants
|
---|
99 | ..I $D(XPDABORT) D BMES^XPDUTL("Install ** ABORTED ** in Post-Install program") Q
|
---|
100 | ..S %=$$COMCP^XPDUTL(XPDCHECK)
|
---|
101 | .Q:$D(XPDABORT)
|
---|
102 | .;complete post-init check point
|
---|
103 | .S %=$$COMCP^XPDUTL("XPD POSTINSTALL COMPLETED")
|
---|
104 | E D BMES^XPDUTL(" Post-Install already finished.")
|
---|
105 | ;move routines to install file & Routine file
|
---|
106 | D BMES^XPDUTL(" Updating Routine file..."),SETTOT^XPDID(9.8),RTN^XPDIP
|
---|
107 | ;XPDIST is flag for site tracking^A/B install message, it is set in PKG^XPDIP
|
---|
108 | ;install Package file, OERR parameter multiple, and Build file
|
---|
109 | S XPDIST="" D BMES^XPDUTL(" Updating KIDS files..."),PKG^XPDIP
|
---|
110 | D BMES^XPDUTL(" "_XPDNM_" Installed. "),STMP(17)
|
---|
111 | ;sends install messages local/forum
|
---|
112 | S %=$$EN^XPDIST(XPDA,XPDIST) D BMES^XPDUTL(" "_$P("NO ",U,'$P(%,"#",2))_"Install Message sent "_%)
|
---|
113 | Q
|
---|
114 | CHK(X) ;check checkpoints in file 9.7, X=field #, returns 1=completed, 0=not completed
|
---|
115 | Q $$GET1^DIQ(9.7,XPDA_",",X,"I")]""
|
---|
116 | ;
|
---|
117 | STMP(X) ;timestamp checkpoints in file 9.7, X=field #
|
---|
118 | N XPD,%
|
---|
119 | S %=$$NOW^XLFDT,XPD(9.7,XPDA_",",X)=%
|
---|
120 | D MES^XPDUTL(" "_$$FMTE^XLFDT(%)),FILE^DIE("","XPD")
|
---|
121 | Q
|
---|
122 | ;
|
---|
123 | INHIBIT(SET) ;Set/Clear the Inhibit logon field.
|
---|
124 | N VOL,IEN
|
---|
125 | F IEN=0:0 S IEN=$O(^%ZIS(14.5,IEN)) Q:IEN'>0 D
|
---|
126 | . I $P(^%ZIS(14.5,IEN,0),U,11)=1 S VOL(14.5,IEN_",",1)=SET
|
---|
127 | . Q
|
---|
128 | D FILE^DIE("","VOL")
|
---|
129 | Q
|
---|