BOBJ - Context

Card Puncher Data Processing


Contexts are a collection of joins which provide a valid query path for SAP BO - Web Intelligence to generate SQL.

Bobj Context Structure Pane


You use contexts to resolve join problems that can return too many or too few rows because of the way that tables are linked in the target database.

You need to verify that cardinalitiy are correctly set for all joins in your schema to ensure that you have the correct contexts, and that you have valid join paths.

Setting cardinalitiy can also help you understand how tables are related in the database, and to graphically identify potential join path problems in your schema.

To solve loop

The most common use of contexts is to separate two query paths, so that one query returns data for one fact table, and the other query returns data for another fact table. You use contexts to direct join paths in a schema which contains multiple fact tables. Alias are not appropriate in such schema.

You often use context in schema that contain multiple fact tables (“multiple stars”) that share lookup tables.

To solve chasm and fan traps

Contexts are also used to solve potential BOBJ - Chasm Traps (converging many to one joins). These can occur when two many-to-one join paths converge on a single table. Multiple rows can be returned for a single dimension causing inflated results. Contexts can split out the query so that the correct number of rows are returned for the dimension. Contexts can also be used with BOBJ - Alias to solve BOBJ - Fan Trap (serial many to one joins).

Using contexts to determine AggregateAwareness incompatibility

You can use contexts to exclude objects that are not compatible with an object using the @AggregateAware function in its definition, from being used in a query with the aggregate aware object.

Managing Context


Automatically with Detect Context

Tools > Automated Detection >Detect Contexts

Bobj Context Candidate

Detect Contexts examines the many to one joins in the schema. It picks up the table that receives converging many to one joins and proposes contexts to separate the queries run on the table.


  • Insert > Context


  • View > List Mode
  • Double click a context name in the Contexts list pane. The Edit Context box appears

Bobj Context Edit


  • Ensure that List mode is active (Select View > List Mode).
  • Right click a context name in the Contexts list box and select Clear from the contextual menu.


Click a context and click the Rename button.


One-to-one cardinality preventing context detection

A one-to one-cardinality positioned at the end of a join path can prevent Context Detection in Designer from detecting a context. You resolve this problem by changing the cardinality of the table at the end of the join path to one-to-many.

Incompatible query

Objects from two different contexts are combined in a query. The two Select statements are synchronized to display returned data in separate tables.

To allow incompatible queries to be run in Web Intelligence, you must select the Multiple SQL statements in Designer for each context option.

  • File > Parameters.
  • Click the SQL tab.
  • Select the Multiple SQL statements for each context check box

Bobj Univers Parameters Multiple Path

Discover More
Bobj Cardinalities Detect Structure Pan
BOBJ - Cardinalities

This article talk cardinality in universe designer. The cardinality of a join does not have a role in the SQL generated when you run a query. However, Designer uses cardinalities to determine context...
Bobj Chasm Trap
BOBJ - Chasm Traps (converging many to one joins)

Chasm Traps is see as a Join Path problem or data modeling issue (convergence type ) which returns more data than expected by returning a cartesian product. A chasm trap is a type of join path...
Bobj Fan Trap Good Result
BOBJ - Fan Trap (serial many to one joins)

The fan trap in a BOBJ context. A fan trap is a join path problem returning too many rows. The original query which returned the Cartesian product for Wendy Craig, must return the following table...
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 ) ....
Bobj Loop Structure Pane
BOBJ - Loops

in BOBJ. “multiple stars” Depending on the nature of the loop, you can resolve the loop in Designer using either an alias to break the join path, or a context to separate the two join paths...

Share this page:
Follow us:
Task Runner