[Zope3-dev] Status of Workflow-Implementation

Ulrich Eck ueck@net-labs.de
Fri, 07 Feb 2003 23:46:57 +0100


Hello,

I just wanted to inform interested people about
the status of our workflow implementation.

The migration of our work from rotterdam is finished.

Right now I'm working on the implementation for Stateful Workflow.

A Basic TTW-Managable ProcessDefinition is implemented as well
as a corresponding ProcessInstance. The overall structure of
our Workflow Concept seems to be correct and quite powerfull.

A ContentWorkflowsUtility (creating process-instances automatically
for newly created content-objects - like CMF+DCWorkflow) is also
in the package but it's not yet configurable (just creates a
ProcessInstance of PD-Name "default" for every configured content-object)

The development is done in Zope-CVS:/Packages3/workflow

here is the text from the README that explains installation and usage:

------------------------------------------------------------------------
Zope3 Workflow Implementations:

This package is currently developed outside of the Zope3 CVS-HEAD
to be able to share work between the developers more easily.

to install this package you need to check it out
from the Zope-CVS-Repository:

 - cvs -d:pserver:anonymous@cvs.zope.org:/cvs-repository login
   cvs -d:pserver:anonymous@cvs.zope.org:/cvs-repository co Packages3/workflow

 - remove the workflow directory from src/zope/app from Zope3src

 - link/copy this package into src/zope/app/workflow

 - add this to the src/zope/app/configure.zcml:

   <include package=".workflow" />

 - link/copy the workflow/browser folder into
   src/zope/app/browser/workflow

 - add this to the src/zope/app/browser/configure.zcml:

   <include package=".workflow" />

 - edit your site-zcml to grant workflow permissions to manager:

   <grant permission="zope.workflow.ManageProcessDefinitions" role="Manager" />
   <grant permission="zope.workflow.CreateProcessInstances"  role="Manager" />
   <grant permission="zope.workflow.UseProcessInstances" role="Manager" />

 - add this to your site.zcml for every content-object that
   should get an instance annotated (example for FileContent):

   <content class="zope.app.content.file.File" >
    <implements interface="zope.app.interfaces.workflow.IProcessInstanceContainerAdaptable" />
   </content>

 - start your Z3 server



Configure your System to use Workflow:

 - goto Servicemanager and add a WorkflowService

 - configure and activate that WorkflowService

 - create a new package called workflows (for example)

 - within that package create a new Stateful ProcessDefinition

 - configure and activate that ProcessDefinition (name='default')

 - goto your newly created ProcessDefinition and
   add some States and Transitions

 - within that package create a persitent module

 - create a schema-class for your WorkflowRelevantData
   within this module

 - edit your ProcessDefinition to use that Module as
   RelevantData Schema

 - within that package create a ContentWorkflowsUtility
   (it currently tries to create an Instance for the
    ProcessDefinition configured with the name 'default'
    for every contentobject that implements the interface
    IProcessInstanceContainerAdaptable, this is only
    demo-behaviour)

 - goto the utility and register it with the EventService

 - create a new File-Content-object in your content-space

 - goto tab "ProcessInstances" to see the default PI

 - click on the instance and see the Status/Transitions/Data

 - click on <transition> fire to fire a transition

 ... more to come ...

ToDo:

 - make content-workflow-utilty configurable

 - write more tests (especially for view-classes)

 - build views for managing processinstances that are
   annotated to content objects. (partly done)

 - improve capabilities of stateful workflow

 - start implementing the wfmc-based workflow based on the
   experiences with the "fairly simple" stateful workflow.
------------------------------------------------------------------------


Comments are welcome :)


Ulrich Eck
------------------------------------------------------------------------
net-labs Systemhaus GmbH
Ebersberger Str. 46
85570 Markt Schwaben
fon:   +49-8121-4747-11
fax:   +49-8121-4747-77
email: ueck at net-labs.de
http://www.net-labs.de