Oracle9i PL/FLOW Workflow Engine
Release 2

SourceForge PL/FLOW project info page    Home Page    Process Visualizer    SF Discussion Forum


PL/FLOW is the name of a workflow engine written in PL/SQL. Why use it? It's open source, it's fast, and it can run in a replicated environment with multiple master databases. The naming, process definition and API are inspired by interface 1 and 2 as published by the WfMC. The ERD design was made using Designer 9i. PL/FLOW is lightweight because Oracle database functionality is used for storage, indexing and logic. Workflow transactions typically take 5-10 milliseconds to complete.

The PL_FLOW package provides the API for access to the process model and process instances. Before the PL_FLOW package can be used, it is necessary to create tables to contain the process model and process instances, to load the PL_FLOW package, and to create a process definition.

The PL_FLOW tables and package can be created in every users schema, no extra grants are necessary.

See Also:

Java workflow editor, XPDL and PL/Flow

The Workflow Reference Model (pdf,WfMC)

Workflow Process Definition Interface (pdf,WfMC)

Workflow Management Application Programming Interface (Interface 2&3) Specification (pdf,WfMC)

WfMC Published Documents

PL/Flow User guide (pdf,sourceforge) (after browsing WFMC docs)

This chapter discusses the following topics:

Special features


Current status

July 8, 2004: Released PL/Flow 2.0b1 -

The initial version of PL/FLOW is based on drafts from the WFMC dating from about januari 2002. On October 25, 2002, the WFMC released version 1.0 (still the current version) of interface 1, the process definition. To incorporate these differences, changes to the datamodel have been made that make PL/Flow 1.0 and 1.1 incompatible with newer versions. This release incorporates these changes; there should be no changes to the datamodel and API anymore between this version and the final 2.0 version. The exact details are listed in the changelog.

Here are some screenshots of the included viewer written in PHP.

14/05/2004: new features release 1.99

23/09/2003: bug fix release 1.1

april 2003: initial release 1.0

Download and installation of PL_FLOW

Download plflow-xyz.tgz from the file page. Untar it, and run or just look at the bottom of this script to see the several installation commands. The install script asks for the name and password of a new, to-be-created test user. PL/FLOW tables and the PL_FLOW PL/SQL package will be created in this users's schema.

Test / example process

This is the first example that is documented in the user guide. The guide describes how to load PL/FLOW into Oracle, how to translate this process into the process definition tables, and how to run the flow with an example application.


Process Definition ERD

here should be a picture