cancel
Showing results for 
Search instead for 
Did you mean: 

Call sync BPM from Async BPM - issue

Former Member
0 Kudos

Hi,

Outline: I'm trying to call a synchronous BPM from an asynchronous BPM in a PI 7.0 SP 14 system.

When doing so i get the following error: Object CL_SWF_XI_MSG_BROKER method SEND_SYNCHRON cannot be executed.

Now this is an oldie when searching the forums for this error message. I do however fail to see a solution to the problem.

Note that the following notes (referred to in similar posts)

- 710445

- 718734

- 830803

are implemented since theese refer to older versions of PI.

My scenario is very simple at present since i've startet from scratch again after getting the error. So what i do is:

1) send async message to async BPM

2) async BPM receives request

3) async bpm transform request til sync_request.

4) async BPM calls synchronous BPM

5) sync BPM receives request and opens a async/sync bridge

6) sync BPM maps request to response

7) sync BPM sends response and closes async/sync bridge

😎 async BPM reveices sync_response

9) async BPM sends sync_response to some application

Now step 8 i never succesfully executed. Instead the error earlier described is triggered.

For simplicity i use 1 and only 1 message type in all message interfaces. I have mapping between my synchronous interfaces outside of BPM.

The synchronus BPM is executed just fine. The only issue is getting the reponse back to the asynchronous BPM.

I am familiar with the following similar posts:

-

-

but find them to be of no use.

Hope someone can help.

Best Regards,

Daniel

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Implementing SAP note 1246527 (BPE-RUN: Synchronous send fails if receiver is process) solved the problem.

VijayKonam
Active Contributor
0 Kudos

First you do not need any bridges if it is asyn/sync kind of a scenario in the second BPM. You need a bridge when the bpm has to wait with a sync call coming in and response in an async call. Essentially your BPMs (I donno why you need 2.. but let us go with 2)

>

>

> 1) send async message to async BPM

> 2) async BPM receives request

> 3) async bpm transform request til sync_request.

> 4) async BPM calls synchronous BPM

> 5) sync BPM receives request

(Remove this if you are calling a sync system here) and opens a async/sync bridge

> 6) sync BPM maps request to response

> 7) sync BPM sends response

Remove this and closes async/sync bridge

> 😎 async BPM reveices sync_response

> 9) async BPM sends sync_response to some application

>

VJ

Former Member
0 Kudos

Hi,

Really, as previously statet this is a simplified scenario to test my real world scenario. Im not using a async/sync bridge but a sync/async bridge in the synchronous BPM also as previously statet:-) So this means in my "real" scenario lots of more actions take place than described here.

Please dont worry bout the lag of logic in what I described here, but focus on the error i get when trying to perform the synchronous call from the asynchropnous BPM to the synchronous BPM.

For information im corrently having my basis-team try and implement note 1246527. If it solved the issue i will of cause report so when i know:-)

Best Regards,

Daniel

mf_haq
Active Participant
0 Kudos

Hi,

If everything is working fine then check with your sender sys parameters and authoriztions....basically Sync/Async bridge helpfull...whn your receiving sys does't have the capability to receive Sync/Async messages....(it converts the calls from Sync to Async and vice versa ) pls study your requirment once again and use proper steps.....hope your scenario will be work.

with rgds,

MFH

Former Member
0 Kudos

Hi,

This is all internal workflow communication: 1 BPM calls another. Thus I dont believe authorizations are relevant here.

Regards,

Daniel

former_member200962
Active Contributor
0 Kudos

Can you tell why are you implementing usch an interface?

Looking at your steps I dont think you need Sync BPM.....there is nothing special that your Sync BPM is doing.

When you say you open an Async-Sync bridge in the BPM it should mean that you receive an Async request....then BPM makes a Sync call.....then the response is send to the calling system and the call is closed.....however looking at the steps that you have implemented there is no such logic (of Async-Sync) seems to be implemented.

Do have a re-look at your requirement and do modifications accordingly.....also when you send the message back to Async-BPM make sure that a correlation is defined & used properly.

Regards,

Abhishek.

Former Member
0 Kudos

Hey,

Ok, thought it was clear inj the outline that what i wrote in this post is a simplified scenario whoose sole purpose is to test the problem giving me problems in the "real" scenario.

So, yes, i do need this functionality:-)

And as for the async/synch bridge i mentioned - this is of cause an sync/async bridge instead. My bad for putting it in the wrong order when writing. As i wrote i have an asynchronous BPM and a synchronous BPM. No correlations should be needed in such a scenario.

Hope it clearifies.

Regards,

Daniel