2013-02-14 11:10:53 +00:00
|
|
|
|
Workflows in SeedDMS
|
2013-02-03 06:56:54 +00:00
|
|
|
|
====================
|
|
|
|
|
|
2013-02-14 11:10:53 +00:00
|
|
|
|
SeedDMS supports approval and review of documents for a long time.
|
2013-02-03 06:56:54 +00:00
|
|
|
|
In many cases this is sufficient for a simple workflow management.
|
|
|
|
|
Nevertheless there was growing demand for a more powerful document
|
2013-02-14 11:10:53 +00:00
|
|
|
|
workflow. Since version 4.0.0 SeedDMS allows to define arbitrary
|
2013-02-03 06:56:54 +00:00
|
|
|
|
workflows for each document content. In order to understand how
|
2013-02-14 11:10:53 +00:00
|
|
|
|
workflows in SeedDMS work, one has to understand how a workflow is modelled.
|
2013-02-03 06:56:54 +00:00
|
|
|
|
Let's start with a definition of some terms.
|
|
|
|
|
|
|
|
|
|
workflow: a list of document states and transitions. A workflow starts
|
|
|
|
|
in a preset initial state and traverses along the transitions into other
|
|
|
|
|
states until no more transitions are possible.
|
|
|
|
|
|
|
|
|
|
state: the current status of a document (actually a document content)
|
|
|
|
|
A state can be for example 'rejected', 'approved', 'waiting for qm'.
|
|
|
|
|
Document jump from state to state when transitions are fired.
|
|
|
|
|
States are the nodes of a graph.
|
|
|
|
|
|
|
|
|
|
transition: a transition is the change from one state to a new state
|
|
|
|
|
Transitions are the edges of a graph. A transition can only be
|
|
|
|
|
triggered by a given list of users and groupѕ, when a defined action
|
|
|
|
|
is run. Such an action can be 'approve', 'revise', 'reject', etc.
|
|
|
|
|
transitions may need more than one trigger to fire, e.g. if several
|
|
|
|
|
users have to approve a document.
|
|
|
|
|
|
|
|
|
|
trigger a transition: a user runs an action on the document which possibly
|
|
|
|
|
changes the state. Internally this is identical to triggering a transition.
|
2013-12-17 10:18:06 +00:00
|
|
|
|
Such a trigger may or may not change the state of the document,
|
2013-02-03 06:56:54 +00:00
|
|
|
|
because there could
|
|
|
|
|
be other users which also have to trigger the transition.
|
|
|
|
|
After each trigger of an transition it will
|
|
|
|
|
be checked whether all conditions are met to change the state.
|
|
|
|
|
Triggers are currently only implemented for user interaction, but
|
|
|
|
|
other triggers could be added.
|
|
|
|
|
|
|
|
|
|
action: the actual operation run on the document. Each transition has
|
|
|
|
|
an action which when run, triggers the transition. Actions have just a name.
|
|
|
|
|
|
|
|
|
|
sub workflow: The modelling of a workflow is identical to a regular
|
|
|
|
|
workflow. Any workflow can be used as a sub workflow. Branching into
|
|
|
|
|
a sub workflow is only possible if the current state is equal to the
|
|
|
|
|
initial state of the sub workflow and the user is allowed to trigger
|
|
|
|
|
the next transition in the current workflow.
|
|
|
|
|
|
|
|
|
|
A workflow and a sub workflow are just a list
|
|
|
|
|
of transitions and an initial state. There is no principal difference
|
|
|
|
|
between the two and they are equally modelled. Starting from an initial state
|
|
|
|
|
there are a number of possible transitions ending in a new state. Each
|
|
|
|
|
transition can only be triggered if the user has the right to do so.
|
|
|
|
|
|
|
|
|
|
A workflow can be assigned to a document just like any other attribute
|
2013-12-17 10:18:06 +00:00
|
|
|
|
if the user has sufficient rights. Once a workflow is assigned, the document
|
2013-02-03 06:56:54 +00:00
|
|
|
|
will be in the initial state of the workflow. As long as the workflow
|
|
|
|
|
has not left its initial state, it can be removed from the document by
|
|
|
|
|
any users with write permission on the document. Once it has left the
|
|
|
|
|
initial state it cannot be removed without rewinding the workflow to
|
|
|
|
|
its initial state. Rewinding the workflow will remove the log of triggered
|
|
|
|
|
transitions and set the document status on the initial state of the
|
|
|
|
|
workflow. Rewinding can only be done by administrators.
|
|
|
|
|
|
|
|
|
|
The purpose of sub workflows is to replace a transition with more
|
|
|
|
|
states in between. Such a case can happen, if approval or rejection
|
|
|
|
|
of a document is put in charge of a group of persons, e.g. a department.
|
|
|
|
|
If the department head decides to set up its own workflow within his
|
|
|
|
|
department, he can run a sub workflow. During the lifetime of the sub
|
|
|
|
|
workflow, the former workflow (parent workflow) will be paused. Sub workflows
|
|
|
|
|
can only be started if the current document state is equal to the initial
|
|
|
|
|
state of the sub workflow.
|
|
|
|
|
In order to return to the parent workflow two conditions must be met:
|
|
|
|
|
1. the state of the document must be a valid state in the parent workflow
|
|
|
|
|
2. the person initiating the return to the parent workflow must be allowed
|
|
|
|
|
to trigger the transition which was replaced by the sub workflow
|
|
|
|
|
The second condition requires all end states in the sub workflow, also
|
|
|
|
|
being a state in the parent workflow. Currently this is not checked before
|
|
|
|
|
entering the sub workflow.
|
|
|
|
|
|
|
|
|
|
A workflow that was accidently added to a document can be removed
|
|
|
|
|
as long as it is still in the initial state of the workflow. Once
|
|
|
|
|
a transition into a consecutive state has happemed the workflow cannot
|
|
|
|
|
be removed anymore. In such a case the administrator has to rewind
|
|
|
|
|
the workflow, which removes all triggers including the users comments
|
|
|
|
|
and resets the initial state. The same procedure is true for sub workflows
|
|
|
|
|
as well. Once a sub workflow has started it can only be left as long
|
|
|
|
|
as it is in its initial state or has reached a state in the parent
|
|
|
|
|
workflow. Leaving a workflow inbetween will required to rewind it to
|
|
|
|
|
the begining and dismiss all transitions done so far.
|
|
|
|
|
|