Business Rules |
|
A business process is
steered to completion by a
series of business rules
that operate on its data.
These business rules vary in
complexity but share a few
characteristics |
- An expression is applied
to one or more process fields
- This expression may
contain data fields on either
side
- Data fields are compared
to constants and literals
- Data operators are type
specific (for example Strings
may have an operator such as
"Starts With", "Length", etc)
- Multiple simple
expressions are usually
grouped into a single complex
expression using standard
Boolean operators
|
Dealing with simple rules such as comparing a
field to a constant presents no problem to a
process designer. Typing in "Cost > 1000" into
expression input box is easy. The complexity starts
creeping up exponentially when multiple
conditions make up a rule.
It's a little harder
to come up with a rule such as "if ((Cost >
1000) and (Region = 'NY')) or (Cost < 1000) and
(RegionZip StartsWith "910")) "
A user must learn the syntax of a scripting
language, follow the precedence rules, and
balance parenthesis correctly. For complicated
expressions this is an error prone process.
FlowRunner Designer includes a proprietary
expression builder that helps build complex
rules without the need to learn a new syntax or to
balance parenthesis. |
 |
|
This is an example of a
simple condition that
compares a numeric field ID
to a constant. |
|
|
After all simple conditions
have been defined they are
combined
into a tree structure that
makes a rule |
- Leaf nodes are simple
expressions involving data
fields
- Ay other tree nodes
involve either simple
expressions or other
non-leaf nodes
|
 |
|
|
|
FlowRunner Designer provides
a powerful environment for
creating complex business rules
without having to learn a
new scripting language.
Rule editing functionality also provides a
testing facility for
evaluating rules against the
current process data. Both the
static (default values) and
the dynamically generated
(during simulation)
scenarios are supported. |
|
Next section:
Directory Interface » |