-
Language:
English
-
Language:
English
13.24. The Conditional Element From
The Conditional Element
from
enables users to specify an arbitrary source for data to be matched by LHS patterns. This allows the engine to reason over data not in the Working Memory. The data source could be a sub-field on a bound variable or the results of a method call. It is a powerful construction that allows out of the box integration with other application components and frameworks. One common example is the integration with data retrieved on-demand from databases using hibernate named queries.
The expression used to define the object source is any expression that follows regular MVEL syntax. Therefore, it allows you to easily use object property navigation, execute method calls and access maps and collections elements.
Important
Using
from
with lock-on-active
rule attribute can result in rules not being fired.
There are several ways to address this issue:
- Avoid the use of
from
when you can assert all facts into working memory or use nested object references in your constraint expressions (shown below). - Place the variable assigned used in the modify block as the last sentence in your condition (LHS).
- Avoid the use of
lock-on-active
when you can explicitly manage how rules within the same rule-flow group place activations on one another.