Evaluation options are there to improve performance primarily, and should always be appropriately considered but especially if the property being evaluated is an expression.
The efficient running of property evaluation may not be a first thought when putting together a dataset but properly considered can have significant impact on optimisation, especially with large datasets
In order to benefit from Best Practices related to value population, you are strongly recommended to read the following article in conjunction with the companion article on Default value options
- The default evaluation mode is Auto but beware this is not the preferred option for expressions. In context the automatic nature of the mode is that OrgVue seeks out expressions (in properties) that need evaluating and if it finds any, then all nodes are evaluated.
- It should be self-evident that this is highly inefficient used in conjunction with expressions and should ideally be avoided in those instances.
- For standard expressions that do not use hierarchies - particularly where the default option is set to Fixed Value - the preference would be to use Node evaluation mode as that will prompt the evaluation only of the nodes whose values change
- Beware that None mode is effectively a flag to OrgVue to indicate that this property is not an expression, and therefore not to evaluate it.
Understanding Evaluation Mode
These options can reduce the data OrgVue scans and the number of times expressions are re-evaluated, increasing the speed of OrgVue, which can have high impact particularly on large datasets.
Picking the appropriate evaluation type for each property will increase performance
- Avoid using the Auto setting which detects expressions (at a high performance cost) and evaluates them whenever data changes
- Choose the On Demand mode when the property needs evaluation occasionally
- Choose the Node setting when the expression only needs to be re-evaluated when the node is changed.
- Choose the Hierarchical setting when the expression is dependent upon the node's descendants e.g.
- Choose the Script mode when using settemporary to set a single expression to return multiple properties
- Choose the None setting when no cell for this property should be evaluated as an expression
These evaluation types perform 2 functions:
They determine how OrgVue interprets the property in question (ie. whether it should be evaluated or not)
* As OrgVue’s default (in Auto mode), every time the data are loaded it scans all the values for every property until it encounters an expression. It might be that OrgVue scans 50,000 nodes in a dataset to find only the last node has an expression for that property value. This increases the time it takes OrgVue to load or re-process a dataset. As a result of OrgVue having to scan a large number of cells, slow loading may result, especially affecting large datasets.
They determine under what circumstances the value of that property is recalculated for a given node, and how
|Evaluation mode||What needs to be changed to prompt a re-calculation of a node’s value?||What happens?|
|Auto||Any node’s value for that property||Recalculate all the nodes in the dataset|
|Node||One of that node’s values||Recalculate that node|
|On demand||Force re-calculation by pressing the refresh icon||Recalculate all the nodes in the dataset|
|Hierarchical||One of that node’s values||Recalculate that node and all its descendants|
|Script||The property containing node.settemporary got evaluated*||N/A|
|None||It will not be recalculated outside of a deep refresh||N/A|
* The value is set via an expression or script executed from outside this property. For further information on the settemporary method, please read this article.
Force a re-calculation by using one of the following:
OrgVue will refresh a view (re-draw it) when the dataset is recalculated or you click ‘refresh’
OrgVue will recalculate a dataset (re-evaluate its expressions) when: the dataset is opened, you click ‘recalculate’, draw an Org Chart, a filter is applied/removed, the dataset is saved
OrgVue will reload a dataset (update to/from the server) when: the dataset is first loaded, a user clicks reload, the user hits ‘save + reload’, certain trees are rendered
(Evaluation options in the ‘Edit Property’ dialogue were introduced with the 2.14 release of OrgVue with the aim of optimising the performance of the tool.)
This article was authored by Ben Marshall from the OrgVue Consulting Team