Home > Class Reference > ENSLIB namespace > 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 (Including Private)

Method Inventory (Including Private)


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

Properties (Including Private)

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(), ConnectTimeoutSet()
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(), CredentialsSet()
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(), HttpVersionSet()
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(), ProxyHTTPSSet()
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(), ProxyHttpSSLConnectSet()
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(), ProxyHttpTunnelSet()
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(), ProxyPortSet()
property ProxyServer as %String (MAXLEN = 1000);
Proxy server through which to send HTTP requests, if any
Property methods: ProxyServerDisplayToLogical(), ProxyServerGet(), ProxyServerIsValid(), ProxyServerLogicalToDisplay(), ProxyServerLogicalToOdbc(), ProxyServerNormalize(), ProxyServerSet()
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(), ResponseTimeoutSet()
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(), SOAPCredentialsSet()
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(), SSLConfigSet()
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(), WebServiceClientClassSet()
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(), WebServiceURLSet()

Methods (Including Private)

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