cancel
Showing results for 
Search instead for 
Did you mean: 

Receive choice (BPEL) in BPMN

Former Member
0 Kudos

Hello Experts,

I`m converting a process from non-SAP integration system which is using BPEL for process description into SAP PO (which is using BPMN of course).

I`m wondering how can I convert BPEL activity RECEIVE CHOICE into SAP BPMN.

Receive choice is something like CASE ... WHEN statement in ABAP. You set the sender Service Interface with multiple operations into it and it will choose which branch is the right one, according to which operation was called by sender system.

I found that SAP implementation of BPMN has big restriction according to standard BPMN or BPEL - you can set only one operation of only one service interface as input point of BPMN process.

Is there some design pattern or work around how to convert that BPEL activity into SAP BPMN?

Thank you

VB

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Vladimir,

With SAP BPM each inbound service endpoint (represented as Intermediate Message Event in the model) can have only one operation. To the sender this means that each operation called is finally a different URL. In the BPM model you use the Event Based Choice

The flow will continue depending on which operation interface is called by the sender. So if Operation1 is called then the Sub-Process B will be run next.

regards, Nick

Former Member
0 Kudos

Thank you Nicholas for answer - but your solution is not complete replacement for Receive Choice, because I have to set initial event trigger for start event, which can be set only for one specific operation.

So lets say, that I have service interface with 3 operations


           -op1

WS1    - op2

          -op3

- I can set start event trigger for e.g. WS1/op2.

But that means that my process will not start when sender calls WS1/op3 and WS1/op1. So that event based choice will not have chance to make its choice.

Or am I wrong? Is there possibility to start process with any WS? Lets say by setting DefaultService_Empty as event trigger?

Former Member
0 Kudos

Hi Vladimir,

If you want to start the process using different sender interfaces you need to reference the method provided by Volker Stiehl in the article -

regards, Nick

Former Member
0 Kudos

I read that excellent article of Volker before, and it is possible solution for that problem, but only in a case that I need to aggregate few messages of not so different message types.

But it is not my case - I need to trigger my process for almost twenty message types (almost twenty operations on my service interface), and if I would make super message type (combined message type of all message types) it would have hundreds of fields and such a message would be so huge to work with and really unflexible to future changes.

So - simple aggregator pattern is not suitable for me, because it consumes multiple messages of one message type (one operation) and that upgraded aggregator pattern (after some changes) can be a solution, but due to high number of operations (message types) - it is somewhat unpractical.

Neverthless, that I dont need to aggregate these messages, but I need some kind of DISPATCHER pattern.

I have one service interface with multiple operations and want to dispatch right process for actual operation of that SI. I cannot believe that BPMN doesnt have such a trivial functionality.

vb