1 | KMPSUTL1 ;OAK/KAK - SAGG Utilities ;5/1/07 10:30
|
---|
2 | ;;2.0;SAGG;;Jul 02, 2007
|
---|
3 | ;
|
---|
4 | MPLTF() ;-- returns the type of M platform
|
---|
5 | ;---------------------------------------------------------------------
|
---|
6 | ; Returns: CVMS for Cache for OpenVMS platform
|
---|
7 | ; CWINNT for Cache for Windows NT platform
|
---|
8 | ;---------------------------------------------------------------------
|
---|
9 | ;
|
---|
10 | N MPLTF,ZV
|
---|
11 | ;
|
---|
12 | S ZV=$ZV
|
---|
13 | S MPLTF=$S(ZV["VMS":"CVMS",ZV["Windows":"CWINNT",1:"UNK")
|
---|
14 | Q MPLTF
|
---|
15 | ;
|
---|
16 | TSKSTAT(OPT) ;-- status of scheduled task option
|
---|
17 | ;---------------------------------------------------------------------
|
---|
18 | ; input OPT = option name
|
---|
19 | ; output RTN = status code^literal condition
|
---|
20 | ; ...^scheduled date@time (day)^numeric day-of-week
|
---|
21 | ; ...^expanded scheduled frequency^short form frequency
|
---|
22 | ; ...^task id^queued by^user status
|
---|
23 | ;
|
---|
24 | ; where status code^condition:
|
---|
25 | ; = 0^SCHEDULED
|
---|
26 | ; = 1^NOT SCHEDULED and 'scheduled date@time' will
|
---|
27 | ; be UNKNOWN and 'numeric day of week' will be -1
|
---|
28 | ; = 2^NOT RESCHEDULED
|
---|
29 | ; = 3^MISSING when OPT does not exist
|
---|
30 | ; = 9^UNKNOWN
|
---|
31 | ;
|
---|
32 | ; where user status = ACTIVE or NOT ACTIVE
|
---|
33 | ;---------------------------------------------------------------------
|
---|
34 | ;
|
---|
35 | N ACTV,DA,DAY,DOW,FREQ,RTN,TSK,TSKINFO,USER,Y
|
---|
36 | ;
|
---|
37 | S (DOW,FREQ)=-1
|
---|
38 | S RTN="9^UNKNOWN^NO DATE^-1^UNKNOWN^^^UNKNOWN^NOT ACTIVE"
|
---|
39 | ;
|
---|
40 | I '$D(^DIC(19,"B",OPT)) S $P(RTN,U,1,2)="3^MISSING" Q RTN
|
---|
41 | S DA=$O(^DIC(19,"B",OPT,0)),DA=+$O(^DIC(19.2,"B",DA,0))
|
---|
42 | S TSKINFO=$G(^DIC(19.2,DA,0)),(DOW,Y)=$P(TSKINFO,U,2),FREQ=$P(TSKINFO,U,6)
|
---|
43 | S:+Y $P(TSKINFO,U,2)=$$FMTE^XLFDT(Y)
|
---|
44 | I DOW'="" S DAY=$$DOW^XLFDT(DOW),DOW=$$DOW^XLFDT(DOW,1)
|
---|
45 | S TSK=+$G(^DIC(19.2,+DA,1))
|
---|
46 | I (DOW="")!(TSK="") S $P(RTN,U,1,2)="1^NOT SCHEDULED"
|
---|
47 | E D
|
---|
48 | .S $P(RTN,U,1,2)="0^SCHEDULED"
|
---|
49 | .I FREQ="" S $P(RTN,U,1,2)="2^NOT RESCHEDULED"
|
---|
50 | .; queued to run at
|
---|
51 | .S $P(RTN,U,3,4)=$S($P(TSKINFO,U,2)="":"NO DATE",1:$P(TSKINFO,U,2))_$S($D(DAY):" ("_DAY_")",1:"")_U_DOW
|
---|
52 | ; rescheduling frequency
|
---|
53 | I FREQ?1.3N1A D
|
---|
54 | .S $P(RTN,U,5,6)=+FREQ_" "_$S(FREQ["D":"day",FREQ["M":"month",1:FREQ)_$S(+FREQ>1:"s",1:"")_U_FREQ
|
---|
55 | E S $P(RTN,U,5,6)=$S(FREQ="":"UNKNOWN",1:FREQ)_U_FREQ
|
---|
56 | ; task id
|
---|
57 | S $P(RTN,U,7)=TSK
|
---|
58 | ; find if the user is active
|
---|
59 | I TSK D
|
---|
60 | .S TSKINFO=$G(^%ZTSK(TSK,0))
|
---|
61 | .S USER=+$P(TSKINFO,U,3)
|
---|
62 | .S ACTV=+$$ACTIVE^XUSER(USER)
|
---|
63 | .; queued by
|
---|
64 | .S $P(RTN,U,8)=$P($G(^VA(200,USER,0)),U)
|
---|
65 | I $G(ACTV) S $P(RTN,U,9)="ACTIVE"
|
---|
66 | Q RTN
|
---|