You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Filip Majernik <fi...@gmail.com> on 2009/11/18 21:49:00 UTC

How to insert a new child into a sequence element in the message?

Hi guys,
I have following scenario using ODE 1.3.2: The process receives a message
with more elements <refund> in a sequence. Then it processes them in a
foreach acitvity and should insert them into a request message for another
service.

The process fails with a selection failure at this activity, which is a part
of an assign activity in the foreach loop (if I comment it out, it works,
however with no refund elements in the request):

<bpel:copy>
     <bpel:from>
          <![CDATA[ode:insert-as-last-into($refunds, $refundTmp)]]>
     </bpel:from>
     <bpel:to>
          <![CDATA[$refunds]]>
     </bpel:to>
</bpel:copy>

The variable $refundTmp is properly filled with data and $refunds is also
properly initialized before the foreach loop starts.
Can you please help me? Am I doing something wrong, or is there any issue
about the insert-as-last-into extension??? I really need this to be done as
soon as possible :)

Thank you in advance.
Filip

Re: How to insert a new child into a sequence element in the message?

Posted by Filip Majernik <fi...@gmail.com>.
Hi,
thanks for the quick answer. A minute ago I have just got it work. The
problem was with the identificator of the new child. This ways it works:

<bpel:copy>
     <bpel:from>
          <![CDATA[ode:insert-as-last-into($refunds,
$refundTmp/self::node())]]>
     </bpel:from>
     <bpel:to>
          <![CDATA[$refunds]]>
     </bpel:to>
  </bpel:copy>

However, I got another problem now. When I insert the newly constructed
$refunds into the message, there is a new element wrapping the new inserted
children:

<xsd-complex-type-wrapper xmlns="">

Moreover, it has replaced the actual parent element of the new child, which
should be:

<xsd1:refundRequest>

Any ideas?

On Wed, Nov 18, 2009 at 10:00 PM, Rafal Rusin <ra...@gmail.com> wrote:

> Possibly you need to have a variable $refunds consisting of one
> element with multiple elements inside.
> Check out working example from here:
>
> http://svn.apache.org/repos/asf/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/TestSubTreeAssign.bpel
>
> There is something like:
>                        <copy>
>
>  <from>ode:insert-as-last-into($testType1/typeIndicators,
> $testType2/typeIndicators/types:indicatorTwo)</from>
>                                <to>$testType1/typeIndicators</to>
>                        </copy>
>
>
> 2009/11/18 Filip Majernik <fi...@gmail.com>:
> > Hi guys,
> > I have following scenario using ODE 1.3.2: The process receives a message
> > with more elements <refund> in a sequence. Then it processes them in a
> > foreach acitvity and should insert them into a request message for
> another
> > service.
> >
> > The process fails with a selection failure at this activity, which is a
> part
> > of an assign activity in the foreach loop (if I comment it out, it works,
> > however with no refund elements in the request):
> >
> > <bpel:copy>
> >     <bpel:from>
> >          <![CDATA[ode:insert-as-last-into($refunds, $refundTmp)]]>
> >     </bpel:from>
> >     <bpel:to>
> >          <![CDATA[$refunds]]>
> >     </bpel:to>
> > </bpel:copy>
> >
> > The variable $refundTmp is properly filled with data and $refunds is also
> > properly initialized before the foreach loop starts.
> > Can you please help me? Am I doing something wrong, or is there any issue
> > about the insert-as-last-into extension??? I really need this to be done
> as
> > soon as possible :)
> >
> > Thank you in advance.
> > Filip
> >
>
>
> Regards,
> --
> Rafał Rusin
> http://rrusin.blogspot.com
> http://www.touk.pl
> http://top.touk.pl
>

Re: How to insert a new child into a sequence element in the message?

Posted by Rafal Rusin <ra...@gmail.com>.
Possibly you need to have a variable $refunds consisting of one
element with multiple elements inside.
Check out working example from here:
http://svn.apache.org/repos/asf/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/TestSubTreeAssign.bpel

There is something like:
			<copy>
				<from>ode:insert-as-last-into($testType1/typeIndicators,
$testType2/typeIndicators/types:indicatorTwo)</from>
				<to>$testType1/typeIndicators</to>
			</copy>


2009/11/18 Filip Majernik <fi...@gmail.com>:
> Hi guys,
> I have following scenario using ODE 1.3.2: The process receives a message
> with more elements <refund> in a sequence. Then it processes them in a
> foreach acitvity and should insert them into a request message for another
> service.
>
> The process fails with a selection failure at this activity, which is a part
> of an assign activity in the foreach loop (if I comment it out, it works,
> however with no refund elements in the request):
>
> <bpel:copy>
>     <bpel:from>
>          <![CDATA[ode:insert-as-last-into($refunds, $refundTmp)]]>
>     </bpel:from>
>     <bpel:to>
>          <![CDATA[$refunds]]>
>     </bpel:to>
> </bpel:copy>
>
> The variable $refundTmp is properly filled with data and $refunds is also
> properly initialized before the foreach loop starts.
> Can you please help me? Am I doing something wrong, or is there any issue
> about the insert-as-last-into extension??? I really need this to be done as
> soon as possible :)
>
> Thank you in advance.
> Filip
>


Regards,
-- 
Rafał Rusin
http://rrusin.blogspot.com
http://www.touk.pl
http://top.touk.pl