You need to configure the SOAP adapter so that you can exchange SOAP messages between the Integration Engine and remote clients or servers of Web Services.
The SOAP adapter provides a runtime environment that includes various SOAP components for the processing of SOAP messages. You can combine these SOAP components with separate components to satisfy your needs and requirements.
The SOAP adapter uses a helper class to instantiate and control SOAP components. If you want to use your own SOAP processing logic you must make your helper class known to the SOAP adapter.
To configure the SOAP adapter you must specify the following:
com.sap.aii.messaging.adapter.ModuleBubbleHelper
For example, you must specify the following parameters for the helper class ModuleBubbleHelperXMBWSImpl (instantiates a BubbleBag to integrate remote Web Services with the Integration Engine):
The configuration of the SOAP adapter comprises two functional sub areas:
30
This specification is mandatory. If no specification is entered, the configuration is interpreted as an XI 2.0 adapter configuration. Other values are not permitted and trigger an error.
Specify the class name as follows:
com.sap.aii.messaging.adapter.ModuleBubble
This specification is mandatory.
For example, you must specify the following parameters for the shipped helper class ModuleBubbleHelperXMBWSImpl:
You can configure an sender adapter, or an receiver adapter, or both, if required.
Configuring a Helper Class for Sender Processing
http://IntegrationEngineHost:port/pipeline-arguments
This specification is mandatory when the Integration Engine is acting as a service provider.
The Integration Engine address can also be accessed dynamically from the SAP System Landscape Directory (SLD). The following entry is added to the configuration for this purpose:
SLDaccessor
In this case the URL of the corresponding server for the system specified with XI.SenderService is read from the SLD and used instead of the value specified under XI.TargetURL. Therefore, specify the following:
<fromSLD>
To be able to access the SLD, the SLDaccessor service must be configured correspondingly and the respective entries must be maintained in the SLD.
If the Integration Server is accessed by means of an HTTP proxy server rather than directly, the following parameters must be set:
XI.ProxyHost=<proxyHostname>
XI.ProxyPort=<proxyPortnumber>
8080
If an authentication was specified for the HTTP proxy server, use the following parameters:
XI.ProxyUser=<proxyUser>
XI.ProxyPassword=<proxyPassword>
If an authentication was specified for the URL (HTTP service) in the Integration Engine, use the following address:
XI.TargetURL=http://<user-name>:<password>@IntegrationEngineHost:port/pipeline-arguments
As an alternative, or if the URL is taken from the System Landscape Directory, you can also specify the logon parameters as follows:
<user-name>
<password>
The specifications must match those that you made in transaction SICF in the Integration Engine. If you do not specify a user and password combination, or the combination is invalid, the system will terminate each attempt to access the Integration Engine with the message Transport Exception: http-Error 401 - Unauthorized.
The user must have the authorizations of group SAP_XI_APPL_SERV_USER on the Integration Server.
For more information on configuring SSL authentication with a certificate, see: Certificate Administration , then Setting Up the Adapter Engine as SSL Client.
If you want to use a different client or language to the default setting in the Integration Engine when logging on, you can also set the following parameters:
<client-no>
<language-id>
The following address arguments are optional. If this information is not contained in the request message of a Web service client, the specifications made here are used to identify the adapter configuration in routing, and mapping in the Integration Engine pipeline. You can also find an explanation about each argument there.
<sender party name>
<sender service name>
<namespace URI>
<name>
<receiver party name>
<receiver service name>
If you specify this parameter you do not need to determine a receiver in routing.
The following arguments are mandatory:
<QualityOfService>
Specifies how the Integration Engine should process a message. The following values are permitted:
BE
EO
EOIO
EOIO
<QueueName>
This queue name is used in the Integration Engine to process messages in the same sequence that they arrived in.
<encoding>
Specifies which XML code to use for the Integration Engine. The default value is UTF-8.
<port_no>
path
<boolean>
true
<boolean>
true
true
<boolean>
true
The request message is taken into account.
Configuring a Helper Class for Receiver Processing
http://WebServiceHost:port/service-arguments
This specification is mandatory when the Web Service provider is acting as a service provider.
If an authentication was specified for the URL (HTTP service) entered in the Web Service provider, use the following address:
XMBWS.TargetURL=http://<user-name>:<password>@WebServiceHost:port/ service-arguments
Alternatively, you can also specify the logon parameters as follows:
<user-name>
<password>
If the Web Service provider is accessed by means of an HTTP proxy server rather than directly, the following parameters must be set:
8080
If an authentication was specified for the HTTP proxy server, use the following parameters:
<user-name>
<password>
<default_soap_action>
<default_soap_action>
<boolean>
true
Web Service message headers are always copied to Integration Engine messages.
<boolean>
true
<boolean>
true
<2|3>
233
<boolean>
true
The response message is taken into account.
<port_no>
<port_no>)
<path>
path
Specifies which XML code to use for the Web service provider. The default value is UTF-8.
Encoded String Syntax
The structure is as follows:
In XI 3.0, you can use the following field names:
Field Names XI 3.0
Name | Meaning |
---|---|
MessageClass |
Message class:
|
ProcessingMode |
|
MessageId |
Message ID as GUID with format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
RefToMessageId |
Reference to message ID, as GUID with format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
ConversationId |
As string with maximum length of 60 |
TimeSent |
Time stamp (displayed as ISO8601 UTC datetime YYYY-MM-DDThh:mm:ssZ) |
Sender.Party |
Name of the sender party (displayed as agency:scheme:name) |
Sender.Service |
Service of the sender |
Receiver.Party |
Name of the receiver party (displayed as agency:scheme:name) |
Receiver.Service |
Service of the receiver |
Interface |
Specified as nsuri ^lcname |
QualityOfService |
|
QueueId |
For ExactlyOnceInOrder |
Example
version=3.0&MessageClass=ApplicationMessage&ProcessingMode=synchronous&MessageId=13490851-9aae-11d8-9e93-f28d0a12631c&TimeSent=2004-04-30T13%3A55%3A44Z&Sender.Party=016%3Apattern_33%3AAEG_837654&Sender.Service=SRM1&Receiver.Party=12_55%3A017%3ABASF&Receiver.Service=SALES&Interface=http%3A%2F%2Fsap.com%2Fexample%2Fsrm%5ESRM1
In XI 2.0, you can use the following field names:
Field Names XI 2.0
Name | Meaning |
---|---|
From.Name |
Name of the sender business system |
From.Interface |
Interface name of the sender |
To.Name |
Name of the receiver business system |
To.Interface |
Interface name of the receiver |
Fault |
Fault name (specified as nsuri ^lcname) |
MessageId |
Message ID as GUID with format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
RefToMessageId |
Reference to message ID, as GUID with format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
QualityOfService |
|
QueueId |
For ExactlyOnceInOrder |
TimeSent |
Time stamp (displayed as ISO8601 UTC datetime YYYY-MM-DDThh:mm:ssZ) |
Direction |
Direction of message (request or response) |
Document |
Name of the main document |
Example
version=1.0&From.Name=TravelAgency&From.Interface=http%3A%2F%2FSAP.com%2Fcomponent%2FAgency%5EFlightCheckAvailability&To.Name=Airline&To.Interface=http%3A%2F%2FSAP.com%2Fcomponent%2FAirline%5EFlightAvailability&MessageId=a10cd770-9aae-11d8-9cfa-c4670a12631c&QualityOfService=BestEffort&TimeSent=2004-04-30T13%3A59%3A42Z&Direction=Request