Parameterized rule where a specific attribute is a variable or parameter within a general business rule
- Last Updated: September 1, 2020
- 2 minute read
- Corticon.js
- Documentation
Parameterized rule where a specific attribute is a variable or parameter within a general business rule
During development, patterns may emerge in the way business rules define relationships between Vocabulary terms. For example, in our sample FlightPlan application, a recurring pattern might be that all aircraft have limits placed on their maximum takeoff weights. We might notice this pattern by examining specific business rules captured during the business analysis phase:
![]()
These rules are almost identical; only a few key parts – parameters – are different. Although aircraft type (747 or DC-10) and max cargo weight (200,000 or 150,000 kilograms)
are different in each rule, the basic form of the rule is the same. In fact, we can
generalize the rule as follows:
![]()
Where the parameters X and Y can be organized in table form as shown below:
| Aircraft type X | Maximum cargo weight Y |
|---|---|
| 747 | 200,000 |
| DC-10 | 150,000 |
It is important to recognize these patterns because they can drastically
simplify rule writing and maintenance in Corticon.js Studio. As shown in the following figure, we could build these
two rules as a pair of Rulesheets, each with a Filter expression that filters data by
aircraftType.
But there is a simpler and more efficient way of writing these two rules that leverages the concept of parameterization. The following figure illustrates how this is accomplished:
Notice how both rules are modeled on the same Rulesheet. This makes it easier to organize rules that share a common pattern and maintain them over time. If the air cargo company decides to add new aircraft types to its fleet in the future, the new aircraft types can simply be added as additional columns.
Also notice the business rule statements in the Rule Statements section. By
entering 1:2 in the Ref column and
inserting attribute names into the rule statement, the same statement can be reused for
both rule columns. The syntax for inserting Vocabulary terms into a rule statement requires
the use of {..} curly brackets enclosing the term. See the
Rule Language Guide for more details on embedding dynamic
values in Rule Statements.