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: Receive activities inside a Flow activity
Date Thu, 05 Nov 2015 06:57:44 GMT
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 <vinay.vijay@altair.com> 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:sathwik.bp@gmail.com]
> Sent: Wednesday, October 07, 2015 12:25 AM
> To: user@ode.apache.org
> 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 <vinay.vijay@altair.com
> <mailto:vinay.vijay@altair.com>> 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:sathwik.bp@gmail.com]
>
> > Sent: Tuesday, October 06, 2015 4:25 PM
>
> > To: user@ode.apache.org<mailto:user@ode.apache.org>
>
> > 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 <vinay.vijay@altair.com
> <mailto:vinay.vijay@altair.com>>
>
> > 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
>
> > >
>
> >
>

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