1 | SCCVLOG ;ALB/RMO,TMP - CST/AST Log Utilities - Log Event; [ 04/05/95 8:39 AM ]
|
---|
2 | ;;5.3;Scheduling;**211**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | UPDREC(SCLOG,SCIEN,SCCVT) ;Update CST/AST last entry and number of records
|
---|
5 | ; Input -- SCLOG CST/AST log IEN
|
---|
6 | ; SCIEN Last entry IEN
|
---|
7 | ; SCCVT 'AST' or 'CST' for type of template
|
---|
8 | ; Output -- None
|
---|
9 | N SCDATA,SCCVFL
|
---|
10 | S SCCVFL=$S(SCCVT="CST":"404.98",1:"404.99")
|
---|
11 | S SCDATA(1.01)=SCIEN ;last entry converted
|
---|
12 | S SCDATA(1.02)=$G(SCTOT(1.02)) ;number of records converted
|
---|
13 | S SCDATA(2.06)=$G(SCTOT(2.06)) ;number of records not converted
|
---|
14 | I $D(^SD(SCCVFL,+SCLOG,0)) D UPD^SCCVDBU(SCCVFL,SCLOG,.SCDATA)
|
---|
15 | Q
|
---|
16 | ;
|
---|
17 | UPD(SCCVT,SCLOG,SCSTDT,SCENDT,SCOMBUL,SCTSK,SCVOL,SCACT) ;Update CST or AST log entry
|
---|
18 | ; Input -- SCCVT 'AST' or 'CST' for type of template
|
---|
19 | ; SCLOG CST or AST log IEN
|
---|
20 | ; SCSTDT Start date [optional]
|
---|
21 | ; SCENDT End date [optional]
|
---|
22 | ; SCOMBUL Bulletin upon completion [optional]
|
---|
23 | ; SCTSK Task # [optional]
|
---|
24 | ; SCVOL Volume set [optional]
|
---|
25 | ; SCACT Action [optional]
|
---|
26 | ; Output -- None
|
---|
27 | N SCDATA,SCCVFL
|
---|
28 | S SCCVFL=$S(SCCVT="CST":"404.98",1:"404.99")
|
---|
29 | I $G(SCACT) D HIS($$NOW^XLFDT,SCLOG,SCACT,"",SCCVFL,$G(SCTSK))
|
---|
30 | S:$G(SCSTDT) SCDATA(.03)=SCSTDT ;start date
|
---|
31 | S:$G(SCENDT) SCDATA(.04)=SCENDT ;end date
|
---|
32 | S:$G(SCOMBUL)'="" SCDATA(.06)=SCOMBUL ;bulletin upon completion
|
---|
33 | I $G(SCACT)=2,$P($G(^SD(SCCVFL,SCLOG,0)),U,8)'=3 D ;initialize fields when starting, but not on a restart
|
---|
34 | . S SCDATA(1.01)="@" ;last entry
|
---|
35 | . S SCDATA(1.02)=0 ;number of records
|
---|
36 | . S SCDATA(2.06)=0 ;number of records
|
---|
37 | S:$G(SCTSK)'="" SCDATA(1.03)=SCTSK ;task #
|
---|
38 | S:$G(SCVOL)'="" SCDATA(1.04)=SCVOL ;volume set
|
---|
39 | I $D(SCDATA) D UPD^SCCVDBU(SCCVFL,SCLOG,.SCDATA)
|
---|
40 | Q
|
---|
41 | ;
|
---|
42 | HIS(SCEVDTM,SCLOG,SCACT,SCCVEVT,SCCVFL,SCTSK) ; CST/AST Log history
|
---|
43 | ; Input -- SCEVDTM Event date/time
|
---|
44 | ; SCLOG CST/AST log IEN
|
---|
45 | ; SCACT Action
|
---|
46 | ; SCCVEVT Last log status
|
---|
47 | ; SCCVFL 'AST' or 'CST' file # (404.98 or 404.99)
|
---|
48 | ; SCTSK task # [optional]
|
---|
49 | ; Output -- None
|
---|
50 | N C,SCACTD,SCCVEVTD,SCDATA,SCHIS,SCIENS,SCLOG0,Y
|
---|
51 | S SCHIS=+$O(^SD(SCCVFL,SCLOG,"E","AEV",SCEVDTM,SCACT,0))
|
---|
52 | G HISQ:SCHIS
|
---|
53 | S SCIENS="+1,"_SCLOG
|
---|
54 | S SCDATA(.01)=SCEVDTM ;event date/time
|
---|
55 | S SCDATA(.02)=$S(SCCVEVT'=3:SCACT,1:7) ;action
|
---|
56 | S SCLOG0=$G(^SD(SCCVFL,SCLOG,0))
|
---|
57 | S:$G(SCCVEVT)="" SCCVEVT=$S('$P(SCLOG0,U,9):$P(SCLOG0,U,5),1:3)
|
---|
58 | S:$G(SCCVEVT)'="" SCDATA(.03)=SCCVEVT ;event
|
---|
59 | IF '$G(SCTSK) N SCTSK S SCTSK=$P($G(^SD(SCCVFL,SCLOG,1)),U,3) ;task number
|
---|
60 | I SCTSK D ;task comment
|
---|
61 | . S SCACTD=$$LOW^XLFSTR($$EXPAND^SCCVDSP2(SCCVFL_"75",.02,SCACT))
|
---|
62 | . I $G(SCCVEVT)'="",SCCVEVT<3 D
|
---|
63 | . . S Y=$$EXPAND^SCCVDSP2(SCCVFL_"75",.03,SCCVEVT)
|
---|
64 | . . S SCCVEVTD=$E(Y,1)_$$LOW^XLFSTR($E(Y,2,$L(Y)))
|
---|
65 | . S:$G(SCCVEVT)<3 SCDATA(50,"WP",1)=SCCVEVTD_" "_SCACTD_" as task #"_SCTSK
|
---|
66 | . S:$G(SCCVEVT)=3 SCDATA(50,"WP",1)="Template canceled by user #: "_$G(DUZ)
|
---|
67 | . S SCDATA(50)=$NA(SCDATA(50,"WP"))
|
---|
68 | D ADD^SCCVDBU(SCCVFL_"75",SCIENS,.SCDATA)
|
---|
69 | I SCCVFL=404.98,"^3^5^"[(U_SCACT_U) D
|
---|
70 | . ;Update file with estimate totals
|
---|
71 | . I 'SCCVEVT,SCACT=5,$O(SCTOT(0)) D UPDTOTL^SCCVEGU1(SCLOG,.SCTOT)
|
---|
72 | . ;
|
---|
73 | . I $P($G(^SD(404.98,SCLOG,0)),U,6) D ;send bulletin
|
---|
74 | . . I SCCVEVT D ;convert if complete or stopped
|
---|
75 | . . . D SEND^SCCVLOG2(SCLOG,SCACT)
|
---|
76 | . . ELSE I SCACT=5 D ;estimate only when complete
|
---|
77 | . . . D MAILSUM^SCCVEGD0(SCLOG)
|
---|
78 | HISQ Q
|
---|
79 | ;
|
---|
80 | CHKACT(SCLOG,SCCVEVT,SCACT,SCCVT) ;Check log entry action for a specific log event
|
---|
81 | ; Input -- SCLOG CST/AST log IEN
|
---|
82 | ; SCCVEVT CST/AST event
|
---|
83 | ; SCACT Action
|
---|
84 | ; SCCVT 'AST' or 'CST' for type of template
|
---|
85 | ; Output -- 1=Found and 0=Not Found
|
---|
86 | N A,D,E,Y,SCCVFL
|
---|
87 | S (D,Y)=0
|
---|
88 | S SCCVFL=$S(SCCVT="CST":"404.98",1:"404.99")
|
---|
89 | F S D=$O(^SD(SCCVFL,SCLOG,"E","AEV",D)) Q:'D!(Y) D
|
---|
90 | . S E=""
|
---|
91 | . F E=$O(^SD(SCCVFL,SCLOG,"E","AEV",D,E)) Q:E=""!(Y) I E=SCCVEVT D
|
---|
92 | . . S A=0
|
---|
93 | . . F S A=$O(^SD(SCCVFL,SCLOG,"E","AEV",D,E,A)) Q:'A!(Y) I A=SCACT S Y=1
|
---|
94 | Q +$G(Y)
|
---|
95 | ;
|
---|
96 | STOP(SCLOG,SCREQ,SCSTOPF) ;Stop conversion/estimate
|
---|
97 | ; Input -- SCLOG CST log IEN
|
---|
98 | ; SCREQ CST request IEN
|
---|
99 | ; SCSTOPF Force exit [optional]
|
---|
100 | ; Output -- SCSTOPF 1=Stopped and 0=Not stopped
|
---|
101 | N SCREQ0,SCLOG1,SCFORCEX
|
---|
102 | ;
|
---|
103 | ; -- force exit if calling routine says to
|
---|
104 | S SCFORCEX=+$G(SCSTOPF)
|
---|
105 | ;
|
---|
106 | ; -- force exit if too many errors have occurred
|
---|
107 | IF 'SCFORCEX,$G(SCCVMAXE),$G(SCCVERRH)>SCCVMAXE S SCFORCEX=1
|
---|
108 | ;
|
---|
109 | S SCSTOPF=0
|
---|
110 | ;
|
---|
111 | I +$$LSTACT(SCLOG)=5 G STOPQ ;already completed
|
---|
112 | S SCREQ0=$G(^SD(404.98,SCLOG,"R",SCREQ,0))
|
---|
113 | S SCLOG1=$G(^SD(404.98,SCLOG,1))
|
---|
114 | I $S(SCFORCEX:1,$$S^%ZTLOAD:1,$P(SCREQ0,U,2)=2:1,$P(SCREQ0,U,5):$P(SCREQ0,U,5)<$$NOW^XLFDT,1:0) D
|
---|
115 | . D UPD("CST",SCLOG,"","","","@","@",3)
|
---|
116 | . ;
|
---|
117 | I +$$LSTACT(SCLOG)=3 D
|
---|
118 | . S SCSTOPF=1
|
---|
119 | . ;
|
---|
120 | . ; stopping a running task
|
---|
121 | . I $D(ZTQUEUED) S ZTSTOP=1 Q
|
---|
122 | . ;
|
---|
123 | . ; -- kill/stop a pending task
|
---|
124 | . N ZTSK
|
---|
125 | . S ZTSK=$P(SCLOG1,U,3)
|
---|
126 | . ; -- get status
|
---|
127 | . IF ZTSK]"" D ISQED^%ZTLOAD
|
---|
128 | . ; -- kill task if task is pending
|
---|
129 | . IF $G(ZTSK(0)) D KILL^%ZTLOAD
|
---|
130 | . ;
|
---|
131 | STOPQ Q
|
---|
132 | ;
|
---|
133 | LSTACT(SCLOG) ;Last action taken on CST log entry
|
---|
134 | ; Input -- SCLOG CST log IEN
|
---|
135 | ; Output -- Action^Description
|
---|
136 | N SCACT,Y
|
---|
137 | S SCACT=$P($G(^SD(404.98,SCLOG,0)),U,7)
|
---|
138 | I $G(SCACT) S Y=SCACT_U_$$EXPAND^SCCVDSP2(404.9875,.02,SCACT)
|
---|
139 | Q $G(Y)
|
---|
140 | ;
|
---|
141 | LSTEVT(SCLOG) ;Last event performed on CST log entry
|
---|
142 | ; Input -- SCLOG CST log IEN
|
---|
143 | ; Output -- event
|
---|
144 | N SCEVT
|
---|
145 | S SCEVT=$P($G(^SD(404.98,SCLOG,0)),U,5)
|
---|
146 | Q SCEVT
|
---|
147 | ;
|
---|
148 | LSTREQ(SCLOG) ;Returns the # of the last request for a CST
|
---|
149 | ; Input -- SCLOG CST log IEN
|
---|
150 | ; Output -- Last request ien
|
---|
151 | ;
|
---|
152 | Q +$O(^SD(404.98,SCLOG,"R","A"),-1)
|
---|
153 | ;
|
---|