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

# WS-BPEL 2.0 Specification Compliance

This page provides information on WSO2 Business Process Server's compliance to the final WS-BPEL 2.0 specification released by OASIS.

## Variables

### Initialization

Variable initialization using in-line from-spec is fully supported. (WS-BPEL 2.0 Section 8.1)

### External Variables

In addition to regular variables that are managed by the engine according to the BPEL specification, Ode adds support for variables whose content is stored externally yet transparently accessible from the engine. See External Variables for more information.

## Activities

Divergences from the WS-BPEL 2.0 specification for each standard BPEL activity is described under this section.

### <receive>

There are several major issues with support for the <receive> activity.

WSO2 Business Process Server does not yet support the <fromPart> syntax. Therefore, the variable attribute must be used. Furthermore, only message variables can be referenced with the variable attribute, whereas the specification permits referencing of an element-typed variable if the WSDL for the request message contains a single element-typed part.

Multiple start activities as described in section 10.4, and 15.4 of the specification) are not officially supported. This precludes the use of initiate="join".

WSO2 Business Process Server does not provide the ordering guarantees described in section 10.4 of the specification. Also, it does not enforce the ordering requirements described in the same section. Hence, the BPEL code

                <flow>
                <receive ... createInstance="yes" />
                <assign ... />
                </flow>

is illegal according to the BPEL specification, but allowed by WSO2 Business Process Server.

The specification defines two standard faults ? bpel:conflictingRequest and bpel:conflictingReceive ? to deal with two similar error conditions relating to multiple outstanding requests on a single partner-link/operation/messageExchange tuple. WSO2 Business Process Server does not distinguish between these two conditions and conflictingReceive is thrown whenever either of the conditions occurs. That is to say, in certain cases a conflictingReceive indicates a conflictingRequest, and conflictingRequest is never thrown.

Finally, the validate attribute, if present is ignored: WSO2 Business Process Server currently provides no variable validation.

### <reply>

The conformance issues with the <reply> activity mirror those of the <receive> activity as described above: the <toPart> syntax is not supported, and variable attributes must reference message-typed variables.

### <invoke>

Again, as in the <receive> and <reply> activities, the <toPart> and <fromPart> syntax are not supported. Similarly, the inputVariable and outputVariable attributes must reference message-typed variables. Here too, the validate attribute is ignored.

### <assign>

The WS-BPEL 2.0 specification requires the <assign> activity to be atomic. Currently in WSO2 Business Process Server, each <copy> is atomic.

The specification also provides for validating variables at the end of an assignment using the validate attribute. WSO2 Business Process Server does not support this. This means that the bpel:invalidVariables fault is never thrown by an <assign> activity.

Inline assignment as part of the variable declaration isn't currently supported.

Ode currently uses the expressionLanguage attribute to determine the language used in assignments instead of using the queryLanguage attribute.

There are no other known divergences from the specification relating to the <assign> activity that would prevent the execution of valid BPEL assignments. WSO2 Business Process Server provides certain (non-standard) extensions to the <assign> activity that do not conform to the specification's requirements for assignment extensions. Consult the reference page for the <assign> activity for further details regarding non-standard extensions.

### <throw>

The <throw> activity is fully compliant with the specification.

### <exit>

The <exit> activity is fully compliant with the specification.

### <wait>

The <wait> activity is fully compliant with the specification.

### <empty>

The <empty> activity is fully compliant with the specification.

### <sequence>

The <sequence> activity is fully compliant with the specification.

### <if>

The <if> activity is fully compliant with the specification.

### <while>

The <while> activity is fully compliant with the specification.

### <repeatUntil>

The <repeatUntil> activity is fully compliant with the specification.

### <forEach>

The <forEach> activity is fully compliant with the specification. WSO2 Business Process Server supports both sequential and parallel for-each semantics.

### <pick>

The <pick> activity has the same issues as the <receive> activity.

### <flow>

The <flow> activity is fully compliant with the specification.

### <scope>

Isolated scopes are implemented in ODE trunk and hence will be available with WSO2 Business Process Server 1.1.0

### <compensate>

The <compensate> activity is not compliant with the specification. In WSO2 Business Process Server, this activity has the same effect and syntax as <compensateScope>. In addition, the scope attribute may be used in place of the target attribute with the same effect; and WSO2 Business Process Server expects one of these attributes must be specified.

### <compensateScope>

The <compensateScope> activity is fully compliant with the specification.

### <rethrow>

The <rethrow> activity is fully compliant with the specification.

### <validate>

The <validate> activity is not implemented by WSO2 Business Process Server. Processescontaining such activities will cause a compilation failure.

### <extensionActivity>

Activity extension is fully supported in WSO2 Business Process Server.