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

XOBWPA04.m

Go to the documentation of this file.
  1. XOBWPA04 ;OAK/BDT - HWSC :: Environmental Check ; 06/28/2016
  1. ;;1.0;HwscWebServiceClient;**4**;September 13, 2010;Build 9
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ; ***** IMPORTANT NOTE *******************************************
  1. ; This routine requires access to the manager (%SYS) namespace and
  1. ; can only be run by a user with permissions to that namespace.
  1. ; ****************************************************************
  1. ;
  1. ; Loads "xobw4.xml" into XOBW*1*4 transport global. Post-installation
  1. ; routine ^XOBWPA04 will reconstruct the file for the installation of Cache
  1. ; classes into VistA to support SSL. The "xobw4.xml"
  1. ; file must be in the PRIMARY HFS DIRECTORY prior to transport.
  1. ;
  1. ; Note: Make sure that there are no lines longer than 255 chars in the file
  1. ; to be loaded! It appears $$FTG is not creating overflow nodes.
  1. ;
  1. POST ;
  1. D SETDATA ;
  1. D IMPDATA ;
  1. Q
  1. GETDATA ; export data from xobw4.xml file
  1. N I,X,XFILE,XPATH,XREF
  1. K ^TMP($J,4)
  1. S XFILE="xobw4.xml"
  1. S XPATH=$$DEFDIR^%ZISH ;PRIMARY HFS DIRECTORY
  1. S XREF="^TMP("_$J_",4,1,0)"
  1. S X=$$FTG^%ZISH(XPATH,XFILE,XREF,3) ;Load file into global
  1. Q
  1. ;
  1. IMPDATA ; import data into xobw4.xml file
  1. N XDIR,XOBWY,Y
  1. S XDIR=$$DEFDIR^%ZISH
  1. S XREF="^TMP("_$J_",4,1,0)"
  1. S Y=$$GTF^%ZISH(XREF,3,XDIR,"xobw4.xml") ;Export ^TMP global to XML file
  1. K ^TMP($J,4)
  1. S XDIR=$$DEFDIR^%ZISH
  1. S XOBWY=$$IMPORT^XOBWLIB1(XDIR,"xobw4.xml") ;Import Cache classes
  1. IF 'XOBWY DO
  1. . DO BMES^XPDUTL("Error occurred during the importing of support classes file:")
  1. . DO MES^XPDUTL(" Directory: "_XDIR)
  1. . DO MES^XPDUTL(" File Name: "_"xobw4.xml")
  1. . DO MES^XPDUTL(" Error: "_$PIECE(XOBWY,"^",2))
  1. . DO MES^XPDUTL(" o Classes not imported.")
  1. ELSE DO
  1. . DO MES^XPDUTL(" o Support classes imported successfully.")
  1. . DO MES^XPDUTL(" ")
  1. Q
  1. ;
  1. SETDATA ;
  1. N I,IT
  1. K ^TMP($J,4)
  1. F I=1:1:158 S IT=$T(DATA+I) S ^TMP($J,4,I,0)=$P(IT,";;",2)
  1. Q
  1. DATA ;
  1. ;;<?xml version="1.0" encoding="UTF-8"?>
  1. ;;<Export generator="Cache" version="25" zv="Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2014.1.3 (Build 775)" ts="2016-06-10 11:14:51">
  1. ;;<Class name="xobw.WebServiceProxyFactory">
  1. ;;<Description><![CDATA[
  1. ;;This factory class contains methods to create web service proxy instances.
  1. ;;<br><br>As part of the creation process, web server ip/port resolution is performed and
  1. ;;any security implementation, as defined by ISS, is executed. ]]></Description>
  1. ;;<ClassType/>
  1. ;;<ProcedureBlock>1</ProcedureBlock>
  1. ;;<Super>%RegisteredObject</Super>
  1. ;;<TimeChanged>64072,51245.767727</TimeChanged>
  1. ;;<TimeCreated>60655,58903.754395</TimeCreated>
  1. ;;
  1. ;;<UDLText name="T">
  1. ;;<Content><![CDATA[
  1. ;;// 1.0;HwscWebServiceClient ;;September 13, 2010
  1. ;;
  1. ;;]]></Content>
  1. ;;</UDLText>
  1. ;;
  1. ;;<UDLText name="T">
  1. ;;<Content><![CDATA[
  1. ;;// HealtheVet Web Service Client v1 [Build: 1.0.1.009]
  1. ;;
  1. ;;]]></Content>
  1. ;;</UDLText>
  1. ;;
  1. ;;<Property name="webServiceMetadata">
  1. ;;<Type>WebServiceMetadata</Type>
  1. ;;<Private>1</Private>
  1. ;;</Property>
  1. ;;
  1. ;;<Method name="%OnNew">
  1. ;;<FormalSpec>webServiceName:%String</FormalSpec>
  1. ;;<ReturnType>%Status</ReturnType>
  1. ;;<Implementation><![CDATA[
  1. ;; set webServiceId=##class(xobw.WebServiceMetadata).getWebServiceId(webServiceName)
  1. ;; if 'webServiceId {
  1. ;; do ##class(xobw.error.DialogError).forceError(186006_"^"_webServiceName)
  1. ;; }
  1. ;; set ..webServiceMetadata=##class(xobw.WebServiceMetadata).%OpenId(webServiceId)
  1. ;; quit $$$OK
  1. ;;]]></Implementation>
  1. ;;</Method>
  1. ;;
  1. ;;<Method name="getProxy">
  1. ;;<Description><![CDATA[
  1. ;;Creates web service client proxy for a web server.
  1. ;;<ul>
  1. ;;Parameter:
  1. ;; <li><parameter>webServerName = name of server as it appears in NAME (#.01) field of a WEB SERVER (#18.12) file entry</parameter>
  1. ;;</ul>]]></Description>
  1. ;;<FormalSpec>webServerName:%String</FormalSpec>
  1. ;;<ReturnType>%SOAP.WebClient</ReturnType>
  1. ;;<Implementation><![CDATA[
  1. ;; // Future: Add any required headers to proxy when discovered, if any
  1. ;; new %proxy
  1. ;; if ..webServiceMetadata.type'=1 {
  1. ;; do ##class(xobw.error.DialogError).forceError(186007)
  1. ;; }
  1. ;; xecute "set %proxy=##class("_..webServiceMetadata.proxyClassName_").%New()"
  1. ;; if %proxy'=$$$NULLOREF {
  1. ;; set webServerId=##class(xobw.WebServer).getWebServerId(webServerName)
  1. ;; if 'webServerId {
  1. ;; do ##class(xobw.error.DialogError).forceError(186005_"^"_webServerName)
  1. ;; }
  1. ;; set webServer=##class(xobw.WebServer).%OpenId(webServerId)
  1. ;;
  1. ;; // web server is disabled
  1. ;; if 'webServer.status {
  1. ;; do ##class(xobw.error.DialogError).forceError(186002_"^"_webServer.name)
  1. ;; }
  1. ;;
  1. ;; do ..setUpCredentials(webServer, %proxy)
  1. ;; do ..setUpLocation(webServer, %proxy)
  1. ;; }
  1. ;; quit $get(%proxy)
  1. ;;]]></Implementation>
  1. ;;</Method>
  1. ;;
  1. ;;<Method name="setUpCredentials">
  1. ;;<FormalSpec>webServer:WebServer,proxy:%SOAP.WebClient</FormalSpec>
  1. ;;<Private>1</Private>
  1. ;;<Implementation><![CDATA[
  1. ;; set authorizedWebServiceId=##class(xobw.WebServicesAuthorized).getAuthorizedWebServiceId(webServer,..webServiceMetadata)
  1. ;;
  1. ;; // web service is not authorized
  1. ;; if 'authorizedWebServiceId {
  1. ;; do ##class(xobw.error.DialogError).forceError(186003_"^"_..webServiceMetadata.name_"^"_webServer.name)
  1. ;; }
  1. ;;
  1. ;; set authorizedWebService=##class(xobw.WebServicesAuthorized).%OpenId(authorizedWebServiceId)
  1. ;;
  1. ;; // web service is disabled
  1. ;; if 'authorizedWebService.status {
  1. ;; do ##class(xobw.error.DialogError).forceError(186004_"^"_..webServiceMetadata.name_"^"_webServer.name)
  1. ;; }
  1. ;;
  1. ;; if webServer.loginRequired="1"!(webServer.loginRequired="") {
  1. ;; set proxy.HttpUsername=webServer.userName
  1. ;; set proxy.HttpPassword=webServer.getPassword()
  1. ;; }
  1. ;; quit
  1. ;;]]></Implementation>
  1. ;;</Method>
  1. ;;
  1. ;;<Method name="setUpLocation">
  1. ;;<FormalSpec>webServer:WebServer,proxy:%SOAP.WebClient</FormalSpec>
  1. ;;<Private>1</Private>
  1. ;;<Implementation><![CDATA[
  1. ;; if (webServer.sslEnabled && ('$$SSLOK^XOBWENV())) {
  1. ;; do ##class(xobw.error.DialogError).forceError(186002_"^"_webServer.name_" (SSL is disabled on VMS)")
  1. ;; }
  1. ;; if (webServer.sslEnabled) {
  1. ;; set proxy.Location="https://"_webServer.server_":"_webServer.sslPort_"/"_..webServiceMetadata.contextRoot
  1. ;; set proxy.SSLConfiguration = webServer.sslConfiguration
  1. ;; set proxy.SSLCheckServerIdentity = 0
  1. ;; } else {
  1. ;; set proxy.Location="http://"_webServer.server_":"_webServer.port_"/"_..webServiceMetadata.contextRoot
  1. ;; }
  1. ;; set proxy.Timeout=webServer.defaultTimeout
  1. ;; quit
  1. ;;]]></Implementation>
  1. ;;</Method>
  1. ;;
  1. ;;<Method name="close">
  1. ;;<Description><![CDATA[
  1. ;;Close web service proxy factory
  1. ;;<br>
  1. ;;<br>Performs any close processing activities required.]]></Description>
  1. ;;<ReturnType>%Status</ReturnType>
  1. ;;<Implementation><![CDATA[ quit $$$OK
  1. ;;]]></Implementation>
  1. ;;</Method>
  1. ;;
  1. ;;<Method name="getWebServiceProxy">
  1. ;;<Description><![CDATA[
  1. ;;Create web service proxy
  1. ;;<ul>
  1. ;;Parameters:
  1. ;; <li><parameter>webServiceName = name of service as it appears NAME (#.01) field in an WEB SERVICE (#18.02) file entry</parameter>
  1. ;; <li><parameter>webServerName = name of server as it appears NAME (#.01) field in an WEB SERVER (#18.12) file entry</parameter>
  1. ;;</ul>
  1. ;;<br><b>Restricted Use:</b> This method is for HWSC use only. Applications should use the $$GETPROXY^XOBWLB(...) API]]></Description>
  1. ;;<ClassMethod>1</ClassMethod>
  1. ;;<FormalSpec>webServiceName:%String,webServerName:%String</FormalSpec>
  1. ;;<ReturnType>%SOAP.WebClient</ReturnType>
  1. ;;<Implementation><![CDATA[
  1. ;; set factory=##class(xobw.WebServiceProxyFactory).%New(webServiceName)
  1. ;; if factory'=$$$NULLOREF {
  1. ;; set proxy=factory.getProxy(webServerName)
  1. ;; set ok=factory.close()
  1. ;; }
  1. ;; quit $get(proxy,$$$NULLOREF)
  1. ;;]]></Implementation>
  1. ;;</Method>
  1. ;;</Class>
  1. ;;</Export>