Business Objects Interview Questions with Answers
What are Lookup and Fact Tables?
Lookup tables: A lookup (or dimension) table contains information associated with a particular entity or subject.
Fact Tables: A fact table contains statistical information about transactions.
What Types of Join Paths Return Incorrect Results?
1. Loops (Too few rows) 2. Fan Trap (Too many rows) 3. Chasm Trap (Too many rows)
What Are Loops?
In a relational database, a loop occurs when joins form multiple paths between lookup tables.
How to detect loops?
1) Run the Check Integrity function, which indicates the existence of any loops.
2) Select the Detect Loops command from the Tools menu.
How to resolve loops?
Loops can be resolved by creating aliases and contexts.
What is an Alias?
In SQL an alias is an alternative name for a table. In DESIGNER, an alias is just a pointer to another table. The purpose of aliases is to resolve structural issues in a database arising from SQL limitations. Whenever possible you should use an alias instead of a context.
What is a context?
Context is a method by which Designer can decide which path to choose when more than one path is possible from one table to another in the universe.
Generally used transactional database with multiple Fact tables.
Dis-advantage:
When you use a context, you expose the Business Objects end user to the database structure. They are forced to decide which context they want to use to run their query. The role of the universe is to shield end users from the database structure, so they do not have to make such decisions.
What is Fan trap and Chasm Trap? How do you resolve?
Fan Trap: occurs when a “One to Many” join links a table which is in turn linked by another “One to Many” join.
There are two ways to solve Fan trap:
• Creating an alias and applying aggregate awareness function. This is the most effective way to solve the Fan trap problem.
• Using Multiple SQL statements for each measure.
Chasm Trap: occurs when two “Many to one” joins from two Fact tables converge on a single Lookup table.
Can be solved by:
• Creating a Context.
• Using Multiple SQL statements for each measure
• Creating multiple universes (WEBINTELLIGENCE only).
When do you use multiple universes?
You can use multiple universes to solve a Chasm trap in a WEBINTELLIGENCE universe when
Multiple SQL for Measures cannot be used as there are dimension objects defined for one or both of the fact tables.
When do you NOT use multiple universes?
You do not use multiple universes in the following situations:
• Full client BUSINESSOBJECTS universes
• When a WEBINTELLIGENCE universe does not contain dimension objects defined for any of the fact tables.
What are @Functions?
1) @Aggregate_Aware (2) @Prompt (3) @Script (4) @Select (5) @Variable (6) @Where
@Prompt: message prompts the end user to enter a specific value.
Syntax: @Prompt (‘message’, [‘type’], [lov], [MONOMULTI], [FREECONSTRAINED])
@Script: This function recovers the results of Visual Basic for Applications macro (VBA macro).
Syntax: @Script (‘var_name’, ‘vartype’, ‘script_name’)
@Select: This function enables you to re-use the Select statement of an existing object.
Syntax: @Select (Classname\Objectname)
@Variable: The @Variable is used to reference the value assigned to a name or variable.
Syntax: @Variable(‘myname’)
@Where: This function lets you re-use the Where clause of an existing object.
Syntax: @Where (Classname\Objectname)
What are Lookup and Fact Tables?
Lookup tables: A lookup (or dimension) table contains information associated with a particular entity or subject.
Fact Tables: A fact table contains statistical information about transactions.
What Types of Join Paths Return Incorrect Results?
1. Loops (Too few rows) 2. Fan Trap (Too many rows) 3. Chasm Trap (Too many rows)
What Are Loops?
In a relational database, a loop occurs when joins form multiple paths between lookup tables.
How to detect loops?
1) Run the Check Integrity function, which indicates the existence of any loops.
2) Select the Detect Loops command from the Tools menu.
How to resolve loops?
Loops can be resolved by creating aliases and contexts.
What is an Alias?
In SQL an alias is an alternative name for a table. In DESIGNER, an alias is just a pointer to another table. The purpose of aliases is to resolve structural issues in a database arising from SQL limitations. Whenever possible you should use an alias instead of a context.
What is a context?
Context is a method by which Designer can decide which path to choose when more than one path is possible from one table to another in the universe.
Generally used transactional database with multiple Fact tables.
Dis-advantage:
When you use a context, you expose the Business Objects end user to the database structure. They are forced to decide which context they want to use to run their query. The role of the universe is to shield end users from the database structure, so they do not have to make such decisions.
What is Fan trap and Chasm Trap? How do you resolve?
Fan Trap: occurs when a “One to Many” join links a table which is in turn linked by another “One to Many” join.
There are two ways to solve Fan trap:
• Creating an alias and applying aggregate awareness function. This is the most effective way to solve the Fan trap problem.
• Using Multiple SQL statements for each measure.
Chasm Trap: occurs when two “Many to one” joins from two Fact tables converge on a single Lookup table.
Can be solved by:
• Creating a Context.
• Using Multiple SQL statements for each measure
• Creating multiple universes (WEBINTELLIGENCE only).
When do you use multiple universes?
You can use multiple universes to solve a Chasm trap in a WEBINTELLIGENCE universe when
Multiple SQL for Measures cannot be used as there are dimension objects defined for one or both of the fact tables.
When do you NOT use multiple universes?
You do not use multiple universes in the following situations:
• Full client BUSINESSOBJECTS universes
• When a WEBINTELLIGENCE universe does not contain dimension objects defined for any of the fact tables.
What are @Functions?
1) @Aggregate_Aware (2) @Prompt (3) @Script (4) @Select (5) @Variable (6) @Where
@Prompt: message prompts the end user to enter a specific value.
Syntax: @Prompt (‘message’, [‘type’], [lov], [MONOMULTI], [FREECONSTRAINED])
@Script: This function recovers the results of Visual Basic for Applications macro (VBA macro).
Syntax: @Script (‘var_name’, ‘vartype’, ‘script_name’)
@Select: This function enables you to re-use the Select statement of an existing object.
Syntax: @Select (Classname\Objectname)
@Variable: The @Variable is used to reference the value assigned to a name or variable.
Syntax: @Variable(‘myname’)
@Where: This function lets you re-use the Where clause of an existing object.
Syntax: @Where (Classname\Objectname)