8.1 Workflow Overview
The purpose of workflow is to automate business processes, in Daisy particularly those involving documents. A typical workflow process in Daisy is a document review, whereby a document might need to pass via several persons who need to give their approval.
Daisy uses a generic workflow engine, more specificially jBPM (version 3.2). From a technical point of view, this workflow engine can be used to manage any sort of workflow process, even if it's completely unrelated to content management.
The structure of a workflow process is defined by a process definition. Such a process definition consists of nodes (of various types) with transitions between them. A specific running process (following the structure of a process definition) is called a process instance. Much like a normal computer program, a process instance has a pointer to where the execution is currently located (called the token in jBPM or the execution path in the Daisy API, workflow processes support multiple concurrent execution paths) and has scoped variables. An important difference between workflow processes and normal computer programs is that workflow processes can contain wait states, whereby the system needs to wait for someone (a user or another process) to perform some task. Since it might take quite some time before this task is performed, the process instances need to be persistable (storeable).
An important concept in workflow is the task list: task nodes in the workflow process create tasks that are assigned to users or pools of users, and appear in the task inbox of the users. The user has to perform the task and choose the transition to follow, in order to let the workflow process continue.
Workflow processes can also contain timer-triggered actions, which could e.g. be used for timed publication of documents.
220.127.116.11 What Daisy does with jBPM
For those already familiar with jBPM, here's a quick summary of what the jBPM integration in Daisy involves:
- Embedded deployment in the repository server
- A workflow API, with a query system
- A custom metadata layer and i18n
- Daisy Wiki-integrated GUI
- Some custom variable types to point to Daisy documents, users and actors