Expressions in Rational® Focal Point™ are
evaluated asynchronously using an expression queue. Any node can take
expressions from the queue and evaluate them.
Note: 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
Rational Focal Point based
on the complexity of the expressions.
Note: 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 |