I have designed a requirement to send synchronous soap message to both asynchronous and synchronous receivers without NW BPM, with NW BPM it’s a very easy using automated activity task but the requirement is not to use BPM

Note: There are many documents with reference to Request/Response beans and correlation id, the intention is to shown the development specific to scenario and to save the POC/development time
In standard way, we get error as “synchronous messages cannot be split” and interface response error, so we will be using Request/Response beans, wait/notify beans, dynamic configuration beans

Process Flow: –

  1. Sender sends a soap message and expects to receive a response back
  2. PI receives the synchronous message and converts the synchronous message to asynchronous message using request/response beans
  3. Asynchronous message is sent to both receivers asynchronous and synchronous
  4. Asynchronous receiver when receives the message will transform the message to target message by executing OM and create the file using file adapter
  5. Synchronous receiver receives the Asynchronous message, here we need to convert the Asynchronous message to synchronous after executing OM using Request/Response module and fetch the response from RFC
  6. Received RFC response will be forward to replaced interface used in module parameter of receiver RFC channel
  7. Create ICO where sender interface name will be the same name used in module parameters of RFC receiver channel “replace interface” and ICO receiver as virtual receiver and receiver channel has ONLY module as notify response

 

Development steps: –

ESR – Objects > 3 operation mappings

> 1st operation mapping (Soap to RFC ) will just have request mapping and response mapping will be empty and this OM will be used in first ICO

> 2nd operation mapping (Soap to Async Receiver Interface) will be used in first ICO

> 3rd operation mapping (RFC to Soap) will be used for response mapping and this OM will be used in second ICO

 

 

OM 1: – Soap > RFC (Request OM)

 

OM 1: – Soap > RFC (Response OM) should be empty as we will be using another OM for response

 

OM 2: – Soap > Async (File)

(Note: – remove SWCV as shown below)

 

OM 3: – RFC > Soap (Actual Response OM)

Note: – Create a Service interface and add RFC response message to it and this service interface will be used in RFC receiver channel module

 

ID – Objects:-

Note: business system name and SWCV name is hidden and removed to avoid the display of company name but for your development please use SWCV in all places

The reason for using Dynamic configuration beans is because when splitting messages using multiple receiver’s child message id’s are generated and this child message id’s are passed back in response XI header and notify response beans cannot create a message as it requires the parent message id to notify the response so we use dynamic configuration to read message id in request and write in response XI header’s

 

 

 

 

 

 

 

 

RFC Receiver Channel Modules
Note :- Interface name listed in below module is important as its used in second ICO as interface name

 

Second ICO: –

 

I am using using SOAP as sender channel and you can use soap as sender channel for any requirement


Use the same service interface name used in RFC Receiver channel parameter name “Interface” and create this ICO receiver as virtual receiver

 

 

 

 

I am using using SOAP as receiver channel and you can use any channel to notify response

 

Make sure ONLY notify response bean is mentioned in module list

 

Monitor Logs: –

You will find 3 message logs for every transaction

 

1) soap > RFC

2) Soap > Async Receiver

3) RFC > Soap

 

 

File creation logs

 

Soap > RFC logs

 

Dynamic configurations logs

 

RFC > Soap and Notify Response Logs

To report this post you need to login first.

Be the first to leave a comment

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

Leave a Reply