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 >
