Skip to Content
Author's profile photo Abdul-Gafoor Mohamed

Enterprise Patterns in Process Orchestration – Splitter

Summary

Enterprise Integration Patterns (EIP) help in solving recurring problems faced in the integration of enterprise applications.  This article introduces the Splitter – one of the Enterprise Integration patterns in the context of SAP NetWeaver Process Orchestration.

Applies to

SAP NetWeaver Process Orchestration EhP1 for SAP NetWeaver 7.3 SP4

Authors

Abdul-Gafoor Mohamed & Prashant Gautam

Product Management, SAP NetWeaver BPM, SAP Labs

The Splitter Pattern in Process Orchestration

Enterprise Integration Patterns – The Splitter

Enterprise Application Integration (EAI) is an integration framework composed of a collection of technologies and services that form a middleware, enabling the integration of systems and applications across an enterprise.[1] A twenty-first century enterprise typically consists of tons of distributed applications, varying percentages of which may be homegrown, acquired, legacy or even a combination of these.

Enterprise Integration Patterns (EIP) are design patterns that help in solving recurring problems faced in the integration of enterprise applications.  One such common requirement in Enterprise Integration is to break down a single large message into multiple logical smaller messages. The Splitter pattern helps in cases where each smaller message might need to be handled in a different way and thus avoids a need to send the larger message to all the destinations. The Splitter pattern that helps with this routing capability addresses this question:

“How can we process a message if it contains multiple elements, each of which may have to be processed in a different way?”[2]

To illustrate the Splitter Pattern, we consider the example of Benn Laptop Repairs, a company that deals with servicing and repairs of laptops.  The servicing department receives an order to repair multiple laptops from a customer, Ally Bank.  Ally Bank has sent for service, a number of laptops manufactured by some of the top manufacturers of personal computers in the world. Benn Laptop Repairs has allocated different groups in the service department that takes care of service and repairs of computers manufactured by different vendors. Ally Bank’s service request can be routed to a specific group in the service department using the Splitter pattern.

/wp-content/uploads/2012/09/splitter_proc_169484.jpg

Figure 1. An example illustrating the Splitter pattern


An Integration Scenario for the Splitter

In this example, the service request from Ally Bank triggers the Business System S1 to send a message to SAP NetWeaver PI (AEX), which is delivered to SAP NetWeaver BPM (Inbound[3]).  The large message is split in SAP NetWeaver BPM (Outbound) for different targets (groups in Benn Laptop Repair).  SAP NetWeaver BPM sends a confirmation to the original sender Business System S1 once the split has occurred.

SAP NetWeaver Process Orchestration Solution Outline

/wp-content/uploads/2012/09/pattern_ico2_169485.jpg

Figure 2. Splitter pattern integration scenario using SAP NetWeaver Process Orchestration

As depicted in Figure 2, we are dealing with these two integration configurations:

  • Integration Configuration1 (ICO1) – A message flow can be triggered using a SOAP adapter from Business System S1 that flows through SAP NetWeaver PI (AEX) to SAP NetWeaver BPM.
  • Integration Configuration2 (ICO2) – To send the enriched content back to SAP NetWeaver PI (AEX) from SAP NetWeaver BPM and store it as a file in your specified folder using File adapter.

Note: The message flow from Business System S1 could also be simulated by using the Web Services Navigator, details of which can be found in the SAP NetWeaver Web Services Navigator documentation.


SAP Process Orchestration Scenario

/wp-content/uploads/2012/09/patternscenario_169486.jpg

Figure 3. A generic SAP Process Orchestration scenario sequence


The Integration Flows have to be created and activated using the same interfaces that were used in the Business Process.  The generic scenario referenced above applies to most Enterprise Integration patterns, including the Splitter pattern.

Note: Only XI 3.0 compatible stateless interfaces are supported.


Process Modeling in SAP NetWeaver BPM

Prerequisites

  • The service interfaces to be used in the process model – Starting Interface and Automated activity – should be imported from the SAP NetWeaver PI Enterprise Service Repository.
  • For testing the BPM Process from the BPM Process repository, the UME action SAP_BPM_TRIGGER_EVENT should be assigned to the specific user role.

Process Model

/wp-content/uploads/2012/09/splitter6_137249.jpg

Figure 4. A splitter scenario modeled in SAP NetWeaver BPM

The Process Model for this scenario is shown in Figure 4.  The steps for modeling the process are enumerated below:

  • The Splitter Pattern starts with a service interface with count initialized to zero.
  • Count the total number of order items in the order list.
  • Get the current order item from the order list and send the order item to the Receiver.
  • Increment the count on the loop.  Repeat until there are no more order items.
  • Complete the split process outbound call with type order data on end of loop.

Notes:

  • Use the ‘XI’ service reference instead of ‘WS’ in the configuration settings of the automated activity. The Sender Component also needs to be specified.
  • Use the SAP NetWeaver PI Integration Flow Designer to create the configuration objects in SAP NetWeaver PI
  • Please refer to detailed information on Process Modeling using SAP NetWeaver BPM.

[1] Enterprise Application Integration, Wikipedia

[2] Gregor Hohpe & Bobby Woolf, Enterprise Integration Patterns. 2003

[3] Inbound and Outbound are terms used with reference to the application, in this case SAP NetWeaver BPM.

Assigned Tags

      3 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Hi,

      First of all, nice blog.

      If we want to move away from needing an ABAP stack for PO we will need to implement these integration pattern using nwBPM.

      There is one question I would like to ask, though. Why did you not mention multimappings as an implementation of the Split pattern?

      I understand it is a limited solution as you can only send the resulting messages to the same business system, but it still is a split pattern.

      Regards,

      Joppe Koning-van Noort

      Author's profile photo Prashant Gautam
      Prashant Gautam

      Hi,

      Thanks for the reading and appreciating the blog.

      There are multiple methods to implement Splitter Integration Pattern. If the requirement is to have just a simple stateless split then we can directly use Multi-Mappings in SAP NW PI but in case of stateful requirements we propose to use SAP NW BPM.

      The scope of this blog was to introduce Process Orchestration with an example with the Splitter pattern as an example.

      Regards

      Prashant

      Author's profile photo Rajesh PS
      Rajesh PS

      Hello Abdul-Gafoor Mohamed

       

      Thanks you very much for this blog.

       

      Also could you please share your valuable inputs/suggestions on below thread. Many thanks in advance.

      https://answers.sap.com/questions/12907416/how-to-collect-and-group-records-by-loop-count-in.html?childToView=12907504#comment-12907504