Routing and External Calls in SAP Integration Suite
Introduction: In this blog post I will explain different types of options for routing as well as controlling messages (External Calls) provided by SAP in Cloud Integration Suite.
- These are useful when the Integration scenarios are quite complex in nature.
- When multiple receivers are Involved.
- Source payload may not contain sufficient information.
- Different receivers may need different transformation logics.
Types of Routing Techniques Available:
Routing means choosing a processing path at runtime based on a certain condition. Below points must be taken into consideration before using Router:
- Condition can be XML-based or non XML-based.
- A default route is always required.
- Order of the conditions in the router is important.
- Only one router branch gets processed.
See below figure
You can use the Multicast step to send copies of the same message to multiple routes. Unlike router, you can send copies to all routes at once using Parallel Multicast or in an order of your choice using Sequential Multicast. This allows you to perform multiple operations on the same message in a single integration process.
2.1 Sequential Multicast:
The execution is done in ordered manner. The second branch gets executed only if the first branch is processed successfully. If the first branch fails then the complete process gets terminated.
2.2 Parallel Multicast:
As the name suggest, the execution of the message takes place parallelly. There is no dependency on any other branch, even if it fails the message processing continues.
See below figure
The Join element enables you to bring together messages from different routes before combining them into a single message. You use this step in combination with the Gather element. Join only brings together messages from different routes without affecting the content of messages.
It Merges the control of all multicast branches back into one branch
- Without the Join step, all modeled flow steps will be executed by every branch
- Message content after the Join is defined by the last modeled branch
Functionality of Join is depicted in below figure:
There are multiple types of Splitter’s provided by SAP such as: General Splitter, IDoc Splitter, Iterating Splitter, PKCS#7/CMS Splitter, Tar Splitter, Zip Splitter. In most of the scenarios we use General and Iterating Splitters.
4.1 General Splitter:
It can split both XML as well Non-XML files. The General Splitter splits a composite message comprising N messages into N individual messages, each containing 1 message with the enveloping elements of the composite message.
4.2 Iterating Splitter:
It is similar to General Splitter the only difference is that it just removes the enveloping elements.
It Merges the content of the individual multicast/splitter messages. Join is required additionally if we have used Multicast in our integration flow.
There are multiple strategies that are being used in Gather i.e., Combine and Combine at XPath
- Combine: append XML payload into a multi-message payload
- Combine at XPath: merge XML into a custom structure
The aggregator is used to combine the incoming chunks of messages into one single message. The Aggregator will do multi-mapping while combining the messages. The message is retried every 5 minutes until it is successfully completed. To abort the retry processing you can handle the error in the Exception Subprocess ending in an End Event and the message correlation is based on an identifier in the payload. Aggregator also provides content based sequencing(See image below for more details)
There are number of External calls provided by SAP in Integration Suite i.e., Content Enricher, Poll Enrich , Request Reply and Send
- Enhance an integration flow with information from external sources
- Send intermediate messages to external targets
- Continue flow processing after the external call
Send a message to a receiver and continue processing; no response
Send a message to a receiver and continue processing the response
▪ Content Enricher
Retrieve information from external sources and merge it into the current message
▪ Poll Enrich
Retrieve an (S)FTP file and merge it into the current message
Note: When doing intermediate calls, all headers will be transferred to the external receivers and might be changed on return. Properties will not be transferred and therefore should always be preferred for controlling the flow logic.
Conclusion: In this blog post you have learned about different types of Routing techniques and External Call options provided by SAP in Integration Suite.