cancel
Showing results for 
Search instead for 
Did you mean: 

Double Sync-Async Bridge

Former Member
0 Kudos

Hi guys,

One simple question:

Is it possible to have two S/A Bridge in a single BPM? It should be quite simple.....

Thanks in advance

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello,

this is not possible (1 is maximum).

You can read it here:

http://help.sap.com/saphelp_nw04/helpdata/en/43/65d4dab39b0398e10000000a1553f6/frameset.htm

Regards

Patrick

Former Member
0 Kudos

So imagine a simple scenario,

System A invokes WService1 published by XI with QOS BestEffort.

Bpm starts with this receive and opens an S/A Bridge. Second step is related to a sync R3 RFC call. R3 responds and part of the response is send back System A as a result of the invocation of WService1.

Meanwhile, this process will not end until it gets an invocation to another WService published by XI from R3. XI will invoke a third WService located in System A, gets the response and sends it back to R3. Only after this related invocation should the process terminate.

So in practice we would have, 2 S/A Bridges, one after the other. If this is not possible, how can XI invoke multiple WebServices in one BPM with QOS BestEffort ?

Thanks in advance

Former Member
0 Kudos

Hi,

You are absolutly right,

Practically it can be possible to invoke 2 Sync/Async bridges in one Integration Process.

But just overlook that how many ports will be opend simultaneously. The resources consumed at a time in this Integration Process will make big impact on the performance and the integration server will overloaded.

Mostly it will lead to fail the interface and need to manually process the messages through queues.

You can't take these kind of risks in real time scenarios in Producation landscape.

Thus SAP have preferrred to stick with only one Sync/Async bridge at a time and avoid the over burden on the integration Server.

I hope now its clear to you

Thanks

Swarup

justin_santhanam
Active Contributor
0 Kudos

Gonçalo ,

Can u just draw flowchart on your reqmt?

Just explain in the below format

Receive----->Send Synch

Thanks,

raj.

Former Member
0 Kudos

Hi Swarup,

Correct me if I'm wrong, but in practice we would only have one S/A opened at one moment in time, we would never get concurrency, meaning there would never be the two S/A running at the same time.

How would you model this scenario?

justin_santhanam
Active Contributor
0 Kudos

Gonçalo,

That's what Patrick referred u to see the help.sap.com link. I think it's not possible at all, why would SAP think it will consume more resources in case of opening double Synch/Asynch bridge. Practically it might not be possible, that's the reason they strongly said it's not possible to have more than on Synch Asynch bridge.

Also the scenario which u explained is little bit confusing, if you could give us a flow, will try to sort it out.

raj.

Former Member
0 Kudos

Hi Raj,

Thanks for you reply.

The flowchart would be like

Receive WService1 Call from system A (opens S/A Bridge) ---> BPM Sends Synch RFC call to System B (R3)

--> BPM sends response to system A (closes S/A Bridge) ---> BPM Receives WService2 Call from system B (R3) (Opens second S/A Bridge)

---> BPM Sends Sync WService3 Call to system A ---> BPM sends response to system B (closes second S/A Bridge)

We would obviously get the messages correlated, but the two S/A Bridges is not a XI Possibility....

Is this clear for you now? Any suggestions?

I think this is a simple scenario and certainly has appeared before you....

If SAP promotes SOA how can we relate multiple calls to central or non-central webServices in XI?

henrique_pinto
Active Contributor
0 Kudos

Gonçalo,

just one question: if the 2nd Sync call is not technically related at all to the 1st one (I mean, as you described, the 2nd call doesn't use any inputs from the payload of the 1st call messages), why do they need to be in the same IP anyway??

Just create 2 separated BPMs and inside your R/3 program logic, make sure to call the 2nd service only after the 1st one has been finished.

Regards,

Henrique.

Former Member
0 Kudos

Hi,

You are right in real time this will be not possible to even use the two S/A in one process.

But you could design the process in such a way that

lets assume you have one sender A and two receiver B & C

A--Synchronous

B---Async

C---Async

Now the scenario is like

A-request -


> B as well as for -


> C.

here B is async so you need to built A to B as S/A bridge but as I had said simultaneously it need to send the data to C which is also async then you need to use Fork to create two branches one for B and one for C.

Here you need to create Dummy response for A as B or C will not send any response.

This scenario is very rare to be practical..but there is chance that you could design it in BPM.

I am pretty sure about the scenario will not work successfully as there will be 3 ports opened at a time and multiple resources will be consumed.

1. Define a Receive Step to Open the Sync/Async Bridge

2. Define fork with 2 branch one for A and one for B

-One Branch-

-


Define an Asynchronous Send Step for B

-


Define a Receive Step for B

-2nd Branch--

-


Define an Asynchronous Send Step for C

-


Define a Receive Step for C

4. Define a Send Step to Close the Sync/Async Bridge

Here if you see you have two Sync/Async bridges one for A to B and another for A to C.

I never have implemented it just giving you the hint.

Thanks

Swarup

henrique_pinto
Active Contributor
0 Kudos

Correct me if I'm wrong, but in practice we would only have one S/A opened at one moment in time, we would never get concurrency, meaning there would never be the two S/A running at the same time.

Gonçalo,

it's not a matter of how many S/A bridges are opened at runtime.

The problem is actually how to start the program.

If you have some ABAP background, think about this: you've executed a function in foreground task (qRFC, because it's synchronous); meanwhile, another program executes another foreground function and you want both of the functions to be executed at the same work process (meaning, the same BPM Instance). That's not feasible at all!

Instead, if you had inbound queues and background tasks (basically, async calls), at runtime the function could check for some conditions in the messages of the inbound queue to select which message to receive (the condition here is the correlation we set in BPM).

Regards,

Henrique.

Former Member
0 Kudos

Hi Henrique,

Thanks for your reply.

I've understood your explanation, but the problem is not when to start the program, I'll explain a little bit more of the scenario.

The first call to WService1 will create a purchaseOrder in SAPR3 and give a status response (success or not).

After this purchaseOrder is created in SAP R3, someone will look at it and send an invoice to system A by SAP R3 in . SAP will invoke a second Wservice and will send this invoice

which is related to the PurchaseOrder created by System A.

So as you can see there is a sequence which is implicit in this process and which I wanted to be able to monitor this as a single process.

This seems to be an XI limitation since in the past, I've modeled really similar scenario in other business process integration platform.

I could create two processes, one for creating the PO and another for sending the invoice but I'd like to monitor this as a single and integrated process.

Once again , thanks for your explanation.

Former Member
0 Kudos

Hi Swarup,

Thanks a lot for your answer. Your suggestion is great but as I told Henrique I need to correlate the two calls, and with your suggestion I'm

not able to do that.

Nevertheless I'me really thankful for your suggestion since it's a constructive view and a possible solution to my particular problem.

Former Member
0 Kudos

HI Gonçalo Mouro Vaz ,

As per your your details about scenario

This will not be the double S/A scenario in XI in one process

Here its of two different scenarios as

1. WService1 will create a purchaseOrder in SAPR3 and give a status response

and

2. SAP will invoke a second Wservice and will send this invoice

which is related to the PurchaseOrder created by System A.

Here you need not have to set S/A status.

For e.g for 1st case you can use RFC or proxy or Standard BAPIs available to create PO in R/3 which will give you back the response.

SO it can be easily Sync to sync scenario.

If thats not cae then probably you could go for modules like RequestResponseBean etc to avoid BPM.

For 2nd case somebody will invoke the Webservice via proxy from R/3 whihc will send invoce to system A. Here you could have Async proxy also.

I don't know why you are looking for integrating these two process in one scenario.

From your perceptive its might be single process or flow , but in XI we could split it this way and easily work out.

Let me know if you need any specific details about the scenario.Then also give me your sender and receiver system info.

Thanks

Swarup

Edited by: Swarup Sawant on Feb 21, 2008 2:21 PM

Former Member
0 Kudos

Hi Swarup,

Thanks for your suggestion.

After reading your post, one doubt rises up. In XI, how can you relate the two integration Processes? Well, I can because it's me who have developed it, but imagine it's a person who never saw the process and has to monitor it.

How can this person compare the first process which is created today, and the invoice process which will be created in two weeks from today?

The purpose of having only one Integration process it's because it will facilitate and speed up the monitoring of all this process.

Well, but maybe i'm only complicating things....

Former Member
0 Kudos

Hummm.. Thats really good question you have put ahead.

Definately you could monitor the log but it will be difficult for the user or may be 3rd person to monitor it.

Probably you could create an ABAP report to trace the creation of PO and its relevant invoice with use of some database tables.

From performance percpective if you see that these two processes are incorporated in single integration Process and lets assume that the Webservice had send the details to create PO. Now you need to keep the port open with waiting state unless someone will not invoke the webservice to send Invoice from R/3. Thus as you had said if the invoice is raised after 1 week then the port will be open for 1 week and the message will be in waiting state. It will drastically affect the performace in Production landscape. Plz don't mind but probably you could be able to just use only this integration in real time production server, other will get failed.

Even if you create multiple POs then all the messages will be in queue and will not get any proper status. All will be stuck up in XI.

Thus if you create the ABAP report and be able to trace the creation details of PO and invoice along with the Message Id from XI (You could pass the message ID to receivers). it will be easy to trace related PO and invoice. Rather ABAP report will provide you better visibilyt and customization. On the basis of Message ID anyone could monito it in XI.

thanks

Swarup

henrique_pinto
Active Contributor
0 Kudos

> In XI, how can you relate the two integration Processes? Well, I can because it's me who have developed it, but imagine it's a person who never saw the process and has to monitor it.

> How can this person compare the first process which is created today, and the invoice process which will be created in two weeks from today?

> The purpose of having only one Integration process it's because it will facilitate and speed up the monitoring of all this process.

>

> Well, but maybe i'm only complicating things....

That's the main problem about confusing BPM with IP.

SAP has seen the misleading that naming Integration Processes as BPMs may cause and has cheerfully renamed it.

SAP XI/PI provide an engine for orchestration and technical integration between several logical components. However, an Integratioin Process is not and should not be considered a Business Process Management simply because it does not necessarily is related to a fully and complete business process. It may be just part of the whole business process, as in your case.

To have a full monitoring of the business process, you should use other SAP tools: Workflow (old and not so recommended anymore, but still efective) or, to be more alligned with SAP NetWeaver offering, CAF Guided Procedures. With such tools, you are able to have status tracking and full monitoring over the business process as a whole (which may be constituted by any tasks, including 1 or more integration processes).

Regards,

Henrique.

Former Member
0 Kudos

Hi Henrique,

I agree with you in some points... I agree that in the main goal of an integration Process. Why? Well, as you can see an Integration Process is nothing more than BPEL code and what is one of the key objectives of BPEL? To "map" a bpmn diagram into an executable business process. I'm really aware of the bpel limitations and the limitations inherent to BPMN->BPEL Transformation, but what I'm trying to say is that if an integration Process is at the very end a BPEL process, this scenario should be a simple one! Monitoring Business Processes is one of an EAI advantage. Eventhough XI is really limited in this point (just compare it to Active, Fuego aka BEA aka ORACLE) this shouldn't be a problem....

I'll just model the scenario in another and limited way...

Once again thanks a lot for this interesting brainstorming

Former Member
0 Kudos

Hi Swarup,

Thanks for your suggestions.

You're right, with an abap report I could monitor the process but like I told Henrique, I consider this a huge SAP limitation. That's one of the key features of an EAI tool.

Relating to the point where you said a port would be kept open, I think this would not happen.

When you create the PO, the port will be open only for a few seconds. This is time of creating a PO. Then this port will be closed, the only thing which will be active is an event waiting for the reception of an invoice.

I don't consider this a really big thing in XI performance, it's a simple send-waitForReceptionEvent-send process, it should be trivial thing for a respected EAI tool

Like I said Henrique, thanks for this cool brainstorming Swarup.

henrique_pinto
Active Contributor
0 Kudos

That's my point! XI's Integration Process IS NOT the concurrent for Fuego BPM capability).

For that case, just wait for Galaxy... ;-).

And as for the technical limitation, as I've explained it's not about BPEL but ABAP itself.

Regards,

Henrique.

Answers (1)

Answers (1)

Former Member
0 Kudos

NOT Possible.

For one Inegration Process there should be only and only one S/A bridge.

If you have TIBITS then simple go to that--> BPM documents and check the S/A bridge section. it says the same.

thanks

farooq

Former Member
0 Kudos

Hi Farrooq,

I've read help.sap and I've done the TBITS and you're right, SAP only allows one S/A bridge. But that is not the real question, the question is if SAP promotes SOA how can we relate multiple calls to central or non-central webServices in XI?

It's a simple question and I was trying to have a little brainstorming with you guys in order to find a solution for this scenario...

Former Member
0 Kudos

Scenario can be of any type:)

But while designing single BPM it is possible or not..meaning if I want more then one S/A bridge in one IP then it do not support it and then we have to look for other solution...that is completly different from your first question.

as your question say..more then one S/A is possible in one IP or not:-) So no.

thanks

farooq.