cancel
Showing results for 
Search instead for 
Did you mean: 

SAP PO: fault message forward out of BPM to the synchronous call

szymon_bolek
Participant
0 Kudos

Hello:)

Scenario:

Sync SOAP with fault <-> PI/PO Single Stack <-> ( NW BPM <-> sync call with fault)

In NW BPM the sync call(automated activity) throws a fault application message, which can be caught using boundary event. This generates an event which I would like to map to the fault message of the synchronous interface, that called the NW BPM, so the sync SOAP fault can be forwarded to the initial caller.

But doing so, the BPM process gets suspended, and the only thing i can see in the History is:

Process step failed | Exception: Operation: <blah blah> has returned a recognized fault, namely: <blah>

Process step failed | Exception:

Process suspended | Process <blah> suspended

So the first line is ok, sync call out of BPM throws fault.

The second is ??? Even if i set log level to the highest possible 'Full', i get nothing more here.

So might be wrong? How do i forward the caught fault message from BPM to the SYNCHRONOUS caller of the PI/PO.

Is it possible at all?

I am aware of the timeout problem, the bigger the BPM gets. Still I would like to call BPM synchronously and being able to catch fault message there and forward it.

thank you and cheers

simon

Accepted Solutions (1)

Accepted Solutions (1)

engswee
Active Contributor
0 Kudos

Hi Szymon

It looks like there is a limitation for handling fault in BPM, and it is not supported for synchronous process. Refer to this snippet from the thread below (it is also documented in NWDS help section.)


but you cannot model a synchronous process

ending with an error end event because WSDL fault response is not supported

I tried modelling this process with the fault boundary event of the sync call triggering an error end event, and it does not work. The fault from the sync call is captured in BPM but the state goes to suspended and it does not return the fault to the caller.

From the replies in the above thread, it looks like it can be achieved via custom EJB.

Rgds

Eng Swee

szymon_bolek
Participant
0 Kudos

Thank you Eng Swee,

Yes, there seems to be a limitation there. Why would anybody want to throw exceptions in java anyways

Well the only thing I can do is to make an EJB and call this EJB instead of calling BPM. EJB Throws an exception and I can forward it to the caller alright.

I hope this will be possible with a future version...

Thank you!

cheers

simon

Answers (0)