BOBJ - Chasm Traps (converging many to one joins)

1 - About

Chasm Traps is see as

(convergence type ) which returns more data than expected by returning a cartesian product.

A chasm trap is a type of join path between three tables when two many-to-one joins converge on a single table, and there is no context in place that separates the converging join paths.

A chasm trap inflates results without warning

3 - Example

The chasm trap causes a query to return every possible combination of rows for one measure with every possible combination of rows for the other measure.

Measure only on the first fact table
Measure only on the second fact table
Measures on the two fact tables return incorrect result (cartesian product) :
The query returns every possible combination of Number of Guests rows with every possible combination of Number of Future Guests rows: the Number of Guests transactions each appears twice, and the Number of Future Guests transactions each appears three times.

4 - Detected by

  • Visual analysis of table schema.

Unlike BOBJ - Loops, chasm traps are not detected automatically by Business Object - Universe Designer, however, you can use Detect BOBJ - Context (Tools > Detect Contexts) to automatically detect and propose candidate contexts in your schema.

5 - Solved by

  • Creating a BOBJ - Context.
  • Using the feature Multiple SQL statements for each measure. (File > Parameters > SQL tab )

viz/bobj/bobj_chasm_traps.txt ยท Last modified: 2017/09/14 13:31 by gerardnico