What is SOAP Loop Back Anyway?
SOAP Loop back is a Integration pattern specific in PI interface design when we want to resend the same message to PI instead of sending the message to target.
Think of this challenges during the interface design:
- After the Receiver Agreement we want to use the output and send to another interface to execute another mapping condition.
- Chain the message from Interface to another interface.
- Instead of sending message to BPM and executing some mapping logic we can loop back message to call Interface Determination ‘n’ number of times.
- Split the message and send one by one message to specific interface.
- Loop message within the PI pipeline steps.
All the above can be achieved by this integration pattern – SOAP Loop Back Scenario.
This step by step guide I want to show you how to configure interface to loop back the message from one interface to another interface without sending out of the PI pipeline steps.
At the end of the blog, you can download this SOAPLoop Back configuration guide for your future reference.
High Level SOAP Loop Back Scenario:
Channels that is used:
- CC_FILE_SENDER_SOAPLOOPBACK – File is picked by this channel.
- CC_SOAP_RECEIVER_SOAPLOOPBACK – File is sent to Sender SOAP channel.
- CC_SOAP_SENDER_SOAPLOOPBACK – Sender SOAP channel receives the message.
- CC_FILE_RECEIVER_SOAPLOOPBACK – File Receiver place the output file in the folder.
- File Sender to SOAP Receiver
- SOAP Sender to File Receiver
Key things to note:
- SOAP Receiver Header parameters should match with SOAP Sender Agreements.
- URL sometimes does not contain the payload. Check the message attachments if any.
- Check the URL that is used to send message from SOAP Receiver to SOAP Sender.
- SOAP Receiver should use the HTTP authentication to send the message to SOAP sender.
- No Party is used in this interface to make it simple.
Secret Recipe for SOAP Loop back is this URL: http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_SENDER_SOAPLOOPBACK:CC_SOAP_SENDER_SOAPLOOPBACK
Interface 1: File Sender to SOAP Receiver
File Sender Channel:
SOAP Receiver Channel:
Interface 2: SOAP Sender to File Receiver
Business System: Reuse the same Business System
SOAP Sender Channel:
File Receiver Channel:
I have changed the interface to "MI_RECEIVER_SOAPLOOPBACK_INTERFACE_END" to create another receiver agreements.
File picked up Sender File Channel:
SOAP Receiver Channel processed it:
SOAP Sender Channel received message:
File picked up from “OUTGOING” folder and send to “INCOMING” folder.
The secret for the entire SOAP Loop is the URL that is used in the SOAP Receiver channel rest is the normal interface configuration. If you are facing any issues let me know here.