BO Designer

C3: Protected

About the Author
Created By: Credential Information: Version and Date: Kousalya Devi Selvaraj (112325) Around 4 years of IT experience and over 2 years of experience in Business Objects BO/PPT/0309/1.0

© 2007, Cognizant Technology Solutions



Icons Used
Hands on Exercise



Coding Standards

Test Your Understanding



A Welcome Break


© 2007, Cognizant Technology Solutions



Cognizant Technology Solutions Confidential 4 .BO Designer: Overview  Introduction:    Designer is a BO component that is used to build universes. A universe is a semantic layer between database and end users. © 2007. The role of a universe is to provide an easy to use and understand interface for non technical BusinessObjects and WebIntelligence users to run queries against a database to create reports and perform data analysis.

you will be able to:         Define connection to universe Design universe Insert tables and joins Resolve loops Create classes and objects Check universe integrity Manage universe Overview of Security © 2007.BO Designer: Objective  Objective: After completing this chapter. Cognizant Technology Solutions Confidential 5 .

For example. Cognizant Technology Solutions Confidential 6 . or group of users. a universe can relate to a department in a company such as marketing or accounting.  Consists of a set of objects.  Is a business-oriented mapping of the data structure found in databases: tables. columns. system.Universe  A universe: Is a semantic layer between database and end users.  Can also pertain to a section within a department or just about any set of organized procedures such as a payroll or inventory system. grouped by classes. joins.  Can represent any specific application.  © 2007. and so on.

that users use to create queries to run against database tables. © 2007.Role of a Universe  The following diagram shows the role of objects as the mapping layer between a database schema and the Query panel in BusinessObjects or the Query work area in WebIntelligence. Cognizant Technology Solutions Confidential 7 .

Human Resources Employee Salary Benefits. in the form of business vocabulary.. Each universe is a partial representation of a database..The Semantic Layer  The semantic layer may consist of one or more separate universes.. Cognizant Technology Solutions Confidential 8 . © 2007.. Sales/Marketing Sales Revenue Sales Executive Customer Product Price Order Date .

The Universe Development Process Prepare Know the data source HR on Sybase Financials on Oracle Analyze Identify the needs of the end user population Plan Design the universe(s) © 2007. Cognizant Technology Solutions Confidential 9 .

The Universe Development Process (Contd. Cognizant Technology Solutions Confidential 10 .) Implement Create the universe(s) Test Using a test team (including end users) Deploy Distribute the universe to end users Evolve Adapt and extend universe over time © 2007.

The Universe Development Process (Contd. Cognizant Technology Solutions Confidential 11 .) 80 Involve users in all steps of the project 20 © 2007.

Cognizant Technology Solutions Confidential 12 .Creating a Universe Define the Parameters Resolve the Loops Insert Tables Create Classes and Objects Make the Joins Set up Hierarchies © 2007.

Creating a Universe (Contd. Cognizant Technology Solutions Confidential 13 .)  For creating a new universe:  Select File > New © 2007.

Cognizant Technology Solutions Confidential 14 .Universe Connection  Definition:    A connection is a link from the universe to the target database The link is achieved using middleware (for example ODBC) An existing connection may be used or a new connection created for a universe There are three different types of BO connection  © 2007.

Types of Connection  Personal: Can only be used on the client  Shared: Can be used by more than one user to send queries to the target database from a shared server  Secured: This connection is used when you wish to distribute the completed universe to the user population via the repository © 2007. Cognizant Technology Solutions Confidential 15 .

 Controls Tab: Manages access and control of resources. and connection to the database. description.  Strategies Tab: Internal or personal wizards to make creating a universe easier.  Links Tab: Enables dynamic links with other universes.  SQL Tab: Queries and SQL parameters. Cognizant Technology Solutions Confidential 16 .Setting up Universe Parameters  Definition Tab: Name.  Summary Tab: Author and statistics about the universe. © 2007.

)  Controls tab:  These allow you to limit the size of results and restrict the time allowed for executing queries.Setting up Universe Parameters (Contd. Cognizant Technology Solutions Confidential 17 .  © 2007. The Supervisor can change these parameters for specific groups or users.

© 2007.)  SQL tab:  SQL parameters are used to define the limits of the SQL that may be generated by the universe.  The Supervisor can change these parameters for specific groups and users. Cognizant Technology Solutions Confidential 18 .Setting up Universe Parameters (Contd.

Inserting Tables  Use the Table Browser:  Double-click on the background of the Structure   Click on Choose Insert -> Tables from the menu  The Table Browser displays all the tables and views of the database. Cognizant Technology Solutions Confidential 19 . © 2007.  You can select multiple tables using the Shift key or Ctrl key.

Cognizant Technology Solutions Confidential 20 .Classes and Objects  BO presents the data in three hierarchical collections or categories:    Universe Classes Objects © 2007.

© 2007.Class  Universe:  A BO universe is a collection of classes that is intended for a particular group of users. Cognizant Technology Solutions Confidential 21 . The name of a class should indicate the category of the objects that it contains. A class can be divided hierarchically into subclasses. It represents a category of objects.  Class:  A class is a logical grouping of objects within a universe.

objects used in a universe used by a product manager could be Product. The name of an object should be drawn from the business vocabulary of the targeted user group. Life Cycle.Object  Object:  An object is a named component that maps to data or a derivation of data in the database. © 2007. or Release Date. A universe used by a financial analyst could contain objects such as Profit Margin and Return on Investment. For example. Cognizant Technology Solutions Confidential 22 .

For example Sales Revenue. Dimensions typically relate to a hierarchy such as geography. For example Last Name and City_Id. but are not the focus for analysis. or time. For example Phone Number.  Measure:  Convey numeric information which is used to quantify dimension object. © 2007. product. Cognizant Technology Solutions Confidential 23 .  Detail:  Provide a description of a dimension.Object Types  Dimension:  Parameters for analysis.

© 2007. Cognizant Technology Solutions Confidential 24 .Using List Of Values  Allows you to view and modify the data values in the list of values assigned to the selected object.  You can view the list of values in a tabular form or in a hierarchical form. a Dbase file or a spreadsheet file to be used for the selected object's list of values.  The options to manage lists of values are:      Edit Display Purge Refresh Properties  You can specify a text file.

Cognizant Technology Solutions Confidential 25 25 .) © 2007.Using List Of Values (Contd.

Creating Joins  What do joins achieve in SQL?  The SQL will give a cartesian product which gives an incorrect result © 2007. Cognizant Technology Solutions Confidential 26 .

)  What is Join?   A join is a condition that restricts the result set of a query There are several different kinds of join:  Equi-join (otherwise known as a standard or inner join)  Outer join  Theta join  Shortcut Joins  Self join © 2007. Cognizant Technology Solutions Confidential 27 .Creating Joins (Contd.

) Equi . Cognizant Technology Solutions Confidential 28 .Join © 2007.Creating Joins (Contd.

click on the join line and press Delete © 2007.)  Creating a Join in Designer:  A join can be entered manually using two methods:  Graphically  With the menu option Insert.Creating Joins (Contd. Joins and the Edit Join box  To delete a join. Cognizant Technology Solutions Confidential 29 .

 You can choose from one of three specific strategies for join detection:   Smart matching column names (no key info. Cognizant Technology Solutions Confidential 30 .)  Automatic join detection: The Strategy for automatic detection of joins is based on common column names between tables.Creating Joins (Contd.)  All matching column names  All matching numeric column names © 2007.

Creating Joins (Contd. Cognizant Technology Solutions Confidential 31 .)  Theta join:  A theta join contains an expression that is based on something other than equality: Theta Join Theta Join Result Set: © 2007.

Creating Joins (Contd. Cognizant Technology Solutions Confidential 32 .)  Creating theta join:  A theta join is created by converting an existing equi-join. © 2007.

leading to the same result.Creating Joins (Contd. regardless of direction. bypassing intermediate tables.  © 2007.)  Shortcut joins: Join providing an alternative path between two tables.  Optimizes query time by cutting long join paths as short as possible. Cognizant Technology Solutions Confidential 33 .

Cognizant Technology Solutions Confidential 34 . © 2007.)  Self restricting join:  This is not really a join at all.Creating Joins (Contd. It is a method used to set a restriction on a table in the universe structure.

)  Adding cardinalities:  Manually using the Edit Join dialog box  Automatically using (but can take a long time) © 2007.Creating Joins (Contd. Cognizant Technology Solutions Confidential 35 .

)  Join problems: The three major join problems that could be encountered in the schema are:    Loops (resolved using alias/contexts) Chasm traps (resolved using contexts) Fan traps (resolved using alias/contexts) © 2007. Cognizant Technology Solutions Confidential 36 .Creating Joins (Contd.

)  Loops:  A loop is a set of joins that defines a closed path through a set of tables in a schema.Creating Joins (Contd. Loops occur when joins form multiple paths between lookup tables. Cognizant Technology Solutions Confidential 37 . An example of a loop is shown below: © 2007.

invoice information for each service and the country where the resort is situated. © 2007. services for each service line. region and country where the customer lives. Cognizant Technology Solutions Confidential 38 . Customer  These two sets of information are linked in a common join path forming a loop. or the country in which a customer lives.)  The schema contains two linked sets of information: For each Resort The following information is linked Available service lines. The city.Creating Joins (Contd. the sales for the customer and the invoice information for each sale. The lookup table Country can be the country where a resort is situated.

© 2007. and there is no context in place that separates the converging join paths.Creating Joins (Contd. Cognizant Technology Solutions Confidential 39 .)  Chasm Trap  A chasm trap is a type of join path between three tables when two "many-to-one joins converge on a single table.

© 2007. Cognizant Technology Solutions Confidential 40 .)  Fan trap:  A fan trap is a type of join path between three tables when a one-to-many join links a table which is in turn linked by another one-to-many join. The fanning out effect of one-tomany joins can cause incorrect results to be returned when a query includes objects based on both tables.Creating Joins (Contd.

Creating Joins (Contd. Cognizant Technology Solutions Confidential 41 .)  Always check integrity after defining joins: © 2007.

The data in the alias table is exactly the same as the original table. The alias is identical to the base table with a different name. Cognizant Technology Solutions Confidential 42 .Resolving Loops  Loops can be resolved using:   Alias Context  Alias:  An alias breaks a loop by using the same table twice in the same query for different purpose. referring to two tables and two sets of joins and the loop is broken. © 2007. but the different table name generates a modified SQL.

Cognizant Technology Solutions Confidential 43 .  Country_Region is joined to the Region table.  The schema now appears as shown below: © 2007.Resolving Loops: Alias  The two one ended joins are now separated as follows:  Country keeps a join to the Resort table.

 © 2007. You often use contexts in the schema that contain multiple fact tables ( multiple stars ) that share lookup tables. It ensures that joins are not included from different paths within the same SQL query.Resolving Loops: Context  Context:  A context resolves a loop by defining a set of joins that specifies one specific path through tables in a loop. Cognizant Technology Solutions Confidential 44 .

Cognizant Technology Solutions Confidential 45 . you can follow two different paths from the Customer table to the Service table: For this path Reservations and Reservation_Line Sales and Invoice_Line Designer detects these contexts Reservation_Line Sales_Line © 2007.)  In the example.Resolving Loops: Context (Contd.

) The Reservation_Line context appears below: © 2007.Resolving Loops: Context (Contd. Cognizant Technology Solutions Confidential 46 .

Cognizant Technology Solutions Confidential 47 . Users can then run either Reservation queries or Sales queries.Resolving Loops: Context (Contd. depending on the objects they select.) The Sales_Line context appears below:  You then create different sets of objects from the tables in the different contexts. © 2007.

which may group dimensions such as Country.  A hierarchy is an ordered series of related dimensions.Hierarchies  Object hierarchies can be created to perform multidimensional analysis.  Multidimensional analysis allows users to observe data from various viewpoints. This enables them to spot trends or exceptions in the data. An example of a hierarchy is Geography. Cognizant Technology Solutions Confidential 48 .  Multidimensional analysis is the analysis of dimension objects organized in meaningful hierarchies. © 2007. Region. and City.

 The available @functions are:  @Aggregate Aware  @Prompt  @Script  @Select  @Variable  @Where © 2007.  @Functions specific to BO products. for example number. and date functions. character.  Database functions. Cognizant Technology Solutions Confidential 49 .Functions  SQL editor is used to define the Select statement or a Where clause for an object. Functions can be used in an object definition.

© 2007. Restriction defined in special condition objects that users can choose to use or not use in a query. Optional  A condition object is a predefined Where clause that can be inserted into the Select statement inferred by objects in the Query pane. It cannot be accessed by users and so cannot be overridden in Web Intelligence. Cognizant Technology Solutions Confidential 50 . A condition object is a predefined Where clause that can be inserted into the Select statement inferred by objects in the Query pane.  Two types of restrictions can be defined in a universe: Restriction type Forced Description Restriction defined in the Where clause for an object.Conditions  A restriction is a condition in SQL that sets criteria to limit the data returned by a query.

)  Using condition objects has the following advantages: Useful for complex or frequently used conditions  Gives users the choice of applying the condition  No need for multiple objects  Condition objects do not change the view of the classes and objects in the universe pane  © 2007.Conditions (Contd. Cognizant Technology Solutions Confidential 51 .

 Aggregate Tables: Contains Pre-calculated data ‡ Speeds up the execution of queries. Cognizant Technology Solutions Confidential 52 . ‡ Specify which objects are incompatible with the aggregate table and can not be used in a query that is run against that table. ‡ © 2007. improving the performance of SQL transactions.Aggregate Awareness  Aggregate awareness is the ability of a universe to make use of aggregate tables in a database. ‡  Set up aggregate awareness as follows: Define the Select statement for an object using the @AggregateAware function.

© 2007.  A derived table is defined by an SQL query at the universe level that can be used as a logical table in Designer.  The columns returned by the queries to build objects can be used as the columns of a normal database tables.Derived Tables  Derived tables are tables defined in the universe schema. Cognizant Technology Solutions Confidential 53 .

These operations are performed before the result set is returned to a document. © 2007.  Reduced maintenance of database summary tables  Derived tables can. Cognizant Technology Solutions Confidential 54 . replace statistical tables that hold results for complex calculations that are incorporated into the universe using aggregate awareness.Derived Tables ( Contd. in some cases. Derived tables can return the same data and provide real time data analysis.)  Derived tables have the following advantages:  Reduced amount of data returned to the document for analysis  Include complex calculations and functions in a derived table. which saves time and reduces the need for complex analysis of large amounts of data at the report level.

Or go to Insert->Derived Tables. Cognizant Technology Solutions Confidential 55 . © 2007.Derived Tables ( Contd.)  Steps for creating a derived table: a) Right-click the mouse over the Designer table schema and select Derived Table from the menu to view the Derived Tables dialog box.

Operators and Functions boxes to build the SQL. Type the derived table SQL in the SQL Expression box or use the objects in the Tables and Columns.) b) c) Type the derived table name in the Table Name box. © 2007. Cognizant Technology Solutions Confidential 56 .Derived Tables ( Contd.

Cognizant Technology Solutions Confidential 57 .) d) e) f) Click SQL to validate the SQL.Derived Tables ( Contd. The derived table appears as a regular table in the Designer table schema. Use the columns in the derived table to build objects as you do with a normal database table.  Derived tables can be edited or deleted. © 2007. Click OK to close the dialog box.

or joins. Cognizant Technology Solutions Confidential 58 .  While connecting an active universe to other universes. and the linked universe becomes the core universe.  An active universe can be linked to one or more universes.  The kernel universe represents a re-useable library of components.  Derived universes may contain some or all of the components of the kernel. classes. one universe is said to be the kernel while the others are the derived universes.  Among linked universes. in addition to any components that have been added to it. © 2007. objects.Linking Universes  Linked universes are universes that share common components such as parameters. the active universe becomes the derived universe.

the core universe must have been exported to the repository at least once. and then include them in all new universes. While modifying a component in the core universe. Designer propagates the change to the same component in all the derived universes.  Advantages of linking universes: Reduce development and maintenance time.Linking Universes (Contd. DESIGNER does not allow the link.)  Components from the core universe are inherited by the derived universe. No need to re-create common components each time while creating a new universe.  © 2007. Otherwise.  Centralize often used components in a core universe. Cognizant Technology Solutions Confidential 59 .  To link a universe to a core universe.

Click the Add Link button. you can include the components of the kernel universe in a derived universe. Remove a link to a kernel universe only if the active universe no longer contains objects based on components or joins from the kernel universe.Linking Universes (Contd. Displays the Universe to Link dialog box from which you can link the kernel universe to other universes. Displays the path of the linked universe. © 2007. It lets you indicate the new location of the kernel universe if u have changed its location. Shows the user who last modified the universe. Other than linking universes. Shows the names of the universes to which the active universe is linked. Cognizant Technology Solutions Confidential 60 .)  To Link two universes:  Goto Edit-> Links.

Cognizant Technology Solutions Confidential 61 . The selected universe appears in the list.Linking Universes (Contd.) The Universe to Link dialog box appears. The link is created.   Click OK. Browse to the universe to link. © 2007.  Click the Open button. The tables of this core universe can be visible in the universe schema.

Securing Universes  A restriction is a named group of constraints that apply to a universe. and connection that they use in the universe are determined by their applied restriction. rows.  When users connect to a universe. query types. the objects. Cognizant Technology Solutions Confidential 62 . © 2007.

row access. and other actions in a universe. Cognizant Technology Solutions Confidential 63 .Securing Universes (Contd. and depending on the rights defined for a user group.  Universe Level . restrict viewing.)  Apply restrictions to defined user and groups who use a universe at two levels: CMC Level .  © 2007. Set what universes users can access. editing. deleting. query and SQL generation controls. A restriction set can include object access. and connection controls. A group of restrictions that correspond to a user group is called a restriction set.Define restrictions for users allowed to use a universe.From the Central Management Console set restrictions that apply to universes stored in a CMS.

Securing Universes (Contd. Cognizant Technology Solutions Confidential 64 .)  To create a restriction set  Select Tools > Manage Security > Manage Access Restrictions. © 2007. The Manage Access Restrictions box appears.

The Edit Restriction dialog box appears.) Click New. Cognizant Technology Solutions Confidential 65 .Securing Universes (Contd.  Click on each tab in the dialogue box and apply the restrictions to be imposed in the universe and click OK.  © 2007.

Cognizant Technology Solutions Confidential 66 . Tip: Do not distribute new versions of universes too frequently! © 2007.Managing Universes  Reason for universe maintenance: New tables added to database  Tables deleted. changed. or renamed in database  Users request new classes or objects  Note: Your primary concern when you introduce a new version of a universe should be what effect it will have on existing end user reports.

Cognizant Technology Solutions Confidential 67 .)  Changes to target database:  The implications of modifying the underlying database for BO universes varies in severity: No Impact:  Adding new columns  Adding new tables Severe Impact:  Renaming/moving database  Changing existing column and table names  Deleting tables and columns © 2007.Managing Universes (Contd.

Cognizant Technology Solutions Confidential 68 .)  Detecting changes to database:  Choose View > Refresh Structure  Changed tables are highlighted in the Structure  A message on the screen indicates that tables have been deleted © 2007.Managing Universes (Contd.

No Impact:  Redefining Object SQL  Renaming an Object  Copying to different Class  Moving in same Class or to a different Class  Adding new Objects Impact:  Deleting an existing Object  Deleting and then recreating an object with exactly the same definition © 2007.)  Effect of changes to existing objects:  Changes to existing Objects in a universe can have an impact on existing Documents created from the universe. Cognizant Technology Solutions Confidential 69 .Managing Universes (Contd.

Cognizant Technology Solutions Confidential 70 .)  Adding new tables to universe  The workflow is: Add tables to the universe structure Insert joins and set cardinalities Delete existing contexts Detect aliases Detect contexts Create new objects Set up hierarchies © 2007.Managing Universes (Contd.

 Object/Class Level Restriction for all Users (hide the class/object)  Object/Class Level Restriction for specified group or Users (Object Level restriction)  To restrict data for a particular user / group (Row Level Restriction) © 2007.Overview of Security  Universe Level Security  The user s access to the data or some particular object in the universe can be restricted in Universe level by the Universe Developer. Cognizant Technology Solutions Confidential 71 .

Cognizant Technology Solutions Confidential 72 .BO Designer  Questions from participants © 2007.

Test Your Understanding
1. 2. 3. 4. 5.

What are the steps to create a universe? Define the different types of connection. What are the different types of objects? What is a loop and how do you resolve it? List the types of @Functions.

© 2007, Cognizant Technology Solutions



Case Study 
Create a universe with the given details.

Universe name - eFashion , Database connection- beach , Select tables Customer, Resort, Region, Region_Sline, Service, and Sales. 
Create a dimension object in class customer. Give object name as cust_name,

data type as Varchar2 and this should return customer name as <First Name>space<Last Name>. 
Insert a table Country to the universe schema and create a join between

Country table and Resort table on country_Id . 
Create a derived table showing the number of regions in each country.

© 2007, Cognizant Technology Solutions



BO Designer: Summary 
Designer is a BO component that is used to build universes. A universe is a    

semantic layer between database and end users. A universe consists of a set of objects, grouped by classes. A connection is a link from the universe to the target database. There are three types of connection:  Personal  Shared  Secured The types of objects are:  Dimension  Detail  Measure

© 2007, Cognizant Technology Solutions



Cognizant Technology Solutions Confidential 76 .  A condition object is a predefined Where clause that can be inserted into the Select statement inferred by objects in the Query pane.BO Designer: Summary (Contd.  A hierarchy is an ordered series of related dimensions.  @Functions can be used in object definition in the Select statement or Where clause.  A loop is a set of joins that defines a closed path through a set of tables in a schema.)  A join is a condition that restricts the result set of a query.  Loops can be resolved using Alias or Context. © 2007.

sap. © 2007.BO Designer: Source  http://help. The materials that can be accessed from linked sites are not maintained by Cognizant Academy and we are not responsible for the contents thereof. and trade names in this course are the marks of the respective owner(s). Cognizant Technology Solutions Confidential 77 .com/businessobject/product_guides/  Business Objects XI Release 2 Designer s Guide Disclaimer: Parts of the content of this course is based on the materials available from the Web sites and books listed above. All trademarks. service marks.

You have successfully completed BO Designer Click here to proceed .

Sign up to vote on this title
UsefulNot useful