Release Notes 6.2.0
New Book "DMN in Action with OpenRules"
Feb 16, 2017
OpenRules 6.4.1 introduces WHY-Analyzer for Decision Modeling
Dec 20, 2016
OpenRules Wins 10th International Rule Challenge
July 8, 2016
March 5, 2012
OpenRules® Release 6.2.0 adds a new inferential rule engine along with features that enhance the existing functionality. Here is the list of major improvements:
A New Implementation of Rule Solver™ that now may be used as:
- Inferential Rule Engine
Rule Solver™ may be
an alternative to the standard OpenRules® sequential rule engine. It
allows a user to executes the same decision models in a way similar to famous
RETE-based rule engines (no needs for rule ordering) .
.Rule Solver™ automatically resolves rule ordering problems for rules inside decision tables and between different decision tables. Additionally, Rule Solver™ can find solutions in situations when business rules only partially define a problem.
Rule Solver™ also provides a powerful mechanism for consistency validation of OpenRules® decision models. It automatically validates the Excel-based decision models, points to possible inconsistencies in business rules, and applies the default search strategy to find feasible or optimal solutions.
- Business-oriented Constraint Solver
Rule Solver™ may be
used as a constraint solver that
utilizes Excel-based decision
models to represent and solve constraint satisfaction problems. While the most
constraint solver are oriented to a software developers,
Rule Solver™ allows
business users to use the power of CP.
to use the power of CP.
Rule Solver™ is based on the CP standard JSR-331 and allows a user to switch between different JSR-331compliant constraint solvers without any changes in the decision models.
Read more in the Rule Solver™ User Manual.
Enhanced Decision Table Templates and Operators
More compact set of the decision templates. The standard configuration project "openrules.config" now includes only the following template files that support Decisions:
New Operators. We added new decision table operators:
Operator "Is Empty" that allows you to check whether a String decision variable is not defined (null) or contains only whitespaces.
Operator "Is Not One Of" that allows you to use only one rule to check a condition "A decision variable is not among members of the array of strings or numbers".
Direct references to decision variables. You may refer to the values of decision variables inside cell of other decision table columns by putting $ in front of the decision variable name. For example, instead of writing a Java expression such as := getString("AccountType") you may simply write $AccountType. Here is a fragment of a decision table with new operators:
Avoiding empty tables. If your decision model does not use a glossary or business objects you do not have to provide the proper empty tables anymore.
A new sample project "DecisionAutoInsurance" has been added. It demonstrates how to deal with aggregated objects such as arrays in the context of decisions, glossaries, methods, and decision tables. In particular, this example shows how to calculate an insurance premium for a policy that contains multiple drivers and vehicles.
New Question Types for OpenRules Dialog
ComboBoxDomain - this question is similar to a regular ComboBox but it allows a user to specify different display and actual values. For example, instead of the domain "Yes, No" a user may specify "1,Yes;0,No". While the combo-box will continue to offer "Yes" or "No" the actual answers will be 1 or 0.
RadioButtonDomain - this question is similar to a regular RadioButton but it allows a user to specify different display and actual values.
As always, the new release remains backward compatible. You may download the latest OpenRules® release 6.2.0 from www.openrules.com/download.htm. After the download, you need to update the folder "openrules.config". If you already have a previous installation you need to do the following:
- delete all openrules.config/*.xls files and replace them with new xls-files
- replace openrules.config/lib/openrules.all.jar with a new one.