cancel
Showing results for 
Search instead for 
Did you mean: 

ccBPM concepts : Why no synchronous messages ?

Former Member
0 Kudos

Hi ,

I have a simple scenario where we send data synchronously via webservices. The message is asynchronously written as a file using a different format .

The output file is read asynchronously and sent as a synchronous response to this web service. Sync - async bridge is used.

I want to create a receive step , to receive the ws input . But I cannot add this sync request interface as a container element.

Is there any reason behind this ? If sync interfaces cannot be added as container elements , is sync interfaces not allowed in ccBPM ?

I am sure I lack some understanding here ,Would be glad if someone could help me get some clarity.

Thanks

Bharathwaj

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

In this case you need to take Async Abstract interface as Container element. It will help you to handle both request and response with combination of Sync/Async Send/receive steps.

With Abstract sync interface you will not be able to handle the response individually, thus its not allowed.

Thanks

Swarup

Former Member
0 Kudos

Hi Swarup ,

Thats exactly my query... The documentation suggests to use the async interface which is similar to the request message of the sync interface. In case the structures dont match , what is the solution.

Also ,

>

> With Abstract sync interface you will not be able to handle the response individually, thus its not allowed.

> Swarup

Could you please explain why it is so.? Or rather , why do we have "Mode" options to receive message asynchornously or open an S/A bridge. Shouldn't there be a Synchornous "Mode" ?

Thanks and Regards

Bharath

Edited by: Bharathwaj on Aug 24, 2009 11:42 AM

Former Member
0 Kudos

Hi,

In sync/Async bridge you will get the request data into the workflow and then with usage of co-relation Id you will link request and response messages.

Thus you must have same structure of request side and Async abstract interface. Later on you can add one transformation step to deal with different structure but to initiate the BPM you must need same structure.

It is required to get the input messages in Workflow without any changes.

Also if you have Synchronous Abstract interface then how you will be able to treat both request/response messages individually. Both will be always link and you will not be able to use AsyncSend step to send the Async message on receiver side.

PS Note : Under SyncSend step you will map the response with the use of corelation ID for the synchronous Sender system.

If you carefully observed all the steps in sync/Async bridge then you will realize the scope of it.

Thanks

Swarup

Former Member
0 Kudos

Hi Swarup,

2 more questions

Based on your reply I understand that , we cannot use sync interfaces inside ccBPM and would always require a Async interface of the similar req or resp structure for this.

And again , for synchronous interfaces why cant we treat the req / response individually . Here we are just telling which structure to use for receiving. Why cant be opted from the selected service interface itself.

Hope I am not running in circles here.

Thanks again for the help

Bharathwaj

Former Member
0 Kudos

Hi,



Based on your reply I understand that , we cannot use sync interfaces inside ccBPM and would always require a Async interface of the similar req or resp structure for this.

--> Yes.



And again , for synchronous interfaces why cant we treat the req / response individually . Here we are just telling which structure to use for receiving. Why cant be opted from the selected service interface itself.

--> For Sync scenario, the Corelation of request and response will get mapped by default. In sync scenario, it will be in wait position unless the response will not come back. And the response will be passed via same communication channel.

In case of sync/Async bridge you need to externally tell to map the Response with valid corelation ID due to different communication channels.

If you have observed the adapter modules used with JMS for bridge, there you need to use Map with corelation ID becuase JMS are by default in async state and need to be mapped externally.

I hope this will clarify your doubts

Thanks

Swarup

Edited by: Swarup Sawant on Aug 24, 2009 9:58 AM

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi..

Follow the below link to do synchronous scenario using BPM.

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/404fc9c1-e592...

Regards,

Leela

Former Member
0 Kudos

As request and response mappings get executing if we use sync interfaces

i.e Input --- Ws Input

WsResponse -- Output

Did you define the Abstract message type for the same ?

also need to use the transfomration for doing the mapping for sync interfaces in BPM...

receive can only receive the input in BPM..i.e receive step is trigger for the BPM process and then after does the processings

receive step is used only for receiving data and not for anything

Rajesh

MichalKrawczyk
Active Contributor
0 Kudos

Hi,

>>>But I cannot add this sync request interface as a container element.

did you create it as abstract ?

Regards,

Michal Krawczyk

Former Member
0 Kudos

Hi Michael ,

Yes I did... I was wondering why the search in "Containers" does not list sync interfaces.

Since WS is sync , my understanding is that it is logical to use a synchronous interface , as opposed to the model suggested in the BPM patterns and in help.sap.

Bharath.