Você está na página 1de 65

INTERVIEW GUIDE SAP Business Objects Universe Development Life Cycle

1. Prepare and Analyze Before you touch the Universe Designer: Well, Most of the designers make this mistake and they jump directly on designer. But this might end up you in future Universe Maintenance problems. Understanding the data source on top which universe to be developed is very important. The Universe designer must understand the tables, type of data stored in those tables, relationship between tables, Business terms and their meaning, any specific formula which will be used to derive the measures. Understand Reporting need and what all tables are required to feed the data to reports. 2. Plan the Universe.: Before you actually start building the Universe plan it well in advance. Identify number of universes required for reporting. Identify measures, dimensions and details objects. Try to document it well and in detail. This would be a Universe blueprint which will help while actually designing the universe. 3. Implementation or Actual Design of Universe: Once you have completed first two stages, start building the universe using Universe designer. The planning document created in planning stage will help you a lot while building the universe. While building the universe its always better to create a Unit testing document for universe and create unit tests fof every object you create in universe. Test each and every object in universe as soon as you create it. This will minimize the possible errors and bugs. Frequently use the universe integrity test tool to identify SQL traps, join path problems. 4. Test once its built: This is one of the very important stage of Universe building process. have very detailed universe testing plan ready for this stage. Test universe against different scenarios, for SQL traps by creating sample reports, test measures, compare the data against manual SQL data. if possible ask few business users to use the universe for creating some sample ad hoc reports. 5. Deploy it: Once all above stages are completed and well documented, Its time to deploy it for actual use for creating reports. You can deploy universe using BIAR tool. if production Business Objects Server is available from development environment you can directly export the universe to production servers. 6. Maintenance: Since nothing is prefect issues are supposed to come frequently after deployment. Change the Universe for possible resolution and re-deploy it. Make sure you document every change you made in universe against the change request.

Universe Related Questions


1) What is a Universe? Universe is a semantic layer that isolates you from the complexities of the database. A universe maps to data in the database in everyday terms that describe your business situation. Universes are made up of classes and objects. For example, the objects in a human resources universe would be Names, Addresses, and Salaries. Classes are logical groupings of objects. Each class has a meaningful name, such as Vacation (for objects pertaining to employee vacations). Each object maps to data in the database and enables you to retrieve data for your reports. 2) How do u export universe to repository? You make a universe available to Web Intelligence users and other designers by exporting a universe to the repository. When you export a universe the universe is: Moved to the selected universe folder on the repository file system and Created in the Central Management System (CMS). Each time the universe is exported to the repository, the universe version in the CMS is updated. Exporting a universe to the repository involves following steps: 1. Select File > Export. The Export Universe dialog box appears. 2. Select a universe folder from the folder drop down list box. (or) Click the Browse button and select a universe folder in the folder browser. 3. If you want to lock the universe, double-click the universe name. 4. Click a group in the Groups list box. This is the user group that uses the exported universe. 5. Click a universe in the Universes list box. The Universes list box shows the names of the active universes. 6. If you want to export other universes that are not open, click the Add Universe button, and then use the browser to select the other universes. 7. Click 3) What is Strategies? A strategy is a script that automatically extracts structural information from a database or flat file. Strategies have two principle roles: Automatic join and cardinality detection (Join strategies) Automatic class, object, and join creation (Objects and Joins strategies) Strategies can be useful if you want to automate the detection and creation of structures in your universe based on the SQL structures in the database. There exits two types of strategies: -Built in strategy is the Default strategy shipped with Designer. Built in strategies cannot be customized. -External strategy: User defined script that contains the same type of information as a

Built in strategy, but customized to optimize information retrieval from a database. 4) What is a derived table? Derived tables are tables that you define in the universe schema. You create objects on them as you do with any other table. A derived table is defined by an SQL query at the universe level that can be used as a logical table in Designer. Derived tables have the following advantages: Reduced amount of data returned to the document for analysis. Reduced maintenance of database summary tables. Derived tables can, in some cases, replace statistical tables that hold results for complex calculations that are incorporated into the universe using aggregate awareness. Derived tables are similar to database views, with the advantage that the SQL for a derived table can include prompts. 5) What is Join Path Problems? A join path is a series of joins that a query can use to access data in the tables linked by the joins. 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: Returns too few rows. Joins form multiple paths between lookup tables. Chasm traps: Returns too many rows. Many to one joins from two fact tables converge on a single lookup table. This type of join convergence can lead to a join path problem called a chasm trap. Fan traps: Returns too many rows. A one to many join links a table which is in turn linked by a one to many join. This type of fanning out of one to many joins can lead to a join path problem called a fan trap. 6) 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. 7) 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. 8) What are Contexts? Contexts are a collection of joins which provide a valid query path for Web Intelligence to generate SQL. Contexts are used in: Solving loops: Solving chasm traps. Assisting in some solutions for fan traps. Assisting in detecting incompatibility for objects using aggregate awareness. 9) How can we detect chasm trap?

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. 10) How Do You Detect a Fan Trap? You cannot automatically detect fan traps. You need to visually examine the direction of the cardinalities displayed in the table schema. If you 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. 11) How does a context resolve a loop? A context resolves a loop by defining a set of joins that specify one specific path through tables in a loop. It ensures that joins are not included from different paths within the same SQL query. 12) How Do You Resolve a chasm Trap? To resolve a chasm trap you 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, you can use the following methods to resolve a chasm trap: Create a context for each fact table. This solution works in all cases. Modify the SQL parameters for the universe so you can generate separate SQL queries for each measure. This solution only works for measure objects. It does not generate separate queries for dimension or detail objects. 13) How Do You Resolve a Fan Trap? There are two ways to solve a fan trap problem. 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. 14) What is a microcube? When you create a measure you must specify the way the aggregate function will be projected onto a report. Returned values for a measure object are aggregated at two levels of the query process: Query level. Data is aggregated using the inferred Select statement. Micro cube Level: A micro cube is a conceptual way to present the data returned by a query before it is projected onto a report. It represents the returned values held in memory by a Business Objects reporting product. The block level is the 2 dimensional report that a user creates with the returned data. A user can choose to use all, or only some of the data held in the microcube to create a report. A user can also do aggregate functions on the returned values in the microcube (local aggregation) to create new values on a report. 15) What are @Functions? @Functions are special functions that provide more flexible methods for specifying the SQL for an object. @Functions are available in the Functions pane of the Edit Select box for an object. @Functions are very flexible. Depending on what you want to achieve, you

can use any @function in either a Select statement, or a Where clause. @Aggregate_Aware: The @Aggregate_Aware function allows an object to take advantage of tables containing summary data in the database. If your database contains summary tables and you are running queries that return aggregate data, it is quicker to run a Select statement on the columns that contain summary data rather than on the columns that contain fact or event data. @Aggregate_Aware(sum(agg_table_1), ... sum(agg_table_n)) @Prompt: You can use the @Prompt function to create an interactive object. You use a @Prompt function in the Where clause for an object. It forces a user to enter a value for a restriction when that object is used in a query. When the user runs the query, a prompt box appears asking for a value to be entered. @Prompts are useful when you want to force a restriction in the inferred SQL but do not want to preset the value of the condition. @Prompt(message,type,[lov],[MONOMULTI],[FREECONSTRAINED]) @Select: You can use the @Select function to re-use the Select statement of another object. When the @Select function is used in the Select statement of an object, it specifies the path of another object in the universe as a parameter of the @Select function, in the form Class_Name\Object_Name. This then acts as a pointer to the Select statement of the referenced object. @Select(Classname\Objectname) Note: When you use @Select and @Where functions, one object now depends on another in the universe. You have created a new object dependency. When one object is deleted, the other object using the @Select or @Where function needs to be manually updated. @Where: You can use the @Where function to re-use the Where clause of another object. When the @Where function is used in the Where clause of an object, it specifies the path of another object in the universe as a parameter of the @Where function, in the form Class_Name\Object_Name. This then acts as a pointer to the Where clause of the referenced object. Using the Where clause creates a dynamic link between two objects. When the Where clause of the original object is modified, the Where clause of the referencing object is automatically updated. 16) What is multidimensional analysis? Multidimensional analysis is the analysis of dimension objects organized in meaningful hierarchies. Multidimensional analysis allows users to observe data from various viewpoints. This enables them to spot trends or exceptions in the data. 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.

In Web Intelligence you can use drill up or down to perform multi dimensional analysis. 17) What are external strategies? An external strategy is an SQL script stored externally to the .UNV file, and structured so that it can be used by Designer to automate object or join creation, and table detection tasks in a universe. External strategies are stored in an external strategy file with the extension STG. External strategy files are in XML format. There is one for each supported RDBMS. 18) 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. These are tables that contain pre-calculated data. You can use a function called @Aggregate_Aware 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. The reliability and usefulness of aggregate awareness in a universe depends on the accuracy of the aggregate tables. They must be refreshed at the same time as all fact tables. 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. @Aggregate_Aware(sum(agg_table_1), ... sum(agg_table_n)) 19) What are incompatible objects? You must now specify the incompatible objects for each aggregate table in the universe. The set of incompatible objects you specify determines which aggregate tables are disregarded during the generation of SQL. With respect to an aggregate table, an object is either compatible or incompatible. The rules for compatibility are as follows: When an object is at the same or higher level of aggregation as the table, it is compatible with the table. When an object is at a lower level of aggregation than the table (or if it is not at all related to the table), it is incompatible with the table. 20) What is a restriction set? A restriction set is a named group of restrictions that apply to a universe. You can apply a restriction set to a selected group or user account for a universe. When users connect to a universe, the objects, rows, query types, and connection that they use in the universe are determined by their applied restriction set. You can create, edit, and delete a restriction set at any time once the universe has been exported to the CMS. You can create multiple restriction sets depending on the query needs of a target user group. 21) What are linked universes? Linked universes are universes that share common components such as parameters, classes, objects, or joins. When you link two universes, one universe has the role of a core universe, the other a derived universe. When changes are made in the core universe,

they are automatically propagated to the derived universes. 22) What is a core universe? The core universe is a universe to which other universes are linked. It contains components that are common to the other universes linking to it. These universes are called derived universes. The core universe represents a re-usable library of components. A core universe can be a kernel or master universe depending on the way the core universe components are used in the derived universes. 23) What are derived universes? A derived universe is a universe that contains a link to a core universe. The link allows the derived universe to share common components of the core universe: If the linked core universe is a kernel universe, then components can be added to the derived universe. If the linked core universe is a master universe, then the derived universe contains all the core universe components. Classes and objects are not added to the derived universe. They can be hidden in the derived universe depending on the user needs of the target audience. 24) How are universes optimized? Query time can often be shortened by optimizing a universe. There are several ways you can optimize a universe: Optimizing the Array Fetch parameter in the Universe Parameters. Allocating a weight to each table. Using shortcut joins. Creating and using aggregate tables in your database. Table weight is a measure of how many rows there are in a table. Lighter tables have less rows than heavier tables. By default BusinessObjects sorts the tables from the lighter to the heavier tables. The order in which tables are sorted at the database level depends on your database. For example, Sybase uses the same order as BusinessObjects, but Oracle uses the opposite order. The SQL will be optimized for most databases, but not for Oracle where the smallest table is put first in the sort order. So, if you are using an Oracle database, you can optimize the SQL by reversing the order that BusinessObjects sorts the tables. To do this you must change a parameter in the relevant PRM file of the database. 25) Different ways to link universes? The following approaches when linking universes: Kernel approach Master approach Component approach Kernel approach: With the kernel approach, one universe contains the core components. These are the components common in all universes. The derived universes that you create from this kernel universe contain these core components as well as their own specific components.

Master approach: The master approach is another way of organizing the common components of linked universes. The master universe holds all possible components. In the universes derived from the master, certain components are hidden depending on their relevance to the target users of the derived universe. The components visible in the derived universes are always a subset of the master universe. There are no new components added specific to the derived universe. Component approach: The component approach involves merging two or more universes into one universe. The Sales universe below was created by merging two universes: Part 1 and Part 26) Explain about detail objects? Dimensions are focus of analysis in a query. A dimension maps to one or more columns, functions in the database that are key to a query. Detail Objects provides descriptive data about a dimension. A detail is always attached to a dimension. It maps to one or more columns or functions in the database that provide detailed information related to a dimension. One cannot drill on details nor link on details when linking multiple data providers. While Customer ID would be a dimension, customer name, address, phone and soon should be details. 27) What is business objects repository? Business Objects Repository: It is a semantic layer which stores the BO Users and their privileges. Repository means set of database tables, Business object store security information e.g user, group, access permission, user type etc. , universe information e.g. objects, classes, table name, column name, relationship etc and document information. Repository contains data accounts with three domains in each one type. You can create the repository anywhere. The security domain has the user security info and other domains address. 28) What are domains? Domain is nothing but logical grouping of system tables. There are three domains usually in a basic setup they are Secure, Universe, Document. In 6.5 Universe are situated in one domain, Reports in one domain and Supervisor. 29) When is the Repository created? In 5i/6i versions repository is created after installing the software, whereas in XI version a repository is created at the time of installation.
30)What is loop in Universe? Explain its problem and different methodologies to resolve it. Loops occur when there are two different paths to accomplish one join. The following structure now includes PRODUCT_PROMOTION_FACTS in the Test Fashionuniverse. If users want to analyze articles versus time, there are now two join paths. Business Objects

does not know which path to take, the one via SHOP_FACTS or the one via PRODUCT_PROMOTION_FACTS. The circular appearance of these four joins is a loop, which can give undesired SQL results. One way of spotting the problem table in the loop is the table which has at one end of the one-to-many relationship. If loops are not resolved and report is run following error might come. Error: Incompatible combination of objects There are different methodologies to resolve loops depending on the type of loop. Contexts Context is simply a list of joins that defines a specific path for query. It breaks loop by defining set of joins that define path through table in a loop. It ensures that joins are not included from different path within the same sql. If object from two different contexts are used in report. BO generates two different SQL. Dis-advantage: When you use a context, you expose the BO end user to the database structure. They are forced to decide which context they want to use to run their query. The role of theuniverse is to shield end users from the database structure, so they do not have to make such decisions. To test the contexts: Create a query which includes objects which are only in one context : BO should be able to get the correct result by determining the context. Create a query which includes objects from both the contexts. BO should generate two queries and then unions it. Create a query which includes object which are common two both the context. BO should prompt for contexts to be used. Designer detects context by identifying table which has only many ends of joins attached. No joins following back from one to many are included. Every Join except shortcut join must exist in at least one context.

Alias Alias breaks the loop by using same table with different name in the query. In above example we can create the alias for calendar_year_lookup table. Original table would join to shop facts and alias will join to promotion fact which would break the loop. However you would need to define the object based on there meaning. e.g. to get the shopping month you can use original table whereas to get the promotion month you need to use alias table. What is CHASM trap and how to resolve it Fan traps and Chasm traps are problems in which are inherent in SQL that are caused by the order in which the elements of SELECT are processed. In SQL a select statement processes SELECT, FROM and WHERE cause first and forms a result table in memory based on the tables specified in where clause and restrictions specified. However this does not cause a problem, but if aggregates are applied then it may cause a problem in particular circumstances. These traps are difficult to identify unless you take a deeper look at the detailed data. These traps return many row than expected. Chasm trap is a common problem in relational database in which a join path returns more data than expected. A chasm trap is a join path between three tables when two many-to-one join path converge on a single table and there is no context in place that separates the converging path. You only get incorrect result in following situations. There is many-to-one-to-many relationship between three table in universe. The query includes objects based on the two many tables There are multiple row returned for single dimension.

For example in above diagram there is no loop, but the flow around three table is many-toone-many. When a query that uses objects Y and Z is run, the inferred SQL includes tables B,C,A that have a many-to-one-many relationship. The chasm traps causes a query to return every possible combinations of one measure with every possible combination of another measure. The results in the values for each objects being multiplied by other. The effect is similar to a Cartesian product but known as CHASM trap. CHASM trap is resolved by executing separate statement for Y and Z and combining the result. Note: the chasm trap is not dependent on object type. Y and Z can be dimension Detecting CHASM trap. Unlike loops chasm traps are not detected automatically by designer. Need to detect manually. Analyze the one to many relationship join paths in schema to detect CHASM trap graphically. Analyze the proposed detected to separate the queries for such join paths. Add additional dimension or detail objects to display more information in the report . If there is chasm trap aggregated value wil be doubled alerting you a chasm trap. Now if you run query with client name and sale revenue or rental revenue. You would see correct result. However you want to see client name with sale and client revenue you would end up getting wrong result. Suppose Sale revenue is 2000 and rental revenue is 4000 for client Kumar. You would see result as Client Name Sale revenue Rental Revenue Kumar 4000 8000 This is because of chasm trap. Internally it is bringing result as micrcocube

Client Name Sale revenue Rental Revenue Kumar 2000 4000 Kumar 2000 4000

And while projecting this data in report BO aggregates it to client name and shows wrong result. Resolving CHASM trap. Modify SQL parameters of the universe and click generate separate queries for measures. However this works with measures and might result in inefficient queries and does not works with dimensions. Create a contexts for each fact. This solution works well and recommended. When you create context and two entities from separte context are used in SQL. BO generates separate queries regardless of measure/dimension. Which solves this trap problem

How to solve Fan Trap in Business Objects Universe


Apart from CHASM trap, fan trap is another kind of trap that may occur in universe causing wrong results in reports. A fan trap can occur in universe when there is a one-to-many join between two tables which again joins to another table having one-to-many join relationship.

However having one-many-many relation in universe does not always cause fan trap. You get fan trap issue only when reporting query have 1. There is a measure object based on middle table Table B 2. Measure object from last table. Table C 3. Table B (Middle table) holds values which is aggregate of values from ,Table C e.g. Consider following example.

It satisfies the first condition of Fan trap i.e 1-N-N relationship between three tables. Now if user creates a query to see how many models were sold by customer Sham and show his sale quantity and sale total. Query will include following object. CustName, SaleTotal, ModelId, Sale Quanity which would certainly give a wrong result as below due to existing fan trap issue.

If you could observe, Sham has sold total two models and its sale total is 100, however in above report it would come as 200 as for each instance of model sale total is repeated in report. So whats really happening in Fan Trap When you run the query with following objects CustName, SaleTotal and SaleQty, measures are correctly aggregated, However when also want to know modelid, you get saletotal for every model which makes result looks inflated.

There is now way can detect Fan Trap automatically, you would need to visually analyze the relationship between table and result in report. How to solve Fan Trap There are three ways to resolve fan trap. 1. Changing the universe parameters to generate different SQL for each measure. This method works only for measure objects. Though it works to solve CHASM trap and Fan trap its not recommended. 1. Use combination of alias and context based on scenario in Fan traps. Scenario 1 1. When three tables are joined by 1-many relationship 2. Report query contains dimension from first table and measure from rest of the two tables.

Solution 1. Create an alias for a middle table which is at many ends. 2. Create a join between new alias table and first table which is at one end. 3. Set the cardinality and set context 4. Change the SELECT of SALE_TOTAL object to refer to alias table.

` Now if you create a create query by implementing above solution you would see two queries for each measure and in turn result gets merged at the report cube level. This should solve the fan trap. Scenario 2 1. When two tables are joined by 1-many relationship 2. Report query contains dimension and measure from first table and measure from last table.

Solution 1. Create an alias for table A 2. Crate join from the alias Ax to table A and set cardinalities 3. Set context B and A

4. Edit object Y so that it refers to columns in the alias Ax instead of table A

How to Avoid Fan Trap While designing a universe you can avoid the Fan trap altogether by creating measure from the table which is at the end table of 1-M-M relationship however it also depends on if you have those aggregate columns present in end table.

Preventing Chasm and Fan Traps!


In this article I would like to talk about Chasm traps and Fan traps. These are problems that we often experience while building universes and reports. When encountering these traps, one may wonder what is going on? How come my sum statements arent adding up correctly? Or why am I missing some rows? A properly designed universe will help avoid these problems. In addition, a good understanding about measures and contexts from report designers will help as well.

Chasm Traps Lets talk about Chasm traps first. In short, a Chasm trap can be imagined as a bottomless pit where some rows may unknowingly fall in and never come back out. So when viewing a report caught in a Chasm trap, one may ask Hey where did Record X go??.

Looking at the eFashion Universe (note that this is a modified version of the efashion universe), we see that there are 2 fact tables that join to 2 of the same dimension tables. If we do not set a context for each of the fact tables in the universe, we will only get 1 query when building a report that involves measures from both fact tables. SELECT Article_lookup.Article_id, Shop_facts.Amount_sold FROM Article_lookup, Shop_facts, product_promotion_facts, Calendar_year_lookup WHERE ( product_promotion_facts.Week_id=Calendar_year_lookup.Week_id ) AND ( Article_lookup.Article_id=Shop_facts.Article_id ) AND (

Article_lookup.Article_id=product_promotion_facts.Article_id ) AND ( Shop_facts.Week_id=Calendar_year_lookup.Week_id )

Since the promotion fact table and shop fact table are joined in the same query, we will only get results that are in both the promotion fact and shop fact table. In reality we want all available products even if they are not on promotion. The products that are not on promotion will fall down the bottomless pit and report designers will be wondering where they have gone.

Fan Traps Fan traps are another common problem and occur when a measure is overstated. So using the same example above, the promotion cost measure is a sum of promotion costs. Lets say for one product we might have 5 entries in the shop fact table and 2 entries in the promotion fact table. Instead of a one-to-many join for the promotion fact table, we now have a many-to-many join which will cause a cartesian product. The promotion cost for that product will be 5 times higher than what its supposed to be since we have 5 entries in the shop fact table.

Prevention To prevent falling into these traps, we must properly set our contexts in the universe. Here we set a context for both the promotion fact and shop fact. As a rule of thumb we should always set contexts for facts.

How to Define Cardinalities in Business Objects Universe


In previous post we have learned how to set up join in BO universe. in this post we will lean what is cardinality and how to define cardinalities in SAP Business Objects Universe.

What is cardinality? Cardinality means a relationship between two tables based on a join. Means how many rows of one table will match with rows in other tables when these tables are joined. Setting up cardinality is very important to resolve loops BO universe. Lets take a practical example of cardinality. A manager can have many employees reporting to him, so the relationship between manager and employee table is 1-N. The cardinality can be any of one type.

One-to-One (1-1) One-to-Many(1-N) Many-to-many (N-N) Many-to-one(N-1)

Setting up cardinality manually or using automatic detection tool Cardinality in universe design is based on a logical algorithm, which uses physical count of record from the table. The automatic detection tool only gives correct cardinality if the database is populated with realistic data. Also, the automatic detection tool fires three queries for every join to set the cardinality. So if you have lots of table in schema, automated cardinality detection tool is not a good idea as it might overload the database with queries. Lets take an example of how cardinality detection tool works.

Manager table has multiple employees reporting to each manager so cardinality of manager and employee table is 1-N. Let understand how automated cardinality detection tools determines the cardinality for this join. 1. One query to find number of rows from manager table 2. One query to find number of rows from employee table 3. One query to find number of rows when these two tables are joined If manager table has 10 rows, Employee table has 20 rows. 1st query will return 10, second query will return 20, and third query will return 20 which would tell that employee table is at many sides and manager table is at 1 side. The output of queries is very important for automated tool and thats why database should contain realistic data. Detect cardinality using automation tool. To detect cardinality of all joins 1. From Tools->Automation Detection->Detect Cardinality 2. If no joins is selected, it asks for if you want to detect cardinality for all joins. 3. Click OK.

To detect cardinality for specific join 1. Right click on specific join 2. Click on detect Cardinality To set cardinality manually: 1. 2. 3. 4. Double click on join for which you want to set cardinality Edit join dialog appears with join expression Check on cardinality check box Select appropriate 1,N radio box ,5.Click ok.

Types of Joins in Business Objects Universe


In Previous post we have covered cardinalities in BO universe. In this post we would be learning types of join in SAP Business Objects Universe and how to set up joins. Following join types are available in Business Objects Universe Designer which can be used to join two tables. Equi-Join Equi-join is join which uses = equal operator to join two tables. Generally equi join is used to join primary table using primary key with foreign tale using foreign key When two tables are used using equi-join it returns all those rows from selected table which matches the equality condition. Outer Join:Outer join links two tables using a join operator. When tables are linked using outer joins the select query returns all the records which matches the join condition and returns all the records from one table even though do not match the join condition. There are two types of outer join Left Outer join: This outer join returns all the records from left table even when they do match the join condition. Right Outer join: This outer join returns all the records from right table even when they do match the join condition.

You should avoid using outer joins as it may cause query to run slower. Outer joins should be placed at the end of a join path otherwise it maybe causes other queries to match a NULL equality condition which might give an error. Theta Join A theta join is a between-type join thats joins tables based on a relationship other than between two columns. It is generally used to demonstrate ranges. A theta join can use any operator other than equality operator. Lets see how to create a theta join 1. 2. 3. 4. 5. 6. From Insert menu click on join to create a new join Select the table1 which should be joined to another table using between operator. Select the table2 Now select the two columns from table two which should represent the range. Set the cardinality to N-1 Click Ok

This theta joins uses between operators to join two tables Shortcut Join A shortcut join is a join which provides shorter way to join two tables by avoiding intermediate tables between join paths of tables. It is very helpful to improve the performance of a query as it reduces number of joins in a query. Shortcut joins are also useful to solve loops in a Universe. Lets take an example of Shortcut join. Shop_facts, Article_lookup and product promotion facts are joined through Article id. Now if we want to see Duration and amount sold the query will have un-necessary join of shop_fact and Article_lookup table as there is no join between shop_facts and product_promotion_fact. However if we join shop_facts and product_promotion_fact, it will create a circular loop which might confuse universe to decide on which join path to take. This can be avoided by using shortcut join instead of using normal join. Shortcut join is represented by dotted line in designer.

Self Restricting Join:Self restricting join is not actually a join but a restriction on a table. Generally it is used to restrict the data returned by a table. To create a self restricting join 1. 2. 3. 4. 5. 6. Click on Insert menu and click on join to create new join Select the table on which you want to create self restricting join. Select the same table name from table 2 combo box also. Select the column which should be used for self-restricting join. Edit the expression and put the restriction condition Click OK.

Cardinality of self restricting join should be set to 1:1 otherwise it gives error while detecting contexts.

Shortcut Join and Its use in Business Objects Universe


In this SAP Business Objects Universe Designer Tutorial we will learn about shortcut joins, How to use shortcut join to generate performance optimized query and use of shortcut join to resolve loops. What is shortcut join?

Shortcut join is a join that joins tables by bypassing middle table that exist in the universe. Generally shortcut joins are used to generate more efficient query by reducing the joins in the query. e.g. Consider following scenario. If we want to see article and its sold amount the query will join article_lookup and shop_facts through product_promotion_fact,

However this is not a efficient query as we can simple join article_lookup ans shop_facts using article_id.

But creating such a join, It will introduce a loop in universe, now you can solve this loop using alias or shortcut join. Lets see how we can solve this using shortcut join. Instead of creating normal join between article_lookup and shop_fact, we will create shortcut join. Now check the loop. You could see that, loop has been resolved. How to create shortcut join 1. 2. 3. 4. Join the tables using common column between tables. Check the shortcut join check box to mark join as shortcut. Shortcut join is represented as dotted line. Click OK.

Understanding context and its use in Business Objects Universe


What is a context? A context is a group of path that defines a specific path for a query. Any objects created on a table column which belong to specific contexts is naturally compatible with all other objects from same contexts. When objects from two or more contexts are used, separate SQL is generated and results are then merged in a micro cube. This makes sure that no incorrect result is generated due to loop or any other join path issue. How to Create Context. There are multiple ways to create context.

1. Automatically using Detect Context 2. Automatically using Loop Detection Tool. 3. Manually For automatic detection of context, cardinalities must be set correctly. How to detect context automatically 1. Click on Detect context icon from the toolbar. 2. Designer will show up the name and joins for the candidate context 3. Review the highlighted joins in respective context if you are ok with it click on add button. 4. once done click OK

How to detect context using Loop Detection Tool 1. Click on tools 2. Click on Automated detection-> detect loops 3. Detection tool will show the loops in universe and it will propose either alias on context to resolve the loop. 4. Click on forward button till it says The loop is not covered by any context

1. Click on candidate context button to detect context. 2. It will show the possible context. Follow the process of Creating context automatically to create context and resolve loop. Creating context manually.

To create context manually 1. 2. 3. 4. 5. Click on Insert->Context A create context box will appear. Enter the name of context and joins in context. Click OK Make sure each join except shortcut join is included in at least one context.

Testing Contexts When context exist in universe. Designer can generate three types of queries.

Ambiguous query Inferred query Incompatible Objects query.

Whenever you create a context you should check context against these three queries two test correctness of context. Ambiguous query If you have multiple contexts in universe, try creating a report which includes objects common to both the context. This situation does not give enough information on which context to use while generating the query and inturn it prompts all available contexts to user to choose from. Once user selects the context, query is generated accordingly.

Make sure Allow selection of multiple context option is selected from SQL tab of universe parameters as user might select multiple context in case of ambiguous query. Incompatible Objects query. If you have used object in a report which belong to multiple context and objects which are unique to each contexts. The tool creates multiple SELECT statements for each context and then result is merged in to present in single table form this is called as Incompatible Objects query. Inferred query Inferred query is query which gives enough information to tool to choose the right context without prompting to user. When you have context in universe make sure you test the contexts by creating all three types of query and observe the behavior of tool in each query type. Resolving Loops using Shortcut Join. Apart from alias and context, shortcut join can also be used to resolve the loops in universe.

Using Derived Table in SAP Business Objects Universe


What are Derived table and its use? Derived table is not a physical in database however its logical table created in Business Objects Universe using SQL. Derived table can be considered like views in database where its structure is defined using SELECT statement. Advantages of Derived Table:

Derived table in Universe lets you create a SQL statement to fetch data using various expressions, joins which is not possible using universe structure. Its lets you put inline views (select statement in FROM clause) which are not possible in Universe normally.

e.g. select agg1_id as id from (select * from Agg_yr_qt_mt_mn_wk_rg_cy_sn_sr_qt_ma)


Derived table can be treated as normal tables and can be joined with actual table in Universe. Its lets you merge data from different table which is not possible using normal in universe using underlying data sources. One can embed prompts in derived table definition. You can use derived table as a lookup when you have multiple fact table separated by contexts. Normally if you want to use measured from different fact table then Business Objects creates two queries one for each measure. Now some time this may result in performance issues. You can avoid this by creating a lookup table for different fact tables using derived tables.

e.g. Suppose you have measure1 in fact1 and measure2 in fact2 and dimension is dim1. Now if you create a query with dim1, measure1, measure2 you will get two different queries. Now instead of this you can create separate derived table which includes dim1, measure1, measure2. Disadvantages if derived table. Since derived table is not an actual table you may face performance issues if underlying SQL query has performance issues. How to Create Derived Tables

From menu mar select Insert->Derived Tables Now write the SELECT statements which to define the structure of derived table. Remember to give Alias to column if you are using any expression in column list. Click on Check Syntax to confirm the definition of derived table

Click OK

Join the newly created derived table to existing table.


If you have context. Include the join in relevant context. Save the Universe. Now you can create object using derived table just like normal tables.

Nested Derived Tables Nested derived table is nothing but a derived table using another derived in definition. It behaves similar to normal derived tables. Nested derived tables are generally using when underlying derived table is complex to build. In that case you can create different small derived tables and then use this derived table in main derived table. Advantage of using nested derived table is the simplicity in derived table creating. Also Business Objects combines the definition in single SQL and its treated as single SQL. Business Objects does not limit number of derived tables but nesting is limited to 20 levels.

You can create a nested derived table by using existing derived table in the from clause.

Using Index Awareness in Business Objects Universe for Performance Optimization


What is Index Awareness? Making universe index aware means telling universe on which columns indexes are created. This helps Business Objects to generate efficient query which uses indexes instead of actual column values which help to speed up the data retrieval. e.g. If we have customer name in the query its useful to end user of report however we can use customer id to retrieve the data by making the use of index awareness which would help to fetch data faster. You can define two types of index awareness in universe. Primary Key: Using primary key index awareness universe can use index value instead of actual value of column. The query will thus use the key value. This helps database to fetch data faster. Foreign Key: Using foreign key index awareness on object universe can filter the data without the need of join in query. Suppose you need to build a report which has filter on dimensions table. In absence of index awareness designer will use actual dimension values which requires join between fact table and dimension table. However if we had foreign key index awareness applied. Designer can apply filter directly in fact table using foreign key index. So this avoids join between dimension table and fact table. However foreign key index awareness requires dimension column values to be unique if same value is represented by different key. Then this may return unwanted result. How it works? Suppose you are building a report on Island Universe Service wide Sale revenue., After you drag drop the object, You will see following query generated.

Now if you see in the query, designer has joined Outlet_Lookup table to put restrictions on the states and using actual values from service table to filter the data. Now Suppose we apply index awareness on service object defining primary keys and foreign keys. The query will look as below.

If you could see in the query, Dimension values have been replaced with actual foreign keys filtering data on fact table. Which is an efficient way to filter data? So query will run faster compared to earlier way. However remember, index awareness might return wrong result if you have dimension value which have two different keys in dimension table. e.g. If we have data as below in service dimension Service_id 212 213 Service Activities Activities

Now if you have index awareness applied on service object and using service as a filter in report. Since Activities have two keys, Business Objects does not know this might put any of the PK as filter returning wrong data in report While defining the index awareness for particular column you can also define the data restriction for the object using WHARE clause in index awareness. Its very useful to restrict the data in index awareness. e.g. for service object I can define service price WHERE clause as below.

How to define index awareness. To define index awareness 1. Right click on Objects to open its properties. 2. Open the Keys Tab 3. Define the primary keys and foreign key to be used in index awareness.

Index awareness when used with proper data analysis can give you significant performance gains.

BO Linked Universe
Linked Universes are universes that share the same components such as parameters, classes, objects and joins. When universes are linked, one plays the role of derived while other the core universe.

Types of Universe
1. Core Universe Universe to which other universes are linked. Represents a reusable library of components. Can be a kernel or master universe depending on the way the core universe components are used in the derived universe. 2. Derived universe Contains a link to the core universe Link allows the universe to share the common components

Universe Approach
1. Kernel Universe Approach If the linked universe is a kernel universe, then components can be added to the derived universe. Any changes made to the kernel universe are automatically reflected in all the derived universes

2. Master Universe Approach If the linked universe is a master universe then the derived universe contains all the components of the core universe. No new classes and objects are not added to the derived universe but are hidden according to the user needs. The components visible in the universe are always a subset of the master universe.

Any changes made to the kernel universe are automatically reflected in all the derived universes

3. Component Universe Approach Merging two or more universe into one universe. Below a new universe is made by merging universe 1 and universe 2.

Advantages of Linked Universe


Reduced development and maintenance time as any changes made to the core universe are propagated to the derived universe. Centralize often used components in core universe, and include them in all the new universes. Facilitate specialization by splitting the responsibility between database administrator for core universe and specialized universe for more functional universe.

Points to remember-Linked Universe


Linked universes share the same data account. Linked universe must be in the same repository. Core universe must be exported and re-imported at least once.

You have the authorization of linking. Only one level linking is allowed. The two universe structures must allow joins to be created between a table in one universe to a table in another universe to avoid Cartesian products. Contexts must be redetected.

Steps to create a Linked universe


We have two universe say Link_SMS and Link_Voice Step 1: Link_SMS universe

Step 2: Link_Voice universe

Step 3: Edit>Links>Add Link..>OK

Step 4: After Linking the Core universe components appear dimmed in the derived universe.

Step 5: Save the derived universe and export both the core and the derived universe to the same repository.

BO List of values A list of values contains the data values associated with an object. These data values can originate from a corporate database, or a flat file such as a text file or Excel file. List of Values is a powerful feature that allows users to select from a pick list when setting conditions in a query. Implementation Steps: 1. 2. 3. 4. Open DESIGNER and Import Universe. Select a class and a specific object by double clicking. Select Properties tab. Give a list name.

5. Click Edit button. 6. Drag the selected object in the condition pane ,give desired operator and type the values manually. 7. Run and Click save and close.

8. Check values by clicking the display button.

9. Save and Export the Universe. When we perform this action a .lov file that gets created in the same folder where the universe is stored and get exported along with the universe in the repository. 10. Open a Web Intelligence Document and select the exported Universe. 11. Select any object along with the object on which .lov file is created in the Query pane. 12. Select the object having the LOV in the query filter pane , select an operator (in list) and try to insert values from a list. 13. We will see that the list of values window will just show the values that was previously selected and saved as a .lov file in the Universe level.

14. Run the query and we will see that only the selected values in the universe level of the object on which .lov file is created appears in the result with corresponding mapping of other objects selected in the query pane.

Using Cascading List of Values (LOVs) Similarly you can create Cascading List of Values. Cascading List of Values is a Hierarchical LOV selection method which allows users to select highest level of list first followed by the next hierarchical level when setting conditions in a query. 1. Open DESIGNER and Import Universe. 2. Select Tools-> List of values -> Create Cascading List of values. 3. Select some objects of same or different classes from the available pane by pressing Ctrl key and add them to the cascading list of values Panel by clicking the right arrow key. The hierarchies / priorities can be changed by the up or down arrow key. Allow the user to give some prompt values by giving a prompt text. 4. Click Generate LOVs. 5. Save and Export the Universe. When we perform this action a .lov file that gets created in the same folder where the universe is stored and get exported along with the universe in the repository. 6. Open a Web Intelligence Document and select the exported Universe. 7. Select any number of objects along with the objects on which the cascading .lov file is created in the Query pane. 8. Select the object having the LOV in the query filter pane , select an operator (in list) and try to insert values from a list. 9. We will see that the objects with a higher hierarchy in the cascading list will first ask for the values from the list and then only object with the lower hierarchy can be populated with available values.

Top 30 Business Objects interview questions (BO) with Answers


1. What are the differences between Personal, Shared and Secured connections?
1. A Personal connection is created by one user and cannot be used by other users. The connection details are stored in PDAC.LSI file. 2. A shared connection can be used by other users through a shared server. The connection details are stored in SDAC.LSI file in the Business Objects installation folder. However one cannot set rights and securities on objects in a shared connection. Neither can a Universe to exported to repository using a shared connection 3. A secured connection overcomes these limitations. Through it rights can be set on objects and documents. Universes can be exported to the central repository only through a secured connection. The connection parameters in this case are saved in the CMS

2. What are custom hierarchies? How can they be created?


Custom Hierarchies are defined in a universe in order to facilitate custom drill down between objects from same or different classes according to user requirement. They can be created from Tools -> Hierarchies in the BO Designer.

3. What is a context in universe? How are they created?


In an universe, a context defines a particular join path between tables or a specific group of joins for a particular query. Any objects created on a table column which belong to specific contexts is naturally compatible with all other objects from same contexts. When objects from two or more contexts are used, separate SQL is generated and results are then merged in a micro cube. This makes sure that no incorrect result is generated due to loop or any other join path issue. Context, give the context name and select the joins that should be present in the context. For a universe contexts should be created in a way that all joins(except shortcut joins) fall in at least one contextContexts may be created using detect contexts feature or manually. They are generally created based on logical calculation and business requirements, hence the detect context method is not very effective. To manually create a context Go to Insert

4. What is a chasm trap? How can it be solved?


In a dimensional schema based universe, we may have one dimension table joined with two fact tables such that both of them are one-to-many joins(F >- D -<F ). In such a scenario, if we drag a measure each from both the fact tables along with dimensions from dimension table, the value of the measures in the fact tables are inflated. This condition is known as chasm trap. A chasm trap can be solved using 2 methods:

In the universe SQL parameters, the option, generate multiple queries for each measure needs to be selected. This will generate separate SQL statement for each measure and give the correct

results. However, this method would not work, if a dimension (for example date) occurs multiple times in the result set due to chasm trap

A better approach is to put the two joins in two different contexts. This will generate two synchronized queries, thus solving the problem.

5. What is a fan trap? How can it be solved?


In a universe structure, we may have 3 tables joined in such a way that, the 1st table has a one to many join with the 2nd table, which in turn has a one to many join with the 3rd table(A -< B -< C). In such a scenario, if a measure is present in the 2nd table and it is dragged along with any dimension from the 3rd table, the value of the measure will be inflated. Such a condition is known as a fan trap. A fan trap is solved by creating an alias of the 2nd table and defining contexts such that, the normal table is joined only with the first table, while the alias is joined with both the 1st and the 3rd table. We would take 2nd tables measure only from the normal table and other dimensions of the 2nd table from the alias table

6. Should we encounter fan traps in a data warehouse scenario? If so, then how?
If a data warehouse is based on the Kimball model, it is a dimensional schema. In a universe built on that DW, for a fan trap to occur in such a schema, we require direct join between two fact tables, which is against the principles of dimensional modeling. On the other hand in a data warehouse based on Inmon model, it is a normalized schema. Though in such a case, universes are generally designed on Data Marts, which are dimensional schemas (where fan traps should not occur). However, if a universe is built on the DW (for the purpose of operational reporting), then a fan trap can occur in that universe

7. What is aggregate awareness? What is its advantage?


Aggregate awareness function is used in scenarios where we have same fact tables in different grains. Using this function we can define only one object for the measures in the fact tables as @aggregate_aware(highest_level,lower level) We also need to define dimensions for associated granularities and define their incompatibilities with the corresponding facts through the aggregate navigation. This is accesses through Tools -> Aggregate Navigation

The advantage is that in a Webi or Deski report when one drags the measure object with the dimension object of a particular granularity, the measure column from the Fact table of the corresponding granularity is selected in the BO default Query. If we did not use aggregate awareness, we would need to define separate objects for each of the fact tables which would be difficult to understand from a users point of view.

8. What are the 2 different approaches of implementing aggregate awareness? Which one is better in terms of performance?
The 2 approaches are as follows: 1. Aggregate tables are built in the database, which contains the dimension fields(not foreign keys) along with the aggregated measures. In the universe they are present as standalone tables, i.e they are not joined with any dimensions. Aggregate aware function is used to define both the dimensions and measures of such tables 2. No aggregate tables are built in the database level. They contain the normal fact table at different granularities. In the universe, aggregate aware is used only to define the measures and aggregate incompatibility is set accordingly The first approach is better in terms of performance, since for the higher levels of aggregation, all the information is obtained for a single table. However, a large scale implementation of this approach in a dimensional schema is difficult. In most BI projects, the second approach is preferred

9. What is a derived table? What is its utility? A derived table is a table created in the universe using an SQL Query from database level. The columns selected in the query become the columns of the derived table. A
derived table can be used for complex calculations, which are difficult to achieve in report level. Such calculations are done in query level itself. Another use of derived table can be to access tables from a different schema through a dblink.

10. How is a derived table different from a view? Which one is a preferred solution?
A derived table is present only in the universe level, while a view is created in data base level. Generally views are preferred since, in its case the onus of calculation remains on the database and it does not load the BO server. However, in cases where developers do not have access to database, derived table is the only solution.

11. How can we access one derived table from another?


We can access one derived table from another using the function @derived_table. The syntax is @derived_table(Derived Table Name)

12. What is Index Awareness? How is it implemented?


Index awareness is a property of the universe, by means of which values in the filter conditions of the queries/data providers built from the universe, are substituted by their corresponding indexes or surrogate keys. Generally the values in the filter condition come from a dimension table (like country etc) and we require a join with the fact table to get this value.

However, if index awareness is implemented, this join is eliminated and the query filter takes the equivalent index value from the fact table itself. To implement index awareness, one needs to identify the dimension fields which are to be used in query filter. In the Edit Properties of the object, we get a Keys tab. In this tab, the source primary key of the table from which the object is derived needs to be defined as primary key, and the database columns for all foreign key relationships with the other tables also need to be defined here. Once this is done for all required dimensions, the universe will become index aware

13. How can we use index awareness in universe prompt?


An extended prompt syntax is available since BO 3.1. It is as follows @Prompt(message,'type,[lov], mono/multi, free/constrained/primary_key, persistent/not_persistent, {'default value':'default key'})

If the indexes for the dimension object is defined in the universe and we define the prompt condition on the object with the clause primary key in place of free or constrained, then the filter condition will convert the prompt values entered to their corresponding indexes and eliminate the join with the dimension table

14. What is a condition object? How is it different from query filter?


A condition object is a filter condition created in the universe level. When this object is dragged in the Query Panel, the filter condition appears in the query SQL. However a query filter exists in the report only. It is added during building a query. This also appears in the query SQL

15. How can we create a mandatory filter condition for every query generated from the universe?
For this to happen, one prerequisite is that the table which contains the object on which the filter condition is applied should be present in each and every context defined in the universe. It can be done in 2 ways: Row level Security:From Tools -> Manage Security Click on Mange Access Restrcitions. Create a new restriction. In the rows tab of the restriction select the table and add the where clause on the desired column. Apply this restriction to all user groups. The limitation of this method is that this filter condition would not be imposed unless we drag an object from the table in the query

panel

Condition Object Property: Create a condition object with the where clause on the desired column of the desired table. In the condition object definition; check on the boxes Use Filter As Mandatory in Query and Apply On Universe and Apply On List of Values. The advantage of this method is that even if no object from the table is dragged in the Query Panel, the filter condition will still appear in the query

16. What is a linked universe? How are they created?


Linked universe are universes which share common component such as objects, classes and joins. When two universes are linked, the source universe is called core universe while the destination is called derived universe. A link can be created by going to Universe Parameters -> Links and using Add Link button. The tables from core appear as faded structures in the derived universes. Their joins are intact, but the contexts need to be defined afresh.

17. What happens when we click the Include button after linking two universes?
After creating a link if the Include button is clicked then the tables from core universe are permanently copied into the derived universe and the link is severed

18. What is an Input control? How is it different from a report filter?


Input Control is a feature in Webi report(starting from XI 3.1 SP2), which allows filtering of data based on a dimension in the report. The Report Filter also does a similar thing. However an input control allows multiselection of values(via Multiselect Input control) which a report filter does not support. Input Control appears in the left panel of the report, whereas Report Filter appears in the top filter pane

19. What are the added features of Interactive mode in Web Intelligence over the normal Java report panel? What are its uses?
When Web Intelligence is in Interactive mode, one can create variables, input controls, add report filters, tables and charts in the view mode itself. This is not possible in the normal Java report panel. The advantage of interactive mode is for power users, who want to do further manipulations on an existing report. Since, it does not allow user to modify queries or existing variables in the report, but allows doing the above mentioned activities on top of the report, it provides a very good means for analysis by the power users without changing the core report in any way.

20. What is the use of the scope of analysis pane in the Query tab of Webi report?
It has 2 uses: The Scope of Analysis pane sets the limit of drill down in the report. Suppose we have a hierarchy defined in 3 levels, but if we set the scope of analysis is set to 2 levels, the report will not be able to drill down to the 3rd level. We can also remove objects showing in the scope of analysis pane and limit the drill down If the analysis level is set to custom, the objects from existing hierarchies can be dragged in the scope of analysis panel to set the scope for drilldown in the report. This has an advantage that we can drill down to more than 3 levels, which is not possible in the normal level setting, since it is up to 3 only

21. There is a requirement that in a numeric column of a webi report we need to display the sum of the above rows. Which function should we use?
In this case we should use the RunningSum() function. The syntax is:

RunningSum([measure];[Row|Col];[(reset_dimensions)])

22. When should we use a query filter and when a report filter?
The choice of query or report filter has to take in consideration the performance of the report. Suppose we have report where are multiple tabs having different objects requiring same or different filter conditions, it is advisable to use a Query Filter. In case where there are multiple tabs having same objects, but with slightly differing filter conditions, it is advisable to fetch the whole data in the query and then apply report filters to the various tabs to get the desired data instead of using separate queries for each tab

23. What is the use of merge Dimensions functionality? How does auto-merge work?
The merge dimensions is used to combine objects having similar properties from multiple data providers which enables using dimensions and measures from both data providers in the same table. It works like a full outer join. Without this we cannot drag dimensions from different data providers in the same table and though the measures can be dragged, their calculation levels may not be uniform. When the Auto Merge Dimensions checkbox in the document properties is checked, the report automatically merges multiple dimensions with same name coming from different data providers

24. What is the difference between Input and Output calculation contexts in a Webi report?
Input context consists of any dimension objects that need to be included directly in the calculation itself. Output context consists of one or more dimension objects that determine the aggregation level at which the calculation is displayed

25. In oracle, we use Instr function to display the position of a character in a string. What is the corresponding BO Web Intelligence report function, that does the same?
The corresponding function is Pos().The syntax is:Pos(string

input_string;

string pattern)

26. Suppose in a report, we have a filter on a block. In the table, we need to display an aggregate of a measure for all data in report. But if we use only the aggregate function, it will be limited by the block filter. How can we achieve that?
We have to use the NoFilter() function. When we put the expression within NoFilter(), it overrides any report filter as well as ranking applied in report level. The syntax is :

NoFilter(expression)
27. Suppose we want to display the total sum of a measure in row level of the report block. What will be the solution?

We have to use context Operator In along with keyword report. This will give the total sum of the measure in row level(and anywhere in the report). The expression will be like:

Sum(Measure In Report)
28. Which selector gives the option of multiple selection in Xcelcius Dashboard? How do we make the multiple selection?
Only List Builder gives the option of multiple selection in Xcelcius. We select multiple rows from the input list and add them to the output list using Add button. The output list gives the selection parameter

29. Which Xcelcius components can we use for linking multiple dashboard flash outputs(swf files)? Can the same components be used for a complete presentation?
We can use Swf Loader as well as Slideshow components for linking multiple dashboards. Swf Loader can open swf files only, while Slideshow can open both swf files and image files. For presentation purposes, we often need text and images. Hence these are embedded in image files are added to a Slideshow along with dashboard outputs. Moreover Swf Loader can only open swf through Push Button or selector components, whereas Slideshow has a feature of automatic slide transition, which loads the image and swf files in the specified sequence. Hence, Slideshow is the only feasible option for a complete presentation.

30. What are the different ways in which an Xcelcius dashboard can access data from a BO universe?
There are 3 ways in which Xcelcius can access data from the universe:

Query as a Web Service: Using Query as a Web Service tool, we can create a queries from the universe along with filter condition. The QAAWS qury panel is similar to the WebIntelligence query panel. In Xcelcius dashboard, we can create a QAAWS connection that would point to a particular Query and import the data into the excel data sheet of the xlf Business Intelligence Web Service: In this method, we can use the output of a report directly in the Xcelcius dashboard. Using Webi Rich Client, we export the report to repository, then select a block from the report, right click and select Publish as Web Service option. However BIWS does not have a connection of its own. We access this BIWS through a QAAWS connection only. LiveOffice: LiveOffice is an additional component that needs to be installed. This creates a sort of plugin for all MS Office applications, though which they can access data from Web Intelligence reports. I MS Excel, we can launch the Live Office Insert Wizard by Insert -> Web Intelligence Content. We can use this wizard to add selective content from a webi report. In the Xcelcius dashboard, a Live Office connection is created andwe access this Live Office excel sheet though thi connection

BO faqs:
what is conformed dimension? R u used?
Conformed dimension is a dimension that has a single meaning or content through data warehouse. We can use it across the fact tables conformed dimension table is once created that is not changed occasionally.
HOW TO EXPLAIN SHORT CUT JOIN AND THETA JOIN?

shortcut join: it is direct join between source and destination Example: country-->region--.city we can connect country and city using shortcut join Theta join : non equality condition between two tables WHERE DO YOU USE GLOBAL FILTERS ,EXPLAIN WITH EXAMPLE? Global filters, as name itself reflects the concept. It is a defined filter applied on entire report not to the document (A document can be of multiple reports). How to link two different universes ? Universes can be linked using Universe Parameters. You can link universes with any of the following approaches: 1)Kernel approach 2)Master approach 3)Component approach With the Kernel approach, one universe contains the core components. The derived universes that you create from this kernel universe contain these core components as well as their own specific components. Any changes you make to the kernel universe are automatically reflected in the core components of all the derived universes. The Master approach is another way of organizing the common components of linked universes. The master universe holds all possible components. In the universes derived from the master, certain components are hidden depending on their relevance to the target users of the derived universe. The components visible in the derived universes are always a subset of the master universe. There are no new components added specific to the derived universe. Any changes you make to the master universe

are automatically reflected in the core components of all the derived universes.The Component approach is merging two or more universes into one universe. How to connect one to one report? You link reports in the repository at the universe level by using a function called the OpenDocument function in the definition of an object .The OpenDocument function can also be inserted into a Web Intelligence report at the report level .OpenDocument is a function that enables you to open a Web Intelligence or Business Objects document using a URL. You can use it to create a hyperlink to a document from a report or an HTML page. How to test the reports if there are multiple sql statements?i,e if there is 1 single sql statement we can copy it and paste it in TOAD or some other tools to test it but if we have multiple sql statements in a single query? Should be clear what meant by multiple SQL staements ? .We can take the multiple SQL stmts and paste them to TOAD and test. When WEBI generate multiple SQL stmts(Combined Queries),those should be either Union, intersect etc...so the same will be applicable for TOAD also... what is tuning of business reports ? In a generic value report tuning is to give a final touch to the report before putting it to production server. Are you asking Business Objects reports tuning, if "Yes" then, the answer is - By reducing the number of variables - By reducing the number of Data providers - By pulling the exact amount of the data from the database - By reducing the complex variables - Do not check the "Refresh on open " report. These are the some of the possible ways of tuning the Reports

what is fact less fact table? where you have used it in your project?
Factless Fact Table contains nothing but dimensional keys. It is used to support negative analysis report. For example a Store that did not sell a product for a given period.

In Schema level we can say as when we consider these as Count of Occurrences/even that does not involved or getting aggregated at the fact table means we call these fact(has no measure but with events/occurrence) called as Fact less Fact table. for eg.: No of Accident for a Months for eg: No of Policy has been closed this months. Generally we using the fact less fact when we want events that happen only at information level but not included in the calculations level.just an information about an event that happen over a period. According to Kimball: "Factless fact table are the preferred method of recording the events in the DW where there is no natural numeric measurement associated with the event. Factless fact tables also are used to gurantee coverage". There are two kinds of fact tables which don't have any facts at all. They are called FACTLESS FACT TABLES. As per Kimball's law every M-M relationship is a fact table. They may consists of nothing but keys. First type of factless fact table records an event i.e. Attendence of the student. Many event tracking tables in the dimensional DWH turns out to be factless table. Second type of factless fact table is called coverage table. Coverage tables are frequently needed in (Dimensional DWH) when the primary fact table is sparse. A fact which has possibly NO measure but can be seen as count of occurences or events is called factless fact. example: no. of accidents per month on roads. If i elaborate more no. of accidents in a month will give you a basic count however you will be not able to make a business intelligence out of it. Hence this can't be seen as measure. It's just a statistics. Now if you say what is measure in this case? then you need to track one query more "at what speed accidents took place?".Here SPEED is a measurable fact ...e.g 70km/hr 140km/hr ...etc. Based on speed factor you can have BI and each event count of accidents is assigned to each speed measure. hence BI says by controlling speed measure you can control accidents. The count of accidents is just a statistics/information.....you cannot control it directly. It is a handy information which helps you in your business reporting.

Você também pode gostar