Sample Guide - split-to-elements()

Objective

This function is a XPath extension supported by the Apache ODE engine ( http://ode.apache.org/xpath-extensions.html) which can be used to generate arrays from a string.

The method accept four input parameters as follows.

split-to-elements(stringToSplit, separator, targetElement, targetNamespace)

eg -

split-to-elements($input, '123', 'chunk', 'http://ode/bpel/unit-test.wsdl')

if $input is -

<unit:split>
    <TestPart>hello123bill123smith</TestPart>
</unit:split>

output will be some thing as follows -

<TestPart xmlns:unit="http://ode/bpel/unit-test.wsdl">
    <chunk xmlns="http://ode/bpel/unit-test.wsdl">hello</chunk>
    <chunk xmlns="http://ode/bpel/unit-test.wsdl">bill</chunk>
    <chunk xmlns="http://ode/bpel/unit-test.wsdl">smith</chunk>
</TestPart>

Note - split-to-elements() method should be used under the namespace of "http://www.apache.org/ode/type/extension"


Prerequisites

  • Log in into BPS server admin console.
  • Under Business Processes -> Add BPEL.
  • Upload the TestSplit.zip , (all samples are located at our sample repository.)
  • Under the Business Processes -> Processes.
  • Under the WSDL details widget -> Create instance

Overall Idea

<copy>
    <from>ode:split-to-elements($tmpVar, ',', 'chunk')</from>
    <to variable="myVar" part="TestPart"/>
</copy>

This method accept three parameters as follows.

  • $tmpVar - input source varaible
  • ',' - delimiter string
  • 'chunk' - the target XML element

Suppose initial value of tmpVar is

<unit:split>
    <TestPart>1,2,3,4</TestPart>
</unit:split>

After executing split-to-elements() the value of myVar is

<TestPart xmlns:unit="http://ode/bpel/unit-test.wsdl">
    <chunk>1</chunk>
    <chunk>2</chunk>
    <chunk>3</chunk>
    <chunk>4</chunk>
</TestPart>