Package for Workflow and BPM with PHP

The outcome of this project will be a package for workflow and business process management.

Workflow can be modelled with Petri nets. Basic objects in Petri nets are:

  • Places
  • Transitions
  • Arcs
  • Tokens

The time the transition is enabled and the time it fires are different. The thing that makes transition to fire is called a trigger:

  • Automatic
  • User
  • Time
  • Message

Splits and Joins can be AND or OR. Gudard conditions can be placed on arcs.

Workflow Description

Above considerations show us that we we will need at least the following classes to describe a workflow:

  • WorkflowDescriptor: name, description, isValid, validateErrors, startDate, endDate, places, transitions
  • PlaceDescriptor: name, type (start, end, place), description, in-arcs, out-arcs
  • TransitionDescriptor: name, description, trigger, timeLimit, in-arcs, out-arcs
  • ArcDescriptor: transition, place, direction (in, out), guardConditions
  • ConditionDescriptor: type, content, params

Trigger is not a separate class as it has specific values and doesn't have actions associated with it.

Workflow Instance

When instatiating worflow we will need to know

  • which workflow the instance originates from and its states,
  • tokens and their states
  • enabled transitions
 
php/workflowbpm.txt · Last modified: 2009/10/31 23:36 (external edit)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki