You are not logged in Log in Join
You are here: Home » Download Zope Products » Content Management Framework » CMF Documentation » CMF Requirements Documents » CMF Use Cases » Use Case: Define Workflow States » View Document

Log in
Name

Password

 

Use Case: Define Workflow States

Actors

WorkflowDesigner

Documentation

Using workflow states you can add state to your content that is specific to your business process.

CMF comes with a default workflow with three states: private, pending, and published. In the default configuration, all content in the CMF is set to operate in that workflow. When an object is in the private state, only the user who created it and site managers can view and change it. The user is provided with a link to "submit" the content, which puts it in the pending state. Then a user with the "reviewer" role is given the opportunity to either publish or reject the submission, which moves the content object to either the published or private state.

Your business process will most likely require a different set of states. For example, a workflow could naturally model the process of ratifying a bill in a state legislature. You might start with a private state, used while the author is creating it, a public state used before voting, a voting state during which time legislators are allowed to cast their votes, a final_review state which gives the executive branch time to review it, and a vetoed and passed state.

Perhaps the best way to determine what states you need in your business process is to first draw "swimming lanes". Draw a diagram with each relevant user role at the head of a column, then draw dotted lines between the columns. In the legislature example, the roles might be "Owner", "Public", "Senator", and "President". Draw a state diagram that shows the flow of your content (in the example, a bill) between the different users. Then create a workflow state for each "bubble" you draw in your diagram.

A technical note: changing the workflow state of an object does not move it to a different location or add Python attributes to the object. Instead, it asks the workflow tool to set the workflow state of the object and the workflow tool can choose how the state will be stored. The default implementation of the workflow tool stores the workflow state in the "workflow_history" available by CMF content objects.