Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
21,619


Hello Integration Community !

 

In this blog, I shall explain the content-enricher pattern of SAP Cloud Platform Integration (f.k.a HCI) and how you can use it in your integration project.

 

What is the Content Enricher Pattern?

 

From the definition of Enterprise Integration Patterns, a content enricher accesses an external data source in order to augment a message with missing information.

 

Let's take an example from the HR domain. In the SuccessFactors(SFSF) suite, we can obtain information on employee object entity.I get the job location code from the results. But, I want to send the complete job location and not just the job code and the job location is stored in a different entity. So, I enrich my data with the job location using a content enricher step.

 

Likewise, one system may provide us with a order ID, but the receiving system actually requires the associated customer ID associated with that order.

Content enricher is a very common integration pattern.

 

How to Use the Content Enricher?

 

In SAP Cloud Platform Integration, content enricher is available as a Service Task.



 

We shall take the following integration flow as an example:



The first call to SFSF shall return the compound employee data. This is how the data looks:

 

 

 



 

We are interested in enriching the job information. So, let us take an expanded look into it. In the expanded view, take a closer look at the location field. We are interested in enriching that particular field with the exact address details.

 



So, to achieve our purpose we shall use the Content Enricher step with the following configuration.



The Lookup message depends on the address location entity.The entity to which you are querying. So, the final output or the enriched output shall look like the one below.



 

Note: Content Enricher also has another option - Combine. That is a very simple logic of combing the two elements. Employee information and Job information query results are combined together into one entity. For fun, for the same objects we saw above - the result looks like this:



 

Conclusion

 

In the current version, the Content Enricher step works well with SuccessFactors system. For SOAP-based scenarios, the entire payload goes to the sending look-up system. If you do not want the entire data to go, you would have to employ the data store step and the content modifier step.

 

Best Regards,

Sujit

10 Comments
markbernabe
Active Participant
0 Kudos

Hi Sujit,

I'm wondering how the iFlow sends the request message to FO_location.

baknaf
Discoverer
0 Kudos

Hi Sujit,

Thanks for the blog.

Do kindly provide some insights into how we can optimize the "Lookups" or "Request-Reply" or "Content Enrichment" calls during the processing of huge outbound message payloads in HCI environments; we are able to handle this challenge easily in the SAP PI/PO environments by employing UDFs.

We are proposing to implement HasMap functionalities in scripts that should be executed only once irrespective of the number of outbound records; the HashMaps now serve as data caches for subsequent access instead of the very expensive and repeated calls......

What are your thoughts?

former_member187587
Contributor
0 Kudos

Well written.

Hi Sujit,

Thanks for the blog.

But I have one question.

If we have multiple Key Element to merge up 2 messages. Can the Content Enricher allow us to do that?

I have opened a discussion for this topic and inside have some test data and expected result. Do you have any idea on this?

HCI: Is Content Enricher allow 2 Key Elements?

Former Member
0 Kudos
Hi Sujith,
after doing same, i am not getting enriched data in location field, ithink some going my side in Fo_Location model configuration. So

Can you add Fo_location model configuration in this blog, than can be helpful as i am not getting enriched data in location as i am confused which element i should use to get look up data while configuring Sf Fo_location channel.



Regards
Uma Sairam

Hi Sujith,

 

I am sending the content enricher’s output as input to message mapping. In this case, do I need to create separate xsd file or enter two source  elements in mapping?How can we get content enricher’s output file xsd format ?

Thanks,

Arpna Kaul

0 Kudos
Hi Sujith,

did u manage to get xsd with enriched data?
0 Kudos
Hi Ying Heng Tan,

 

Did you find solution to this? The link you've given here is broken. Please let me know how you achieved your requirement?

 

Regards,

Netrey

 
marcfrenay
Explorer
0 Kudos
Hello,

Thx for this blog.

Sorry but I don't understand how we know what value to put on the lookup message...

Is someone can explain me ? I'm new in HCI world 🙂

Thx
skugan_venkatesan
Product and Topic Expert
Product and Topic Expert
0 Kudos
I also have the same question as Marc Frenay. The important difference is that the "Arrow" In request-reply, the arrow was from Request-reply to the receiver. But in content enricher it is the vice-versa.

My first question

Why the arrow is towards content enricher but for request - response it is the other war round

My second question

How does the OData understands, For example: this is the Order ID for which I have to enrich the data.

Would be good if anyone could explain this

Regards,

Skugan V