ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sathwik B P <sathwik...@gmail.com>
Subject Re: Dynamically invoke a child process
Date Wed, 02 Nov 2016 07:52:47 GMT
Hi Jit,

Hope these couple of approaches might address your requirement. This is
just a high level idea.

1) Iterative forEach parallel='yes'

    <bpel:forEach parallel='yes' ...>
        initialize the counter here
               <partnerlink .. />
               access the EPR array using the index counter and assign it
to the partnerlink.
               <invoke .../>

The forEach parallel loop runs an implicit <flow> for the embedded <scope
/> and that's how it runs parallel. You might have to use an array to hold
the EPR and use the counter value within the loop to access the specific
EPR during each iteration and assign it to the partnerlink. In order to
hold  EPR values in an array you might have to use an XSLT transformation.
Instead of using a global partnerlink you might define and use a local
partner link within the forEach scope.

2) While loop with async communication and explicit correlation

    <while ...>
        <invoke /> This is a one way invoke with explicit correlation

   <while ...>
        <receive /> This receive should be with explicit correlation

   Here, the first while loop does an sequential invoke, but since its a
one way invocation it doesn't wait for any response and it completes almost
immediately. The second while loop will wait for as many responses as the
invokes were made. Correlation values have to be unique across the

Hope this helps.


On Mon, Oct 24, 2016 at 12:04 PM, Sathwik B P <sathwik.bp@gmail.com> wrote:

> Hi,
> We will be happy to answer questions if there is any specific problems in
> executing the process model on ODE or question on the behaviour of ODE.
> We cannot answer questions about complete process solution models.
> *To answer this question,Do I need all sub processes to have same
> interface (namespace, operations and messages)? *
> Ans: Bpel activity definition is static in nature (Bpel Specification) and
> one cannot change it at runtime. Henceforth, invoking multiple sub process
> using the same Invoke activity definition would enforce you to have your
> sub process adhere to same interface. Only the endpoints of the partnerlink
> can be changed.
> regards,
> sathwik
> On Mon, Oct 24, 2016 at 6:15 AM, Raghvendra Srivastava <
> raghvendrasrivastava@gmail.com> wrote:
>> Hi Sathwik,
>> How are you doing?
>> I am also very interested in this use case. Please suggest a way to
>> accomplish this using ode.
>> Thanks,
>> Rag
>> On Thursday, September 15, 2016, Jit K <jkfrm8@gmail.com> wrote:
>> > ​It worked too. Thanks.
>> >
>> > H
>> > ​owever, this was just a part the solution I am trying to develop.
>> >
>> > I have a main process and bunch of sub processes. Each sub process is
>> > registered in a central repository with a unique name. Sub processes
>> may be
>> > added or removed as required (with appropriate addition or removal from
>> > central repository).
>> > The request message to the main process has a list of sub processes to
>> be
>> > invoked for that particular request. For example, request-1 may need to
>> > invoke sub-process-1 and sub-process-3 whereas request-2 may need to
>> invoke
>> > sub-process-2 and sub-process-3.
>> > Thus I want to invoke the specified sub processes. Sub processes should
>> > execute in parallel. At the end there should be a join to collate the
>> > results of all sub processes.
>> >
>> > Please suggest how can I achieve this?
>> > Do I need all sub processes to have same interface (namespace,
>> operations
>> > and messages)? Till now I was trying with the SAME Sub process (same
>> name,
>> > same interface) deployed at 2 different locations. Now I am trying with
>> > DIFFERENT sub processes (different names, same interface).
>> >
>> > Any kind of help is appreciated.
>> >
>> > Regards,
>> > JK
>> > ​
>> >

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message