1 | ZIBCKPKG ; IHS/ADC/GTH - CHECK UCI FOR PACKAGE CONTENT ; [ 10/29/2002 7:42 AM ]
|
---|
2 | ;;4.0;XB;;Jul 20, 2009;Build 2
|
---|
3 | ;
|
---|
4 | ;XB*3*9 IHS/SET/GTH XB*3*9 10/29/2002 Change MSM systax to use $ROUTINE.
|
---|
5 | D INIT
|
---|
6 | S XBQUEST=1 D ASKIT G:XBQ=U EXIT S XBINPR=XBQ
|
---|
7 | S XBQUEST=2 D ASKIT G:XBQ=U EXIT S XBLC=XBQ
|
---|
8 | S XBQUEST=3 D ASKIT G:XBQ=U EXIT S XBLNPR=XBQ
|
---|
9 | ;
|
---|
10 | ZIS ; SELECT DEVICE
|
---|
11 | KILL ZTSK,IOP,%ZIS
|
---|
12 | S %ZIS="PQM"
|
---|
13 | D ^%ZIS
|
---|
14 | G:POP EXIT
|
---|
15 | G:$D(IO("Q")) QUE
|
---|
16 | NOQUE ;
|
---|
17 | U IO
|
---|
18 | D EN
|
---|
19 | D ^%ZISC
|
---|
20 | G EXIT
|
---|
21 | ;
|
---|
22 | QUE ;
|
---|
23 | KILL ZTSAVE
|
---|
24 | F %="XBINPR","XBLNPR","XBLC" S ZTSAVE(%)=""
|
---|
25 | S ZTRTN="EN^ZIBCKPKG",ZTDESC="SCAN UCI FOR PACKAGES",ZTIO=IO,ZTDTH=0
|
---|
26 | D ^%ZTLOAD
|
---|
27 | KILL ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTSK
|
---|
28 | EXIT ;
|
---|
29 | D KILLS
|
---|
30 | Q
|
---|
31 | ;
|
---|
32 | EN1 ; ENTRY FOR SILENT OPERATION
|
---|
33 | D INIT
|
---|
34 | S (XBINPR,XBLC)=1
|
---|
35 | G EN
|
---|
36 | ;
|
---|
37 | INIT ; INITIALIZATION
|
---|
38 | S U="^"
|
---|
39 | S:'$D(DTIME) DTIME=300
|
---|
40 | Q
|
---|
41 | ;
|
---|
42 | EN ; COMMON INTERNAL ENTRY
|
---|
43 | S XBQUIT=0
|
---|
44 | KILL ^UTILITY($J,"ZIBCKPKG")
|
---|
45 | D SCAN
|
---|
46 | Q:XBQUIT
|
---|
47 | D:XBLNPR SHOWNPR
|
---|
48 | D:XBLC SHOWLC
|
---|
49 | I $D(IOST),$D(IOF),$E(IOST,1,2)="P-" W @IOF
|
---|
50 | SET:$D(ZTQUEUED) ZTREQ="@"
|
---|
51 | KILLS ;
|
---|
52 | KILL XBINPR,XBRNPR,XBLNPR,XBLC,XBQUIT,XBR,XBR2,XBPF,XBI,XBJ,XBP,XBQ,XBCNT,XBQUEST
|
---|
53 | KILL ^UTILITY($J,"ZIBCKPKG"),ZTSK
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | SCAN ;
|
---|
57 | X ^%ZOSF("UCI")
|
---|
58 | W "- - - PACKAGE SCAN OF UCI ",Y,$S($D(^DD("SITE")):" ON "_^("SITE"),1:"")," - - -",!!
|
---|
59 | ; S XBR=$O(^ ("%zzzzzzz")) ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
60 | S XBR=$O(^$R("%zzzzzzz")) ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
61 | F Q:XBR="" Q:XBR?1L.E D CHKPKG Q:XBQUIT
|
---|
62 | Q:XBQUIT
|
---|
63 | F Q:XBR="" D GETNXT
|
---|
64 | Q
|
---|
65 | ;
|
---|
66 | CHKPKG ; CHECK FOR PACKAGE
|
---|
67 | S XBPF=$E(XBR,1,4)
|
---|
68 | F XBI=$L(XBPF):-1:0 S XBPF=$E(XBPF,1,XBI) Q:XBPF="" S XBP=$O(^DIC(9.4,"C",XBPF,0)) Q:XBP
|
---|
69 | I XBPF="" D NOTPKG Q
|
---|
70 | W XBPF,?4," - ",$P(^DIC(9.4,XBP,0),U,1)
|
---|
71 | S XBRNPR=0
|
---|
72 | D SKIP
|
---|
73 | W " (",XBCNT,")",!
|
---|
74 | Q
|
---|
75 | ;
|
---|
76 | NOTPKG ;
|
---|
77 | I XBINPR S ^UTILITY($J,"ZIBCKPKG",2,XBR)="" S XBPF="" D GETNXT Q
|
---|
78 | F W XBR R " -- Package prefix? ",XBPF:DTIME S:'$T XBPF=U Q:XBPF[U D GETPKG Q:XBPF'="-"
|
---|
79 | I XBPF[U S XBQUIT=1 Q
|
---|
80 | W !
|
---|
81 | I XBPF="" D GETNXT Q
|
---|
82 | S XBI=$L(XBPF),XBRNPR=1
|
---|
83 | D SKIP
|
---|
84 | W " ",XBCNT," ROUTINES SKIPPED.",!
|
---|
85 | Q
|
---|
86 | ;
|
---|
87 | GETPKG ;
|
---|
88 | I XBPF?1."?" S XBQUEST=4 D DSPHLP W ! S XBPF="-" Q
|
---|
89 | I XBPF?1."?"1.E D DSPLY S XBPF="-" Q
|
---|
90 | Q:XBPF'?.E1CL.E&($L(XBPF)<5)
|
---|
91 | W " -- Package id must be upper case, length 1-4",!
|
---|
92 | S XBPF="-"
|
---|
93 | Q
|
---|
94 | ;
|
---|
95 | SKIP ;
|
---|
96 | F XBCNT=1:1 S:XBRNPR ^UTILITY($J,"ZIBCKPKG",2,XBR)="" D GETNXT Q:$E(XBR,1,XBI)'=XBPF
|
---|
97 | Q
|
---|
98 | ;
|
---|
99 | GETNXT ;
|
---|
100 | S:XBR?.E1L.E ^UTILITY($J,"ZIBCKPKG",1,XBR)=""
|
---|
101 | ; S XBR=$O(^ (XBR)) ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
102 | S XBR=$O(^$R(XBR)) ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
103 | Q
|
---|
104 | ;
|
---|
105 | DSPLY ;
|
---|
106 | S (XBPF,XBR2)=$E(XBPF,2,$L(XBPF))
|
---|
107 | W !
|
---|
108 | S XBJ=0
|
---|
109 | S X=XBR2
|
---|
110 | X ^%ZOSF("TEST")
|
---|
111 | I S XBJ=1 W !,XBR2
|
---|
112 | ; F XBJ=XBJ:1 S XBR2=$O(^ (XBR2)) Q:$E(XBR2,1,$L(XBPF))'=XBPF W:XBJ#8=0 ! W ?XBJ#8*10,XBR2 ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
113 | F XBJ=XBJ:1 S XBR2=$O(^$R(XBR2)) Q:$E(XBR2,1,$L(XBPF))'=XBPF W:XBJ#8=0 ! W ?XBJ#8*10,XBR2 ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
114 | W:$X !
|
---|
115 | W !
|
---|
116 | Q
|
---|
117 | ;
|
---|
118 | SHOWNPR ;
|
---|
119 | Q:'$D(^UTILITY($J,"ZIBCKPKG",2))
|
---|
120 | W !!,"Non-package routines:",!
|
---|
121 | S XBR2=""
|
---|
122 | F XBJ=0:1 S XBR2=$O(^UTILITY($J,"ZIBCKPKG",2,XBR2)) Q:XBR2="" W:XBJ#8=0 ! W ?XBJ#8*10,XBR2
|
---|
123 | W !
|
---|
124 | Q
|
---|
125 | ;
|
---|
126 | SHOWLC ;
|
---|
127 | Q:'$D(^UTILITY($J,"ZIBCKPKG",1))
|
---|
128 | W !!,"Routine names containing lower case letters:",!
|
---|
129 | S XBR2=""
|
---|
130 | F XBJ=0:1 S XBR2=$O(^UTILITY($J,"ZIBCKPKG",1,XBR2)) Q:XBR2="" W:XBJ#8=0 ! W ?XBJ#8*10,XBR2
|
---|
131 | W !
|
---|
132 | Q
|
---|
133 | ;
|
---|
134 | ASKIT ; ASK A YES/NO QUESTION
|
---|
135 | KILL XBQ
|
---|
136 | S %=$T(@XBQUEST),XBQ("Q")=$P(%,";;",2),XBQ("D")=$P(%,";;",3)
|
---|
137 | ASKIT2 ;
|
---|
138 | W !,XBQ("Q")," ",XBQ("D"),"// "
|
---|
139 | R XBQ:DTIME
|
---|
140 | S:'$T XBQ=U
|
---|
141 | I XBQ="" S XBQ=XBQ("D") W XBQ
|
---|
142 | S XBQ("R")=XBQ,XBQ=""
|
---|
143 | I XBQ("R")[U S XBQ=U
|
---|
144 | I $P("YES",XBQ("R"))="" S XBQ=1
|
---|
145 | I $P("yes",XBQ("R"))="" S XBQ=1
|
---|
146 | I $P("NO",XBQ("R"))="" S XBQ=0
|
---|
147 | I $P("no",XBQ("R"))="" S XBQ=0
|
---|
148 | I XBQ]"" W ! Q
|
---|
149 | W !,"-- Please answer YES or NO"
|
---|
150 | D DSPHLP
|
---|
151 | G ASKIT
|
---|
152 | ;
|
---|
153 | DSPHLP ;
|
---|
154 | F XBI=1:1 S %=$T(@XBQUEST+XBI) Q:%="" Q:$P(%," ")]"" W !,"-- ",$P(%,";;",2)
|
---|
155 | W !
|
---|
156 | KILL %
|
---|
157 | Q
|
---|
158 | ;
|
---|
159 | QUEST ;
|
---|
160 | ;
|
---|
161 | 1 ;;Ignore non-package routines?;;YES
|
---|
162 | ;;Responding NO will cause you to be asked if a routine for which
|
---|
163 | ;;a namespace cannot be identified in the package file can be
|
---|
164 | ;;considered part of a "psuedo-package" with which a namespace can
|
---|
165 | ;;be associated.
|
---|
166 | 2 ;;Display routine names containing lower case letters?;;YES
|
---|
167 | ;;Responding YES will cause a tabular listing to be produced
|
---|
168 | ;;displaying all routine names which contain a lower case letter.
|
---|
169 | 3 ;;Display names of non-package routines?;;YES
|
---|
170 | ;;Responding YES will cause a tabular listing to be produced
|
---|
171 | ;;displaying the names of all routines which were not found
|
---|
172 | ;;to be part of a package.
|
---|
173 | 4 ;;
|
---|
174 | ;;If you enter a namespace, routines will be processed as though a
|
---|
175 | ;;formal package association was made.
|
---|