source: FOIAVistA/trunk/r/RPC_BROKER-XWB/XWBRMX.m@ 1800

Last change on this file since 1800 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 2.3 KB
Line 
1XWBRMX ;OIFO-Oakland/REM - M2M Broker Server Request Mgr ;05/17/2002 17:41
2 ;;1.1;RPC BROKER;**28**;Mar 28, 1997
3 ;
4 QUIT
5 ;----------------------------------------------------------------------
6 ;
7 ; Request Manager -Parse XML Requests using SAX interface
8 ;
9 ;----------------------------------------------------------------------
10 ;
11EN(DOC,XWBOPT,XWBDATA) ; -- Parse XML uses SAX parser
12 N XWBCBK,XWBINVAL
13 SET XWBINVAL="#UNKNOWN#"
14 ;
15 SET XWBDATA("DUZ")=XWBINVAL ;**M2M don't need duz
16 SET XWBDATA("SECTOKEN")=XWBINVAL
17 DO SET(.XWBCBK)
18 DO EN^MXMLPRSE(DOC,.XWBCBK,.XWBOPT)
19 ;
20 ;;D ^%ZTER
21 ;
22ENQ Q
23 ;
24SET(CBK) ; -- set the event interface entry points
25 SET XWBCBK("STARTELEMENT")="ELEST^XWBRMX"
26 SET XWBCBK("ENDELEMENT")="ELEND^XWBRMX"
27 SET XWBCBK("CHARACTERS")="CHR^XWBRMX"
28 QUIT
29 ;
30ESC(X) ; -- convert special characters to \x format
31 Q X
32 ;
33 N C,Y,Z
34 F Z=1:1 S C=$E(X,Z) Q:C="" D
35 .S Y=$TR(C,$C(9,10,13,92),"tnc")
36 .S:C'=Y $E(X,Z)="" ;$S(Y="":"\\",1:"\"_Y),Z=Z+1
37 Q X
38 ;
39ELEST(ELE,ATR) ; -- element start
40 IF ELE="vistalink",$G(ATR("type"))="Gov.VA.Med.RPC.Request" DO
41 . SET XWBDATA("APP")="RPC"
42 . ;SET XWBDATA("MODE")=$G(ATR("mode"),"singleton") ;Comment out for M2M
43 . SET XWBDATA("MODE")=$G(ATR("mode"),"RPCBroker") ;M2M change to RPCBroker
44 ;
45 IF ELE="vistalink",$G(ATR("type"))="Gov.VA.Med.Foundations.CloseSocketRequest" DO QUIT
46 . SET XWBDATA("APP")="CLOSE"
47 . SET XWBDATA("MODE")=$G(ATR("mode"),"single call")
48 ;
49 IF ELE="session" SET XWBSESS=1 QUIT
50 ; -- set session vars here so apps can use during xml parsing
51 ;
52 ;*M2M - check for RPCBroker
53 IF $G(XWBSESS) DO QUIT
54 .IF ELE="duz" SET (DUZ,XWBDATA("DUZ"))=$G(ATR("value")) IF +DUZ=0 SET (DUZ,XWBDATA("DUZ"))=XWBINVAL QUIT
55 . IF $G(XWBSEC) DO QUIT
56 . . IF ELE="token" SET XWBDATA("SECTOKEN")=$G(ATR("value")) IF XWBDATA("SECTOKEN")="" SET XWBDATA("SECTOKEN")=XWBINVAL QUIT
57 . IF ELE="security" SET XWBSEC=1 QUIT
58 ;
59 ; -- // TODO: make dynamic off RPC app config
60 IF $GET(XWBDATA("APP"))="RPC" DO ELEST^XWBRPC(.ELE,.ATR)
61 Q
62 ;
63ELEND(ELE) ; -- element end
64 IF ELE="session" KILL XWBSESS QUIT
65 IF $G(XWBSESS) DO QUIT
66 . IF ELE="security" KILL XWBSEC
67 ;
68 ;
69 ; -- // TODO: make dynamic off RPC app config
70 IF $G(XWBDATA("APP"))="RPC" DO ELEND^XWBRPC(.ELE)
71 Q
72 ;
73CHR(TXT) ;
74 ; -- // TODO: make dynamic off RPC app config
75 IF $G(XWBDATA("APP"))="RPC" DO CHR^XWBRPC(.TXT)
76 Q
77 ;
Note: See TracBrowser for help on using the repository browser.