Decision table errors and warnings

Rule Designer checks for overlaps and gaps in decision table conditions, and indicates problems by using visual cues.

As you submit values to the cells of your decision table, Rule Designer checks the column automatically for errors and highlights them:

  • The column header displays a warning symbol.
  • A red line indicates an error.
  • A yellow line indicates a warning.

The errors and warnings are also listed in the Problems view.

You can define different checking properties for different condition columns.

Overlap warnings

Rule Designer can verify that the values you enter for a given condition throughout the different rows do not overlap or are not identical.

For example, consider a column for the age of the customer:

  • Row 1: age is between 17 and 30
  • Row 2: age is between 29 and 40

In this example, customers that are 29 years old satisfy the condition of both rows. Rule Designer reports this as an overlap warning.

Rule Designer checks for overlaps for all the entries in a column, and within partitioned groups of cells.

The overlap checker supports the following types:

  • Number (discrete and continuous): int, long, float and double.
  • The various types of Date defined in the Boot BOM: Date, SimpleDate, UniversalDate, Time, UniversalTime, DayOfWeek, Month, and Year.

The extended BAL also supports:

  • Percentage (ilog.rules.brl.Percentage)
  • Currency (ilog.rules.brl.Currency)

The following operators are supported for all types of object: is, is not, is one of, is not one of.

Gap warnings

Rule Designer can verify that the cells in a condition column consider all possible cases, which helps you make sure there are no gaps in your tables.

For example, consider a column for the age of the customer:

  • Row 1: age is between 17 and 30
  • Row 2: age is between 32 and 40

In this example, customers that are 31 years old are never be taken into account. Rule Designer reports this as a gap warning.

Rule Designer evaluates gaps for all the entries in a column, and within partitioned groups of cells.

The gap checker supports the following types:

  • Number (discrete and continuous): int, long, float and double.
  • Types that describe concepts. For example, type Category, which might have items such as Silver, Gold and Platinum.
  • The various types of Date defined in the Boot BOM: Date, SimpleDate, UniversalDate, Time, UniversalTime, DayOfWeek, Month, and Year.

There are two modes for numbers: interval and infinity.

  • Interval checks for gaps from the smallest value to the largest value.
  • Infinity checks for gaps from minus infinity to plus infinity.

Gap and overlap warning limitations

The detection of gaps and overlaps in decision tables is too complex to do under all circumstances. Rule Designer consequently applies limits in the following areas:

  • Complex column expressions
  • Hierarchical overlaps

Complex column expressions: Rule Designer only detects gaps and overlaps for columns with simple expressions. If an expression is too complex (for example, expressions that involve operators), no gaps or overlaps are computed.

The following expressions are considered to be simple:

  • the amount of the loan is <a number>
  • myParam is <a number>

    where myParam is a ruleset parameter or variable.

  • var is <a number>

    where var is a variable defined as a precondition and assigned a simple expression.

The following expressions are considered to be too complex for gap and overlap calculations:

  • the amount of the loan + 1,000 is <a number>
  • var is <a number>

    where var is a variable defined as a precondition and assigned a complex expression.

Hierarchical overlaps: Rule Designer checks for hierarchical overlaps on a best-effort basis to avoid the high computational cost of detecting all possibilities. Hierarchical overlaps might not be computed accurately when conditions are added or removed; that is, when structural changes occur on the partition where a hierarchical overlap is computed.

Symmetry information

Rule Designer can verify that all partitions use the same set of items. You can check symmetry for the whole table or for specified columns. Such checking is useful to make sure that all choices are covered at the same level in the decision table.

When enabled, symmetry checking is just given as information, allowing you to create non symmetric tables.