Release 8.1.2

May 11, 2020. New Release 8.1.2 provides a brand new execution engine that improves performance of very big decision tables from 10 to 100 times! It improves testing facilities, tracing, reporting, and includes the following enhancements:

    • Big Tables. Decision tables that contains tens of thousands rules could slow down execution if you use the standard decision tables. This release introduces a special type of decision tables called “BigTable” with a completely new execution mechanism based on a self-balancing binary search algorithm. It allowed us to achieve 100 (!) times performance improvement for really large decision tables. For example, the new sample-project “HugeTable” deals with the big table that contains more than 16,000 rules with 8 conditions and 3 conclusions, and the new execution engine evaluates this table within 1 millisecond. Read more and try it online.
    • New Project Properties. The configuration file “project.properties” may include 3 more properties:
        • trace=On/Off – to show/hide all executed rules in the execution protocol
        • report=On/Off – to generate or not the execution reports in the html-format
        • debug=On/Off – to turn on/off the debug mode. It replaces to old batch file “debug.bat”
    • New Operator Row in Decision Tables.  Now a rules designer can add an optional 4th row to any decision table that can contain operators defined for the corresponding columns. For example, the following big table contains operators “=”, “>=”, and “<=” in the 4th row. OpenRules automatically recognizes the presence of such a row.  It saves space inside cells and it is quite intuitive especially in scorecards where you may replace the column “Conclusion” with a separate sub-column with one column of the type “Then” or “Action” and the same operator:

You may use operators <,<=,=,==,>,>=, +=, -=, and *= in the Operator row.  By default OpenRules assumes that the operator is “=”.

    • Advanced Testing Facilities. Your tables of the type “DecisionTest” now can include special (optional!) columns “ActionActive” and “ActionComment” as below:Only test-cases with active marked as “X” will be executed allowing you to concentrate on these particular tests. If all Active cells are empty, then all test will be executed.The comments include in the column “ActionComment” will be used in the test explanations when trace=On.You may split your test cases into multiple tables of the type “DecisionTest” and they all will be executed. The names of such tables should be unique.
    • Approved Reporting and Explanations. Now the generated reports contain links to the exact Excel’s cells where the executed rule is defined:If you click on these links in the first column, the corresponding Excel file will be opened. The exact location of executed rules is also included to the execution protocol.
    • Java Snippets in Data Tables. You can use Java snippets inside Data table as below: The snippet := eligibilities in the Data table “employees” refers to the array “eligibilities” defined in another Data table.
    • Code Tables in Excel. If you need to keep a snippet of Java code in Excel, you can place it in a special table of the type “Code“. Here in an example from the sample project “InsideOusideProduction”: This table is equivalent to the table with the signature
      Method void SolveOptimizationProblem(Decision decision)
    • Improved JSON Support. When you deploy your decision project as a remote service (e.g. by clicking on “deployLambda.bat”) OpenRules validates that all business concepts defined in your Glossary can be converted to JSON. OpenRules Data tables will be automatically converted, but if you use Java objects, they need to be JSON-serializable. Otherwise, OpenRules would not allow you to proceed with the deployment.

      If trace=On then during the deployment and service execution the input and output objects passed to this service will be displayed in the beautified JSON format.

    • DecisionServiceClient. We added a new Java class “DecisionServiceClient” to the package “com.openrules.tools” that is now publicly available from this GitHub directory. Wherever you deploy your decision service (e.g. as AWS Lambda or a remote Tomcat), you may utilize this class to invoke your service from Java. Here is the example of a client from the standard project “DoctorPlanning” included in the Release 8.1.2:

You may download the Release 8.1.2 from here and try it for free using our SaaS Rule Engine in the AWS Marketplace.

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