Skip to Content

Tags: PI 7.31, noBPM, Sync-Aync Bridge using adapter modules, UDF to read Message ID, Set Message ID as the correlation ID.

So we recently received a requirement where the Source System will send a request in synchronous mode and expects a PI message ID back as part of the response. The Target system in this case is ECC and the message is posted as an IDOC.

As this is a high volume interface we started looking at ways to achieve the same without BPM.

Though in my case the target was IDOC, for POC purposes I used File Receiver Channel.

ESR Objects:

Service Interface:

  • Synchronous outbound interface –  Containing Request and Response for the Source
  • 1st Synchronous inbound interface – Containing IDOC as part of the request and any dummy message type for response. This dummy response will not be used
  • 2nd Synchronous inbound interface – Here Request message will be the response message for SOAP (the one used in Synchronous outbound interface) and any dummy message type for response. This dummy response will not be used. You can use the same dummy MT used in the interface above.

Message Mapping:

  • Map the request soap to IDOC structure
  • Map the SOAP Request to SOAP Response structure and use a UDF here to populate the response field with Message ID.

Operation Mapping:

  • Map Sync outbound to 1st sync inbound interface. Populate the request mapping and leave the response mapping blank
  • Map the Sync outbound to 2nd sync inbound interface. Populate the request mapping and leave the response mapping blank


ID Objects:

Communication Channels:

  • One sender SOAP channel in Best Effort Mode – This is to receive and send request from/to Web service consumer. This adapter uses the following modules:
    1. AF_Modules/RequestOnewayBean – To convert the sync request to Async
    2. AF_Modules/DynamicConfigurationBean – To set message ID as the correlation ID
    3. CallSapAdapter – Standard SOAP module
    4. AF_Modules/WaitResponseBean – Wait for the response message

  • One File Receiver – This to send the request to the target system in asynchronous mode.
  • One SOAP Receiver – This is to send a notification back to Sender SOAP. This adapter uses the following modules:
    1. AF_Modules/DynamicConfigurationBean – To set the correlation ID
    2. AF_Modules/NotifyResponseBean – To send a response back to the sender SOAP channel WaitResponseBean module


Note – The sole purpose of this adapter is to send a notification back to the Sender SOAP channel which is waiting for a response via WaitResponseBean and hence any receiver adapter type can be used here. Also note that the standard adapter module ‘CallSapAdapter’ has been removed from the module list.

ICO Configuration (Scenario works fine with Classic design as well):


Test Results via SOAP UI:

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

  1. omar ra

    Thank you so much.

    I have implemented a solution on SAP PI 7.4 only using SOAP (Snd & Rcv).

    This blog helped to me like a model and i have changed the ICO for an iFlow.

    Regards.

     

    (0) 

Leave a Reply