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

XOBVRM.m

Go to the documentation of this file.
  1. XOBVRM ;; mjk/alb - VistaLink Request Manager ; 07/27/2002 13:00
  1. ;;1.5;VistALink;;Sep 09, 2005
  1. ;;Foundations Toolbox Release v1.5 [Build: 1.5.0.026]
  1. ;
  1. QUIT
  1. ;
  1. ; --------------------------------------------------------------------------------
  1. ; Request Manager
  1. ; --------------------------------------------------------------------------------
  1. ;
  1. EN(XOBROOT,XOBDATA,XOBHDLR) ; -- main entry point for Request Manager
  1. NEW XOBOK,XOBOPT
  1. SET XOBOK=0
  1. ;
  1. ; -- if 'current' request handler is not defined then parse xml global buffer
  1. ; Note: 'Current' request handler could be define already via proprietary format reader
  1. IF $GET(XOBHDLR)="" SET XOBOPT="" DO EN^XOBVRMX(XOBROOT,.XOBOPT,.XOBDATA,.XOBHDLR)
  1. ;
  1. ; -- default single call processing if not specified by request handler
  1. IF $GET(XOBDATA("MODE"),"single call")="single call" SET XOBSTOP=1
  1. ;
  1. ; -- check if request handler info was successfully initialized / if not, throw exception
  1. SET XOBHDLR=+$GET(XOBHDLR)
  1. IF '$GET(XOBHDLR(XOBHDLR)) DO GOTO ENQ
  1. . DO RMERR(184001,$GET(XOBHDLR(XOBHDLR,"ERROR"),"Request Manager not defined"))
  1. . SET XOBOK=0
  1. ;
  1. ; -- do authtentication check for message type?
  1. IF $GET(XOBHDLR(XOBHDLR,"AUTHENTICATE")) DO
  1. . SET XOBOK=$$LOGGEDON^XOBSCAV()
  1. ELSE DO
  1. . SET XOBOK=1
  1. ;
  1. ; -- call request handler
  1. IF XOBOK XECUTE $GET(XOBHDLR(XOBHDLR,"REQHDLR"))
  1. ;
  1. ENQ ;
  1. QUIT XOBOK
  1. ;
  1. ; ----------------------------------------------------------------------------------
  1. ; Request Manager Error Handler
  1. ; ----------------------------------------------------------------------------------
  1. RMERR(XOBCODE,XOBMSG) ; -- send request error message
  1. NEW XOBDAT
  1. SET XOBDAT("MESSAGE TYPE")=3
  1. SET XOBDAT("ERRORS",1,"FAULT STRING")="System Error"
  1. SET XOBDAT("ERRORS",1,"FAULT ACTOR")="Request Manager"
  1. SET XOBDAT("ERRORS",1,"CODE")=XOBCODE
  1. SET XOBDAT("ERRORS",1,"ERROR TYPE")="Request Manager"
  1. SET XOBDAT("ERRORS",1,"CDATA")=0
  1. SET XOBDAT("ERRORS",1,"MESSAGE",1)=$$EZBLD^DIALOG(XOBCODE,XOBMSG)
  1. DO ERROR^XOBVLIB(.XOBDAT)
  1. DO ^%ZTER
  1. QUIT
  1. ;