[613] | 1 | XWBRMX ;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 | ;
|
---|
| 11 | EN(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 | ;
|
---|
| 22 | ENQ Q
|
---|
| 23 | ;
|
---|
| 24 | SET(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 | ;
|
---|
| 30 | ESC(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 | ;
|
---|
| 39 | ELEST(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 | ;
|
---|
| 63 | ELEND(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 | ;
|
---|
| 73 | CHR(TXT) ;
|
---|
| 74 | ; -- // TODO: make dynamic off RPC app config
|
---|
| 75 | IF $G(XWBDATA("APP"))="RPC" DO CHR^XWBRPC(.TXT)
|
---|
| 76 | Q
|
---|
| 77 | ;
|
---|