Workflow Engine Plugin System

Version 1.2 of the Workflow component that is part of the eZ Components introduces a plugin system that allows developers to hook into the workflow engine at well-defined extension points.
For now, plugin code can be called
- after an execution has been started
- after an execution has been suspended
- after an execution has been resumed
- after an execution has been cancelled
- after an execution has successfully ended
- before a node is activated
- after a node has been activated
- after a node has been executed
- after a service object has been rolled back
- after a new thread has been started
- after a thread has ended
- before a variable is set
- after a variable has been set
- before a variable is unset
- after a variable has been unset
ezcWorkflowExecutionListenerPlugin and ezcWorkflowExecutionVisualizerPlugin are two workflow execution engine plugins that will ship with Workflow 1.2. The former is a refactored version of the execution logging code of Workflow versions 1.0-1.1.
The latter is new and can be used to visually log the execution of a workflow as shown below.

The ezcWorkflowExecutionVisualizerPlugin generates a series of DOT files that can be rendered into single pictures using GraphViz. For the animation above, I crudely joined the single images to an animated GIF.
The before hooks are special as they allow the plugin to change (or even prevent) the current execution step. This will eventually allow for Aspect-Oriented Programming on the workflow level.
20/02/2008 at 01:16 Permalink
Reply
20/02/2008 at 12:10 Permalink
Reply
27/04/2008 at 17:15 Permalink
However, as I suffer from one of my "senior moments" I find myself struggling with how to take the components, tie-in with my controllers and views and create a web site that guides a user through an adapting interview to gather specification information. This is not a survey or a learning system. It is closer to an expert system than anything else.
Have you a working project, complete with the necessary external action processors that you might share?
Many thanks in advance.
Reply