1 | XWBVLC ;OIFO-Oakland/REM - M2M Broker Client ;05/17/2002 17:47
|
---|
2 | ;;1.1;RPC BROKER;**28**;Mar 28, 1997
|
---|
3 | ;QUIT
|
---|
4 | ;
|
---|
5 | EXECUTE(XWBPARMS) ; -- Main entry point
|
---|
6 | NEW X,XWBI,XWBOK,XWBRES,XWBREF,XWBROOT,XWBREQ,XWBREAD,XWBTO,XWBFIRST,XWBSTOP
|
---|
7 | NEW $ETRAP,$ESTACK S $ETRAP="D SYSERR^XWBVLL"
|
---|
8 | ;
|
---|
9 | ; -- if no 'results' node set, set it and kill it!
|
---|
10 | IF $G(XWBPARMS("RESULTS"))="" SET XWBPARMS("RESULTS")=$NA(^TMP("XWBM2MVLC",$J,"XML"))
|
---|
11 | SET XWBROOT=XWBPARMS("RESULTS")
|
---|
12 | KILL @XWBROOT
|
---|
13 | ;
|
---|
14 | SET XWBREQ=XWBPARMS("REQUEST")
|
---|
15 | ;
|
---|
16 | SET XWBRES=0
|
---|
17 | ;
|
---|
18 | ; -- check for socket information **M2M - use later for error chk
|
---|
19 | ;IF '$D(XWBPARMS("ADDRESS")) D CLIERR(1,.XWBROOT) GOTO MAINQ
|
---|
20 | ;IF '$D(XWBPARMS("PORT")) D CLIERR(2,.XWBROOT) GOTO MAINQ
|
---|
21 | ; Retry open 3 times
|
---|
22 | ;SET XWBPARMS("RETRIES")=3
|
---|
23 | ;
|
---|
24 | ;IF '$$OPEN^XWBRL(.XWBPARMS) D CLIERR(3,.XWBROOT) GOTO MAINQ ;can pull out after it works with M2M **REM
|
---|
25 | ;
|
---|
26 | ; -- write request
|
---|
27 | DO PRE^XWBRL
|
---|
28 | SET XWBI=0 FOR SET XWBI=$O(@XWBREQ@(XWBI)) Q:'XWBI DO WRITE^XWBRL(@XWBREQ@(XWBI))
|
---|
29 | ;
|
---|
30 | ;IF $G(XWBDBUG) S X=$G(XWBPARMS("URI")) M ^TMP("XWBM2MCL",X)=XWBPARMS
|
---|
31 | ;
|
---|
32 | ; -- send eot and flush buffer
|
---|
33 | DO POST^XWBRL
|
---|
34 | ;
|
---|
35 | SET XWBREAD=20,XWBTO=1,XWBFIRST=0,XWBSTOP=0
|
---|
36 | ;
|
---|
37 | ; -- set parameters for RawLink
|
---|
38 | SET XWBRL("TIME OUT")=1
|
---|
39 | SET XWBRL("READ CHARACTERS")=20
|
---|
40 | SET XWBRL("FIRST READ")=0
|
---|
41 | SET XWBRL("STORE")=XWBROOT
|
---|
42 | SET XWBRL("STOP FLAG")=0
|
---|
43 | ;
|
---|
44 | ; -- read results
|
---|
45 | SET XWBOK=$$READ^XWBRL(XWBROOT,.XWBREAD,.XWBTO,.XWBFIRST,.XWBSTOP)
|
---|
46 | ;
|
---|
47 | ;-------------------------------------------------------
|
---|
48 | ; -- close port - - delete after close works **REM
|
---|
49 | ;IF $G(XWBPARMS("MODE"))'="RPCBroker" D CLOSE^XWBRL
|
---|
50 | ;
|
---|
51 | ;D CLOSE^XWBRL ;Comment out for M2M
|
---|
52 | ;---------------------------------------------------------------
|
---|
53 | ;
|
---|
54 | ; -- app processes data (0 = success) ; I think 0 = failure **REM
|
---|
55 | SET XWBRES=1
|
---|
56 | ;
|
---|
57 | MAINQ ;
|
---|
58 | QUIT XWBRES
|
---|
59 | ;
|
---|
60 | ; ----------------------------------------------------------------------------------
|
---|
61 | ; Client Error Handler
|
---|
62 | ; ----------------------------------------------------------------------------------
|
---|
63 | CLIERR(XWBCODE,XWBROOT) ; -- send client error message
|
---|
64 | NEW XWBDAT
|
---|
65 | SET XWBDAT("MESSAGE TYPE")="Gov.VA.Med.Foundations.Errors"
|
---|
66 | SET XWBDAT("ERRORS",1,"CODE")=1
|
---|
67 | SET XWBDAT("ERRORS",1,"ERROR TYPE")="client"
|
---|
68 | SET XWBDAT("ERRORS",1,"CDATA")=1
|
---|
69 | SET XWBDAT("ERRORS",1,"MESSAGE",1)=$P($TEXT(CLIERRS+XWBCODE),";;",2)
|
---|
70 | DO BUILD^XWBUTL(.XWBROOT,.XWBDAT)
|
---|
71 | QUIT
|
---|
72 | ;
|
---|
73 | CLIERRS ; -- VistALink client errors
|
---|
74 | ;;'Address' parameter not specified.
|
---|
75 | ;;'Port' parameter not specified.
|
---|
76 | ;;"Not able to open port"
|
---|