You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Samuel Rose <sa...@gmail.com> on 2015/09/30 21:38:12 UTC

General ODE implementation question: are custom services needed?

Hi all,

I have a process where I need to call ODE through a SOAP web service
interface, start an instance of a process, and give ODE a value that
it can look up later.

So, for example I can design a very simple process:

start -> step 1 (give ODE a user_id to associate with this instance of
the process) -> step 2 (give ODE a user_id again to lookup and update
the process to step 2) -> end

My question is:

Would it be necessary for me to write custom axis2 services for this
need, and add tables into ODE's mysql database?

Or, is it the case that I can accomplish this kind of task all within
the BPEL tools that are provided by Apache ODE, without the need to
write custom Java code for axis2 services?

My impression is that I can just use the tools BPEL provides, and the
error handling etc already built into ODE, and that it is redundant to
create custom axis2 services.

Your thoughts and recommendations appreciated!

Sam

Re: General ODE implementation question: are custom services needed?

Posted by Tammo van Lessen <tv...@gmail.com>.
Hi Sam,

this can be done with BPEL's owns means. Roughly, you start with a receive
activity that receives a message that contains the user id. For this
message you define a correlation property and propertyAlias that can
extract the user id from the message. With this property you initialize a
correlation set on this very first receive activity. (See [1], [2], [3]).
Then you can nest all following activities in a scope and attach an event
handler on the scope, that uses the same correlation set and listens for
step2-messages. When ODE creates a process instance for this process, it
will associate the user ID with the process instance. When the second
messages arrives with the same user id, it will route the message to this
instance and the event handler will be called and can update the status. So
if I understood the problem correctly, then there is no need for custom
axis2 services.

HTH,
  Tammo

[1]
https://github.com/apache/ode/blob/master/bpel-test/src/test/resources/bpel/2.0/TestCorrelation/testCorrelation.bpel#L50
[2]
https://github.com/apache/ode/blob/master/bpel-test/src/test/resources/bpel/2.0/TestCorrelation/testCorrelation.bpel#L55
[3]
https://github.com/apache/ode/blob/master/bpel-test/src/test/resources/bpel/2.0/TestCorrelation/testCorrelation.wsdl#L89

On Wed, Sep 30, 2015 at 9:38 PM, Samuel Rose <sa...@gmail.com> wrote:

> Hi all,
>
> I have a process where I need to call ODE through a SOAP web service
> interface, start an instance of a process, and give ODE a value that
> it can look up later.
>
> So, for example I can design a very simple process:
>
> start -> step 1 (give ODE a user_id to associate with this instance of
> the process) -> step 2 (give ODE a user_id again to lookup and update
> the process to step 2) -> end
>
> My question is:
>
> Would it be necessary for me to write custom axis2 services for this
> need, and add tables into ODE's mysql database?
>
> Or, is it the case that I can accomplish this kind of task all within
> the BPEL tools that are provided by Apache ODE, without the need to
> write custom Java code for axis2 services?
>
> My impression is that I can just use the tools BPEL provides, and the
> error handling etc already built into ODE, and that it is redundant to
> create custom axis2 services.
>
> Your thoughts and recommendations appreciated!
>
> Sam
>



-- 
Tammo van Lessen - http://www.taval.de