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:
<bpws:forEach counterName="Counter" name="ForEach" parallel="no">
<bpws:startCounterValue
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"><![C
DATA[1]]></bpws:startCounterValue>
<bpws:finalCounterValue
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"><![C
DATA[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"><![C
DATA[$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