ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthieu Riou" <matth...@offthelip.org>
Subject Re: Assigning multiple values in bpel
Date Tue, 18 Nov 2008 15:12:44 GMT
On Mon, Nov 17, 2008 at 8:31 AM, Håkon Sagehaug
<Hakon.Sagehaug@bccs.uib.no>wrote:

> Hi all,
>
> I've got a bpel process that can invokes a web service that give eihter 1
> or
> many values back for the same element, the element is defined like this
>
> <xsd:element ref="wlm:ReferenceId"
>                            maxOccurs="unbounded" />
>
> and will look something like this when
>
> <?xml version="1.0" encoding="UTF-8"?>
> <ReferenceId xmlns="http://bccs.uib.no/esysbio/workflow/launcher/types">
> <RefId xmlns="">865</RefId>
> </ReferenceId>
> <ReferenceId xmlns="http://bccs.uib.no/esysbio/workflow/launcher/types">
> <RefId xmlns="">867</RefId>
> </ReferenceId>
> <ReferenceId xmlns="http://bccs.uib.no/esysbio/workflow/launcher/types">
> <RefId xmlns="">869</RefId>
> </ReferenceId>
>
> Then I need to take these and put each of them into another element like
> this
>
> <ReferenceId2 xmlns="http://bccs.uib.no/esysbio/workflow/launcher/types">
> <RefId2 xmlns="">865</RefId2>
> </ReferenceId2>
> <ReferenceId2 xmlns="http://bccs.uib.no/esysbio/workflow/launcher/types">
> <RefId2 xmlns="">867</RefId2>
> </ReferenceId2>
>
> and call another ws with these element,so when I want to assign the values
> to new elements, should I wrapp it all inside a for loop so that each
> element is added to the next service request message. And how should this
> for loop look like, pretty new to bpel. I use the eclipse designer and ode
>

While it is possible in BPEL to loop over a "list" of nodes (a nodeset),
because of the way assignment has been designed it isn't possible to create
new lists. This is a known problem with the specification and the way it
worked around it is by introducing the doXslTransform XPath function that
lets you execute any XSL stylesheet. Using that function would be one
solution to your problem.

Because not everybody likes XSL (it's an understatement) we've added other
utility XPath functions to make the type of transformation you're looking at
easier. So you'll probably need to loop in your process and use something
like the insert-as-last-into function:

http://ode.apache.org/xpath-extensions.html

Hope this helps,
Matthieu


>
>
> cheers, Håkon
>
> --
> Håkon Sagehaug, Software Developer
> Parallab, Bergen Center for Computational Science (BCCS)
> UNIFOB AS (University of Bergen Research Company)
>

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