Professional Documents
Culture Documents
BO Universe - v1.0
BO Universe - v1.0
PrepareMe
In this section, we will cover 3 topics Purpose Use Challenges
Purpose
This course describes the overview of Business Objects Designer. It covers the key roles and also how to create the Universe. At the end of this course, one will be able to:
Understand the roles and responsibilities of a universe designer Identify the core concepts and terminology used in Designer Create, design, optimize, and maintain Business Objects universes
Use
As the universe designer, you use Designer to create objects that represent database structures, for example columns and database functions, that users need to access and query, to get the information necessary to meet their business requirements. The role of a universe is to provide an easy to use and understand interface for non technical Web Intelligence users to run queries against a database to create reports and perform data analysis.
Challenges
Universes are created to meet a user need for data. The universe designer must have the skills to conduct user needs analyses to create classes and objects that are relevant to the user vocabulary, and to develop universes that meet the needs of the user community. These needs include report creation and query results that are suitable for analysis. Universe designer needs to have a good working knowledge of the company's database management system (DBMS), how the databases are deployed, the logical database structure, and the type of data stored in company databases. A working knowledge of SQL is necessary.
PrepareMe TellMe
3
Agenda
BO Introduction - Types of Schemas Creating a universe with Quick wizard - Five Steps Creating Universe Hands on Exercise Classes and Objects Joins Loops @functions Derived Tables Chasm Trap Fan Trap SAP OLAP Universe
Business Objects
Business Objects Enterprise is a business intelligence (BI) platform that powers the management and secure deployment of specialized end-user tools for reporting, query and analysis, performance management, and analytic applications on a proven and scalable. Components of Business Object.
CMS (Central Management Server) CMC (Central Management Console) Designer (Universe creation) Web Intelligence Voyager Crystal Reports Live Office Xcelsius
Designer component of BO
Designer is the component used by the universe designer to create and maintain the universe. Universe is the semantic layer that isolates end users from the technical issues of the database structure. Designer is the place where the business object designers will create the universe to interact with databases or any files. As designer, you are responsible for creating universes, the metadata layer of BUSINESS OBJECTS. This metadata layer is based on the paradigm of universes, classes, and objects. The resource who uses the designer should be good in the data modeling concepts and also should have the domain knowledge which helps the resource to see the data in the business view.
Designer Window
Here we can find all the selected tables and derived values as classes, objects and measures. ExampleClasses- Scott Dept, Scott Emp. Objects- deptno, dname, loc, empno, ename, etc.. Measures- Sum of Sal. Note- In the designer we can also create our own classes and objects.
Definitions - Classes
A class is a container of objects. A class is the equivalent of a folder in the Windows environment or you can consider a table as the class. You create classes to house objects that have a common purpose in the universe. Classes is the logical grouping objects within a universe. In general, the name of the class reflects a business concepts that conveys the category or type of objects. Ex( Customer, Finance, Sales, Marketing, etc.,)
Connections
Three modes of connections: Shared connections
Allows access to data for all Business Objects users. Shared connections can be useful in a universe testing environment
Personal connections
Restricts access to data to the universe creator and the computer on which it was created. You do not use personal connections to distribute universes. You could use personal connections in the following situations: To access personal data on a local machine To access specific database accounts to test an SQL sample through the Free-hand SQL option in Business Objects
Connections
Secured connections
Centralizes and controls access to data. It is the safest type of connection, and should used be to protect access to sensitive data. You can create secured connections with Designer or Supervisor . Connections are stored in the security domain of the repository. These can be shared with designers and supervisors with the appropriate privileges. You must use secured connections if you want to distribute universes through the Business Objects repository If we want to distribute reports over the net using repository etc then the connection should be secured connection
Connections
Inserting Objects
To insert object, click objects in the insert menu. Name the object, specify the data type and in the Select column click the arrow and select the column from the tables. The object can be any columns or derived columns.
Hands on..
Lets Start Doing Hands on Exercise in BO using Universe
Conditions
Used to create the pre defined filters which we can use to get the data required Its use full for end users to get data based on certain criteria like get all returned customers, grade A, grade B, grade C customers etc
Object keys allow Designer to generate more efficient SQL by filtering on primary key values and eliminating unnecessary joins.
Exercise
We have following three tables (Customer, age_group and sales). Write a query which gives us age_group_wise amount and Quantity sold. Customer
Cust_id Cust_name Age
Age_group
Age_group_id Age_group_desc Min_age Max_age Sales_id Cust_id Sales_date Qty Amount
Sales
Joins in BO
Each table in a schema contains data in one or more columns that correspond to user requirements. Linking all tables in the schema with joins ensures that you restrict the number of ways that data from columns in different tables can be combined in a query. Joins limit column combinations between tables to matching or common columns. This prevents result data being returned that contains information from columns that have no sense being matched. Manual join defined in the Where clause for an object, are created at run time, so are not considered by Designer for integrity checks and context detection.
Types of Joins
EQUI-Joins
Link tables based on the equality between the values in the column of one table and the values in the column of another. Because the same column is present in both tables, the join synchronizes the two tables. You can also create complex equi-joins, where one join links multiple columns between two tables. Ex- Table1.column_a = Table2.column_a
Theta Joins
Link tables based on a relationship other than equality between two columns. A theta join could use any operator other than the "equal operator. Ex- to find the customers age between the minimum and the maximum (customer.age betweeen age_group.age_min and age_group.age_max )
Types of Joins
Outer Joins
- Link two tables, one of which has rows that do not match those in the common column of the other table. - You define an outer join by specifying which table is the outer table in the original equijoin. The outer table contains the column for which you want to return all values, even if they are unmatched.
Shortcut Joins
- Join providing an alternative path between two tables, bypassing intermediate tables,
Exercise
Write a query against the following set of tables. - Statewise, citywise, customerwise sales amount - Satewise, Citywise, sales amount - Citywise sales amount
City --------City_id City_nm State_id Customer ----------Cust_id Cust_nm cust_phone City_id Sales --------Sales_id Cust_id Qty Amount City_id
Join Problems
Loop (Example1)
Loops
Loops
It also happens in the following model. Say we have country table which referred by suppliers and customers table Here when we design our schema, there will be one to many relationship between country and supplier and there will be one to Remove a join many relationship between the country and customer. In this case when we join supplier, customer and country we may One way of resolving the Loop dont have the supplier and customer in loose some records if we the same country. In this case we loose records. So when we you are not getting the expected number of rows, then you can check on the loops. More than one path through the SQL Problem: Business Objects will not know what path to choose
sales
Invoice_line
region
city
customer
sales
Invoice_line
Context
Contexts are a collection of joins which provide a valid query path for BusinessObjects and WebIntelligence to generate SQL.
@ Functions
These functions are used in BO to generate SQL. This provides flexibility to change the select / where clause in the SQL. @aggregate_aware
- This is nothing but Query rewrite mechanism of Oracle database.
@Prompt
-
Syntax: @Prompt(message,type,[lov],[MONO|MULTI],[FREE|CONSTRAINED]) In the where clause you type the following function country = @Prompt('Enter Country','A','Customers\Country','MONO','FREE')
- Usually
@Where
we use this in the condition. You can restrict the result based on Geo
@ Functions
@Select
We use @select in the formula or derived dimension / detail objects. When we have cost and price as measures, then we create margin measure using @Select function.
@Variable
You can use the variable in the where clause. Usage - @variable(country_name)
@Script
- This is involving the VBA script. If you are dealing with generation of complex where clause you use the SCRIPT variable. If I find any code I will pass it on to you. VBA macros can run only in Windows environment.
List Of Values
Its the data which is associated to an object
We can associate data either from RDBMS or from a flat file By default every object gets associated to an LOV, when you choose to display it runs Select DISTINCT query and populates the results. List of values based on the external file is fixed.
Hierarchies
Are used to perform multidimensional analysis. By default the class objects become the default hierarchy for the analysis. If you want to create customized hierarchies from different classes then create the custom hierarchy. While we use the drill or slice and dice in BO or Webi you can see these hierarchies so that you can use it for analysis.
Aggregate Awareness
@Aggregate_awareness
This is equivalent to Query re write option in Oracle database. Three steps Identify the summary tables
Higher aggregate tables (YYYY wise) Medium aggregate table (QQ wise) Low level aggregate table ( Month wise) Detail table (Day wise)
Use Aggregate awareness functions in all the objects. Set the properties in Aggregate Navigation.
Derived Tables in BO
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:
You can include complex calculations and functions in a derived table. These operations are performed before the result set is returned to a document, which saves time and reduces the need for complex analysis of large amounts of data at the report level. Derived tables can, in some cases, replace statistical tables that hold results for complex calculations that are incorporated into the universe using aggregate awareness. These aggregate tables are costly to maintain and refresh frequently. Derived tables can return the same data and provide real time data analysis. Derived tables are similar to database views, with the advantage that the SQL for a derived table can include Business Objects prompts.
Fan Traps
What is a Fan Trap?
A fan trap occurs when joins fan out over multiple one -< many relationships in a row. For example: A -< B -< C This is one of the reasons why it is important to set cardinalities in your universe design. If you dont set the cardinalities it becomes more difficult to identify fan traps (and other design issues).
Its a less common problem when we compared to Loops and Chasm traps. Consecutive two One to many relations at a stretch may cause this problem. (especially if you have measure in the middle table)
will use two hypothetical tables for this example. First is a table used to store order information, and the second is used to store details about the items for the order. - create table orders (order_id number(8) not null ,order_date date not null ,order_budget decimal(11,2) not null); - create table order_lines (order_line_id number(11) not null ,order_id number(8) not null ,item_id number(11) not null ,order_qty number(5) not null); - There will be an order number object built from the orders.order_id column. I will build a Total Order Budget measure object from the orders.order_budget column. And I will also create a measure object called Total Order Quantity using the formula sum(order_lines.qty). This gives me one dimension object and two basic measure objects.
As a designer you cannot control which objects a user selects to use on a query. You are not building a specific query, you are building a framework for any query.
If I write this SQL query. select orders.order_id, sum(orders.order_budget) from orders group by order_id Output:
The issue is that the line item total (sum) is correct, but the header total budget (also a sum) is way too high. If you look back at the raw data shown earlier, you might notice that the budget amount has been multiplied by the number of line items in the second table. This is a fan trap in action. The number of lines in the detail table has an impact on the measures from the header table.
Chasm Trap
It happens in the D/W environment where we have multiple star schemas When you have a confirmed dimension where we share the same dimension key to more than one fact, we get more records than we expected. Consider we have product_dim, sales_fact (sales_perspective) and order_fact (supplier perspective), we get this chasm trap. We create contexts in order to solve the issue. Context being product sales in terms of customer, product orders in terms of Supplier.
payroll Location.loc_id = timesheet.loc_id Project.proj_id = timesheet.proj_id Emp.emp_id = timesheet.emp_id Date.date_id = timesheet.date_id Emp.emp_id = payroll.emp_id Date.date_id = payroll.date_id Dept.detp_id = payroll.dept_id
timesheet
payroll
Check Integrity
What does Check Integrity verify?
- Before examining the elements of the universe against those of the database, the function checks whether the connection to the database is valid. If the connection is not valid, the function stops and returns an error message. -Check Integrity can detect the following types of errors: Invalid
Check Integrity
Note: The option Check Cardinalities can be slow to run with large amounts of data. If there is ambiguous or missing data, results can also be inaccurate. If your database is large, and may have incomplete data entries, then you should not select the option Check Cardinalities.
Universe Export
A universe must have a secured connection before it can be exported. If you created a universe with a personal or shared connection, you must create a new connection with a secured type and assign it to the universe. To export a universe to the repository.
- Select File > Export. The Export Universe dialog box appears. - Select a universe folder from the Domain drop down list box. If the universe is in another folder on the file system, Browse to the folder. If you want to lock the universe, double-click the universe name. - A locked universe appears with a padlock symbol. To unlock a universe, double-click it again. - Click a group in the Groups list box. This is the user group that uses the exported universe.
Universe Export
- Click a universe in the Universes list box. The Universes list box shows the names of the active universes. - 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. - Click OK. At the end of the export, DESIGNER displays a message. Click OK.
Thank you