The workflow engine evaluates a workflow as follows:
One evaluation pass
Visit all nodes in the workflow tree (from parent to child, then from top to bottom)
Here is an easy trick to remember: if you expand all nodes, the evaluation order is simply from top to bottom.
Action nodes (eg: setting a variable or a Confluence page label) are executed
If a condition node is not fulfilled, its children are ignored
Once the evaluation pass is complete, the workflow engine checks whether anything (eg: a variable) has changed during the evaluation pass.
If yes, an additional evaluation pass is performed.
If not, the evaluation is complete.
In other words: the workflow engine repeats the evaluation until the workflow state has become stable.
Anytime a user visits a page, the workflow engine does as follows:
It looks at all workflows that are bound to that page
For each workflow, it visits the nodes in the workflow tree, and picks all widgets that are reachable under the current conditions.
It displays these widgets to the user
The widgets that are displayed are entirely defined by the conditions specified in the workflow. Some workflows may display different widgets for different users.
If the workflow contains a mistake, it could (for example) toggle between two states indefinitely, which would cause an infinite loop. The workflow engine prevents this, and will log an error and stop workflow evaluation in that case.
You can adjust the limit by changing "Max iterations" in the plugin settings.
On this page:
Any questions? Need any help?
Click the Support button in the bottom right corner.