WSO2 Business Process Server v3.1.0 Documentation

##### Overview

- Home
- Release Note
- WS-BPEL Compliance
- License

##### Downloads

- Releases

##### Installation Guide

- Installing WSO2 BPS

##### Quick Start Guide

- Modeling the process
- Deploying the process
- Testing the process

##### User Guide

- Deploying BPEL Processes
- Deploying Human Tasks
- Managing BPEL processes
- Managing BPEL process instances
- QoS for BPEL processes
- Securing BPEL processes
- Invoking secured partner services
- Versioning
- Management API

##### Human Task Guide

- Human Tasks Quick Start Guide
- Deploying HumanTasks
- Managing Tasks
- Developing a Human Task Artifact
- Human Task Management and Configuration
- Human Task Concepts

##### Administrator Guide

- External data sources Configuration
- Registry Configuration
- Events
- Unified Endpoints
- BPEL Extensions
- Transaction Factory Configuration
- Message Exchange Interceptors
- OpenJPA specific properties
- JMS Transport Configuration
- Process Instance Cleanup Tasks
- Process Hydration and Dehydration
- Enabling Peer-to-Peer(P2P) Communication
- Setting up a BPS Cluster

##### Best Practices

- Process Deployment Best Practices

##### Concepts

- Process Versioning
- Process instance events
- Partner links

##### WS-BPEL Extensions

- Activity Failure and Recovery
- Extension Activities and Extensible Assign Operations
- XPath Extensions
- Iterable ForEach
- Flexible Assigns
- BPEL4People Extension

##### Samples

- HelloWorld
- If-Else
- ForEach
- While
- Repeat Until
- Flow and Links
- Pick
- Synchronous and Asynchronous Service Invocations
- Fault Handling
- Split
- XslTransform
- Compensation Handler
- Event Handler

##### Resources

- FAQ
- External Articles
- Library
- Source Code

##### Community

- Forum
- Mailing Lists

##### Project Information

- Issue Tracking

# Sample Guide - split-to-elements()

### Table of Content

- Objective
- Prerequisites
- Overall Idea

### 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>