Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XWBVLC

XWBVLC.m

Go to the documentation of this file.
  1. XWBVLC ;OIFO-Oakland/REM - M2M Broker Client ;05/17/2002 17:47
  1. ;;1.1;RPC BROKER;**28**;Mar 28, 1997
  1. ;QUIT
  1. ;
  1. EXECUTE(XWBPARMS) ; -- Main entry point
  1. NEW X,XWBI,XWBOK,XWBRES,XWBREF,XWBROOT,XWBREQ,XWBREAD,XWBTO,XWBFIRST,XWBSTOP
  1. NEW $ETRAP,$ESTACK S $ETRAP="D SYSERR^XWBVLL"
  1. ;
  1. ; -- if no 'results' node set, set it and kill it!
  1. IF $G(XWBPARMS("RESULTS"))="" SET XWBPARMS("RESULTS")=$NA(^TMP("XWBM2MVLC",$J,"XML"))
  1. SET XWBROOT=XWBPARMS("RESULTS")
  1. KILL @XWBROOT
  1. ;
  1. SET XWBREQ=XWBPARMS("REQUEST")
  1. ;
  1. SET XWBRES=0
  1. ;
  1. ; -- check for socket information **M2M - use later for error chk
  1. ;IF '$D(XWBPARMS("ADDRESS")) D CLIERR(1,.XWBROOT) GOTO MAINQ
  1. ;IF '$D(XWBPARMS("PORT")) D CLIERR(2,.XWBROOT) GOTO MAINQ
  1. ; Retry open 3 times
  1. ;SET XWBPARMS("RETRIES")=3
  1. ;
  1. ;IF '$$OPEN^XWBRL(.XWBPARMS) D CLIERR(3,.XWBROOT) GOTO MAINQ ;can pull out after it works with M2M **REM
  1. ;
  1. ; -- write request
  1. DO PRE^XWBRL
  1. SET XWBI=0 FOR SET XWBI=$O(@XWBREQ@(XWBI)) Q:'XWBI DO WRITE^XWBRL(@XWBREQ@(XWBI))
  1. ;
  1. ;IF $G(XWBDBUG) S X=$G(XWBPARMS("URI")) M ^TMP("XWBM2MCL",X)=XWBPARMS
  1. ;
  1. ; -- send eot and flush buffer
  1. DO POST^XWBRL
  1. ;
  1. SET XWBREAD=20,XWBTO=1,XWBFIRST=0,XWBSTOP=0
  1. ;
  1. ; -- set parameters for RawLink
  1. SET XWBRL("TIME OUT")=1
  1. SET XWBRL("READ CHARACTERS")=20
  1. SET XWBRL("FIRST READ")=0
  1. SET XWBRL("STORE")=XWBROOT
  1. SET XWBRL("STOP FLAG")=0
  1. ;
  1. ; -- read results
  1. SET XWBOK=$$READ^XWBRL(XWBROOT,.XWBREAD,.XWBTO,.XWBFIRST,.XWBSTOP)
  1. ;
  1. ;-------------------------------------------------------
  1. ; -- close port - - delete after close works **REM
  1. ;IF $G(XWBPARMS("MODE"))'="RPCBroker" D CLOSE^XWBRL
  1. ;
  1. ;D CLOSE^XWBRL ;Comment out for M2M
  1. ;---------------------------------------------------------------
  1. ;
  1. ; -- app processes data (0 = success) ; I think 0 = failure **REM
  1. SET XWBRES=1
  1. ;
  1. MAINQ ;
  1. QUIT XWBRES
  1. ;
  1. ; ----------------------------------------------------------------------------------
  1. ; Client Error Handler
  1. ; ----------------------------------------------------------------------------------
  1. CLIERR(XWBCODE,XWBROOT) ; -- send client error message
  1. NEW XWBDAT
  1. SET XWBDAT("MESSAGE TYPE")="Gov.VA.Med.Foundations.Errors"
  1. SET XWBDAT("ERRORS",1,"CODE")=1
  1. SET XWBDAT("ERRORS",1,"ERROR TYPE")="client"
  1. SET XWBDAT("ERRORS",1,"CDATA")=1
  1. SET XWBDAT("ERRORS",1,"MESSAGE",1)=$P($TEXT(CLIERRS+XWBCODE),";;",2)
  1. DO BUILD^XWBUTL(.XWBROOT,.XWBDAT)
  1. QUIT
  1. ;
  1. CLIERRS ; -- VistALink client errors
  1. ;;'Address' parameter not specified.
  1. ;;'Port' parameter not specified.
  1. ;;"Not able to open port"