Release Notes 6.2.0 (March-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 used as 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 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.

Rule Solver™ is based on the CP standard JSR 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. 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 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.


Please post your comments and suggestions to the Google Discussion Group or send them to