Skip to main content

EnsLib.SOAP.OutboundAdapter

class EnsLib.SOAP.OutboundAdapter extends Ens.OutboundAdapter

Adapter that handles internal service requests by acting as a SOAP client to an external SOAP server.

Property Inventory

Method Inventory

Parameters

parameter SETTINGS = RegistryID:Basic:selector?context={Ens.ServiceRegistry.External.ContextSearch/Services?Protocols_1=SOAP},WebServiceURL:Basic,WebServiceClientClass:Basic,SOAPCredentials:Basic:credentialsSelector,Credentials:Basic:credentialsSelector,SSLConfig:Connection:sslConfigSelector,SSLCheckServerIdentity:Connection,ProxyServer:Proxy,ProxyPort:Proxy,ProxyHTTPS:Proxy,ProxyHttpTunnel:Proxy,ProxyHttpSSLConnect:Proxy,ConnectTimeout:Connection,ResponseTimeout:Connection,IncludeRequestKeyInHTTPHeader:DelayedResponseSupport,WriteTimeout:Connection,ProvideMetricsForSAM:Alerting;
Inherited description: List of properties can be set as settings in the configuration file format is a comma separated list of property names

Properties

property %Client as %SOAP.WebClient;
Private instance of the WebServiceClientClass
Property methods: %ClientGet(), %ClientGetSwizzled(), %ClientIsValid(), %ClientNewObject(), %ClientSet()
property %SOAPCredentialsObj as Ens.Config.Credentials;
Contains the WSSecurityLogin values to be used if needed to access the SOAP service (Parallels the %CredentialsObj property inherited from Ens.Adapter)
Property methods: %SOAPCredentialsObjGet(), %SOAPCredentialsObjGetObject(), %SOAPCredentialsObjGetObjectId(), %SOAPCredentialsObjGetSwizzled(), %SOAPCredentialsObjIsValid(), %SOAPCredentialsObjNewObject(), %SOAPCredentialsObjSet(), %SOAPCredentialsObjSetObject(), %SOAPCredentialsObjSetObjectId(), %SOAPCredentialsObjUnSwizzle()
property ConnectTimeout as %Numeric (MINVAL = 0) [ InitialExpression = 5 ];
Number of seconds to wait on each connection attempt
Property methods: ConnectTimeoutDisplayToLogical(), ConnectTimeoutGet(), ConnectTimeoutIsValid(), ConnectTimeoutLogicalToDisplay(), ConnectTimeoutNormalize()
property Credentials as %String;
Names the Credentials entry containing the Username and Password values used to make the HTTP connection to the SOAP server
Property methods: CredentialsDisplayToLogical(), CredentialsGet(), CredentialsIsValid(), CredentialsLogicalToDisplay(), CredentialsLogicalToOdbc(), CredentialsNormalize()
property HttpVersion as %String [ InitialExpression = "1.1" ];
The HTTP version the Adapter should report in the HTTP request it sends to the server
Property methods: HttpVersionDisplayToLogical(), HttpVersionGet(), HttpVersionIsValid(), HttpVersionLogicalToDisplay(), HttpVersionLogicalToOdbc(), HttpVersionNormalize()
property IncludeRequestKeyInHTTPHeader as %Boolean [ InitialExpression = 0 ];
If enabled this setting will include in the HTTP Headers:
VND.InterSystems.IRIS.RequestKey OR
VND.InterSystems.IRIS.RetryRequestKey
with a value of a System GUID combined with current namespace and current request header ID
The HTTP header VND.InterSystems.IRIS.ResponseTimeout will also be included with a value of ResponseTimeout.
The default is off.
This setting is intended to be used in conjunction with a target SOAP service which is an IRIS Interoperability Production SOAP Service, enabled to support returning the original response of a delayed Synchronous Send for a retried request following one or more response timeouts.
Do Not enable if the request payload is changed by the host class on retrying with an expected different response from the original request.
For InterSystems IRIS to InterSystems IRIS communication this setting is used in conjunction with the target service setting of SupportDelayedResponseForRequest.
Property methods: IncludeRequestKeyInHTTPHeaderDisplayToLogical(), IncludeRequestKeyInHTTPHeaderGet(), IncludeRequestKeyInHTTPHeaderIsValid(), IncludeRequestKeyInHTTPHeaderLogicalToDisplay(), IncludeRequestKeyInHTTPHeaderNormalize(), IncludeRequestKeyInHTTPHeaderSet()
property ProvideMetricsForSAM as %Boolean [ InitialExpression = 0 ];
If SAM for interoperability is enabled then report HTTP request metrics as given in Ens.SAM.SensorDefinitions for EnsHTTPRequest.
Property methods: ProvideMetricsForSAMDisplayToLogical(), ProvideMetricsForSAMGet(), ProvideMetricsForSAMIsValid(), ProvideMetricsForSAMLogicalToDisplay(), ProvideMetricsForSAMNormalize(), ProvideMetricsForSAMSet()
property ProxyHTTPS as %Boolean;
Should the proxy (if any) use HTTPS to communicate with the real HTTP/HTTPS server?
Property methods: ProxyHTTPSDisplayToLogical(), ProxyHTTPSGet(), ProxyHTTPSIsValid(), ProxyHTTPSLogicalToDisplay(), ProxyHTTPSNormalize()
property ProxyHttpSSLConnect as %Boolean;
Should the Adapter use a proxy SSL connection to the proxy (if any)? Note: the use of SSL to the eventual endpoint is determined by the protocol part of web service's location url.
Property methods: ProxyHttpSSLConnectDisplayToLogical(), ProxyHttpSSLConnectGet(), ProxyHttpSSLConnectIsValid(), ProxyHttpSSLConnectLogicalToDisplay(), ProxyHttpSSLConnectNormalize()
property ProxyHttpTunnel as %Boolean;
Should the Adapter use the HTTP CONNECT command to establish a tunnel through the proxy to the target HTTP server?
Property methods: ProxyHttpTunnelDisplayToLogical(), ProxyHttpTunnelGet(), ProxyHttpTunnelIsValid(), ProxyHttpTunnelLogicalToDisplay(), ProxyHttpTunnelNormalize()
property ProxyPort as %Integer [ InitialExpression = 80 ];
Proxy server port on which to send HTTP requests if using a proxy server
Property methods: ProxyPortDisplayToLogical(), ProxyPortGet(), ProxyPortIsValid(), ProxyPortLogicalToDisplay(), ProxyPortNormalize()
property ProxyServer as %String (MAXLEN = 1000);
Proxy server through which to send HTTP requests, if any
Property methods: ProxyServerDisplayToLogical(), ProxyServerGet(), ProxyServerIsValid(), ProxyServerLogicalToDisplay(), ProxyServerLogicalToOdbc(), ProxyServerNormalize()
property ResponseTimeout as %Numeric (MINVAL = -1) [ InitialExpression = 30 ];
Timeout for getting a response from the remote SOAP server (the timeout for opening the connection to the server is always 5 seconds). Setting the timeout to -1 means wait forever.
Property methods: ResponseTimeoutDisplayToLogical(), ResponseTimeoutGet(), ResponseTimeoutIsValid(), ResponseTimeoutLogicalToDisplay(), ResponseTimeoutNormalize()
property SAMDefinitionClass as %String [ InitialExpression = "Ens.SAM.SensorDefinitions" ];
Class that contains the XData JSON definition
Property methods: SAMDefinitionClassDisplayToLogical(), SAMDefinitionClassGet(), SAMDefinitionClassIsValid(), SAMDefinitionClassLogicalToDisplay(), SAMDefinitionClassLogicalToOdbc(), SAMDefinitionClassNormalize(), SAMDefinitionClassSet()
property SAMDefinitionXData as %String [ InitialExpression = "EnsHTTPRequest" ];
XData JSON definition name
Property methods: SAMDefinitionXDataDisplayToLogical(), SAMDefinitionXDataGet(), SAMDefinitionXDataIsValid(), SAMDefinitionXDataLogicalToDisplay(), SAMDefinitionXDataLogicalToOdbc(), SAMDefinitionXDataNormalize(), SAMDefinitionXDataSet()
property SOAPCredentials as %String;
Names the Credentials entry containing the Username and Password values to be used for WSSecurityLogin basic authentication if needed to access the SOAP service
Property methods: SOAPCredentialsDisplayToLogical(), SOAPCredentialsGet(), SOAPCredentialsIsValid(), SOAPCredentialsLogicalToDisplay(), SOAPCredentialsLogicalToOdbc(), SOAPCredentialsNormalize()
property SSLCheckServerIdentity as %Boolean [ InitialExpression = 1 ];
When making an SSL connection check the server identity in the certificate matches the name of the system we are connecting to. This defaults to being on and matches based on the rules layed out in section 3.1 of RFC 2818.
Property methods: SSLCheckServerIdentityDisplayToLogical(), SSLCheckServerIdentityGet(), SSLCheckServerIdentityIsValid(), SSLCheckServerIdentityLogicalToDisplay(), SSLCheckServerIdentityNormalize(), SSLCheckServerIdentitySet()
property SSLConfig as %String;
The name of an existing SSL/TLS system configuration set to use (Secure Socket Layer / Transport Layer Security, configured via the system portal's Security Management page) Note that for this setting to take effect you must ensure that https:// is used in WebServiceURL or in the default location declared in the WebService Client class
Property methods: SSLConfigDisplayToLogical(), SSLConfigGet(), SSLConfigIsValid(), SSLConfigLogicalToDisplay(), SSLConfigLogicalToOdbc(), SSLConfigNormalize()
property WebServiceClientClass as %String (MAXLEN = 1000);
Names the Client Class that describes the WebService, generated by the SOAP Client Wizard add-in
Property methods: WebServiceClientClassDisplayToLogical(), WebServiceClientClassGet(), WebServiceClientClassIsValid(), WebServiceClientClassLogicalToDisplay(), WebServiceClientClassLogicalToOdbc(), WebServiceClientClassNormalize()
property WebServiceURL as %String (MAXLEN = 1000) [ InitialExpression = "<default>" ];
Declares the live URL target location for the WebService to be invoked. If not given, the default location declared in the WebService Client class will be used.

Note that SSL will only work if the URL starts with the https:// protocol prefix.

Property methods: WebServiceURLDisplayToLogical(), WebServiceURLGet(), WebServiceURLIsValid(), WebServiceURLLogicalToDisplay(), WebServiceURLLogicalToOdbc(), WebServiceURLNormalize()
property WriteTimeout as %Numeric (MINVAL = -1) [ InitialExpression = -1 ];
Set this to the timeout to use when writing to the remote HTTP server.
The default of -1 means it will wait indefinitely for the remote server to accept the written data, change it to another value to specify the timeout in seconds.
Property methods: WriteTimeoutDisplayToLogical(), WriteTimeoutGet(), WriteTimeoutIsValid(), WriteTimeoutLogicalToDisplay(), WriteTimeoutNormalize()

Methods

method Invoke(pWebMethod As %SOAP.ProxyDescriptor) as %Status
Invoke a web method defined in the designated WebServiceClientClass on the SOAP server designated by the WebServiceURL setting. The pWebMethod argument is a SOAP client ProxyDescriptor object that you may obtain by calling ..Adapter.WebMethod(pMethodName). You may then set all the input argument properties of the object before calling this method and obtain the result from the object's %Result property. Using this method instead of InvokeMethod() saves the overhead of several layers of function calls. Note that nearly equivalent functionality is obtainable using the InvokeMethod() method by adding Parameter ARGUMENTSTYLE="message" to the class definition of the SOAP client class designated in the WebServiceClientClass setting. The SOAP Client Wizard will add this parameter to the client class it constructs if you check the box labeled "Use unwrapped message format for document style WebMethods".
method InvokeMethod(pMethodName As %String, Output pResult As %RegisteredObject, pArgs...) as %Status
Invoke a web method defined in the designated WebServiceClientClass on the SOAP server designated by the WebServiceURL setting
method InvokeWithSOAPBody(pAction As %String, pOneWay As %Boolean = 0, pRequest As %CharacterStream, ByRef pResponse As %CharacterStream) as %Status
Invoke a SOAP action by posting the whole body -- note that this will only work if the client class is %SOAP.WebRequest
method OnExitInvoke()
Carry out various internal tasks when exiting the Invoke<> methods
method OnInit() as %Status
Inherited description: This user callback method is called just after %OnNew()
method OnTearDown() as %Status
Inherited description: This user callback method is called just before %OnClose()
method SetRequestInfoHeader() as %Status
Insert Retry Info Header. Called when IncludeRequestKeyInHTTPHeader is true.
method SetSuperSessionHeader() as %Status
Insert Super Session into header if appropriate
method WebMethod(pMethodName As %String) as %SOAP.ProxyDescriptor
Returns a web method proxy descriptor instance that represents the named method of the SOAP service designated by the WebServiceClientClass setting.

Inherited Members

Inherited Properties

Inherited Methods

FeedbackOpens in a new tab