Chasm Traps : 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.
Reports created on Universes having Chasm Traps tend to give incorrect results. Usually it inflates the results.
We will see a Demo of how Chasm Trap gives incorrect results and how do we solve it.
Step 1: Create a universe using the default “club” universe connection using the tables Service, Reservation Line and Invoice line creating a Chasm Trap.
Step 2: Create the corresponding classes and Objects and then try creating Reports which pulls out data involving Service and Reservation; Service and Invoice and then all together i.e. Service, Invoice and Reservation. Ideally you should get similar data if you pull the data individually or not ; but since we have a chasm trap here the Report data involving all the tables would give incorrect data.
Step 3: Output of the Report – Future Guests
Step 4: Output of the Report – Number of Guests .
Step 5: Output for guests & future guests---Inflated Results
Step 6: The Chasm Traps can be Resolved after adding context or Alias. Open the Universe which was created and then “Detect Contexts”. The Designer would propose some candidate contexts. Add the contexts and save the Universe.
Step 7: Now try repeating the Step 3, 4 and 5. You get the correct output even if data is pulled involving all the three tables.