1 | SCUTBK ;ALB/MJK - Scheduling Broker Utilities ;[ 03/21/95 4:13 PM ]
|
---|
2 | ;;5.3;Scheduling;**41,130**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | CHK ; -- all broker callbacks pass thru here
|
---|
7 | Q
|
---|
8 | ;
|
---|
9 | LISTC(SCDATA,SC) ; -- broker callback to get list data
|
---|
10 | N SCFILE,SCIENS,SCFIELDS,SCMAX,SCFROM,SCPART,SCXREF,SCREEN,SCID,SCVAL,SCROOT,SCERR,SCRSLT,SCFLD
|
---|
11 | D CHK
|
---|
12 | ; -- parse array to parameters
|
---|
13 | D PARSE(.SC)
|
---|
14 | S SCFLAGS=$G(SCFLAGS)_"PS"
|
---|
15 | ;
|
---|
16 | ; -- get specific field criteria - screen code (below) left as reminder
|
---|
17 | ;IF $G(SC("DDFILE")),$G(SC("DDFIELD")),$D(^DD(SC("DDFILE"),SC("DDFIELD"),12.1)) D
|
---|
18 | ;. N DIC X ^(12.1) S:$D(DIC("S")) SCREEN=DIC("S")
|
---|
19 | ;
|
---|
20 | ; -- need to get from kernel broker somehow...
|
---|
21 | D TMP
|
---|
22 | ;
|
---|
23 | D LIST^DIC(SCFILE,SCIENS,SCFIELDS,SCFLAGS,SCMAX,.SCFROM,SCPART,SCXREF,SCREEN,SCID,"^TMP(""SCRSLT"",$J)","SCERR")
|
---|
24 | ;
|
---|
25 | N Y,I,N
|
---|
26 | ;
|
---|
27 | S N=0
|
---|
28 | IF $G(SCFROM)]"" D
|
---|
29 | . D SET("[Misc]")
|
---|
30 | . D SET("MORE"_U_SCFROM_U_SCFROM("IEN"))
|
---|
31 | ;
|
---|
32 | D SET("[Data]")
|
---|
33 | S I=0 F S I=$O(^TMP("SCRSLT",$J,"DILIST",I)) Q:'I D SET(^TMP("SCRSLT",$J,"DILIST",I,0))
|
---|
34 | ;
|
---|
35 | IF $D(SCERR) D
|
---|
36 | . D SET("[Errors]")
|
---|
37 | ;
|
---|
38 | M SCDATA=Y
|
---|
39 | Q
|
---|
40 | ;
|
---|
41 | SET(X) ;
|
---|
42 | S N=N+1
|
---|
43 | S Y(N)=X
|
---|
44 | Q
|
---|
45 | ;
|
---|
46 | PARSE(SC) ; -- array parsing
|
---|
47 | S SCFILE=$G(SC("FILE"))
|
---|
48 | S SCIENS=$G(SC("IENS"))
|
---|
49 | S SCFIELDS=$G(SC("FIELDS"))
|
---|
50 | S SCFLAGS=$G(SC("FLAGS"))
|
---|
51 | S SCMAX=$G(SC("MAX"),"*")
|
---|
52 | M SCFROM=SC("FROM")
|
---|
53 | S SCPART=$G(SC("PART"))
|
---|
54 | S SCXREF=$G(SC("XREF"))
|
---|
55 | S SCREEN=$G(SC("SCREEN"))
|
---|
56 | S SCID=$G(SC("ID"))
|
---|
57 | S SCROOT=$G(SC("ROOT"))
|
---|
58 | ; -- for find
|
---|
59 | S SCVAL=$G(SC("VALUE"))
|
---|
60 | Q
|
---|
61 | ;
|
---|
62 | FILEC(SCDATA,SCMODE,SCROOT,SCIENS) ;
|
---|
63 | N SCRTN,SCFDA,SCERR,N,I
|
---|
64 | D CHK
|
---|
65 | D FDASET(.SCROOT,.SCFDA)
|
---|
66 | ; -- set up placeholder DINUM's if any
|
---|
67 | ; -- NOTE: Can't use until multiple arrays can be passed by broker
|
---|
68 | ;S I="" F S I=$O(SCIENS(I)) Q:I="" S SCRTN(+I)=+SCIENS(I)
|
---|
69 | IF SCMODE="ADD" D
|
---|
70 | . D UPDATE^DIE("","SCFDA","SCRTN","SCERR")
|
---|
71 | ELSE D
|
---|
72 | . D FILE^DIE("","SCFDA","SCERR")
|
---|
73 | S N=0
|
---|
74 | ;
|
---|
75 | D SETF("[Data]")
|
---|
76 | ; -- send back info on entry #'s for placeholders
|
---|
77 | S I=0 F S I=$O(SCRTN(I)) Q:'I D SETF("+"_I_U_SCRTN(I))
|
---|
78 | ;
|
---|
79 | IF $D(SCERR) D
|
---|
80 | . D SETF("[Errors]")
|
---|
81 | . D SETF("An error has occurred.")
|
---|
82 | Q
|
---|
83 | ;
|
---|
84 | SETF(X) ;
|
---|
85 | S N=N+1
|
---|
86 | S SCDATA(N)=X
|
---|
87 | Q
|
---|
88 | ;
|
---|
89 | FDASET(SCROOT,SCFDA) ;
|
---|
90 | N SCFILE,SCIEN,SCFIELD,SCVAL,SCERR,I
|
---|
91 | ;
|
---|
92 | S I=0
|
---|
93 | F S I=$O(SCROOT(I)) Q:'I S X=SCROOT(I) D
|
---|
94 | . S SCFILE=$P(X,U)
|
---|
95 | . S SCFIELD=$P(X,U,2)
|
---|
96 | . S SCIEN=$P(X,U,3)
|
---|
97 | . S SCVAL=$P(X,U,4)
|
---|
98 | . D FDA^DILF(SCFILE,SCIEN_",",SCFIELD,"",SCVAL,"SCFDA","SCERR")
|
---|
99 | Q
|
---|
100 | ;
|
---|
101 | TMP ; -- temporary envrionment variables sets until kernel tools arrives
|
---|
102 | IF '$G(DUZ) D
|
---|
103 | . S DUZ=.5,DUZ(0)="@",U="^",DTIME=300
|
---|
104 | . D NOW^%DTC S DT=X
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | VALC(SCDATA,SC) ; -- calls Database Validator
|
---|
108 | N SCFILE,SCIENS,SCFIELD,SCVALUE,SCVAL,SCRSLT,SCERR
|
---|
109 | D CHK
|
---|
110 | S SCFLAGS="E"
|
---|
111 | S SCFILE=$G(SC("FILE"))
|
---|
112 | S SCIENS=$G(SC("IENS"))
|
---|
113 | S SCFIELD=$G(SC("FIELD"))
|
---|
114 | S SCVAL=$G(SC("VALUE"))
|
---|
115 | ;
|
---|
116 | ; -- need to get from kernel broker somehow...
|
---|
117 | D TMP
|
---|
118 | ;
|
---|
119 | D VAL^DIE(SCFILE,SCIENS,SCFIELD,SCFLAGS,SCVAL,.SCRSLT,"","SCERR")
|
---|
120 | ;
|
---|
121 | N Y,N
|
---|
122 | S N=0
|
---|
123 | D SET("[FILLER]")
|
---|
124 | D SET("[Data]")
|
---|
125 | D SET($G(SCRSLT,U))
|
---|
126 | D SET($G(SCRSLT(0)))
|
---|
127 | ;
|
---|
128 | IF $D(SCERR) D
|
---|
129 | . D SET("[Errors]")
|
---|
130 | M SCDATA=Y
|
---|
131 | Q
|
---|