OpenRules 9.1.0 with Friendly Iterations

OpenRules Release 9.1.0 essentially simplifies how our customers iterate over collections of business objects. Now you may describe your loops in one decision table, immediately see iteration nodes in Decision Diagrams, and analyze the content of each iteration while you are looping over collections inside OpenRules Debugger. Here is a simple loop over an array of Players that accumulates their scores to calculate Team Score:

If in the previous releases every iteration required at least two tables, in Release 9.1.0 one intuitive table is sufficient.

For instance, in the post “Decision Models for Medical Claim Processing” I described two nested loops to iterate over the same array of diagnoses and searching for duplicated pairs in a large CSV file. The implementation was done using these 3 tables:

With OpenRules 9.1.0 the same implementation becomes more elegant and intuitive:

Also Release 9.1.0 automatically builds Decision Diagrams in a much nicer way. Compare the old diagram

with the new diagram:

Every iteration node is marked by a “loop” and the arrow leading to this node describes the collection it iterates over.

I especially like the improvements made in OpenRules Debugger to dynamically explain each step of iteration processes. For example, here is a snapshot of the Debugger’s view for the new sample project “Iterations”. It shows the current elements of the collections over which we iterate:

When we reach the nested loops over Employees and their Locations we keep clicking on the button “Next Rule” to see the current elements with their indexes: the red circle shows the current Employees[1] and underneath Locations[0] with their attributes. I found these capabilities being extremely helpful.

Release 9.1.0 also simplifies collection sorting that now may look as below:

I know for sure that many of our large and midsize customers would appreciate user-friendly iterations supported by the new Release 9.1.0. Everybody may freely download its Evaluation version and see how to deal with iterations using the sample project “Iterations”.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.