Class Reference
IRIS for UNIX 2024.1.2
InterSystems: The power behind what matters   
Documentation  Search
  [USER] >  [EnsLib] >  [SOAP] >  [GenericService]
Private  Storage   

class EnsLib.SOAP.GenericService extends EnsLib.SOAP.Service

Generic WebService-based BusinessService class. Can use a SOAP.InboundAdapter listener, or the standard SOAP Service mechanism, or both. In order for the CSP mechanism to work, Web Services using this class must be configured with the invoking URL including ?CfgItem= giving the config item name. (Configured Web Services exposed using the SOAP Inbound Adapter may also be invoked with this URL parameter but because each configured Inbound Adapter listens on its own TCP/IP port this parameter is just a safety check for them.)

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
5 12 21


Summary

Properties
%AlertStartTime %ConfigName %ConfigQueueName
%ExcludeResponseHttpHeaders %LastActionTime %LastHandledTime
%LastReportedError %OutsideCreated %PreserveSession
%ProcessInputCalled %QuitTask %RequestHeader
%SearchTableType %SessionId %SuperSession
%SuperSessionCreatedBeforeSession %VDocFormat %WaitForNextCallInterval
%WarnedLatest %isShadow Adapter
AddressingIn AddressingOut AlertGracePeriod
AlertGroups AlertOnError ArchiveIO
Attachments Base64LineBreaks BodyId
BodyXmlId BusinessPartner ContentId
ContentLocation FaultAddressing FaultHeaders
GatewayTimeout GenerateSuperSessionID HeaderDocType
HeadersIn HeadersOut IOLogEntry
ImportHandler InactivityTimeout IsMTOM
KeepCSPPartition Location MTOMRequired
MsgClass OutputTypeAttribute OverrideClientResponseWaitTimeout
Password PersistInProcData ProcessHeaders
RMSession ReferencesInline RequestMessageStart
ResponseAttachments ResponseContentId ResponseContentLocation
SAXFlags SOAPInvoked SearchTableClass
SecurityContextToken SecurityIn SecurityNamespace
SecurityOut SessionCookie SoapFault
SoapVersion SupportDelayedSyncRequest TargetConfigName
ThrottleDelay Timeout Transport
UseSimulatedSync Username Validation
WSDL WriteSOAPBodyMethod

Methods
%AddEnvelopeNamespace %AddToSaveSet %ClassIsLatestVersion
%ClassName %ConstructClone %DispatchClassMethod
%DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty
%Extends %GetParameter %IsA
%IsModified %New %NormalizeObject
%ObjectModified %OnClose %OnCreateRMSession
%OnNew %OriginalNamespace %PackageName
%RemoveFromSaveSet %SerializeObject %SetModified
%SuperSessionSet %ValidateObject AdapterName
AssignOneSetting CloseIOLogEntry ConvertParameter
Decrypt Encrypt EnumerateSettingsClose
EnumerateSettingsExecute EnumerateSettingsFetch EscapeHTML
EscapeURL FileWSDL ForceSessionId
GatewayTimeout GenerateSuperSession GetBodyId
GetDeferredResponseToken GetMsgHdrRequestKey GetProductionSettingValue
GetProductionSettings GetPropertyConnections GetSettings
GetShadowInstance HyperEventCall HyperEventHead
Include Initialize InsertHiddenField
InsertHiddenFields IsPrivate Link
MakeFault MakeFault12 MakeSecurityFault
MakeStatusFault NewIOLogEntry NormalizeName
OnAdapterHTTPResponse OnAuthorize OnCancelSecureConversation
OnError OnErrorStream OnGenerateSuperSession
OnGetConnections OnHTTPHeader OnHandleNoResponseYet
OnInit OnKeepalive OnMonitor
OnPageError OnPopulateSendSyncHandling OnPostHTTP
OnPostHyperEvent OnPostWebMethod OnPreHyperEvent
OnPreWebMethod OnProcessInput OnProductionStart
OnProductionStop OnRequestMessage OnResolveDocType
OnSOAPRequest OnStartSecureConversation OnTearDown
OnValidate Page PopulateSuperSession
Process ProcessBinary ProcessBody
ProcessBodyNode QueueName QuoteJS
Reset ReturnFault ReturnMethodStatusFault
ReturnOneWay ReturnStatusFault RewriteURL
SOAPLogContains SaveIOLogEntry SendAlert
SendDeferredResponse SendRequestAsync SendRequestSync
SetReturnStatusCode ShowError StartTimer
StopTimer ThrowError UnescapeHTML
UnescapeURL VerifySendSyncHandlingInstructions WSAddSignatureConfirmation
resolveAndIndex resolveDocType statusReturn

Subclasses
EnsLib.SOAP.SAMLGenericService

Parameters

• parameter DOCCLASS = "EnsLib.SOAP.GenericMessage";
• parameter NSWinnowSizeThreshold = 7500;
Response stream size below which the response body should be scanned for namespace prefix instances so that unused declarations from the header can be omitted from the body
• parameter SECURITYIN = "NOHEADER";
The SECURITYIN parameter controls the treatment of a WS-Security header in the input SOAP message. The possible values of SECURITYIN are ALLOW, NOHEADER, IGNORE, IGNOREALL and REQUIRE.
- The default value of IGNORE will ignore any WS-Security headers in the input except for the UsernameToken which can always be used to login the user.
- The value of ALLOW will cause the WS-Security header to be verified on input.
- The value of REQUIRE will require the presence of the WS-Security header and verify the header on input.
- The value of IGNOREALL will ignore any WS-Security headers in the input including the UsernameToken.

- The value of NOHEADER will REALLY ignore any WS-Security headers in the input including the UsernameToken.

Note that if validation of the Security header is enabled (ALLOW or REQUIRE), then a CA file, named iris.cer, containing the trusted root X509 certificates should be put in the InterSystems IRIS manager directory if signature verification or decryption is to be performed. An optional Certificate Revocation List (iris.crl) may also be put in the InterSystems IRIS manager directory.
• parameter SETTINGS = "TargetConfigName:Basic:selector?multiSelect=0&context={Ens.ContextSearch/ProductionItems?targets=1&productionName=@productionId},ProcessHeaders,SearchTableClass::selector?context={Ens.ContextSearch/SearchTableClasses?host=EnsLib.EDI.XML.Service.Standard},PersistInProcData:Additional,KeepCSPPartition:Additional,OneWay:Additional";
Can't do grace period without an OnTask loop
• parameter TOLOWERHEADERVARS = 1;
Set this to 0 to prevent normalizing of HTTP header variable names to lowercase

Properties

• property %ExcludeResponseHttpHeaders as %String(MAXLEN="");
Comma separated list of response HTTP Headers from the external systems not to be passed back to the requesting service. The values are case-insensitive. The appropriate Content-Length will be used and ought not be specified here.
• property %SearchTableType as %String;
Category of SearchTable specified in ..SearchTableClass
• property %VDocFormat as %String;
Format options to apply if we need to output an XML VDoc object as a Stream
• property HeaderDocType as %String;
Schema type to use for the SOAP Envelope element and the Header elements it contains
• property KeepCSPPartition as %Boolean [ InitialExpression = 1 ];
When calling the service through the CSP WebServer (Standard Request) and the target of the service is a business operation invoked InProc then it is possible to attempt to maintain connection to the external system defined in the operation in between messages by setting this to true.
There is still the possibility that the external system will close the connection.
The default is On.
• property PersistInProcData as %Boolean [ InitialExpression = 1 ];
Persist data to operations with invocation InProc that are called Synchronously.
The default is On.
This setting is only used if calling an operation with invocation InProc.
If this setting is off then no message headers will be created and message bodies will not be saved.
If this setting is off there will be no trace in the message viewer.
If this setting is off there will be no retry attempts by the operation - only one attempt will be made.
• property ProcessHeaders as %Boolean;
Apply standard processing to SOAP headers; otherwise just pass them through
• property SearchTableClass as %String;
Store a set of searchable properties associated with each XML Document processed.
These records will be stored in the named SearchTable class, if any.
• property TargetConfigName as Ens.DataType.ConfigName;
Configuration item to which to send messages
• property Validation as %String;
Specifies types of Validation to perform. Set to non-empty to invoke OnValidate() in your subclass. You may add it to SETTINGS in your subclass if you want to distinguish several types of validation.
• property WSDL as %String;
Name of imported WSDL to use in describing the request document body types that may be received by this service

Methods

• method OnAdapterHTTPResponse(ByRef pStatus As %Status, ByRef pHTTPResponseStatus As %String, ByRef pBodyLen As %Integer, ByRef pResponseBodyStream As %Stream.Object, ByRef pMainResponseHeader As %String, ByRef pHeaderExtra As %String)
Callback for allowing Service to override and control construction of the HTTP response if invoked via the SOAP Inbound Adapter Split www-authenticate HTTP header and add proxy-support header if needed
• classmethod OnErrorStream(pStatus As %Status, pInstance As EnsLib.SOAP.Service, pSOAPVer As %String = "1.0")
Control the type and content of error returned to the SOAP caller
• classmethod OnHTTPHeader(ByRef OutputBody As %Boolean) as %Status
Ensure no call to %response.WriteHTTPHeader() before OnPage(); ServerOnly and not Abstract to ensure $$$cMETHrunnable
• method OnInit() as %Status
This user callback method is called via initConfig() from %OnNew() or in the case of CSP invoked services from OnPreSOAP()
• method OnProcessInput(pRequestBody As %CharacterStream, pResponseBody As %CharacterStream, ByRef pAction As %String) as %Status
Override this method to process incoming data. Do not call SendRequestSync/Async() from outside this method (e.g. in a SOAP Service or a CSP page).
• method OnResolveDocType(pMsg As EnsLib.SOAP.GenericMessage, ByRef pDocType As %String, ByRef pHeaderDocType As %String) as %Boolean
Override this method to implement your own custom method for resolving the DocType of an incoming Message Returning nonzero means you are overriding the framework's standard DocType resolution.
• method OnTearDown() as %Status
This user callback method is called from %OnClose()
• method OnValidate(pMsg As EnsLib.SOAP.GenericMessage, pValSpec As %String, Output pStatus As %Status) as %Boolean
Override this method to implement your own custom method for validating an incoming Document Return non-zero to prevent default validation of the message (if any);
• method Process(pAction As %String, ByRef request, needHeaders As %Boolean = 1)
Override to do stream split & rejoin, passthrough HTTP Response
• method ProcessBody(pAction As %String, pRequestBody As %CharacterStream, pResponseBody As %CharacterStream) as %Boolean
Pass through to OnProcessInput()
• method resolveAndIndex(pMsg As EnsLib.SOAP.GenericMessage) as %Status
Accept only specified document names; resolve DocType and perform requested validation if any
• method resolveDocType(pMsg As EnsLib.SOAP.GenericMessage, Output pHeaderDocType As %String) as %String
Return the DocType that this service will assign to this message's body document


Copyright (c) 2025 by InterSystems Corporation. Cambridge, Massachusetts, U.S.A. All rights reserved. Confidential property of InterSystems Corporation.