Correlation is initialized within Invoke activity as per the process. Check your PropertyAlias query.
On Thu, Nov 5, 2015 at 12:55 PM, Vinay Vijay <[email protected]> wrote: > Hi Sathwik, > > Find below the assign snippet from the bpel. I am > addressing it with namespace 'ns3' which is defined at the beginning of the > bpel. > > > > <copy> > > <from> > > <literal xml:space="preserve"> > > <ns3:initiate> > > <ns3:in></ns3:in> > > </ns3:initiate> > > </literal> > > </from> > > <to> > > $firstAsyncInvoke.parameters > > </to> > > </copy> > > <copy> > > <from variable="correlationVar"/> > > <to>$firstAsyncInvoke.parameters/ns3:in</to> > > </copy> > > > > > ----------------------------------------------------------------------------------- > > > > I am pasting the entire bpel below for quick reference > > > > <?xml version="1.0" encoding="UTF-8"?> > > <process exitOnStandardFault="yes" name="FlowParallelInvoke" > > targetNamespace="http://www.example.org/FlowParallelInvoke/" > > xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" > > xmlns:tns="http://www.example.org/FlowParallelInvoke/" > > xmlns:ns0="http://www.example.org/wsdl/FlowParallelInvoke/" > > xmlns:ns1="http://www.example.org/FirstAsync/" > > xmlns:ns2="http://www.example.org/SecondAsync/" > > xmlns:ns3="http://www.example.org/xsd/FirstAsync/" > > xmlns:ns4="http://www.example.org/xsd/SecondAsync/" > > xmlns:xs="http://www.w3.org/2001/XMLSchema" > > xmlns:ode="http://www.apache.org/ode/type/extension" > > queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0" > > expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"> > > > > <import namespace="http://www.example.org/SecondAsync/" > location="SecondAsync.wsdl" importType="http://schemas.xmlsoap.org/wsdl/ > "></import> > > <import namespace="http://www.example.org/FirstAsync/" > location="FirstAsync.wsdl" importType="http://schemas.xmlsoap.org/wsdl/ > "></import> > > <import importType="http://schemas.xmlsoap.org/wsdl/" > location="FlowParallelInvoke.wsdl" namespace=" > http://www.example.org/wsdl/FlowParallelInvoke/" /> > > > > <partnerLinks> > > <partnerLink name="bpelProcessPartner" > partnerLinkType="ns0:FlowParallelInvoke" > > myRole="FlowParallelInvokeProvider"></partnerLink> > > <partnerLink name="firstAsyncPartner" > partnerLinkType="ns1:FirstAsyncLinkType" myRole="FirstCallbackRole" > > partnerRole="FirstAsyncRole" > initializePartnerRole="yes"></partnerLink> > > <partnerLink name="secondAsyncPartner" > partnerLinkType="ns2:SecondAsyncLinkType" myRole="SecondCallbackRole" > > partnerRole="SecondAsyncRole" > initializePartnerRole="yes"></partnerLink> > > </partnerLinks> > > <variables> > > <variable name="initiateProcessRequest" > > messageType="ns0:initiateProcessRequest" /> > > <variable name="firstAsyncInvoke" > messageType="ns1:initiateRequest"> > > </variable> > > <variable name="firstAsyncCallback" > messageType="ns1:callbackRequest"></variable> > > <variable name="secondAsyncInvoke" > messageType="ns2:initiateRequest"></variable> > > <variable name="secondAsyncCallback" > messageType="ns2:callbackRequest"></variable> > > <variable name="correlationVar" type="xs:integer"></variable> > > <variable name="executionFlowVarSeq1" type="xs:string"></variable> > > <variable name="executionFlowVarSeq2" type="xs:string"></variable> > > > > </variables> > > <correlationSets> > > <correlationSet name="inCorrelation" > properties="ns1:firstin"></correlationSet> > > <correlationSet name="inCorrelation1" > properties="ns2:secondin"></correlationSet> > > </correlationSets> > > <sequence name="MainSequence"> > > > > > > <receive name="Receive" partnerLink="bpelProcessPartner" > > operation="initiateProcess" > portType="ns0:FlowParallelInvoke" > > variable="initiateProcessRequest" > createInstance="yes"></receive> > > <assign name="Assign"> > > <copy> > > <from>$ode:pid</from> > > <to>$correlationVar</to> > > </copy> > > <copy> > > <from> > > <literal xml:space="preserve"> > > <ns3:initiate> > > <ns3:in></ns3:in> > > </ns3:initiate> > > </literal> > > </from> > > <to> > > $firstAsyncInvoke.parameters > > </to> > > </copy> > > <copy> > > <from> > > <literal xml:space="preserve"> > > <ns4:initiate> > > <ns4:in></ns4:in> > > </ns4:initiate> > > </literal> > > </from> > > <to> > > $secondAsyncInvoke.parameters > > </to> > > </copy> > > <copy> > > <from variable="correlationVar"/> > > <to>$firstAsyncInvoke.parameters/ns3:in</to> > > </copy> > > <copy> > > <from variable="correlationVar"/> > > <to>$secondAsyncInvoke.parameters/ns4:in</to> > > </copy> > > </assign> > > <flow name="FlowParallelInvokeReceive"> > > <sequence name="Sequence1"> > > > > <invoke name="Invoke1" > partnerLink="firstAsyncPartner" operation="initiate" > portType="ns1:FirstAsync" inputVariable="firstAsyncInvoke"> > > <correlations> > > <correlation set="inCorrelation" > initiate="yes"></correlation> > > </correlations> > > </invoke> > > > > > > <assign name="assignexecutionFlowVarSeq1-to1"> > > <copy> > > <from>"1"</from> > > <to>$executionFlowVarSeq1</to> > > </copy> > > </assign> > > > > <wait name="Wait1"> > > <for>'PT1S'</for> > > </wait> > > > > <receive name="Receive1" > partnerLink="firstAsyncPartner" operation="callback" > portType="ns1:FirstCallbackSOAP" variable="firstAsyncCallback"> > > <correlations> > > <correlation set="inCorrelation" > initiate="no"></correlation> > > </correlations> > > </receive> > > > > <assign name="assignexecutionFlowVarSeq1-to2"> > > <copy> > > <from>"2"</from> > > <to>$executionFlowVarSeq1</to> > > </copy> > > </assign> > > > > </sequence> > > <sequence name="Sequence2"> > > <invoke name="Invoke2" > partnerLink="secondAsyncPartner" operation="initiate" > portType="ns2:SecondAsync" inputVariable="secondAsyncInvoke"> > > <correlations> > > <correlation set="inCorrelation1" > initiate="yes"></correlation> > > </correlations> > > </invoke> > > > > > > <assign name="assignexecutionFlowVarSeq2-to1"> > > <copy> > > <from>"1"</from> > > <to>$executionFlowVarSeq2</to> > > </copy> > > </assign> > > > > <wait name="Wait2"> > > <for>'PT1S'</for> > > </wait> > > > > <receive name="Receive2" > partnerLink="secondAsyncPartner" operation="callback" > portType="ns2:SecondCallbackSOAP" variable="secondAsyncCallback"> > > <correlations> > > <correlation set="inCorrelation1" > initiate="no"></correlation> > > </correlations> > > </receive> > > > > <assign name="assignexecutionFlowVarSeq2-to2"> > > <copy> > > <from>"2"</from> > > <to>$executionFlowVarSeq2</to> > > </copy> > > </assign> > > > > </sequence> > > </flow> > > </sequence> > > </process> > > > > Regards, > > Vinay > > > > -----Original Message----- > From: Sathwik B P [mailto:[email protected]] > Sent: Thursday, November 05, 2015 12:28 PM > To: [email protected] > Subject: Re: Receive activities inside a Flow activity > > > > The input xml has a namespace for the "in" element and you are probably > trying to query for "in" element without using that namespace and hence the > selection failure exception. > > > > You might check your correlation definition. > > > > On Thu, Nov 5, 2015 at 11:04 AM, Vinay Vijay <[email protected] > <mailto:[email protected]>> wrote: > > > > > 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]<mailto:[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%3c> > > > 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%3c> > > > 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]<mailto: > [email protected]%3cmailto:[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 > > > > > > > > > > > > > > > > > > >
