表达式队列

Rational® Focal Point™ 中的表达式是使用表达式队列异步进行求值的。任何节点都可以从队列中获取表达式并对其进行求值。
注: 要查看表达式队列,您必须是全局管理员或具有业务规则全局许可权。

表达式可以监听某些属性的更改,因此无论该何时更改属性都能对其进行求值。当对表达式进行求值时,通常会对输入表达式的属性设置值。一些业务规则也可能更改其他属性的值。表达式之间可能存在依赖关系链。

示例 1:在此示例中,属性 C 取决于属性 B,且属性 B 取决于属性 A。将属性 A 的值更改为 2 会触发对属性 B 的表达式求值。属性 B 的表达式会置于表达式队列中。最后,当对表达式 A+1 进行求值,并且在属性 B 的值中输入值 3 时,会触发属性 C 的表达式,并且会将其置于队列中。当对属性 C 的表达式进行求值和输入后,就完成了一个链式结构。
属性 表达式
A (无) 1
B A+1 2
C B+1 3
示例 2:更改属性 A 的值会在一次操作中将 10000 个表达式置于表达式队列中。 根据表达式复杂性,这会对 Rational Focal Point 的性能具有显著的影响。
注: 如果以对其进行求值更高的速率将表达式添加到队列,那么队列会无限增加。这可能会导致需要很长的等待时间才能传播更改。
属性 表达式
A (无) 1
B1 A+1 2
B2 A+1 2
B3 A+1 2
- A+1 2
- A+1 2
B10000 A+1 2

反馈