Basics of Workflows
----------------------------------------
$Id: overview.txt 234 2006-07-07 12:40:31Z jonasbn $
- A Workflow is an object of a particular type (even if no code exists)
- Workflows consist of states, all custom except one 'INITIAL' which
is the state of the workflow when it's first created.
- The Workflow is responsible for declaring state transitions upon
successful execution of certain actions.
- The application that creates or fetches a Workflow fills it (or its
associated context) with objects required by Actions, Validators and
Conditions
- A Workflow uses Condition objects to determine whether an action is
accessible
- Every workflow state has zero or more accessible actions. When the
action is called it has access to the workflow and its associated
context so it can work with the environment. (For example, create a
ticket associate the current user with it.)
- Actions do not change workflow state. They just respond to state
changes by the workflow and complete some operations outside of it.
- The Workflow is observable and fires events on state changes.
Action declaration: workflow_action.xml
Validator declaration: workflow_action_validator.xml
The workflow declaration binds the actions together and declares
states and their transitions.
Workflow declaration: customer_foo_workflow.xml
Conditions are objects just like everything else, and like everything
else they have access to the same universe of objects as the Actions
and Workflow. (Although the workflow isn't directly coded...)
Condition declaration: workflow_condition.xml
Chris Winters E<lt>chris@cwinters.comE<gt>, original author.
Jonas B. Nielsen (jonasbn) E<lt>jonasbn@cpan.orgE<gt>, current maintainer.