mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-03-11 16:35:38 +00:00
- added info about how workflow works
This commit is contained in:
parent
5dc5108fe5
commit
4dca95c47e
89
README.Workflow
Normal file
89
README.Workflow
Normal file
|
@ -0,0 +1,89 @@
|
|||
Workflows in LetoDMS
|
||||
====================
|
||||
|
||||
LetoDMS supports approval and review of documents for a long time.
|
||||
In many cases this is sufficient for a simple workflow management.
|
||||
Nevertheless there was growing demand for a more powerful document
|
||||
workflow. Since version 4.0.0 LetoDMS allows to define arbitrary
|
||||
workflows for each document content. In order to understand how
|
||||
workflows in LetoDMS work, one has to understand how a workflow is modelled.
|
||||
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.
|
||||
Such a trigger may or may not change the statei of the document,
|
||||
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
|
||||
if the user has right access. Once a workflow is assigned the document
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user