Hi Sathwik,

                I have taken the process and modified the same so that it can 
deploy and run in our environment. However I am getting the following selection 
failure errors.



115821 [ODEServer-1] ERROR org.apache.ode.bpel.runtime.INVOKE  - 
org.apache.ode.bpel.common.FaultException: No results for expression: 'in' 
against '<?xml version="1.0" encoding="UTF-8"?>

<initiate xmlns="http://www.example.org/xsd/FirstAsync/";>

        <ns3:in xmlns:ns3="http://www.example.org/xsd/FirstAsync/";>500</ns3:in>

</initiate>'



I have uploaded the process archive into google drive at the following location 
- https://drive.google.com/file/d/0B7AACAopX_yxcTVhNWZ0b0VYSDQ/view?usp=sharing



Can you please inspect the files and see if something is missing?



Regards,

Vinay



-----Original Message-----
From: Sathwik B P [mailto:[email protected]]
Sent: Wednesday, October 07, 2015 12:25 AM
To: [email protected]
Subject: Re: Receive activities inside a Flow activity



Hi,



I have packaged a process that has a flow with 2 sequences containing 
invoke(one-way)->assign->wait->receive->assign. This process has been verified 
on ODE 1.3.5 and embedded Derby database.



I have highlighted the execution of the 2 sequences (yellow and brown) within 
the flow in a couple of excel sheets. One of the excel sheet demonstrates the 
execution of process instance to completion and the other excel sheet 
demonstrates the process instance waiting for external message to arrive.



The execution of the flow activity looks perfectly fine in this scenario.

You may run this process in your environment and see how it goes.



Download the process artefact and excel sheet from this archive:

https://dl.dropboxusercontent.com/u/92429475/FlowParallelInvoke.zip





FlowParallelInvoke.bpel



---------------------------------



<?xml version="1.0" encoding="UTF-8"?>

<bpel:process exitOnStandardFault="yes" name="FlowParallelInvoke.bpel"

    targetNamespace="http://www.example.org/FlowParallelInvoke/";

    xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable";

    xmlns:ns="http://www.example.org/FlowParallelInvoke/Artifacts";

    xmlns:ns0="http://www.example.org/FlowParallelInvoke/"; xmlns:ns1="

http://www.example.org/FirstAsync/";

    xmlns:ns2="http://www.example.org/SecondAsync/"; xmlns:ns3="

http://www.w3.org/2001/XMLSchema";

    xmlns:xs="http://www.w3.org/2001/XMLSchema";

    queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"

    expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">

    <bpel:import namespace="http://www.example.org/SecondAsync/";

        location="SecondAsync.wsdl" importType="

http://schemas.xmlsoap.org/wsdl/";></bpel:import<http://schemas.xmlsoap.org/wsdl/%22%3e%3c/bpel:import>>

    <bpel:import namespace="http://www.example.org/FirstAsync/";

        location="FirstAsync.wsdl" importType="

http://schemas.xmlsoap.org/wsdl/";></bpel:import<http://schemas.xmlsoap.org/wsdl/%22%3e%3c/bpel:import>>

    <bpel:import importType="http://schemas.xmlsoap.org/wsdl/";

        location="FlowParallelInvoke.wsdl" namespace="

http://www.example.org/FlowParallelInvoke/"; />

   <bpel:import importType="http://schemas.xmlsoap.org/wsdl/";

        location="FlowParallelInvokeArtifacts.wsdl" namespace="

http://www.example.org/FlowParallelInvoke/Artifacts"; />

    <bpel:partnerLinks>

        <bpel:partnerLink myRole="FlowParallelInvokeRole"

            name="bpelProcessPartner"

partnerLinkType="ns:FlowParallelInvokePLT" />

        <bpel:partnerLink name="firstAsyncPartner"

            partnerLinkType="ns1:FirstAsyncLinkType"

myRole="FirstCallbackRole"

            partnerRole="FirstAsyncRole"

initializePartnerRole="yes"></bpel:partnerLink>

        <bpel:partnerLink name="secondAsyncPartner"

            partnerLinkType="ns2:SecondAsyncLinkType"

myRole="SecondCallbackRole"

            partnerRole="SecondAsyncRole"

initializePartnerRole="yes"></bpel:partnerLink>

    </bpel:partnerLinks>

    <bpel:variables>

        <bpel:variable name="initiateProcessRequest"

            messageType="ns0:initiateProcessRequest" />

        <bpel:variable name="firstAsyncInvoke"

messageType="ns1:initiateRequest">

        </bpel:variable>

        <bpel:variable name="firstAsyncCallback"

messageType="ns1:callbackRequest"></bpel:variable>

        <bpel:variable name="secondAsyncInvoke"

messageType="ns2:initiateRequest"></bpel:variable>

        <bpel:variable name="secondAsyncCallback"

messageType="ns2:callbackRequest"></bpel:variable>

        <bpel:variable name="correlationVar"

type="xs:string"></bpel:variable>

        <bpel:variable name="executionFlowVarSeq1"

type="xs:string"></bpel:variable>

        <bpel:variable name="executionFlowVarSeq2"

type="xs:string"></bpel:variable>



    </bpel:variables>

    <bpel:correlationSets>

        <bpel:correlationSet name="inCorrelation"

            properties="ns:firstin"></bpel:correlationSet>



    </bpel:correlationSets>

    <bpel:sequence name="MainSequence">





        <bpel:receive name="Receive" partnerLink="bpelProcessPartner"

            operation="initiateProcess" portType="ns0:FlowParallelInvoke"

            variable="initiateProcessRequest"

createInstance="yes"></bpel:receive>

        <bpel:assign validate="no" name="Assign">

            <bpel:copy>

                <bpel:from>current-dateTime()</bpel:from>

                <bpel:to>$correlationVar</bpel:to>

            </bpel:copy>

            <bpel:copy>

                <bpel:from>

                    <bpel:literal xml:space="preserve"><ns1:initiate>

         <in>?</in>

      </ns1:initiate></bpel:literal>

                </bpel:from>

                <bpel:to>

                    <![CDATA[$firstAsyncInvoke.parameters]]>

                </bpel:to>

            </bpel:copy>

            <bpel:copy>

                <bpel:from>$correlationVar</bpel:from>



<bpel:to><![CDATA[$firstAsyncInvoke.parameters/in]]></bpel:to>

            </bpel:copy>

            <bpel:copy>

                <bpel:from>

                    <bpel:literal xml:space="preserve"><ns2:initiate>

         <in>?</in>

      </ns2:initiate></bpel:literal>

                </bpel:from>

                <bpel:to>

                    <![CDATA[$secondAsyncInvoke.parameters]]>

                </bpel:to>

            </bpel:copy>

            <bpel:copy>

                <bpel:from>$correlationVar</bpel:from>



<bpel:to><![CDATA[$secondAsyncInvoke.parameters/in]]></bpel:to>

            </bpel:copy>

        </bpel:assign>

        <bpel:flow name="FlowParallelInvokeReceive">

            <bpel:sequence name="Sequence1">



                <bpel:invoke name="Invoke1" partnerLink="firstAsyncPartner"

                    operation="initiate" portType="ns1:FirstAsync"

inputVariable="firstAsyncInvoke">

                    <bpel:correlations>

                        <bpel:correlation set="inCorrelation"

initiate="join"></bpel:correlation>

                    </bpel:correlations>

                </bpel:invoke>





                <bpel:assign validate="no"

name="assignexecutionFlowVarSeq1-to1">

                    <bpel:copy>

                        <bpel:from>"1"</bpel:from>

                        <bpel:to>$executionFlowVarSeq1</bpel:to>

                    </bpel:copy>

                </bpel:assign>



                <bpel:wait name="Wait1">

                    <bpel:for>'PT1S'</bpel:for>

                </bpel:wait>



                <bpel:receive name="Receive1"

partnerLink="firstAsyncPartner"

                    operation="callback" portType="ns1:FirstCallbackSOAP"

variable="firstAsyncCallback">

                    <bpel:correlations>

                        <bpel:correlation set="inCorrelation"

initiate="no"></bpel:correlation>

                    </bpel:correlations>

                </bpel:receive>



                <bpel:assign validate="no"

name="assignexecutionFlowVarSeq1-to2">

                    <bpel:copy>

                        <bpel:from>"2"</bpel:from>

                        <bpel:to>$executionFlowVarSeq1</bpel:to>

                    </bpel:copy>

                </bpel:assign>



            </bpel:sequence>

            <bpel:sequence name="Sequence2">

                <bpel:invoke name="Invoke2" partnerLink="secondAsyncPartner"

                    operation="initiate" portType="ns2:SecondAsync"

inputVariable="secondAsyncInvoke">

                    <bpel:correlations>

                        <bpel:correlation set="inCorrelation"

initiate="join"></bpel:correlation>

                    </bpel:correlations>

                </bpel:invoke>





                <bpel:assign validate="no"

name="assignexecutionFlowVarSeq2-to1">

                    <bpel:copy>

                        <bpel:from>"1"</bpel:from>

                        <bpel:to>$executionFlowVarSeq2</bpel:to>

                    </bpel:copy>

                </bpel:assign>



                <bpel:wait name="Wait2">

                    <bpel:for>'PT1S'</bpel:for>

                </bpel:wait>



                <bpel:receive name="Receive2"

partnerLink="secondAsyncPartner"

                    operation="callback" portType="ns2:SecondCallbackSOAP"

variable="secondAsyncCallback">

                    <bpel:correlations>

                        <bpel:correlation set="inCorrelation"

initiate="no"></bpel:correlation>

                    </bpel:correlations>

                </bpel:receive>



                <bpel:assign validate="no"

name="assignexecutionFlowVarSeq2-to2">

                    <bpel:copy>

                        <bpel:from>"2"</bpel:from>

                        <bpel:to>$executionFlowVarSeq2</bpel:to>

                    </bpel:copy>

                </bpel:assign>



            </bpel:sequence>

        </bpel:flow>

    </bpel:sequence>

</bpel:process>



regards,

sathwik



On Tue, Oct 6, 2015 at 4:54 PM, Vinay Vijay 
<[email protected]<mailto:[email protected]>> wrote:



> Hi Sathwik,

>         Yes, process execution stalls in other branch also, till an

> external message arrives for receive in the first branch.

>

> Regards,

> Vinay

>

> -----Original Message-----

> From: Sathwik B P [mailto:[email protected]]

> Sent: Tuesday, October 06, 2015 4:25 PM

> To: [email protected]<mailto:[email protected]>

> Subject: Re: Receive activities inside a Flow activity

>

> "the non-executed activities in other branch are not started till the

> receive activity of the first branch is completed"

>

> What do you mean by receive activity is completed? Does it mean the

> process execution stalls till an external message arrives for this Receive?

>

>

> On Mon, Oct 5, 2015 at 7:28 PM, Vinay Vijay 
> <[email protected]<mailto:[email protected]>>

> wrote:

>

> > Hi,

> >                 I am having 2 parallel branches in a flow activity.

> > Inside each branch I have a receive activity. When the process is

> > executed, the activities in each branch are executed in parallel,

> > but as soon as the receive activity is started in one branch, the

> > non-executed activities in other branch are not started till the

> > receive activity of the first branch is completed.

> >                 Is this the intended behavior? If yes, can you

> > please throw more light on why is it so? I am using ODE 1.3.5.

> > Thanks in

> advance.

> > Regards,

> > Vinay

> >

>

Reply via email to