Release Notes 6.2.2 (Sep-2012)
OpenRules® Release 6.2.2 adds new features that allow a user to further customize OpenRules decisions, decision tables, and web dialogs:
Custom Decision Tables
Until this release OpenRules supported only three standard types of decision tables (DecisionTable, DecisionTable1, and DecisionTable2) that are based on Decision Table Templates in the project "openrules.config" (see files "DecsionTemplates.xls" and "DecisionTableExecuteTemplates.xls"). When our customers wanted to add their own conditions and actions to decision tables, they had to extend these standard templates. Now they may add new types of decision tables by simply extending the keyword "DecisionTable<Identifier>" with they own "identifier". For example, a user may add a new of decision tables called "DecisionTableMy" by defining the proper custom conditions and actions inside a template with the name "DecisionTableMyTemplate". We demonstrate new custom decision tables in a new standard rules project "DecisionCustom" that uses a decision table called "DecisionTableCustom" created based on an additional project-specific template "DecisionTableCustomTemplate" described in the project file "DecisionTableCustomTemplates.xls".
Adding Decisions to OpenRules Dialogs
OpenRules® offers two alternative ways for decision modeling based on the nature of their own applications. OpenRules Decisions used mainly to represent decision logic allowing a user to define a business glossary, business objects and rules defined on them. However, for web-based questionnaires OpenRules Dialog offers a more natural way to express decision variables, facts, and rules using presentation concepts such as questions, answers, sections, and pages. We received requests from our customers that they want to mix both approaches. So, we did it in this release. Now the library "openrules.forms.lib" that supports OpenRules dialog s also includes a file "DialogDecisionTemplates.xls" that allow a user to mix dialog concepts with decisions. This file contains a custom template "DecisionTableDialogTemplate" that defines conditions and actions expressed in terms of questions, answers, sections, and pages. It allows a user to create different decision tables of the type "DecisionTableDialog" to more naturally express decisioning logic of their graphical applications. An example of such application is provided inside a new project "Dialog1040EZDecision" that moves calculation logic for dependent taxpayers from the table "autoResponses" to a special decision "DetermineDependentAmount".
Decision Runs Initialization and Customization
>We extended the Decision API with 3 optional methods that allow a user to customize the default behavior directly in Excel templates:
initializeDecision - called during the very first decision run
initializeDecisionRun - called before every decision run
finalizeDecision - called at the end of every decision run
We also modified decision templates in "openrules.config" to provide the default implementations for these methods in the files "DecisionTemplates.xls", "DecisionTableExecuteTemplates.xls", and "DecisionTableSolveTemplates.xls". Users may add their own initialization methods directly in Excel under the names "customInitializeDecision" and "customInitializeDecisionRun".
A good example of how to customize decisions is provided by Rule Solver which templates effectively utilize all three decision initialization and customization methods.
- We fixed a bug the Rule Solver when decision parameters were not correctly treated during consecutive runs of the same decision. The templates in the updated file "DecisionTableSolveTemplates.xls" now correctly initiate each decision run taking advantage of new initialization and customization features described above.
- We also fixed a bug in the implementation of the operator "Is Empty" that is used inside conditions to check whether a decision variable is not defined (null) or contains only whitespaces.
- When we compare dates time is not taken into considerations anymore.
The product documentation has been properly updated. As always, the new release remains backward compatible. After downloading the latest OpenRules® release 6.2.2 from here, you need to update the following files:
- all openrules.config/*.xls files in "openrules.config" or in your own repository
- openrules.all.jar in "openrules.config/lib".