Administering : Expression queues
  
Expression queues
Expressions in Focal Point® are evaluated asynchronously using an expression queue. Any node can take expressions from the queue and evaluate them.
To view the expression queue, you must either be a global administrator, or have the global permission “Business Rules”.
Expressions can listen to changes on certain attributes so that they are evaluated whenever that attribute changes. When an expression is evaluated, the value is normally set on the attribute on which the expression is entered. Some business rules might change the values of other attributes as well. There could be a chain of dependency between expressions.
Example 1
In this example, attribute C depends on B and attribute B depends on A. A change on attribute A to the value 2, would trigger an evaluation of the expression on attribute B. The expression of attribute B is placed on the expression queue. Eventually, when the expression A+1 is evaluated and the value 3 is entered in the value of attribute B, the expression for attribute C is triggered and placed on the queue. The chain is complete when the expression of attribute C is evaluated and entered.
 
Attribute
Expression
Value
A
(none)
1
B
A+1
2
C
B+1
3
Example 2
A change in the value of attribute A will in one operation place 10000 expressions on the expression queue. This can have significant impact on the performance of Focal Point® based on the complexity of the expressions.
If expressions are added to the queue at a higher rate than they are evaluated, the queue grows indefinitely. This might lead to a long wait time for the changes to propagate.
 
Attribute
Expression
Value
A
(none)
1
B1
A+1
2
B2
A+1
2
B3
A+1
2
-
A+1
2
-
A+1
2
B10000
A+1
2
See
Expression queue status and statistics
Expression queue tuning
Administering Focal Point®