Produced by Araxis Merge on 11/9/2018 12:33:53 AM Central Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
# | Location | File | Last Modified |
---|---|---|---|
1 | CPEE_Build9_Sprint27.zip\HAC_CPE_CH | CHMCRX02.m | Mon Nov 5 16:41:25 2018 UTC |
2 | CPEE_Build9_Sprint27.zip\HAC_CPE_CH | CHMCRX02.m | Mon Nov 5 17:43:07 2018 UTC |
Description | Between Files 1 and 2 |
|
---|---|---|
Text Blocks | Lines | |
Unchanged | 4 | 722 |
Changed | 3 | 6 |
Inserted | 0 | 0 |
Removed | 0 | 0 |
Whitespace | |
---|---|
Character case | Differences in character case are significant |
Line endings | Differences in line endings (CR and LF characters) are ignored |
CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
1 | CHMCRX02 ; HAC/JAH,CE P,AEB-CRM 2.0 Projec t Remote P rocedures; 5/7/2018 | |
2 | ;;1.3;CHA MPVA;**489 4**;JUNE 2 017;Build 54 | |
3 | Q | |
4 | ; UTILITY ROUTINE T O SUPPORT BULK ACCES S ASSIGNME NT FOR REM OTE PROCED URES OF CR M 3.0 | |
5 | ; | |
6 | ; This ut ility read s names fr om an inpu t host fil e and atte mpts to fi nd those n ames | |
7 | ; in file 200. If the name i s found th en seconda ry menu op tion or ot her access can | |
8 | ; be assi gned to th at found u ser. Name s that are not found are used as a defau lt to | |
9 | ; optiona lly try to look thos e names up in 200 in interacti ve mode. There are 3 | |
10 | ; indices that are built duri ng process ing: | |
11 | ; - The AF ind ex is a so rted list of all inp ut names t hat were f ound in 20 0. | |
12 | ; - The AN ind ex is a so rted list of all inp ut names t hat were n ot found i n 200. | |
13 | ; - a B index to sort en tries by I NPUT NAME. | |
14 | ; | |
15 | ; the XTM P global i s used to store the results of the host file proce ssing run for 7 days | |
16 | ; and has the follo wing form: | |
17 | ; | |
18 | ; ^XTMP(C HN,%,0)= x tmp Expira tion date^ xtmp crea te date ^ DESCRIPTIO N ^ entry counter | |
19 | ; ^XTMP(C HN,%,1,0)= INPUT NAM E C ^ DUZ ^ RESOLVED NAME ^ AS SIGNED SEC ONDARY 1=T RUE, 0=FAL SE ^ ASSGN DT | |
20 | ; ^XTMP(C HN,%,2,0)= INPUT NAM E B^ DUZ ^ NULL ^ A SSIGNED SE CONDARY 1= TRUE, 0=FA LSE ^ ASSG N DT | |
21 | ; ^XTMP(C HN,%,3,0)= INPUT NAM E D^ DUZ ^ RESOLVED NAME ^ AS SIGNED SEC ONDARY 1=T RUE,0=FALS E ^ ASSGN DT | |
22 | ; ^XTMP(C HN,%,4,0)= INPUT NAM E A^ 0 ^ null ^ AS SIGNED SEC ONDARY 1=T RUE,0=FALS E ^ null | |
23 | ; | |
24 | ; ^XTMP(C HN,%,"AF", RESOLVED N AME A,4) | |
25 | ; ^XTMP(C HN,%,"AF", RESOLVED N AME D,3) | |
26 | ; | |
27 | ; ^XTMP(C HN,%,"AN", INPUT NAME B,2) | |
28 | ; ^XTMP(C HN,%,"AN", INPUT NAME A,4) | |
29 | ; | |
30 | ; ^XTMP(C HN,%,"B",I NPUT NAME A,4) | |
31 | ; ^XTMP(C HN,%,"B",I NPUT NAME B,2) | |
32 | ; ^XTMP(C HN,%,"B",I NPUT NAME C 1) | |
33 | ; ^XTMP(C HN,%,"B",I NPUT NAME D,3) | |
34 | ; | |
35 | ; | |
36 | RPCACC(CLE AN) ; | |
37 | N % | |
38 | I $G(CLEA N) D | |
39 | . S CLE AN=$$CLEAN ASK() | |
40 | E D | |
41 | . S CLE AN=0 | |
42 | Q:$G(CLEA N)="^" | |
43 | W @IOF,!! !,"You can either ad d secondar y menu for RPC acces s or remov e the menu ." | |
44 | W !,"WARN ING: Remov al is norm ally for t esting pur poses only ." | |
45 | S ADDFLAG =$$ADDREM( ) | |
46 | Q:ADDFLAG ="" | |
47 | I ADDFLAG ="R" D | |
48 | . I $G( CLEAN) W ! !,"OKAY. W e'll clean up ^XTMP after you remove the secondary menu." | |
49 | . D REV ERSE | |
50 | . I $G( CLEAN) K ^ XTMP("CHMC R X02") | |
51 | E D | |
52 | . I CLE AN D | |
53 | .. W !!,"^XTMP cleaned u p." | |
54 | .. K ^XTMP("CH MCR X02") | |
55 | . D NOW ^%DTC | |
56 | . S CHN AMES=$NA(^ XTMP("CHMC R X02",%)) | |
57 | .; | |
58 | .;TODO: m ust use fi leman date function to add 7 d ays to tod ay | |
59 | . S @CH NAMES@(0)= %+7_U_%_U_ "CRM 3.0-- Bulk User Access Rem ote Proced ures (rpcs )--2ndary Menu Optio n" | |
60 | . D ACC GROUP(.CHN AMES,ADDFL AG) | |
61 | Q | |
62 | REVERSE ; lookup a b ulk run fr om XTMP an d remove t he 2ndary menu optio n that was added dur ing that r un | |
63 | ; THIS IS SIMPLY TO AID IN TE STING upda tes--i.e., you can r everse a t est run | |
64 | ; | |
65 | N RUNID,N AME,I,DATA NODE,REMOV E | |
66 | S CHNAMES =$NA(^XTMP ("CHMCR X0 2")) | |
67 | S RUNID=$ $PICKRUN() | |
68 | I RUNID=0 W !!,"The re are no historical bulk acce ss asssigm ents on fi le." Q | |
69 | I RUNID<0 W !!,"Opt ion aborte d." Q | |
70 | ; | |
71 | S NAME="" | |
72 | F S NAME =$O(@CHNAM ES@(RUNID, "AF",NAME) ) Q:NAME=" " D | |
73 | . S I=0 | |
74 | . F S I =$O(@CHNAM ES@(RUNID, "AF",NAME, I)) Q:I'>0 D | |
75 | .. S DA TANODE=$G( @CHNAMES@( RUNID,I,0) ) | |
76 | .. S AD UZ=$P(DATA NODE,U,2) | |
77 | .. S RE MOVE=$$TAK E2ND(ADUZ) | |
78 | .. I RE MOVE D | |
79 | ... W !,?5,"REM OVED SUCCE SSFULLY!!! " | |
80 | .. E D | |
81 | ... W !,?5,"REM OVAL FAILE D..." | |
82 | .. W "f or user ", $P(DATANOD E,U,3)," w /DUZ ",$P( DATANODE,U ,2) | |
83 | ; | |
84 | ; | |
85 | ACCGROUP(C HNAMES,ADD FLAG) ; | |
86 | ; | |
87 | ;pick a d irectory J ohn or Cha d or enter one | |
88 | N HFSDIR, FILENAME,P OP,ERRORS, INPUTNAM,V AIEN | |
89 | ;S HFSDIR =$$DEFDIR^ %ZISH() | |
90 | ; | |
91 | S HFSDIR= $$GETHFDIR () | |
92 | ; | |
93 | N DEFAULT F | |
94 | S DEFAULT F="CHVAACC ESSNAMELIS T.TXT" | |
95 | S FILENAM E=$$GETFIL E(DEFAULTF ) | |
96 | ; | |
97 | ; Read fi le | |
98 | ; | |
99 | K POP | |
100 | X "D $SYS TEM.Proces s.SetZEOF( 1)" | |
101 | D OPEN^%Z ISH("READF ILE",HFSDI R,FILENAME ,"R") | |
102 | ; | |
103 | ;If can't open file for writi ne get xml error mes sage and q uit | |
104 | ; | |
105 | D CHKPOP^ CHMCRUT1(. ERRORS,POP ,"R") | |
106 | ; | |
107 | I +$G(ERR ORS(0))>0 D Q | |
108 | . D CLOS E^%ZISH("R EADFILE") | |
109 | . D CLEA N^CHMCRC10 (FILENAME, HFSDIR) | |
110 | . S I="" F S I=$O (ERRORS(I) ) Q:I'>0 D | |
111 | .. W ! ,ERRORS(I) | |
112 | ; | |
113 | N I,X | |
114 | X "D $SYS TEM.Proces s.SetZEOF( 1)" | |
115 | U IO F I= 1:1 R X:DT IME Q:$$ST ATUS^%ZISH () D | |
116 | . S @CHN AMES@(I,0) =X | |
117 | . S @CHN AMES@("B", X,I)="" | |
118 | D CLOSE^% ZISH("READ FILE") | |
119 | S $P(@CHN AMES@(0),U ,4)=I-1 | |
120 | Q:$$ASK^P RSLIB00(1) | |
121 | W @IOF,!! !,"ACCESS PROCESSING " | |
122 | S I=0 | |
123 | F S I=$O (@CHNAMES@ (I)) Q:I'> 0 D | |
124 | . S INPU TNAM=@CHNA MES@(I,0) | |
125 | .; try to find user non inter actively l ooking up in 200 fro m host fil e name lis t | |
126 | . S VAIE N=$$GETUSE R(INPUTNAM ) | |
127 | . W !!," =========S TART= ",+V AIEN,": ", INPUTNAM," ========= ===" | |
128 | .; | |
129 | .; input name was resolved S AVE duz an d name pie c 2^3 | |
130 | . I VAIE N>0 D | |
131 | .. S $ P(@CHNAMES @(I,0),U,2 )=VAIEN | |
132 | .. S @ CHNAMES@(" AF",$P(VAI EN,U,2),I) ="" | |
133 | . E D | |
134 | ..; us e input li st name as default f or lookup | |
135 | ..; we could not resolve w ith input name | |
136 | ..; so prompt us er for loo kup to res olve | |
137 | .. S V AIEN=$$GET USERI(INPU TNAM) | |
138 | .. I V AIEN>0 D | |
139 | ... S $P(@CHN AMES@(I,0) ,U,2)=VAIE N | |
140 | ... S @CHNAME S@("AF",$P (VAIEN,U,2 ),I)="" | |
141 | .. E D | |
142 | ... ; COULD NO T RESOLVE USER NAME | |
143 | ... S $P(@CHNA MES@(I,0), U,2)=0 | |
144 | ... S @CHNAMES @("AN",INP UTNAM,I)=" " | |
145 | .; | |
146 | .;FINALLY AWARD THE SECONDARY MENU FOR CRM REMOTE PROCS | |
147 | .; | |
148 | . Q:(+V AIEN'>0) | |
149 | .; | |
150 | . D G IV2ND(+VAI EN,.CHNAME S,I) | |
151 | . W ! ,"======== ====END "_ VAIEN_" == ========== =====",! | |
152 | ; | |
153 | ;K @CHNAM ES | |
154 | ; | |
155 | Q | |
156 | ; | |
157 | GIV2ND(ADU Z,CHNAMES, CHINCR) ; | |
158 | N CHMCRIE N,FDA,DIE, HAS2ND,ERR | |
159 | Q:+$G(ADU Z)'>0 | |
160 | S HAS2ND= $$CHK2ND(A DUZ) | |
161 | D REPCHMC R(HAS2ND) | |
162 | ;DON'T PR OCEED WITH ADDING IF THEY ALRE ADY HAVE I T... | |
163 | I HAS2ND S $P(@CHNA MES@(CHINC R,0),U,4)= 1 Q | |
164 | S CHMCRIE N=$$CHMCRI EN() | |
165 | ;TODO: co nsider loc king at th e subfile level. | |
166 | L +^VA(20 0,ADUZ,0): 5 I '$T D Q | |
167 | . S $P(@ CHNAMES@(C HINCR,0),U ,5)="New P erson reco rd locked" | |
168 | . W !,"S ORRY FILE IS LOCKED TRY LATER" H 2 Q | |
169 | S FDA(200 .03,"+1,"_ ADUZ_",",. 01)=CHMCRI EN | |
170 | D UPDATE^ DIE("","FD A","") | |
171 | W !!,"*** ********** ******",!, ?4,"CHMCRI EN: ",CHMC RIEN,!,?4, "ADUZ: ",A DUZ | |
172 | D MSG^DIA LOG() | |
173 | L -^VA(20 0,ADUZ,0) | |
174 | Q | |
175 | ; | |
176 | TAKE2ND(AD UZ) ; | |
177 | N CHMCRIE N,FDA,DIE, HAS2ND,ERR | |
178 | Q:+$G(ADU Z)'>0 | |
179 | S HAS2ND= $$CHK2ND(A DUZ) | |
180 | D REPCHMC R(HAS2ND) | |
181 | ;DON'T PR OCEED WITH REMOVAL I F THEY DON 'T ALREADY HAVE IT.. . | |
182 | I 'HAS2ND Q 0 | |
183 | S CHMCRIE N=$$CHMCRI EN() | |
184 | L +^VA(20 0,ADUZ,0): 5 I '$T D Q 0 | |
185 | . W !,"S ORRY FILE IS LOCKED TRY LATER" H 2 Q | |
186 | S FDA(200 .03,HAS2ND _","_ADUZ_ ",",.01)=" @" | |
187 | D UPDATE^ DIE("","FD A","") | |
188 | D MSG^DIA LOG() | |
189 | ;W:$D(ERR ) !,"There was an er ror adding the secon dary menu option." | |
190 | L -^VA(20 0,ADUZ,0) | |
191 | Q 1 | |
192 | CHK2ND(ADU Z) ; | |
193 | N I,FOUND ,CHMCRIEN | |
194 | S (I,FOUN D)=0 | |
195 | S CHMCRIE N=$$CHMCRI EN() Q:+$G (CHMCRIEN) '>0 0 | |
196 | F S I=$O (^VA(200,A DUZ,203,I) ) Q:((I'>0 )!(FOUND)) D | |
197 | . I $G(^ VA(200,ADU Z,203,I,0) )=CHMCRIEN S FOUND=I | |
198 | Q FOUND | |
199 | CHMCRIEN() ; | |
200 | N DIC,IEN | |
201 | S IEN="" | |
202 | S IEN=$$F IND1^DIC(1 9,,"B","CH MCR CONTEX T VLINK PR OXIES") | |
203 | Q IEN | |
204 | ; | |
205 | REPCHMCR(H ASCHM) ; | |
206 | I HASCHM D | |
207 | . W !!," This user already ha s CHMCR CO NTEXT VLIN K PROXIES as a secon dary " | |
208 | . W !,"m enu option " | |
209 | E D | |
210 | . W !!," This user does not y et have CH MCR CONTEX T VLINK PR OXIES as a " | |
211 | . W !,"s econdary m enu option " | |
212 | Q | |
213 | ; | |
214 | GETUSER(X) ; | |
215 | ;INPUT X : LOOKUP V ALUE IN 20 0 (MOST LI KELY NAME IN FORM LA ST,FIRST M I | |
216 | ; | |
217 | N Y,DIC | |
218 | S DIC="^V A(200," | |
219 | S DIC(0)= "MZ" | |
220 | D ^DIC | |
221 | ; | |
222 | Q Y | |
223 | GETUSERI(X ) ; | |
224 | ; | |
225 | N Y,DIC | |
226 | S DIC("A" )="Enter u ser (name) to give a ccess to: " | |
227 | S DIC="^V A(200," | |
228 | S DIC("B" )=X | |
229 | S DIC(0)= "AEQMZ" | |
230 | D ^DIC | |
231 | ; | |
232 | Q Y | |
233 | GETHFDIR() ; prompt for host f ile direct ory--eithe r John or Chad or le t user typ e in | |
234 | N DIR,X,Y ,DIRUT | |
235 | S DIR("B" )="J" | |
236 | S DIR(0)= "S^J:HAC_C ACHE$![HAC . DN S HEIGEJ.CRM 3];C:HAC_C ACHE$![HAC . DN S PETERC];E: Enter Anot her HFS Di rectory" | |
237 | S DIR("A" )="Select Host File or [E] to enter one" | |
238 | D ^DIR | |
239 | I $D(DIRU T) S RETUR N="" | |
240 | I Y="J" D | |
241 | . S RETURN=" HAC_CACHE$ :[HAC. DN S HEIGEJ.CRM 3]" | |
242 | E D | |
243 | . I Y="C " D | |
244 | .. S RETURN=" HAC_CACHE$ :[HAC. DN S PETERC]" | |
245 | . E D | |
246 | .. S R ETURN=$$TY PHFDIR() | |
247 | Q RETURN | |
248 | ADDREM() ; prompt wh ether you' re adding or removin g Secondar y Menu for Host File list of u sers | |
249 | ; removal is presum ably for t esting pur poses | |
250 | N DIR,X,Y ,DIRUT | |
251 | S DIR("B" )="A" | |
252 | S DIR(0)= "S^A:Add A ccess;R:Re move Acces s" | |
253 | S DIR("A" )="Are you adding or removing RPC 2ndary menu" | |
254 | D ^DIR | |
255 | I $D(DIRU T) D | |
256 | . S RETU RN="" | |
257 | E D | |
258 | . S RETU RN=Y | |
259 | Q RETURN | |
260 | TYPHFDIR() ; | |
261 | N DIR,X,Y ,DIRUT,RET URN,LEAD | |
262 | W !,"Comp lete the H FS spec wi th directo ry and sub directori es separat ed by [.]" | |
263 | S LEAD="H AC_CACHE$: [HAC." | |
264 | W !,"HFS SPEC: "_LE AD | |
265 | S DIR(0)= "FAr^10:79 ^K:'((X?.A N)!(X?.AN1 ""."".AN)) X" | |
266 | S DIR("A" )="Enter D IRs: " | |
267 | D ^DIR | |
268 | I $D(DIRU T) Q "" | |
269 | S RETURN= LEAD_Y_"]" | |
270 | Q RETURN | |
271 | GETFILE(DE FAULT) ; | |
272 | N DIR,X,Y ,DIRUT,RET URN | |
273 | S DIR("B" )=DEFAULT | |
274 | S DIR(0)= "FAr^2:79^ K:'((X?.AN )!(X?.AN1" "."".AN)) X" | |
275 | S DIR("A" )="Enter F ilename: " | |
276 | D ^DIR | |
277 | I $D(DIRU T) Q "" | |
278 | S RETURN= Y | |
279 | Q RETURN | |
280 | REPORTS ; Reporting for bulk a ccess assi gnment or removal of 2ndary me nu option | |
281 | ; | |
282 | N CHNAMES ,RUNID | |
283 | S CHNAMES =$NA(^XTMP ("CHMCR X0 2")) | |
284 | S RUNID=$ $PICKRUN() | |
285 | Q:RUNID'> 0 | |
286 | W !!," YO U PICKED " ,RUNID | |
287 | D ACCREP( RUNID) | |
288 | Q | |
289 | ACCREP(ID) ; | |
290 | ; | |
291 | ;Successf ul Updates | |
292 | D HDR("SU CCESSFULLY FOUND NAM ES") | |
293 | S NAME="" | |
294 | F S NAME =$O(@CHNAM ES@(ID,"AF ",NAME)) Q :NAME="" D | |
295 | . S I=0 | |
296 | . F S I =$O(@CHNAM ES@(ID,"AF ",NAME,I)) Q:I'>0 D | |
297 | .. S DA TANODE=$G( @CHNAMES@( ID,I,0)) | |
298 | .. W !, ?4,$P(DATA NODE,U),?3 2,$P(DATAN ODE,U,2),? 42,$P(DATA NODE,U,4) | |
299 | .. W !, ?4,$P(DATA NODE,U,3), ! | |
300 | ; | |
301 | ;Unsucces sful Updat es | |
302 | W !! | |
303 | Q:$$ASK() | |
304 | D HDR("FA IL TO FIND NAMES") | |
305 | S NAME="" | |
306 | F S NAME =$O(@CHNAM ES@(ID,"AN ",NAME)) Q :NAME="" D | |
307 | . S I=0 | |
308 | . F S I =$O(@CHNAM ES@(ID,"AN ",NAME,I)) Q:I'>0 D | |
309 | .. W !, $G(@CHNAME S@(ID,I,0) ) | |
310 | Q | |
311 | PICKRUN() ; Return: | |
312 | ; 0: no r uns on fil e | |
313 | ; -1: no r un selecte d | |
314 | ; date@t ime: sele cted run u nique id | |
315 | ; | |
316 | N RUNID,I ,DIR,X,Y,D IRUT,RETUR N,RUNIX | |
317 | S (I,RUNI D)=0 | |
318 | F S RUNI D=$O(@CHNA MES@(RUNID )) Q:RUNID '>0 D | |
319 | . S I=I+ 1 | |
320 | . S RUNI X(I,RUNID) ="" | |
321 | . W !!,? 4,$J(I,3), ". ",RUNI D | |
322 | ; | |
323 | I I>0 D | |
324 | . S DIR( 0)="N^1:"_ I | |
325 | . S DIR( "A")="Sele ct Run #: " | |
326 | . D ^DIR | |
327 | . I $D(D IRUT) S RU NID=-1 Q | |
328 | . S RUNI D=$O(RUNIX (+Y,0)) | |
329 | E D | |
330 | . S RUNI D=0 | |
331 | Q RUNID | |
332 | ; | |
333 | HDR(MSG) ; | |
334 | W @IOF,!! !,"REPORT OF BULK AC CESS REMOV AL OR ADDI TION "_MSG ,! | |
335 | Q | |
336 | ASK(HOLD) ;ask user 2 continue function | |
337 | ;return t rue (1) if user want 's 2 stop, false (0) 2 continu e. | |
338 | ;If HOLD defined, u se prompt 2 hold dis play until user hits return. | |
339 | ;If not t erminal th en, do not hing, retu rn FALSE. | |
340 | ; | |
341 | N STOP | |
342 | S STOP=0 | |
343 | I $E(IOST ,1,2)="C-" D | |
344 | .N RESP,D IR S RESP= 0 | |
345 | .I $G(HOL D) S DIR(0 )="EA",DIR ("A")="Ent er return to continu e. " | |
346 | .E S DIR (0)="E" | |
347 | .D ^DIR I Y="" S ST OP=0 | |
348 | .I $D(DIR UT) S STOP =1 | |
349 | Q STOP | |
350 | ;======== ========== ========== ========== ========== ========== ========== = | |
351 | CLEANASK() ; Ask use r if they want to cl ean out ol d XTMP run s | |
352 | ; removal is presum ably for t esting pur poses | |
353 | N DIR,X,Y ,DIRUT | |
354 | S DIR("B" )="N" | |
355 | S DIR(0)= "YA" | |
356 | S DIR("A" )="Are you sure? Cle an up old ^XTMP runs ? " | |
357 | S DIR("?" )="CAUTION : deletin g old runs will prev ent you fr om backing out an as signment r un." | |
358 | S DIR("?? ")="CHMCRX HOSTFILE PROCESSOR" | |
359 | D ^DIR | |
360 | I $D(DIRU T) D | |
361 | . S RETU RN="^" | |
362 | E D | |
363 | . S RETU RN=Y | |
364 | Q RETURN |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.