Release Notes 6.2.4 (May-2013)
OpenRules® Release 6.2.4 advances OpenRules BDMS with additional features initiated by the real-world use of previous releases. New features include:
Using HTTP Authentication
We have added an ability to use "username" and "password" with the "http:" protocol. When you define a URL to access password protected Excel files, you may use an addresses like "http://username:password@path/Main.xls". Adding this features required an additional file "commons-codec-1.5.jar" to be added to the standard OpenRules library "openrules.config/lib".
Extended Date Formats
Along with a simple date format such as "11/19/2005", all comparison operators may now handle more complex date formats like "Fri Nov 30 13:46:14 EST 2012". It is especially important when your decision tables include references to dates defined in Excel data tables. For example, when you use formulas or references to calculate a date like in the following table:
The default Excel format of the cell "$Conflict Begin Internal Date" may contain both day and time information, but it still will be correctly handled by the new release.
Using Decision Variables with "Not Applicable" Values
We added a possibility to use an asterix character (*) for "not-applicable" values. Now we simply allow an asterix character to be used with operators "Match" and "No Match". Note that "*" is not a valid regular expression but you do not want to force your business user to learn a valid Java pattern that should contain two characters ".*" instead of a single "*". For example, you may want to compare a Patient's Gender with a gender defined in the variable "Required Gender". If Required Gender is "Male" or "Female" the operator "Is" or "Is Not" will do the work. However, if Required Gender is "n/a" and you want to accept any gender, you cannot use operators "Is" or "Is Not" anymore. You may define the Required Gender as "*" (single asterix character) as follows:
Then you may use a condition similar to the following one:
Let's assume that Patient's Gender is Female. As the Required Gender is defined as '*' the condition will be satisfied. If the Required Gender is defined as "Male" the condition will not be satisfied.
Using XML Data Inside Decisions
We added a sample project "DecisionHelloXML" that demonstrates how a decision can get data from an XML-file and use it as decision objects without necessity to create intermediate Java classes. XML structure is simply being mapped to a Datatype defined directly in Excel.
To handle any XML formats, you may also use a new simple XML Reader added to the standard package "com.openrules.tools". A user may inherit its own XML Reader from the standard class XmlReader by defining only one method that maps XML structure to a user-defined Java class. For example, to read an array of computers from an XML file to Java objects of the type Computer, a user may create a simple Java class XmlComputerReader inherited from the class XmlReader and call the method readArray as follows:
XmlComputerReader reader = new XmlComputerReader("computers.xml");Objects computers = reader.readArray("Computer");
Then objects "computers" may be passed to different decision runs. Examples of XML readers can be found in the "com.openrules.tools/tst".
Saving Results of Different Decision Runs in Different Execution Reports
We added an ability to place generated reports for different decision runs into different sub-folders of the default folder "report". If the same decision is executed multiple times for different input data sets, all generated reports will be overridden. To avoid this undesirable effect, before calling decision.execute() you may call decision.setRunName("run-name") where "run-name" is a unique name of this particular decision run. In this case all generated reports for this run will be placed into the directory "report/run-name".
The product documentation has been properly updated. As always, the new release remains backward compatible. After downloading the latest OpenRules® release 6.2.4 from here, you need to update your openrules.config.