SOAP Lookup in HCI
Hi HCI Experts,
I'm trying to build a scenario in HCI that looks something like the SOAP Lookup from UDF in PI. I understand that there's the Content Enricher/Modifier pattern in HCI that could accomplish this, as discussed here Blog 5: Content Enricher Pattern in Integration Flows. However, I'm getting no luck so far when trying to deploy the iFlow.
In my scenario, I'm basically just trying to enhance a standard integration content. So what I would like to happen is that, before HCI sends the incoming source message from COD into the message mapping, I would like to call a standard Query web service first, and get a value from its response and assign it in one of the fields in the source message. I've added the objects in Red in hopes of achieving that.
I added a Mapping before the Content Enricher because the actual source message from COD is different from the request message that the Web Service in COD_WS expects. Not really sure if this is the correct way.
So far, I'm only getting vague mapping errors during the execution of COD_ERP_Ser* mapping as per the logs. To make matters worse, the trace is not of much help. SAP said the tracing feature is already enabled in our tenant but I still couldn't see any message payload I'm also having doubts if the Content Enricher is really the right approach as it adds the message payload with the original message (either Enrich or Combine), as I understood it. So if it adds the payload, then the 2nd message mapping might not work as the source message would become different from what it really expects, hence the mapping error that I'm seeing. (Again, couldn't confirm this because of the useless trace)
Has anyone ever done this scenario with success?
Again, appreciate any inputs.
Thanks in advance.
Sriprasad Shivaram Bhat replied
Content Enricher should work for your scenario ,post your Content Enricher Step input XML will be enriched with response you get from COD_WS SOAP Call.
Input Message Structure to Message Mapping will get changed post this Content Enricher step because Content Enricher will just push the response structure to node path you have mentioned.
If you dont want to change the mapping structure here is the way.
Change the content Enricher to RequestReply.
Before the request mapping add a Content Modifier to store the input message in property like below
Add one more content modifier after request reply and configure it like below.
1) Add header to store the value which you want to pass it original message later in step4[ Message Mapping ].
2) Configure the body like below to have the original structure again.
Add a Custom Function inside message mapping similar to that we have discussed in yesterdays post to retrieve the data stored in Step3 Content Modifier Header.
Hope this helps.!
Sriprasad Shivaram Bhat