On Thu, Apr 2, 2009 at 2:46 PM, Jonathan Coogan <
[email protected]> wrote:

>  Hi.  I’m having a problem when copying data from one variable to another
> within a forEach loop.  When I use a query to copy data out of a variable I
> get a selection failure fault at runtime.  This works correctly when I copy
> from an expression instead of a query.
>
> I have attached an example that demonstrates the problem.  The expected
> output of the attached BPEL process is the string “five”.  It works
> correctly when using an expression, but fails when using a query.  Here is
> the relevant snippet:
>

BPEL assignment doesn't provide any context node to the XPath engine,
everything is always relative to a variable. Which means that your query
should be relative and not absolute.

Matthieu


>
> <bpws:forEach counterName="Counter" name="ForEach" parallel="no">
>   <bpws:startCounterValue
> expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"><![CDATA[1]]></bpws:startCounterValue>
>   <bpws:finalCounterValue
> expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"><![CDATA[count($Data/ns0:Record)]]></bpws:finalCounterValue>
>   <bpws:scope>
>     <bpws:assign validate="no">
>       <bpws:copy>
>         <!--
> ----------------------------------------------------------------------------
> -->
>         <!-- This generates a selection failure at runtime. -->
>         <bpws:from variable="Data">
>             <bpws:query
> queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"><![CDATA[/ns0:Record[$Counter]/ns0:SomeValue]]></bpws:query>
>         </bpws:from>
>
>         <!-- This works. -->
>         <!-- <bpws:from
> expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"><![CDATA[$Data/ns0:Record[$Counter]/ns0:SomeValue]]></bpws:from>
> -->
>         <!--
> ----------------------------------------------------------------------------
> -->
>
>         <bpws:to part="payload" variable="output"/>
>       </bpws:copy>
>      </bpws:assign>
>   </bpws:scope>
> </bpws:forEach>
>
> I have tested this with Ode 1.2 and a recent build of Ode 1.X and both
> behave the same.  Can someone tell me if I am doing something wrong?  Or
> should I write a bug report for this?
>
> Thanks for your time.
> -Jon
>

Reply via email to