Introduction
Credits
This tutorial is adapted wholesale from Shane Hathaway's original DCWorfklow tutorial.
Jon Stahl updated the screenshots in July 2006.
What is Workflow?
Workflow is the series of interactions that should happen to complete a task. Business organizations have many kinds of workflow. For example, insurance companies process claims, delivery companies track shipments, and schools accept applications for admission. All these tasks involve several people, sometimes take a long time, and vary significantly from organization to organization.
The goal of workflow software is to streamline and track workflow activity. Since different organizations have different workflow processes, workflow software must be flexible and easy to customize.
The DCWorkflow Concept
DCWorkflow makes a few simple assumptions about your workflow:
There is a single object in the system that represents the task to be completed.
Every object of a given type goes through the same workflow.
Tasks are assigned to user roles, not individuals.
DCWorkflow makes it easy to implement workflows that fit this description. If your workflow does not fit these criteria, you should weigh the alternatives. One alternative is AlphaFlow, a more powerful and complex workflow engine for Plone.
Workflows for complex use cases can become very unwieldly to build and maintain via the ZMI-based method this tutorial demonstrates. If you are building non-trivial workflows, we recommend you strongly consider using ArchGenXML and a UML modeling tool that will help you make sure your workflows are complete and correct. See the ArchGenXML tutorial, especially the section on workflows, for a great introduction.