In one of our project we had a requirement where PO needs to poll a WebService through SOAP and we needed to pass the data to a receiver. In this particular case, we may need to use AXIS framework to poll the service because in normal SOAP sender channel we do not have an option to poll a service to get the data, instead some other process/service have to call to trigger the interface.

One of the possible solution use to use NWBPM/BPM but we wanted to avoid BPM and also was not sure how the AXIS framework will work. So what could be done?

Solution: Here we have used SYNC/ASYNC bridge with a little trick. We have created 2 ICO where first ICO will picking a dummy file to trigger the process in a regular interval and with the receiver SOAP channel of the first ICO we are going to poll the Webservice. However once we get the response from the Webservice in the Receiver SOAP channel of the first ICO, we use the RequestResponseBean and ResponseOneWayBean to pass the response to the 2nd ICO which will pass the response to the actual receiver.

Below are the Design and Config:(I have kept the screens for the objects only which can create confusion)


External Definition of the Service we need to poll:

Pic.jpg

Asynchronous Outbound Service Interface for the Dummy file:(Used in 1st ICO)

Pic.jpg

Asynchronous Inbound Service Interface for the SOAP service which we need to poll:(Used in 1st ICO)

Please note that though this service a SYNC one but we need to declare an ASYNC interface as we will pass the response to another interface.

Pic.jpg

Asynchronous Outbound Service Interface for the SOAP service from which we will get response after polling:(Used in 2nd ICO)


Pic.jpg

Asynchronous Inbound Service Interface for the ultimate receiver:(Used in 2nd ICO)

Pic.jpg

We also need 2 Operational Mapping and 2 Message Mapping. 1st set will be used for dummy File to the SOAP service structure. 2nd set will be used to map the response from SOAP service to the ultimate receiver structure.

1st ICO:

Pic.jpg

Here the sender channel used to pick the dummy file. Remember to keep the channel in test mode so that the same file picked up again and again to trigger the whole process.

Pic.jpg

On the receiver channel, we need to connect it to the service we want to poll and pass the response to the 2nd ICO.

Pic.jpg

Pic.jpg

2nd ICO:

Pic.jpg

Pic.jpg

Please note that no module config required for this Sender SOAP channel. It is used to receive the response from the SOAP receiver channel used in 1st ICO.

The rest of the configuration is usual. And that is it. Once you start the sender channel of first ICO, PO will poll the SOAP service on a regular interval and will pass the response to the ultimate receiver.

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