The Workflow State Machine
Syntax
A workflow description is called a workflow schema . It is a guarded automaton:
W = ( S , T , E , C , A , V , s0 )
with
- 
S is a set of states
 - 
E is a set of events
 - 
C is a set of conditions
 - 
A is a set of actions
 - 
V is a set of boolean variables
 - 
Ass is a set of assignments: Ass subseteq V x {true, false}
 - 
T is a set of transitions: T subseteq E x S --> S x CS x AS
- 
with
 - 
CS subseteq C
 - 
AS = {(A1, ..., An)} for Ai in A union Ass and n in N0
 
 - 
 - 
s0 in S is the initial state
 
Semantics
A workflow instance is defined as follows:
I = ( W , s , i )
with
- 
a workflow schema W = ( S , T , E , C , A , V , s0 )
 - 
a current state s in S
 - 
a variable instantiation i : V --> {true, false}
 
Be I = ( W , s , i ) a workflow instance. The successor of I for the event e is
(a) the workflow instance I ' = ( W , s ', i ') with
- 
there is a t in T with
- 
t = ( e , s , s ', cs , as )
 - 
all c in cs are complied
 
 - 
 - 
i '(v) = b for all v with (v, b) in as
 - 
i '(v) = i (v) for all other v
 
(b) I , if such a t does not exist.
Invoking a Transition
When an event e is invoked on a workflow instance I, the following algorithm is executed:
- The current state scurrent is determined.
 - The transition t from scurrent to snext which has the event e is determined.
 - If t is not exactly defined, an exception is thrown.
 - All conditions of t are validated.
 - If all conditions are complied, the transition t fires:
  
- All assignments of t are executed.
 - The workflow instance I is advanced to the state snext .
 
 
