OpenRules decision tables use to column of the type “ActionExecute” to invoke another decision table by simply using its name. For example, look at this decision table:
If the first rule is satisfied, this decision table will invoke another decision table using its name “ValidateRequest”. Yesterday, we received a request from a customer who wanted to invoke not one but several decision tables. So, our technical support recommended him to create a table of the type “Decision” and list all other decision tables in such table. For instance, a customer may create an intermediate table “LoanAnalyzer”
and simply replace “ValidateRequest” with “LoanAnalyzer” in the first table. This method solved the issue for the existing release.
However, it also forced our development team to think if we could avoid the creation of intermediate table “Decision LoanAnalyzer”. So, we had a brainstorming session on Microsoft Teams about the “ActionExecute” using the above example.
We decided that the problem is even worse than creating one more intermediate table “LoanAnalyzer”. What is this table supposed to do? It’s intended to determine the sub-goal “Loan Status” and its 3 tables being executed one after another will do the job. However, it also means that we force a customer to manually specify the execution path to this goal. Why to do it when OpenRules has already automatically calculated execution paths to all goals and sub-goals?
So, it was only natural when an idea to introduce a new column “ActionGoal” came to light. Instead of creating an intermediate table and forcing a user to hard-code an execution path, we may simply ask a user to write the name of the goal instead of the name of the decision table. In this case, our initial decision table will be able to invoke the goal “Loan Status” directly as below:
It certainly would be a great improvement that our customers would appreciate. But how quickly can we implement a new column of the type “ActionGoal” was my question? Then one of our developers opened the main template table in the Excel table “DecisionTableExecuteTemplates.xls” and simply added one more optional column [ActionGoal] after the column [ActionExecute]:
We rebuilt the OpenRules Decision Manager and tried to run the latest decision table with the column “ActionGoal”. The update version perfectly handled the new column’s type! No coding was required to add quite a powerful new functionality. It took us an hour to discuss the problem and only 5 minutes to implement the proposed improvement!
Congratulations, OpenRules development team! For me it was another proof that our product has been built on the right foundation.