Workflow Terms
Table of Contents
Terms
- Workflow Schema
- A workflow schema defines a state machine (deterministic finite
automaton - DFA), consisting of 
  - states, including a marked initial state,
- transitions, and
- state variables.
 
- Workflow Instance
- A workflow instance is an incarnation of a workflow schema.
It consists of
- a current state,
- a mapping which assigns values to all state variables.
 
- Transition
- A transition describes the switching of a workflow instance
from one state to another. A transition has
- a source state,
- a destination state,
- an event,
- a set of conditions,
- a set of assignments.
 
- History
- The history of a workflow instance contains a list of all versions
of the instance. A version contains
- the state,
- the event that caused the transition (omitted in the first version),
- a description of the identity that invoked the event (username and IP address)
 
- State Variable
- A workflow schema can contain a set of state variables. For each instance, the state variables hold certain values. Values can be assigned during transitions, so a variable can change its value when a transition fires. Currently, Lenya supports only boolean state variables.
- Condition
- 
A condition can prevent a transition from firing, based on
the current situation.
Examples:
- Does the current user have a certain role on the current URL?
    (RoleCondition, included in Lenya)
- Does a certain state variable have a certain value
    (e.g., is the document published)?
    (BooleanVariableCondition, included in Lenya)
- Is the sun shining? (e.g., if the weather report may only be published on sunny days)
 
- Does the current user have a certain role on the current URL?
    (
- Situation
- A situation defines the state of the environment
of a workflow instance. Examples are:
- the current user ID
- the roles of the current user on the current URL
 
- Synchronization
- 
A set of workflow instances with the same workflow schema can be synchronized. If a transition in this schema is marked as synchronized, it can only be invoked on all instances in the set at the same time. When a workflow event is invoked on a set of synchronized workflow instances, the transition is invoked only if - all instances are in the source state of the transition, and
- all conditions of the transition are complied for all instances.
 Then the transition is invoked for all instances in the set. A common usecase of this concept is the simultaneous publishing of a set of documents (all language versions of a document, a section, ...). 

 
      