class EnsLib.ebXML.Service.SOAPService
extends EnsLib.SOAP.Service, EnsLib.ebXML.Service.AbstractService
SOAP Service for ebXML
parameter ADAPTER;
Name of the adapter class - override this to "" if you want to use only the regular SOAP mechanism and not the custom-port InboundAdapter.
parameter ARGUMENTSTYLE = "message";
The ARGUMENTSTYLE parameter may be used to specify a message format in which
each request message part (not the elements of the part's type) is an argument
and each response message part is a return value or output argument.
The use of the message or wrapped format is specified by the ARGUMENTSTYLE parameter
of the web service or web client class.
The default value for ARGUMENTSTYLE is "wrapped" or "".
Message style arguments are indicated by a value of "message".
The ARGUMENTSTYLE parameter will be ignored if the SoapBindingStyle is not document.
parameter NAMESPACE = "http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd";
SOAP Namespace for the WebService
Override this parameter in your subclass with the unique namespace URI
of your organization.
parameter SERVICENAME = "ebXML";
The SOAP name of this service.
Override this parameter in the subclass.
parameter SETTINGS = "MessageTypeClass,MessageWithPayloadTypeClass,ValidateManifest";
Settings
parameter SOAPHEADERS = "AckRequested:EnsLib.ebXML.schema.msg.AckRequested,Acknowledgment:EnsLib.ebXML.schema.msg.Acknowledgment,ErrorList:EnsLib.ebXML.schema.msg.ErrorList,MessageHeader:EnsLib.ebXML.schema.msg.MessageHeader,MessageOrder:EnsLib.ebXML.schema.msg.MessageOrder,StatusRequest:EnsLib.ebXML.schema.msg.StatusRequest,StatusResponse:EnsLib.ebXML.schema.msg.StatusResponse,SyncReply:EnsLib.ebXML.schema.msg.SyncReply";
A list of supported SOAP headers is specified as a comma separated list of input header
specifications. Each specification is of the form "headerName:headerClass" where
headerName is the element name of the supported header and
headerClass is the %SOAP.Header subclass that corresponds to that header.
This list defines all headers supported in the SOAP request.
parameter USEBOTH = 1;
Override this setting to allow your subclass to accept WebService requests on both the custom-port InboundAdapter and the regular SOAP mechanism.
This parameter is ignored and the regular SOAP mechanism is enabled if the ADAPTER parameter is empty in your subclass.
property MessageTypeClass
as Ens.DataType.Class(EXTENDS="EnsLib.ebXML.Message") [ InitialExpression = "EnsLib.ebXML.Message",Required ];
Default ebXML message type
property MessageWithPayloadTypeClass
as Ens.DataType.Class(EXTENDS="EnsLib.ebXML.MessageWithPayload") [ InitialExpression = "EnsLib.ebXML.MessageWithPayload",Required ];
Default ebXML message type
property ValidateManifest
as %Boolean [ InitialExpression = 0 ];
Flag to enable validation of the Manifest for messages with payload
method %OnNew(pConfigName As %RegisteredObject)
as %Status
Because we implement a delegate, we must "fix" %OnNew otherwise, we get the implementation from Ens.AbstractDelegate
and not the one from EnsLib.SOAP.Service which is required.
method CreateNewMessage()
as EnsLib.ebXML.Message
Construct a new instance of an ebXML message
method CreateNewMessageWithPayload()
as EnsLib.ebXML.MessageWithPayload
Construct a new instance of an ebXML message with payload
method GetMethod(pAction As %String)
as %String
Get the method for this SoapAction
No matter what the SoapAction, we always want to call the Manifest method.
method Manifest(pManifest As EnsLib.ebXML.schema.msg.Manifest(XMLNAME="Manifest"))
as EnsLib.ebXML.schema.msg.Manifest
[ WebMethod ]
method ProcessBodyNode(action As %String, body As %XML.Node, ByRef responseBody As %CharacterStream)
as %Boolean
The ProcessBodyNode method of %SOAP.WebService will be passed an %XML.Node
instance which is positioned at the child of the Body element of the SOAP
which has the contents of the request body.
ProcessBodyNode will return the response message body in another character stream.
The return value is 1 (true) if the body was processed and a response
stream produced. If 0 is returned the %SOAP.MsgDescriptor class will be
invoked as usual. If an error occurs during the processing of the request,
then a fault should be returned in the usual way using the ReturnFault method.
The arguments to this method are:
action is the SOAPAction for the SOAP request.
body is an %XML.Node instance for the contents of the SOAP request body.
responseBody is a character stream to which the body of the SOAP response will be written.
method outputBody(pProxy As %SOAP.Descriptor, pTag As %String)
as %Status