Release Notes 6.3.2 (Dec-2014)

OpenRules® Release 6.3.2 adds enhanced features to OpenRules Dialog for generation of highly dynamic questionnaires. New decisioning and problem solving capabilities requested by customers are described below. The Release 6.3.2 comes with many new sample projects that demonstrate practical use of OpenRules® BRDMS.

OpenRules Dialog Enhancements

This release essentially enhances OpenRules Dialog with new features requested and/or already tried by our customers:

1) Support for child-parent relationships among questions to build hierarchical dialogs. Some questions are frequently are sub-questions (children) of other questions (parents) and should be asked only when there are certain answers to the parent questions. For example, in the following dialog:

To specify a parent-question we added a new column A5 to the standard template:

We also added new action-columns A6, A10, and A11 that allow a user to hide children of certain questions and to reset default answers for a question and/or all its children:

Hiding and resetting actions work recursively for all children and grandchildren questions.

2) Handling custom update events from dynamically changed pages. A new optional condition C5 "Update Event is" (see the above update rules) has been added to the template "updateDialogTemplate" in the standard file "DialogRules.xls". A user may check if during an interaction some update events were initiated by a user. Actually now all submit-control such as "ComboBoxSubmit" or "ActionButton" generate user events using the proper question names.

3) Dynamic change of the same page content using different data. If you want to select different underlying data (e.g. about customer's accounts) and display it on the same page where you do data selection, you need an ability to load the selected data and to refresh the page one more time (instead of creating a separate page for each account). To support this feature we extended the standard template DialogMain.xls allowing a user to specify a "pageToBeRefreshed". You may see how it can be done for the action "SelectAccount" in the new sample application "DialogType4" added to the standard installation folder "openrules.dialog".

4) You may use an "empty" value in the condition "C3" of your decision table "updateRules" by leaving the sub-column "Value" empty as below:

This condition will be satisfied if the answer to the proper question is null or an empty string.

5) All conditions and actions in the standard template "updateRulesTemplates" (see the file DialogRules.xls in the folder "openrules.forms.lib") are now optional. It allows you to delete any conditions that are not being used from your "updateRules" decision table.

Dynamic Objects

You always could bring objects defined in Excel Datatype tables and instantiated in Data tables to your Java interface using the predefined class DynamicObject, e.g.

  DynamicObject customer = (DynamicObject) decision.execute("getCustomer");

Such dynamic object contains a set of fields that you may access using the methods

   public Object getFieldValue(String name)

   public void setFieldValue(String name, Object value)

Now we added a new DynamicObject method

   public HashMap getFields()

that allows you to navigate through all fields like in the example below:

           DynamicObject customer = (DynamicObject) decision.execute("getCustomer");

           HashMap fields = customer.getFields();

           Iterator it = fields.entrySet().iterator();

      while (it.hasNext()) {

                   Map.Entry pairs = (Map.Entry);

                   System.out.println(pairs.getKey() + " = " + pairs.getValue());


Our customers use this method to get all default object attributes from Excel and to initialize their Java-based business objects before decision execution - see an example at the project "DecisionHello" in the file "".

Additional Decision Operators

Based on a customer request, we've added another decision table operator "Outside" (with a synonym "Outside Interval") that is opposite to the existing operator "Within". It may be used to check a condition when an integer or real value like 3.14 is within or outside of the interval like [3;5).

Changes in Rule Solver

We added a new condition "ConditionXoperY" and a new action "ActionXoperY" that have been effectively used to represent the problem "DecisionWhoKilledAgatha" described at this post. Here is an example:

We also added a new scheduling constraint that prohibits activities to share resources like in the following example:

The proper constraints have been added to the sample project "DecisionScheduleActivitiesAlternativeResources".

New Sample Decision Projects

We added several new sample decision projects:

  • DialogType4 - demonstrates all new OpenRules Dialog features described above. The sample project has been added to the standard installation folder "openrules.dialog".

  • DecisionMitigate - demonstrates how to implement decisions with mitigation criteria. Read more at this blog-post

  • DecisionPromotiomEligibility - demonstrates how to pas parameters to your decision project and how to use macros and decision's output. This sample project was created in response to a customer request at OpenRules Support Forum

  • DecisionMortgageRecommender - this project demonstrates a DMN-based loan origination decision contributed by Gil Ronen and described here. The project can be found in the standard workspace "openrules.decisions".

Download the latest complete OpenRules® release 6.3.2 from here.

If you have any questions, comments or suggestions, please post them at the Google Discussion Group or send them directly to