class EnsLib.SOAP.OutboundAdapter extends Ens.OutboundAdapter

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


Parameters Properties Methods Queries Indices ForeignKeys Triggers
1 17 5


%Client %CredentialsObj %SOAPCredentialsObj %WarnedLatest
BusinessHost ConnectTimeout Credentials HttpVersion
KeepaliveInterval ProxyHTTPS ProxyHttpSSLConnect ProxyHttpTunnel
ProxyPort ProxyServer RegistryID ResponseTimeout
SOAPCredentials SSLCheckServerIdentity SSLConfig WebServiceClientClass
WebServiceURL WriteTimeout
%AddToSaveSet %ClassIsLatestVersion %ClassName %ConstructClone
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Extends
%GetParameter %IsA %IsModified %New
%NormalizeObject %ObjectModified %OriginalNamespace %PackageName
%RemoveFromSaveSet %SerializeObject %SetModified %ValidateObject
AssignOneSetting ClearAllAppData ClearRuntimeAppData ClearStaticAppData
EnumerateSettingsClose EnumerateSettingsExecute EnumerateSettingsFetch GetSettings
Invoke InvokeMethod InvokeWithSOAPBody OnInit
OnKeepalive OnTearDown SetSuperSessionHeader WebMethod


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,WriteTimeout:Connection";
List of properties can be set as settings in the configuration file format is a comma separated list of property names


property %Client as %SOAP.WebClient;
Private instance of the WebServiceClientClass
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 ConnectTimeout as %Numeric(MINVAL=0) [ InitialExpression = 5 ];
Number of seconds to wait on each connection attempt
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 HttpVersion as %String [ InitialExpression = "1.1" ];
The HTTP version the Adapter should report in the HTTP request it sends to the server
property ProxyHTTPS as %Boolean;
Should the proxy (if any) use HTTPS to communicate with the real HTTP/HTTPS server?
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 ProxyHttpTunnel as %Boolean;
Should the Adapter use the HTTP CONNECT command to establish a tunnel through the proxy to the target HTTP server?
property ProxyPort as %Integer [ InitialExpression = 80 ];
Proxy server port on which to send HTTP requests if using a proxy server
property ProxyServer as %String(MAXLEN=1000);
Proxy server through which to send HTTP requests, if any
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 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 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 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 WebServiceClientClass as %String(MAXLEN=1000);
Names the Client Class that describes the WebService, generated by the SOAP Client Wizard add-in
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 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.


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 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.
Copyright © 1997-2020 InterSystems Corporation, Cambridge, MA