BOBJ - Chasm Traps (converging many to one joins)

Card Puncher Data Processing


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.

Bobj Chasm Trap

A chasm trap inflates results without warning


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 Bobj Chasm Trap Result 1
Measure only on the second fact table Bobj Chasm Trap Result 2
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.
Bobj Chasm Trap Result Cartesian Product

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.

Solved by

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

Bobj Univers Parameters Multiple Path

Discover More
Bobj Context Structure Pane
BOBJ - Context

Contexts are a collection of joins which provide a valid query path for to generate SQL. You use contexts to resolve join problems that can return too many or too few rows because of the way that...
Card Puncher Data Processing
BOBJ - Joins (Home)

The Joins in BOBJ. You have several approaches to creating joins in : Tracing joins manually in the schema (Drag and drop) Defining join properties directly ( Menu Select Insert > Join ) ....

Share this page:
Follow us:
Task Runner