SOA Outbound Message Processing Service

The SOA Outbound Message Processing service adds required HTTP headers to the SOAP message, which can then be processed by HTTP/HTTPS adapters before sending request or response by Web service consumer or provider.

It also converts the attachments to MIME type. The following table provides an overview of the SOA Outbound Message Processing service:

Category Description
System Name SOA Outbound Message Processing Service
Graphical Process Modeler (GPM) categories All Services
Description The SOA Outbound Message Processing service adds required HTTP headers to the SOAP message, which can then be processed by HTTP/HTTPS adapters before sending request or response by Web service consumer or provider, respectively. It also converts the attachments to MIME type.
Business usage Configured in GPM for an application Web service consumer process to add required headers to SOAP message before it is being posted by the HTTP/HTTPS adapter. Used by the system business process WS_RequestHandler in Web service provider.
Usage example On the consumer side of the Web Service, this service is used to add headers to the SOAP request message and convert attachments to MIME type before sending request to the application server through HTTP/HTTPS adapters. On the provider side, this service is used to add headers to the SOAP response message and convert attachments to MIME type before sending response to the application server through HTTP/HTTPS adapters.
Preconfigured? Yes. SOAOutboundMsgProcessingService_Instance
Requires third-party files? None
Platform availability All supported application platforms
Related services Generally used before an HTTP/HTTPS adapter before sending the request or response to the Web application server.
Application requirements WS Licensing
Initiates business processes? No
Invocation This service is used in a GPM in case of Web service consumer (must be put before HTTP adapter service). In case of Web service provider, it will be invoked internally by the business process used for provider to receive and process the SOAP request.
Business process context considerations None
Returned status values Returned status values:
  • Success - Service is able to understand the SOAP message
  • Error - SOAP Fault information
Restrictions There are no requirements on the usage of this service. The understanding of Web service provider and consumer will be offline and this service will come into picture if the SOAP message is sent/received by the application.
Persistence level System default
Testing considerations Debug information can be found by observing the execution flow of the business process in the application user interface. The level of logging can be controlled through the log.properties file, just as for other log files. Also see Business Usage, Usage Example and Application Requirements.

Implementing the SOA Outbound Message Processing Service

To implement the SOA Outbound Message Processing service, complete the following tasks:
  1. Create a configuration of the SOA Outbound Message Processing service. See Managing Services and Adapters. For information about the fields specific to this service, see Configuring the SOA Outbound Message Processing Service.
  2. Specify field settings for the service configuration in the application Admin Console and in the GPM as necessary.

Configuring the SOA Outbound Message Processing Service

You must specify field settings in the application, by using the Admin Console, and in the GPM.

Creating or Setting Up a Service Configuration in the Admin Console

Use the field definitions in the following table to create a new configuration of the SOA Outbound Message Processing service, or to set up the configuration provided with the application. Some fields are available in both the Admin Console and in the GPM. For the fields that are available in both, the GPM field name is shown in parentheses in the table below.

Field Description
Name Unique and meaningful name for the service configuration. Required.
Description Meaningful description for the service configuration, for reference purposes. Required.
Select a Group Select one of the options:
  • None – Do not include the configuration in a service group at this time.
  • Create New Group – Enter a unique name for a new group, which will be created with this configuration. (You can then add other services to the group as well.)
  • Select Group – If service groups already exist for this service type, they are displayed in the list. Select a group from the list.
Note: See Managing Services and Adapters.

Setting Up the Service in the GPM

Use the field definitions in the following table to set up the service configuration in the GPM:

Field Description
Config Select the name of the service configuration from the list.

Business Process Example

The following example illustrates how the SOA Outbound Message Processing service can be used in a business process:

Example Business Process as Web Service Provider

The following business process uses a dynamic service created in the application for sending a SOAP message through HTTP to an endpoint configured in the application itself (where the application is the consumer as well as provider). The SOA Outbound Message Processing service is used before the HTTP service.

<! -- New BP for the Web Service Layer --> 
<process name = "WS_RequestHandler"> 
  <rule name="ServiceBranch">
   <condition>serviceMode=1</condition>
 </rule>
  <rule name="BPBranch">
    <condition>serviceMode=0</condition>
 </rule>
  
  <sequence name="ProcessNonRMPart">
     <!-- New SOA Inbound Security Service Handle signature 
          verification/decryption part -->
   <operation name="SOAInboundSecurityService">
     <participant name="SOAInboundSecurityService_Instance"/>
     <output message="SOAInboundSecurityServiceInputMessage">
     <assign to="." from="*"></assign>
     </output>
      <input message="inmsg">
    <assign to="." from="*"></assign>
     </input>
    </operation>
<!-- Updated SOA Request Handler -->
    <operation name="SOARequestHandler">
      <participant name="SOARequestHandler_Instance"/>
     <output message="SOARequestHandlerInputMessage">
    <assign to="." from="*"></assign>
    </output>
     <input message="inmsg">
   <assign to="." from="*"></assign>
    </input>
    </operation>
   
  <choice name="Choice Start">
 <select> 
<case ref="ServiceBranch" activity="DynamicServiceInvoker"/> 
<case ref="BPBranch" activity="Invoke Sub-Process"/>
 </select>
 <operation name="DynamicServiceInvoker"> 
<participant name="SOAServiceInvoker_Instance"/> 
<output message="DynamicServiceInvokerInputMessage"> 
<assign to="SVC_NAME" from="string(/ProcessData/typeName)"></assign> 
<assign to="." from="*"></assign> 
</output> 
<input message="inmsg"> 
<assign to="." from="*"></assign> 
</input>
  </operation>
<operation name="Invoke Sub-Process"> 
participant name="InlineInvokeSubProcessService"/> 
<output message="InvokeSubProcessServiceTypeInputMessage"> 
<assign to="WFD_NAME" from="string(/ProcessData/typeName)"></assign> 
<assign to="." from="*"></assign> 
</output> 
<input message="inmsg"> 
<assign to="." from="*"></assign> 
</input>
 </operation>
   </choice>
   <operation name="SOAResponseBuilder">
     <participant name="SOAResponseBuilder_Instance"/>
     <output message="SOAResponseBuilderInputMessage">
  <assign to="." from="*"></assign>
     </output>
      <input message="inmsg">
  <assign to="." from="*"></assign>
     </input>
    </operation>
   <operation name="SOAOutboundSecurityService">
     <participant name="SOAOutboundSecurityService_Instance"/>
     <output message="SOAOutboundSecurityServiceInputMessage">
     <assign to="." from="*"></assign>
     </output>
      <input message="inmsg">	
      <assign to="." from="*"></assign>
     </input>
    </operation>
  <!-- SOAOutbound Service is required to add SOAPAction Header in the 
       Primary Document -->
  <operation name="SOAOutboundMsgProcessingService"> 
<participant name="SOAOutboundMsgProcessingService_Instance"/> 
<output message="SOAOutboundInputMessage"> 
<assign to="." from="*"></assign> 
<assign to="ADD_SOAP_ENVELOPING">false</assign> 
</output> 
<input message="inmsg"> 
<assign to="." from="*"></assign> 
</input>
 </operation>
 <operation name="HTTP Respond Service">
  <participant name="HttpRespond"/>
 <output message="HttpRespondServiceInputMessage"> 
<assign to="." from="*"></assign> 
<assign to="doc-has-headers">true</assign>
 </output>
 <input message="inmessage"> 
<assign to="." from="*"></assign>
   </input>
  </operation>
   <onFault>
      <sequence name="Sequence Start">
      <operation name="SOAFaultService">
        <participant name="SOAFaultService_Instance"/>
         <output message="SOAFaultServiceInputMessage">
           <assign to="faultCode">Receiver</assign>
           <assign to="faultString">Error Processing Request</assign>
           <assign to="faultType">SOAP</assign>
           <assign to="." from="*"></assign>
         </output>
          <input message="inmsg">
           <assign to="." from="*"></assign>
         </input>
        </operation>
       <operation name="HTTP Respond Service">
         <participant name="HttpRespond"/>
         <output message="HttpRespondServiceInputMessage">
           <assign to="." from="*"></assign>
         <assign to="doc-has-headers">false</assign>
         </output>
          <input message="inmsg">
           <assign to="." from="*"></assign>
         </input>
        </operation>
     </sequence>
    </onFault>
 </sequence> 
</process>

Example Business Process as Web Service Consumer

Parameters Passed From Service to Business Process

The following table contains the parameters passed from the SOA Outbound Message Processing service to the business process:

Parameter Description
Attachment ID Unique ID (MIME content ID) of the attachment, if attachment is passed with the SOAP message
Primary Document Primary Document
SOAP Document Part SOAP Document part of the SOAP message