Advanced debugging capabilities save you time debugging complex rules and decisions

Executing business decisions and rules with a black-box approach is frustrating:

  • You don't have full visibility into the execution context and rules as you execute
  • You will receive the result and logs, but that's after the fact
  • You cannot view the context when the rules are executed

This means you will need to spend more time running your models multiple times to see how you can get the correct value set for the inputs. When conditions should be added or disabled based on different scenarios. It's a hit-and-miss approach until you get everything working but after further tries and fixing many errors.

Visual Debugger

FlexRule's authoring platform offers a different approach:

  • It's very easy to run through decisions and rules, one by one.
  • You can quickly step in and out of specific decision logic
  • You can step through individual rules and understand exactly how the inputted data passes through
  • When you put your business logic (i.e., rules, decisions, flows, etc.) into a debug state using a debugger, it means you have access to the current execution context

For example, in a complex business decision (e.g., calculating a premium for car insurance), you have the following Decision Table as part of a bigger decision model:

business rules debugger

As you can see in the above picture, the green lines are business rules consequences (actions) that are executing. The yellow lines are conditions that have yet to be evaluated, and when/if their criteria are satisfied, actions will be executed.

Complex Decisions and Rules – Break Points!

When decisions and rules are so complex that you must debug them multiple times to enhance them, fix missing criteria, or understand a defect in your model, it is very hard to run the whole model. You must run a specific scenario and pause at certain decision nodes or business rules.

An example of Breakpoint management in a Decision Table. You also can apply this in Activity Flows, Decision Graph, and any other type of logic.

This is where Breakpoints come into the picture. You can put a Breakpoint anywhere, place your model into a debug mode, and execute up to the Breakpoint, and the Authoring platform will wait for you to do your job now. You can inspect values, look at the context, and even change inputs and see how they behave in a live environment.

Do you want to see what the values are of the car involved in this decision? Or what are all the Parameters in the execution context that led to this behavior in this decision table?

Inspecting Context and Changing Values

There are two windows in the authoring platform: Parameters and Watch. These windows show you all the Parameters in an execution context.

parameter_watch_window

The Parameter window is a read-only window and loads all the values in the current execution context in a tree, so you can simply expand the nodes and drill down to see the details of any value in the current execution context.

You can also change values using the Watch window. Just write an expression, that will update the execution context, including parameters, values, collections, and anything you need. You don't need to rerun the model to find out what needs to be changed, and you can test what you assume in the live session.

Conclusion

Modelling business decisions and rules are easy until they are not. You must have a way to step through them and inspect values and the context while running them step-by-step. Otherwise, the black-box approach of running them becomes too frustrating: entering an existing model to find an issue or enhancement is challenging and time-consuming.

Advanced debugging capabilities include:

  • Live debugging sessions
  • Full navigation control with step in, out, and through different parts of models
  • Breakpoint management that allows multiple breakpoints in decisions, rules, and other aspects of the project
  • Data collection viewer with advanced look-up and search capabilities
  • Ability to inspect simple and hierarchical composite values
  • Ability to change parameters, values, and context in a live session

That's how you can save your time debugging complex rules and decisions! For more information please visit Debugger page.

Last updated December 7th, 2023 at 12:46 pm Published July 20th, 2016 at 04:00 pm