1 | XOBVPOST ;; ld,mjk/alb - VistaLink Post-Init ; 07/27/2002 13:00
|
---|
2 | ;;1.5;VistALink;;Sep 09, 2005
|
---|
3 | ;;Foundations Toolbox Release v1.5 [Build: 1.5.0.026]
|
---|
4 | ;
|
---|
5 | QUIT
|
---|
6 | ;
|
---|
7 | EN ; -- add post-init code here
|
---|
8 | NEW XOBCFG,XOBOS
|
---|
9 | SET XOBOS=$$GETOS^XOBVTCP()
|
---|
10 | SET XOBCFG=0
|
---|
11 | ;
|
---|
12 | ; -- add config if Cache NT
|
---|
13 | IF XOBOS="OpenM-NT" SET XOBCFG=$$CFG()
|
---|
14 | ;
|
---|
15 | ; -- add params entry
|
---|
16 | DO PARMS(XOBCFG)
|
---|
17 | ;
|
---|
18 | ; -- add STARTUP task if OpenM-NT and on Windows
|
---|
19 | IF XOBOS="OpenM-NT",$$SYSOS^XOBVLIB(XOBOS)="NT" DO SCHEDOPT
|
---|
20 | ;
|
---|
21 | ; -- add XOBVTESTER,APPLICATION PROXY user if not present
|
---|
22 | DO ADDPROXY("XOBVTESTER,APPLICATION PROXY")
|
---|
23 | ;
|
---|
24 | QUIT
|
---|
25 | ;
|
---|
26 | ;
|
---|
27 | CFG() ; -- add default config if not pressent
|
---|
28 | NEW DIC,X,Y,XOBDA,XOBNEW
|
---|
29 | ;
|
---|
30 | ; -- DEFAULT configuration --
|
---|
31 | SET DIC="^XOB(18.03,"
|
---|
32 | SET DIC(0)="LX"
|
---|
33 | SET X="DEFAULT"
|
---|
34 | DO ^DIC
|
---|
35 | ; -- quit if lookup failed
|
---|
36 | IF Y=-1 GOTO CFGQ
|
---|
37 | ;
|
---|
38 | SET XOBDA=+Y
|
---|
39 | SET XOBNEW=$PIECE(Y,U,3)
|
---|
40 | ;
|
---|
41 | ; -- add default port to multiple
|
---|
42 | IF XOBNEW,'$$PORTS(XOBDA) GOTO CFGQ
|
---|
43 | ;
|
---|
44 | CFGQ ;
|
---|
45 | QUIT +$GET(XOBDA)
|
---|
46 | ;
|
---|
47 | ;
|
---|
48 | PORTS(XOBDA) ; -- add 8000 port
|
---|
49 | NEW XOBOK,XOBNEW,DIC,DIE,DR,X,DA,Y
|
---|
50 | ;
|
---|
51 | ; -- set oth of multiple is needed
|
---|
52 | IF $DATA(^XOB(18.03,1,"PORTS",0))=0 SET ^XOB(18.03,1,"PORTS",0)="^18.031^^"
|
---|
53 | ;
|
---|
54 | SET DA(1)=XOBDA
|
---|
55 | SET DIC="^XOB(18.03,"_XOBDA_",""PORTS"","
|
---|
56 | SET DIC(0)="LX"
|
---|
57 | SET X=8000
|
---|
58 | DO ^DIC
|
---|
59 | ;
|
---|
60 | ; -- quit if lookup failed
|
---|
61 | IF Y=-1 SET XOBOK=0 GOTO PORTSQ
|
---|
62 | SET XOBNEW=$PIECE(Y,U,3)
|
---|
63 | ;
|
---|
64 | ; -- if multiple entry is new, set port to NOT startup when config is started
|
---|
65 | ; (site should change to startup explicitly)
|
---|
66 | IF XOBNEW DO
|
---|
67 | . SET DA(1)=XOBDA
|
---|
68 | . SET DA=+Y
|
---|
69 | . SET DR=".02////0"
|
---|
70 | . SET DIE="^XOB(18.03,"_XOBDA_",""PORTS"","
|
---|
71 | . DO ^DIE
|
---|
72 | ;
|
---|
73 | SET XOBOK=1
|
---|
74 | PORTSQ ;
|
---|
75 | QUIT XOBOK
|
---|
76 | ;
|
---|
77 | ;
|
---|
78 | PARMS(XOBCFG) ; -- add parameter entry
|
---|
79 | NEW DIC,X,Y,DIE,DA,DR,XOBBOX,XOBDA,XOBMULI,XOBNEW
|
---|
80 | ;
|
---|
81 | ; -- box-pair name, no ien
|
---|
82 | SET XOBBOX=$PIECE($$GETENV^XOBVTCP(),U,4)
|
---|
83 | ;
|
---|
84 | ; -- Top-Level Parameters --
|
---|
85 | SET DIC="^XOB(18.01,",DIC(0)="LXZ",X=$$DOMAIN() DO ^DIC
|
---|
86 | ;
|
---|
87 | ; -- quit if lookup failed or if already exists
|
---|
88 | IF Y=-1 GOTO PARMSQ
|
---|
89 | ;
|
---|
90 | SET XOBDA=+Y
|
---|
91 | SET XOBNEW=0
|
---|
92 | IF $PIECE(Y(0),U,2)="",$PIECE(Y(0),U,3)="" SET XOBNEW=1
|
---|
93 | ;
|
---|
94 | ; -- set basic parameters (HEARTBEAT RATE and LATENCY DELTA)
|
---|
95 | IF XOBNEW DO
|
---|
96 | . SET DA=XOBDA
|
---|
97 | . SET DR=".02////180;.03////180"
|
---|
98 | . SET DIE="^XOB(18.01,"
|
---|
99 | . DO ^DIE
|
---|
100 | ;
|
---|
101 | ; -- Listeners Multiple --
|
---|
102 | ;
|
---|
103 | ; -- quit if no config passed in (ie. not Cache NT)
|
---|
104 | IF '$GET(XOBCFG) GOTO PARMSQ
|
---|
105 | ;
|
---|
106 | ; -- set oth of multiple is needed
|
---|
107 | IF $DATA(^XOB(18.01,1,"CONFIG",0))=0 SET ^XOB(18.01,1,"CONFIG",0)="^18.012P^^"
|
---|
108 | ;
|
---|
109 | SET DA(1)=XOBDA
|
---|
110 | SET DIC="^XOB(18.01,"_XOBDA_",""CONFIG"","
|
---|
111 | SET DIC(0)="LX"
|
---|
112 | SET X=XOBBOX
|
---|
113 | DO ^DIC
|
---|
114 | ;
|
---|
115 | ; -- quit if lookup failed or if already exists
|
---|
116 | IF Y=-1 GOTO PARMSQ
|
---|
117 | ;
|
---|
118 | SET XOBMULI=+Y
|
---|
119 | SET XOBNEW=$PIECE(Y,U,3)
|
---|
120 | ;
|
---|
121 | ; -- set listener config default
|
---|
122 | IF XOBNEW DO
|
---|
123 | . SET DA(1)=XOBDA
|
---|
124 | . SET DA=XOBMULI
|
---|
125 | . SET DR=".02////"_XOBCFG
|
---|
126 | . SET DIE="^XOB(18.01,"_XOBDA_",""CONFIG"","
|
---|
127 | . DO ^DIE
|
---|
128 | ;
|
---|
129 | PARMSQ ;
|
---|
130 | QUIT
|
---|
131 | ;
|
---|
132 | ;
|
---|
133 | DOMAIN() ; -- get account's domain entry
|
---|
134 | ;
|
---|
135 | QUIT $$KSP^XUPARAM("WHERE")
|
---|
136 | ;
|
---|
137 | ;
|
---|
138 | SCHEDOPT ;-- Schedule XOBV LISTENER STARTUP option in TaskMan
|
---|
139 | ;
|
---|
140 | ; This procedure will schedule the XOBV LISTENER STARTUP option
|
---|
141 | ; in the OPTION SCHEDULING file (#19.2).
|
---|
142 | ;
|
---|
143 | NEW XOBMSG,XOBOIEN,XOBSIEN
|
---|
144 | ;
|
---|
145 | ;-- XOBOIEN = IEN (OPTION file), XOBSIEN = IEN (OPTION SCHEDULING file)
|
---|
146 | SET (XOBOIEN,XOBSIEN)=0
|
---|
147 | ;
|
---|
148 | DO BMES^XPDUTL(">>> Scheduling the XOBV LISTENER STARTUP option...")
|
---|
149 | ;
|
---|
150 | ;-- Check that option was added to OPTION file #19 during installation
|
---|
151 | SET XOBOIEN=$$FIND1^DIC(19,"","BX","XOBV LISTENER STARTUP","","","")
|
---|
152 | ;
|
---|
153 | ;-- Error XOBMSG and quit if option was not added
|
---|
154 | IF 'XOBOIEN DO QUIT
|
---|
155 | . SET XOBMSG(1)=""
|
---|
156 | . SET XOBMSG(2)=">>> Error: Option XOBV LISTENER STARTUP was not created in the OPTION (#19)"
|
---|
157 | . SET XOBMSG(3)=" file during the KIDS installation. Please reinstall."
|
---|
158 | . DO BMES^XPDUTL(.XOBMSG)
|
---|
159 | ;
|
---|
160 | ;-- Check if option was already scheduled
|
---|
161 | SET XOBSIEN=$$CHKOPT(XOBOIEN)
|
---|
162 | ;
|
---|
163 | ;-- Display option and quit if option was previously added
|
---|
164 | IF XOBSIEN DO QUIT
|
---|
165 | . DO BMES^XPDUTL(">>> The XOBV LISTENER STARTUP option has previously been scheduled:")
|
---|
166 | . DO DSPLYOP(XOBSIEN)
|
---|
167 | ;
|
---|
168 | ;-- Schedule the option
|
---|
169 | SET XOBSIEN=$$FILEOPT(XOBSIEN,XOBOIEN,,,,"S")
|
---|
170 | IF XOBSIEN DO
|
---|
171 | . DO BMES^XPDUTL(">>> The XOBV LISTENER STARTUP option has been scheduled as follows:")
|
---|
172 | . DO DSPLYOP(XOBSIEN)
|
---|
173 | ELSE DO
|
---|
174 | . SET XOBMSG(1)=">>> Error: There was an error scheduling the XOBV LISTENER STARTUP option."
|
---|
175 | . SET XOBMSG(2)=" Please schedule this option using 'Schedule/Unschedule Options'"
|
---|
176 | . SET XOBMSG(3)=" in the Taskman Management menu."
|
---|
177 | . DO BMES^XPDUTL(.XOBMSG)
|
---|
178 | QUIT
|
---|
179 | ;
|
---|
180 | ;
|
---|
181 | CHKOPT(IEN) ;-- Check if option is already scheduled
|
---|
182 | ;
|
---|
183 | ; Input:
|
---|
184 | ; IEN - IEN of option in OPTION file (#19)
|
---|
185 | ;
|
---|
186 | ; Output:
|
---|
187 | ; XOBSIEN - IEN of option in OPTION SCHEDULING file (#19.2) or zero if it does not exist
|
---|
188 | ;
|
---|
189 | NEW X,X1,X2,XOBARY,XOBI,XOBIEN2
|
---|
190 | SET (X1,X2,XOBI,XOBIEN2)=0
|
---|
191 | DO FIND^DIC(19.2,"","@;.01I;9I","","XOBV LISTENER STARTUP","*","B","","","XOBARY")
|
---|
192 | SET X=+$PIECE($GET(XOBARY("DILIST",0)),"^")
|
---|
193 | FOR SET XOBI=$ORDER(XOBARY("DILIST","ID",X,XOBI)) QUIT:'XOBI DO
|
---|
194 | . IF XOBI=.01,$GET(XOBARY("DILIST","ID",X,XOBI))=IEN SET X1=1
|
---|
195 | . IF XOBI=9,$GET(XOBARY("DILIST","ID",X,XOBI))["S" SET X2=1
|
---|
196 | . IF X1,X2 SET XOBIEN2=+$GET(XOBARY("DILIST",2,X))
|
---|
197 | QUIT XOBIEN2
|
---|
198 | ;
|
---|
199 | ;
|
---|
200 | DSPLYOP(IEN) ;-- Display fields from OPTION SCHEDULING file (#19.2)
|
---|
201 | ;
|
---|
202 | ; Input:
|
---|
203 | ; IEN - IEN of record in file #19.2
|
---|
204 | ;
|
---|
205 | ; Output:
|
---|
206 | ; Display of fields in record
|
---|
207 | ;
|
---|
208 | QUIT:'$GET(IEN)
|
---|
209 | NEW DA,DIC,DIQ
|
---|
210 | SET DIC="^DIC(19.2,",DA=IEN,DIQ(0)="CAR"
|
---|
211 | DO MES^XPDUTL("")
|
---|
212 | DO EN^DIQ
|
---|
213 | DO BMES^XPDUTL("")
|
---|
214 | QUIT
|
---|
215 | ;
|
---|
216 | ;
|
---|
217 | FILEOPT(XOBIEN,XOBOPT,XOBQUE,XOBDEV,XOBRSCH,XOBSPARM) ;-- Schedule the option
|
---|
218 | ;
|
---|
219 | ;-- File a new record in file #19.2 or edit existing
|
---|
220 | ;
|
---|
221 | ; Input:
|
---|
222 | ; XOBIEN - IEN from record in file #19.2 if it exists
|
---|
223 | ; XOBOPT - IEN of option (file #19); (required)
|
---|
224 | ; XOBQUE - Queued to run at what time; (optional)
|
---|
225 | ; XOBDEV - Device for queued job output; (optional)
|
---|
226 | ; XOBRSCH - Rescheduling frequency; (optional)
|
---|
227 | ; XOBSPARM - Special queueing; (optional)
|
---|
228 | ;
|
---|
229 | ; Output:
|
---|
230 | ; Function Value - Returns IEN of record on success, 0 on failure
|
---|
231 | ;
|
---|
232 | NEW XOBFDA,XOBFDAI,XOBERR,XOBIENS
|
---|
233 | ;
|
---|
234 | SET XOBIEN=+$GET(XOBIEN)
|
---|
235 | ;
|
---|
236 | ;-- If record doesn't already exist, create new
|
---|
237 | IF XOBIEN SET XOBIENS=XOBIEN_","
|
---|
238 | ELSE SET XOBIENS="+1,"
|
---|
239 | ;
|
---|
240 | ;-- Set up array with field values
|
---|
241 | SET XOBFDA(19.2,XOBIENS,.01)=$GET(XOBOPT)
|
---|
242 | SET XOBFDA(19.2,XOBIENS,2)=$GET(XOBQUE)
|
---|
243 | SET XOBFDA(19.2,XOBIENS,3)=$GET(XOBDEV)
|
---|
244 | SET XOBFDA(19.2,XOBIENS,6)=$GET(XOBRSCH)
|
---|
245 | SET XOBFDA(19.2,XOBIENS,9)=$GET(XOBSPARM)
|
---|
246 | ;
|
---|
247 | IF XOBIEN DO
|
---|
248 | . DO FILE^DIE("","XOBFDA","XOBERR")
|
---|
249 | . IF $DATA(XOBERR) SET XOBIEN=0
|
---|
250 | ELSE DO
|
---|
251 | . DO UPDATE^DIE("","XOBFDA","XOBFDAI","XOBERR")
|
---|
252 | . IF '$DATA(XOBERR) SET XOBIEN=$GET(XOBFDAI(1))
|
---|
253 | ;
|
---|
254 | QUIT $SELECT($GET(XOBIEN)>0:XOBIEN,1:0)
|
---|
255 | ;
|
---|
256 | ADDPROXY(XOBANAME) ; add application proxy if not present
|
---|
257 | ; depends on XU*8*361
|
---|
258 | NEW XOBID,XOBMSG,XOBSUBER,XOBSUBTX,XOBLINE
|
---|
259 | ;
|
---|
260 | ; if already present don't add
|
---|
261 | QUIT:(+$$APFIND^XUSAP(XOBANAME))>0
|
---|
262 | ;
|
---|
263 | SET XOBID=$$CREATE^XUSAP(XOBANAME,"","XOBV VISTALINK TESTER")
|
---|
264 | IF (+XOBID)>0 DO
|
---|
265 | . SET XOBMSG(1)=" Added new Kernel Application Proxy User '"_XOBANAME_"'."
|
---|
266 | . SET XOBMSG(2)=" ::This application proxy user account is used in the VistALink sample web"
|
---|
267 | . SET XOBMSG(3)=" ::application, to demonstrate usage of the VistaLinkAppProxyConnectionSpec"
|
---|
268 | . SET XOBMSG(4)=" ::connection spec."
|
---|
269 | . DO BMES^XPDUTL(.XOBMSG)
|
---|
270 | IF (+XOBID)=0 DO
|
---|
271 | . ; already checked if user present, should never get 0 back
|
---|
272 | . SET XOBMSG(1)=">>> Error: Could not add VistALink Application Proxy User '"_XOBANAME_"' -- Already exists."
|
---|
273 | . DO BMES^XPDUTL(.XOBMSG)
|
---|
274 | IF (+XOBID)<0 DO
|
---|
275 | . SET XOBMSG(1)=">>> Error: Could not add VistALink Application Proxy User '"_XOBANAME_"'."
|
---|
276 | . SET XOBMSG(2)=" DIERR nodes: <start of error(s)>"
|
---|
277 | . SET XOBLINE=3,XOBSUBER=0 FOR SET XOBSUBER=$O(^TMP("DIERR",$J,XOBSUBER)) QUIT:(+XOBSUBER)'>0 DO
|
---|
278 | . . SET XOBMSG(XOBLINE)=" "_^TMP("DIERR",$J,XOBSUBER),XOBLINE=XOBLINE+1
|
---|
279 | . . SET XOBSUBTX=0 FOR SET XOBSUBTX=$O(^TMP("DIERR",$J,XOBSUBER,"TEXT",XOBSUBTX)) QUIT:(+XOBSUBTX)'>0 DO
|
---|
280 | . . . SET XOBMSG(XOBLINE)=" "_^TMP("DIERR",$J,XOBSUBER,"TEXT",XOBSUBTX),XOBLINE=XOBLINE+1
|
---|
281 | . SET XOBMSG(XOBLINE+1)=" <end of error(s)>"
|
---|
282 | . DO BMES^XPDUTL(.XOBMSG)
|
---|
283 | . K ^TMP("DIERR",$J)
|
---|
284 | ;
|
---|
285 | QUIT
|
---|