1 | XQSRV1 ;SEA/MJM - Server option utilities ;10/15/96 13:14
|
---|
2 | ;;8.0;KERNEL;**50**;Jul 10, 1995
|
---|
3 | ;
|
---|
4 | ;File the message in POSTMASTER'S mailbox of option's name
|
---|
5 | S XQSRV=$P(XQ220,U,7) S:XQSRV="" XQSRV=1
|
---|
6 | I XQSRV S XMXX="S."_XQSOP,XMZ=XQMSG D SETSB^XMA1C
|
---|
7 | ;
|
---|
8 | ;Check for a resource
|
---|
9 | S XQRES=$P(XQ220,U,8) I XQRES'="",($D(^%ZIS(1,XQRES,0))) S XQRES=$P(^(0),U)
|
---|
10 | E S XQRES=""
|
---|
11 | ;
|
---|
12 | I $D(XMFROM),XMFROM=+XMFROM,$D(^VA(200,+XMFROM,0)) S XMFROM=$P(^(0),U)
|
---|
13 | I XQSUB["~U~" F XQI=0:0 Q:XQSUB'["~U~" S XQSUB=$P(XQSUB,"~U~")_"^"_$P(XQSUB,"~U~",2,99)
|
---|
14 | ;
|
---|
15 | TASK ;Set up task parameters and call Taskman
|
---|
16 | S XQRTN="" S:$D(^DIC(19,+XQY,25)) XQRTN=^(25) S:XQRTN'["^" XQRTN="^"_XQRTN
|
---|
17 | ;I XQMD="R"&'($D(^DIC(19,XQY,3.91,0))&($P(^(0),U,4)>0)) S X=$P(XQY0,U,8) X:$L(X) ^%ZOSF("PRIORITY") G ZTSK^XQSRV2 ;Just go do it!
|
---|
18 | I XQMD="R"&'($P($G(^DIC(19,XQY,3.91,0)),U,4)>0) S X=$P(XQY0,U,8) X:$L(X) ^%ZOSF("PRIORITY") G ZTSK^XQSRV2
|
---|
19 | I XQMD="R" S XQMD="Q" ;Must be queued if days/times are restricted
|
---|
20 | ;
|
---|
21 | S ZTPRI=$P(XQY0,U,8),ZTRTN="ZTSK^XQSRV2",ZTDESC="Server Request: "_$P(XQY0,U,2)_" Message #: "_XQMSG,ZTIO=XQRES
|
---|
22 | S XQDAYS=$P(XQ220,U,9) S:(XQDAYS'>0) XQDAYS=14 S ZTKIL=$P($H,",")+XQDAYS_",00000" ;Retention time to save task in ZTSK
|
---|
23 | S ZTSAVE("XQY")="",ZTSAVE("XQY0")="",ZTSAVE("XQ220")="",ZTSAVE("XQLTL")="",ZTSAVE("XQAUDIT")="",ZTSAVE("XQREPLY")="",ZTSAVE("XQSUP")="",ZTSAVE("XQNOUSR")=""
|
---|
24 | S ZTSAVE("XQMSG")="",ZTSAVE("XQSUB")="",ZTSAVE("XQSND")="",ZTSAVE("XQRTN")="",ZTSAVE("XQSOP")="",ZTSAVE("XQMD")="",ZTSAVE("XQDATE")="",ZTSAVE("XQMB6")="",ZTSAVE("XQMB")=""
|
---|
25 | S ZTSAVE("XMREC")="",ZTSAVE("XMFROM")="",ZTSAVE("XMCHAN")="",ZTSAVE("XMXX")="",ZTSAVE("XMZ")=""
|
---|
26 | ;
|
---|
27 | I XQMD="N" S ZTDTH=$H+2_",0" D ^%ZTLOAD,XQ^XUTMT S XQMB6="Server request for "_XQSOP_". Task # "_ZTSK_" needs to be scheduled." G OUT
|
---|
28 | I XQMD="Q" S X=XQLTL D
|
---|
29 | .N Y S Y=+XQY D NEXT^XQ92 S XQX=X
|
---|
30 | .I XQX="" S XQER="Scheduling Error: All days and times for the option "_XQSOP_" are prohibited."
|
---|
31 | .I XQX'="" S (ZTDTH,XQDTH)=X D ^%ZTLOAD S XQMB6="Server request queued for "_XQDTH_" task # "_ZTSK
|
---|
32 | G:(XQX'="") KILL^XQSRV2
|
---|
33 | ;
|
---|
34 | OUT ;Trigger the bulletin, do the audit, and split.
|
---|
35 | D:XQAUDIT AUDIT,AUDIT^XQSRV2
|
---|
36 | G OUT^XQSRV2
|
---|
37 | Q
|
---|
38 | ;
|
---|
39 | AUDIT ;Enter the option audit data in Audit Log for Option File
|
---|
40 | D GETENV^%ZOSV S XQVOL=$P(Y,U,2)
|
---|
41 | F XQI=0:0 S XQLTL=XQLTL+.0000001 I '$D(^XUSEC(19,XQLTL,0))#2 L +^XUSEC(19,0) S $P(^(0),U,3,4)=XQLTL_"^"_($P(^XUSEC(19,0),U,4)+1) L -^XUSEC(19,0) Q
|
---|
42 | S ^XUSEC(19,XQLTL,0)=XQY_U_DUZ_U_$I_U_$J_U_U_XQVOL
|
---|
43 | S ^XUSEC(19,XQLTL,1)=XQMSG_U_XMFROM
|
---|
44 | S ^XUSEC(19,XQLTL,2)=XQSUB
|
---|
45 | Q
|
---|
46 | ;
|
---|
47 | REQUE ; Requeue a server option not previously queued due to some problem
|
---|
48 | R !,"Message Number of Server message: ",XQMSG:DTIME Q:'$T!(XQMSG="")!(XQMSG[U)!(XQMSG'>0)
|
---|
49 | I '$D(^XMB(3.9,XQMSG)) W !,$C(7),"Invalid MESSAGE NUMBER",! G REQUE
|
---|
50 | F I=0:0 S I=$O(^XMB(3.9,XQMSG,1,I)) Q:I'>0 S XQ=^(I,0) I "S.s."[$E(XQ,1,2) S XQ=$P(XQ,U,1) Q
|
---|
51 | I "S.s."'[$E(XQ,1,2) W !,$C(7),"MESSAGE is NOT a SERVER MESSAGE",! G REQUE
|
---|
52 | S %DT="AET",%DT("A")="Date/time to run server program: ",%DT("B")="NOW" D ^%DT I Y>0 S ZTDTH=Y
|
---|
53 | S X=$E(XQ,3,$L(XQ))_U_XQMSG S I=$P(^XMB(3.9,XQMSG,0),U,2),X=X_U_$S(I'>0:I,'$D(^VA(200,+I,0)):"UNKNOWN",1:$P(^(0),U,1))_U_$P(^XMB(3.9,XQMSG,0),U,1)
|
---|
54 | G ^XQSRV
|
---|