Here’s one more pattern in my blog series. This time I would like to describe how to model the Content Enricher pattern on SAP Cloud Platform Integration in comparison with how we model this on SAP Process Orchestration.
If you like to find out more about the motivation and use cases for the Enterprise Integration Pattern blog series, start with the Enterprise Integration Patterns at SAP Cloud Platform Integration: Scatter-Gather blog. Also, check out the Integration Flow Design Guidelines for SAP Cloud Platform Integration blog referring to integration flow design guidelines and patterns for SAP Cloud Platform Integration that SAP has recently published on the SAP Help Portal.
You use a Content Enricher to access an external system, via a so called lookup, in order to add missing data to a message.
Content Enricher on SAP Process Orchestration
On SAP Process Orchestration, you have two options: either model the lookup within a Business Process Management (BPM) process or implement a lookup within a message mapping.
The first option using a BPM process is described in the Enterprise Patterns in Process Orchestration – Content Enricher blog. In this example, you first gather an order list for a specific employee. Here, customer details are missing which you need to read from a different system. So, you loop over the list of orders, and within each loop pass you do a web service call using an automated activity. Within the automated activity, the additional information is then mapped to the respective order item hence enriching the message.
The other option, i.e., via lookup within a message mapping, is described in the Content Enricher chapter of the Stateless Enterprise Integration Patterns on SAP Process Orchestration paper. Here, we do an RFC lookup to gather further flight details. For RFC and JDBC lookups, the message mapping tool within the Enterprise Services Repository (ESR) of SAP Process Orchestration actually supports standard functions to configure the lookups. Those functions use the message types stored in the ESR so that you can simply select the input and output fields when configuring the lookup.
Content Enricher on SAP Cloud Platform Integration
On SAP Cloud Platform Integration, we can either model the Content Enricher via the Request Response pattern or via a dedicated Content Enricher flow step.
In the following I would like to stick to the second option, i.e., the dedicated Content Enricher. The beauty of the Content Enricher flow step is that it automatically matches the responses to the different items of the original message. So, it’s suited especially for enriching bulk data. Using this option is much better in terms of performance compared to a request response pattern. Here, you do not need to loop over all items carrying out individual lookup calls, you simply do one call, and the matching is done automatically based on your key.
In our example, we have an order with multiple items incl. product and product category information. We do a lookup to gather the main category names (note, OData query not seen in figure below), and automatically match them to the respective item based on the category as key element.
For more details, check out the description in the SAP Help Portal.
On the SAP API Business Hub, you find the sample integration flow within the Integration Flow Design Guidelines – Enterprise Integration Patterns package. You can test the pattern on your SAP Cloud Platform Integration tenant. It also runs on the cloud integration runtime of your SAP Process Orchestration 7.5 system.
Also, take a look at the other patterns that we have published so far. As said, start with the Scatter-Gather.
- Composed Message Processor
- Content-Based Router
- Recipient List
- Message Filter
- Content Filter
- Content Enricher (current blog)