Top Courses in IT & Software 728x90

Sunday 28 February 2016

SAP BO Universe Designing Interview questions







I have created Interview questions 2016 for Helping the job seekers for different technologies.
This Section Contains bo interview questions and answers for experienced , Real time bo interview scenarios.
This questions and answers section will help job seeker to crack the interviews will provide bo admin interview questions answers in Upcoming posts. I will try to Post bo interview questions and answers pdf also for the job seekers , they can easily free download it from my website . Please feel free to comment on the interview questions and answers for improvement.
I will try to improve my website so job seekers can take most out of it 



SAPBO-universe-designer-Interview-qiestions

.

Explain Universe design methodology


  1. Analysis of business problem and planning the universe solution.
  2. Designing a schema
  3. Building the universe
  4. Distributing the universe to users
************************************************************************

Indicating resource controls


  1. Limit size of result set to a specified value default 1000 rows
  2. Limit execution time to a specified value  default 10 mins
  3. Limit size of long text objects to a specified value default 1000 Characters
************************************************************************



YOU MAY ALSO LIKE UNIVERSE DESIGNER INTERVIEW QUESTIONS
************************************************************************

Indicating SQL restrictions


Query controls

Allow use of union,intersect and minus operators

Multiple SQL statements controls


Multiple SQL statements for each context
Multiple SQL statements for each measure
Allow selection of multiple contexts

 

MAX_INLIST_VALUES


The max number of values you may enter in a condition when you use the IN LIST operator is  256. Default is 99
************************************************************************

************************************************************************

What is a Lookup Table

A lookup (or dimension) table contains information associated with a particular entity or subject. For example, a lookup table can hold geographical information on customers such as their names, telephone numbers as well as the cities and countries in which they reside. In Designer, dimension and detail objects are typically derived from lookup tables

What is a Fact Table

A fact table contains statistical information about transactions. For example, it may contain figures such as Sales Revenue or Profit. In a universe, most but not all, measures are defined from fact tables.

************************************************************************

************************************************************************
Join path problems can arise from the limited way that lookup and fact tables are related in a relational database. The three major join path problems that you encounter when designing a schema are the following:
• loops
• chasm traps
• fan traps

************************************************************************
Loops are Joins which form multiple paths between lookup tables It would return an  intersection of the results for each path, so fewer rows are returned than expected

Can be detected by Detect Aliases,Detect Contexts,Detect Loops,Check Integrity,Visual analysis of schema and can be resolved by creating aliases and contexts to break loops.

What is the loop doing to the query?

The purpose of the joins is to restrict the data that is returned by the query. In a loop, the joins apply more restrictions than what we expect, and the data returned is incorrect or few rows.

We use an alias to break a loop?

Alias breaks a loop by using the same table twice in the same query for a different purpose. but the  different name “tricks” SQL into accepting that you are using two different tables.

You can see the change in the generated SQL in applying the restrictions in where clause. Only a one time restriction is applied in the joins

There is now one join applying a restriction on the Country table and another join applying a restriction on the Resort_Country table. The loop has been broken.
************************************************************************

 

 

 

 

 

 

 

************************************************************************

What is a Chasm Trap? and Resolving 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 or we can define the chasm trap as. If you have two fact tables with many to one joins converging to a single lookup table, then we have a potential chasm trap.


We will get incorrect results only when:
1. A “many to one to many relationship”exists among three tables in the universe structure.

2. The query includes objects based on two tables both at the “many” end of their respective joins.
3 There are multiple rows returned for a single dimension. And chasm trap inflates results without any warning For Ex

The number of guests that have used, and future guests who have reserved to use the Sports service has increased considerably. A Cartesian product will been returned and the results are incorrect. This can be a serious problem if undetected.

How does a chasm trap inflate results?

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.

Unlike loops, chasm traps are not detected automatically by Designer, however, you can use Detect Contexts (Tools > Detect Contexts) to automatically detect and propose candidate contexts in your schema.

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. This is the most effective way to ensure that your schema does not have a chasm trap.

Resolving a Chasm Trap

To resolve a chasm trap we need to make two separate queries and then combine the results. Depending on the type of objects defined for the fact tables, and the type of end user environment, To resolve a chasm trap we can go for a
• Creating a context for each fact table. This solution works in all cases.
• or Modify the SQL parameters for the universe so that it generates separate SQL queries for each measure. This solution only works for measure objects. It does not generate separate queries for dimension or detail objects.

When do you use contexts?

Creating contexts will always solve a chasm trap in a universe. When you have dimension objects in one or both fact tables, you should always use a context.

Using Multiple SQL Statements for Each Measure

If you have only measure objects defined for both fact tables, then you can use the Universe Parameters option Multiple SQL statements for each measure. This forces the generation of separate SQL queries for each measure that appears in the Query pane.
This solution does not work for dimension and detail objects.

************************************************************************

 

************************************************************************

What is a Fan Trap?

A fan trap is a type of join path between three tables when a “one-to-many”
join links a table which is in turn linked by another “one-to-many” join. The
fanning out effect of “one-to-many” joins can cause incorrect results to be
returned when a query includes objects based on both tables. A fan trap is a less common problem than chasm traps. It has the same effect of returning more data as in the chasm trap

The Sale Value aggregate appears twice. Once for each instance of Model_ID. When these results are aggregated in a report, the sum is incorrect. The fan trap has returned a Cartesian product. Wendy bought two cars for a total of $57,092.00, and not 114,184.00 as summed in the report.
The inclusion of Model_ID in the query, caused the SaleValue to be aggregated for as many rows as Model_ID.
The fan trap using dimension objects in the query is solved by using an alias and contexts. The following schema is the solution to the fan trap schema:

The fan trap using dimension objects in the query is solved by using an alias and contexts. The following schema is the solution to the fan trap schema:



How Do You Detect a Fan Trap?

We cannot automatically detect fan traps. We need to visually examine the direction of the cardinalities displayed in the table schema.
If we have two tables that are referenced by measure objects and are joined in a series of many to one joins, then you may have a potential fan trap.

How Do You Resolve a Fan Trap?

There are two ways to solve a fan trap problem.one is to • Create an alias for the table containing the initial aggregation, then use Detect Contexts (Tools > Detect Contexts) to detect and propose a context for the alias table and a context for the original table. This is the most effective way to solve the fan trap problem.
• Altering the SQL parameters for the universe. This only works for measure objects.
************************************************************************

 

 

 

 

 

 

 

 

 

************************************************************************

How are Aliases Used in a Schema?

We use aliases for two main reasons:
• To use the table more than once in a query. This is the main reason for using aliases, and includes using aliases to solve loops and fan traps. The example Beach universe contains 2 aliases; Resort_Country for Country, and Sponsor for Customer.
• To abbreviate the table name to save typing when writing freehand SQL.
You need to create an alias manually to solve a fan trap. You also create
aliases manually if you are creating a schema using only aliases and not the
base tables

************************************************************************

 

************************************************************************

How are Contexts Used in a Schema?

Contexts are a collection of joins which provide a valid query path for Web Intelligence to generate SQL. We can use contexts in a universe schema for
• Solving loops.
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.

• Solving chasm traps.

• Assisting in some solutions for fan traps.
• Assisting in detecting incompatibility for objects using aggregate awareness.

Contexts are not updated automatically when the universe structure is changed. If you add or remove any tables to the structure, or if you add or remove any joins, you must update all the contexts.

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.



How do Contexts Affect Queries?

contexts can lead to three types of queries like:
• Ambiguous queries : When a query is ambiguous, While running a report displays a dialog box that prompts the user to select one of two contexts. When the user selects a context, the corresponding tables and joins are inserted into the SQL query.

• Inferred queries : When a query is  run without prompting an end user to choose a context. It contains enough information for the correct context to be inferred

• Incompatible queries : When we pull Objects from two different contexts. It generates two Select statements which are synchronized to display returned data in separate tables.

When we query is run such kind of queries, no prompt appears as Business Objects make  use of of both the contexts and  Select statements for both contexts are synchronized. To allow incompatible queries to be run

We can also use the option , select the Multiple SQL statements in Designer for each context option.
************************************************************************

************************************************************************

Defining hierarchies

You create object hierarchies to allow users to perform multidimensional analysis.
Multidimensional analysis is the analysis of dimension objects organized in meaningful hierarchies.
A hierarchy is an ordered series of related dimensions. An example of a hierarchy is Geography, which may group dimensions such as Country,Region, and City.
************************************************************************

Drill

A user can use drill to navigate through hierarchical levels of detail. Users can “drill up” or “drill down” on a hierarchy.
For example, a manager wants to track reservation data over time. As the universe designer, you could set up a Reservation Time hierarchy to include the dimensions Reservation Year, Reservation Quarter, Reservation Month, and Reservation Date. From a higher level of aggregation for example Reservation Quarter, the manager can drill down to a more detailed level such as Reservation Month or Reservation Date. He or she could also drill up from
Reservation Quarter to Reservation Year to see a more summarized view of the data.




************************************************************************

How to identify a hierarchy

Hierarchies can take different forms. Examples of classic hierarchies include:
• Geography: Continent -> Country -> Region -> City
• Products: Category  -> Brand ->  Product
• Time: Year  Quarter ->  Month ->  Week ->  Day

While there are no precise rules for determining where the hierarchies in the data lie, the one-to-many (1-N) relationships inherent in the database structure can indicate the existence of hierarchies. In the schema below, the one-to-many relationships between the tables imply a geographical hierarchy.



Setting up hierarchies

By default, Designer provides a set of default hierarchies for multidimensional analysis. These are the classes and the objects arranged in the order that they appear in the Universe pane. When you create objects, you should organize them hierarchically, to ensure that default hierarchies have a sense to users.
You often need to create customized hierarchies that include objects from different classes. In these cases you need to create a new hierarchy.

Designer represents hierarchies with a folder symbol, and dimensions with a cube symbol. The left pane lists all the classes that contain dimension objects in the active universe. The right pane shows all the customized hierarchies that you create.


Create a new hierarchy by creating a new folder in the Custom Hierarchies pane, then adding the appropriate dimensions in a hierarchical order.
************************************************************************

Using cascading lists of values for hierarchies

You can associate a default or custom hierarchy with lists of values, called Cascading lists of values.
A cascading list of values is a sequence of lists of values associated with a hierarchy in a universe. Prompts are defined for each hierarchy level to return a list of values for the level.
When a report containing a hierarchy associated with a cascading list of values is refreshed, the hierarchy is displayed, and you are prompted to choose a level, and select one or more values from the list of values, before the query is run.
For example; Reservation quarter is associated with a Year hierarchy. When Reservation quarter month is used in a query, the Year hierarchy is displayed, and the user is prompted to select a year for the quarter before running the query.

Creating a hierarchy for a list of values

Drag the objects that you want to place in the hierarchy into the Result Objects box to the right of the existing object, as shown below

:
************************************************************************

************************************************************************

Optimizing universes

We can optimize universes by using the following techniques:
• Using aggregate tables
• Using @Functions
• Using external strategies to customize universe creation
• Using analytic functions

Using aggregate tables

We can use features in Designer to allow us to define the Select statement for an object to run a query against aggregate tables in the database instead of the base tables. You can set conditions so that a query will be run against aggregate tables when it optimizes the query, and if not, then the query will be run against the base tables. This kind of ability for the object to use aggregate tables to optimize a query is called aggregate awareness

What is aggregate awareness?

Aggregate awareness is a term that describes the ability of a universe to make use of aggregate tables in a database which contain pre-calculated data. We can use @Aggregate_Aware function in the Select statement for an object that directs a query to be run against aggregate tables rather than a table containing non aggregated data.

Using aggregate tables speeds up the execution of queries, improving the performance of SQL transactions.

A universe that has one or more objects with alternative definitions based on aggregate tables is said to be “aggregate aware”. These definitions correspond to levels of aggregation. For example, an object called Profit can be aggregated by month, by quarter, or by year. These objects are called aggregate objects.
Queries built from a universe using aggregate objects return information aggregated to the appropriate level at optimal speed.

Setting up aggregate awareness

Build the Objects
1. Identify all the possible definitions (table/column combinations) of the objects.
2. Arrange the objects by level of aggregation.
3. Build the objects using the @Aggregate_Awareness function.

Specify the incompatible objects
1. Build an objects/aggregate tables matrix.
2. For the first aggregate table, decide whether each object is either:
- at the same level of aggregation or higher (compatible)
- at a lower level of aggregation (incompatible)
3. Check only the boxes of objects that are incompatible for that table.
4. Repeat the steps for the remaining aggregate tables.
@Aggregate_Aware
Define any necessary contexts
Define one context per level of aggregation.

Test the results
1. Run several queries.
2. Compare the results.

************************************************************************

Setting access restrictions on a universe


Universe security is managed at two levels:
CMS : From the Central Management Console you can set restrictions that apply to universes stored in a CMS. You can set what universes users can access, and depending on the rights defined for a user group, you can restrict viewing, editing, deleting, and other actions in a universe.

Universe : You can define restrictions for users allowed to use a universe. A restriction can include object access, row access, query and SQL generation controls, and connection controls.

A restriction can define the following types of restrictions to apply to a selected user or group for a universe:

Connection : Universe connection to the data source. You can select an alternative  connection for the universe.

Query controls : Options to limit the size of the result set and query execution time.
SQL generation options Options to control the SQL generated for queries.
Object access You can select objects that are not available to the universe.
Row access You can define a WHERE clause that restricts access to row and limits the result set returned by a query.
Alternative table access You can replace a table referenced in the universe by another table in the database.

YOU MAY ALSO LIKE UNIVERSE DESIGNER INTERVIEW QUESTIONS
************************************************************************

1 comments:

Post a Comment

Note: only a member of this blog may post a comment.