Search:

Apache » Lenya
project logo
  • Project
  • Developer
  • Community
  • Version 2.2
  • Version 2.0
  • Version 1.2
  • Version 1.2
    • Installation
      • Download
      • Subversion Access
      • Install Instructions
    • Tutorial
      • Introduction
      • 1. Understanding Lenya
      • 2. Installing Lenya
      • 3. Anatomy of the Pipeline
      • 4. Editing in Lenya
      • 5. Custom Navigation in Lenya
      • 6a. Mod Proxy and Lenya
      • 6b. Mod Proxy and Lenya
    • How-To
      • FAQ
      • New Publication
      • Deploy Publication
      • Look and Feel
      • Custom Resource Type
      • Adding Mime Types
      • Site Navigation
      • LDAP Authentication
      • CMS Menus
      • CMS Screens
      • Search Publications
      • External Data
      • Unit Tests
    • Components
      • Access Control
        • Basic Terms
        • Access Controllers
        • Access Controller Resolvers
        • Authenticators
        • Authorizers
        • Policies and Policy Managers
        • Accreditable Managers
        • SSL Encryption
      • Authoring
        • Adding a new document creator
        • Image Upload
        • OpenOffice
      • Deployment
        • Proxying
      • Editors
        • HTML Form Editor
        • HTML One Form Editor
        • Bitflux Editor
        • Kupu
        • Xopus
      • Layout
        • Navigation
        • XHTML templating
        • Serving static resources
        • Lenya Menubar
      • Publication
        • PageEnvelopeModule
        • Site tree
      • Resource Types
        • Resource Types
      • Revision Control
        • Revision Controller
        • RCML
        • Check In
        • Check Out
        • Revisions
        • Rollback
      • Repository
        • WebDAV Servers
      • Search
        • Searching with Lucene
      • URI Handling
        • URI Parametrizer
        • URI Scheme
        • Usecases
      • Asset Management
        • Asset Management
      • Link Management
        • Link Management
      • Meta Data
        • Meta Data Handling
      • Multilingual Documents
        • Multilingual Document Handling
      • Tasks
        • The Task Concept
        • Defining Tasks
        • The TaskAction
        • Scheduling a Task
        • Included tasks
          • AntTask
          • DefaultFilePublisher
          • StaticHTMLExporter
          • MailTask
        • Developing Tasks
      • Workflow
        • Terms
        • The State Machine
        • Configuration
        • Implementation
      • Site Management
        • Archive
        • Copy
        • Deactivate
        • Delete
        • Delete the trash
        • Move
        • Move Up/Down
        • Rename
        • Restore
    • Miscellaneous
      • Namespaces
      • Reserved Names
      • XInclude Processor
    • 1.2 API (Javadoc)

Current Event

Meeting Bad Säckingen 2009

Built with Apache Lenya

The Workflow State Machine

Table of Contents
  • Syntax
  • Semantics
  • Invoking a Transition

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 .

Copyright © 1999-2009 The Apache Software Foundation. All rights reserved.