You are on page 1of 108

Business Objects Designer XI

5/17/12

confidential

11

Designer Module Objectives

Designer Interface Simple Universe Creation Loops & Contexts


5/17/12 confidential 22

What is the Designer Module ?

Graphical environment to create a Universe Semantic Layer Create and Maintain universes.
5/17/12 confidential 33

Section A Simple Universe and Object Creation

5/17/12

confidential

44

What is a Universe ?

Semantic Layer Information in the Universe file

Universe structure Classes and Objects

5/17/12

confidential

55

What is a Universe ?

Universe (Semantic Layer)


Sales Stock Finance

Corporate Database / DW
Cr e a tes t

he U

nive rs e f or U

s ers

User 5/17/12

User confidential 66

Designer

Universe Design process


Corporate Database / DW
1. Data Analysis 2. User Requirements

5. Maintenance 4. Implementation 5/17/12 confidential 77

3. Design

Section A.1 Core Universe Parameters

5/17/12

confidential

88

Before You Start!!!

Detailed plan of the information requirements A schema diagram of the relational database Understanding of the database Reporting requirement 5/17/12 confidential

99

Initiating Universe Design

There are two ways to initiate Universe Design:

OR Create a new Universe from scratch:

File - New Commands:

5/17/12

confidential

1010

Steps involved in Universe Design

For a simple Universe.

Universe name and Database connection Selecting Classes and Objects Measure Objects Generate the Universe

5/17/12

confidential

1111

Steps involved in Universe Design

Integrity check detects :

Invalid syntax Loops Isolated tables Isolated joins Loops within contexts Missing or incorrect cardinalities

5/17/12

confidential

1212

The Designer Window


Quick Design Wizard Universe Parameters List Mode

Objects and Classes Window

Structure Window

5/17/12

confidential

1313

The Parameters Dialogue Box

A Universe has three core parameters

Three Core Parameters

5/17/12

confidential

1414

The Connection to the Database


u A Universe connection composed of:
n n

the middle-ware through which it is defined:

the name and type of the connection; the location of the database:

Secured

Shared Personal

5/17/12

confidential

1515

Advanced Connectivity Settings

Advanced Connectivity settings:

You can maximize the query response time by equating to the array fetch size of the Source Database

5/17/12

confidential

1616

Creating a Universe Step 0

Enter the name, description, add the connection.

Test the connection


5/17/12 confidential 1717

Creating a Universe Step 1

Opt the strategy to follow.

5/17/12

confidential

1818

Creating a Universe Step 2

Controls.

Manages the server, CPU, network resources.

5/17/12

confidential

1919

Saving a Universe

Methods to save a Universe file:

5/17/12

confidential

2020

Section A.2 Adding Tables

5/17/12

confidential

2121

The Universe Structure Window

Map the Universe to the database structure


Universe Structure Window

5/17/12

confidential

2222

Adding Tables

Click and drag Tables in to the Structure Window Click on + sign to view fields in Tables

5/17/12

confidential

2323

Section A.3 Joins in Universe Structures

5/17/12

confidential

2424

What do joins achieve in SQL?

SELECT Customer.Last_Name, Orders.Date, Orders.Amount Join FROM Customer, Orders WHERE Customer.Cust_ID=Orders.Cust_ID Cartesian Product: Restricted Result Set:

5/17/12

confidential

2525

An Equi Join

5/17/12

confidential

2626

An Outer Join

SELECT Customer.Last_Name, Orders.Date, Orders.Amount FROM Customer, Orders OuterJoin Equi Join

WHERE WHERE Customer.Cust_ID*=Orders.Cust_ID( Customer.Cust_ID=Orders.Cust_I Restricted Result Set: Outer Join Result Set: +) D

5/17/12

confidential

2727

A Theta Join

SELECT Age Group.Age_Group, Customer.Last_Name FROM Age Group, Customer

Theta Join

WHERE Customer.Age Between Age_Group.Age_Min And Age_Group.Age_Max Cartesian Product Theta Join Result Set:

5/17/12

confidential

2828

Section A.4 Creating Dimension and Detail Objects

5/17/12

confidential

2929

Dimension / Detail Relationship

Objects retrieve factual information Entity Person Dimension Objects about =entities:
e.g Name

Detail Objects e.g Address, Phone Number

5/17/12

confidential

3030

Classes and Objects Window


One Class per Object Group of Objects

5/17/12

confidential

3131

Creating a Dimension Object

5/17/12

confidential

3232

Other Object Properties


Object Qualification List of Values

5/17/12

confidential

3333

Creating a Detail Object

Click and Drag the field in to the Classes and Objects Window

5/17/12

confidential

Re-qualify it as a Detail Object


3434

Testing Objects

Important to test a Universe at each stage Production cycle of Universe development


Test Universe Save Universe Modify Universe

5/17/12

confidential

3535

Section A.5 Measure Objects

5/17/12

confidential

3636

What is a Measure Object?

Statistical information
was earned... ...by a Product? ...in a Financial Year?

How much ...by a Sales Person?

1996
5/17/12 confidential 3737

Aggregate Functions and Group by

Rule of SQL:

Aggregate functions

Aggregate function accompanied by Group By SELECT

Group By clause contains any unaggregated fields used in the Select clause
5/17/12

City.city, sum(Invoice_Line.days * Invoice_Line.nb_guests * Service.price) FROM City, Invoice_Line, Service, Customer, Sales WHERE ( City.city_id=Customer.city_id ) AND ( Customer.cust_id=Sales.cust_id ) AND ( Invoice_Line.inv_id=Sales.inv_id ) AND ( Invoice_Line.service_id=Service.service_id ) GROUP BY City.city

confidential

3838

Semantic Dynamism

Context of use

Question: What is the Total Revenue for eachfor each Customer? is the Total Yearly Revenue Customer? Year?

GROUP BY Customer.last_name + ', '+Customer.first_name, Format(Sales.invoice_date, Format(Sales.invoice_date, 'yyyy') '+Customer.first_name 'yyyy')

5/17/12

confidential

Inferred level of aggregation... ...changes with the GROUP BY.


3939

Creating a Measure Object


Define them in a separate Class due to their semantically dynamic nature.

NOTE: the Aggregate function in the Measures definition will cause the appropriate GROUP BY clause to be generated by the inference engine.
5/17/12 confidential 4040

The Projection Function and LOV

The Projection Function controls the behaviour of the Measure in the Check the Qualification is set appropriately Reporting interface:
Set the function to control the behavior of the Object in the reporting interface

Disassociate Measures with LOVs

5/17/12

confidential

4141

Testing Measure Objects

Measure Objects need a more rigorous testing procedure than Dimension Objects:
GROUP BY Customer.last_name + ', '+Customer.first_name GROUP BY City.city GROUP BY City.city, Customer.last_name + ', '+Customer.first_name
5/17/12 confidential 4242

Dimensions must be Unique!!!

Dimension Objects must be defined in a way that will guarantee the uniqueness of the data they return:

NOTE: The inclusion of the unique ID guarantees the results will be displayed accurately in the reporting interface.
5/17/12 confidential 4343

Section B Designing Universe Structures to conform to SQL requirements and resolve Loops
5/17/12 confidential 4444

Section B.1 What is a Loop and how is it resolved in BusinessObjects?


5/17/12 confidential 4545

What is a Loop?

A loop is caused by a circular set of joins which defines a closed path through a set of Tables:
SELECT , FROM All Tables in Loop WHERE All Joins in Loop...

5/17/12

confidential

4646

How to deal with Loops

Three Automated routines can be used to resolve 99% of loop situations within the Universe Cardinality Detection Routine: structure window. Alias Detection

The following order must be Routine observed:


...and...

Context Detection Routine MUST BE FIRST!!!


5/17/12 confidential

Any subsequent order.


4747

Section B.2 Using Aliases to Resolve a Loop?

5/17/12

confidential

4848

What is an Alias?

An Alias is a temporary name assigned to a Table, within an SQL Statement.

It can be used to resolve structural issues WHERE WHERE WHERE in a database:


AND AND AND
Resort.Country_ID= Resort_Country.Country_ID = Resort.Country_ID

AND

Country.Country_ID

AND Customer.Country_ID= Customer_Country.Country_ID AND

Customer.Country_ID = AND Country.Country_ID ...

...
5/17/12 confidential

4949

Using Automatic Alias Detection

The process of Alias detection is automated by BusinessObjects:


OR manually insert joins OR insert cardinalities

TABLE TREE The Alias Solution needed here


1
1 1

5/17/12

confidential

5050

Defining Objects from Aliases

It is essential, when Aliases are used in the Universe Structure Window, that Objects are defined from the approriate Alias:
Pointers

to:

5/17/12

confidential

5151

Section B.3 Other uses of Aliases that require manual Resolution

5/17/12

confidential

5252

Recursive Table Structures: Pigs Ears

A recursive Table structure occurs n Manually: when a Table acts as a lookup for Automatically: itself:

5/17/12

confidential

5353

Multiple Domain Lookups: the Problem

MDLs are a major problem for Designers:


Sample Data: Absences

Multiple Domain Lookup Sample Result Set

5/17/12

Incorrect Solution
confidential

5454

Multi Domain Lookups: the Resolution

There is a manual solution for MDLs:

5/17/12

confidential

5555

Equi and Outer Joins: Aliases allow both

It is possible to give the User the choice of using an Equi Join or an Outer join in their queries.

5/17/12

confidential

5656

Section B.4 Using Contexts to Resolve Loops

5/17/12

confidential

5757

Database Structure: Context Situations

Certain database structures will 1 Multiple Star require the definition of contexts in Country Schemas Universe structures:

Vendor Normalised Dimensions

Time

FACT (sales)

Single Snowflake WARNING: FACT Star Schema Loop!!! Schema (reservations)

Product 1

Custome r 1 1 Dimension or 5858 Lookup Table

Brand 5/17/12

confidential

Context situations: Errors in SQL

A loop caused by multiple fact tables will result in incorrect results being returned from the generated SQL
FROM All Tables in LoopWHERE .All Joins in Loop

5/17/12

confidential

5959

How BusinessObjects detects Contexts

Contexts are automatically detected Sales Fact: Reservation Fact: through the table tree algorithm: OR insert
cardinality Detect Contexts

Sales 1 Context Accept suggestions


5/17/12 confidential

Reservations Context 1
1
6060

The Incompatible Query: Multi Path SQL

Contexts are important when handling what may be termed Incompatible Queries:

Two Selects Joined on the Client 5/17/12

confidential

WHERE and FROM clause defined from: Invoice_Line Reservation_Line 6161 Context Context

Ambiguous Queries: Naming Contexts

It is important to name Contexts appropriately to limit the impact of the Ambiguous Query:

A Name and Description help them to make the right decision for Users create Ambiguous Queries and are asked in which their question
5/17/12 confidential

Context are they asking the question 6262

Aliases in a Multi Star situation?

Normalised dimensions are not Effective Result: Two Universes amenable to loop resolutions through Aliases:
Still a Loop All Candidates for Aliases Candidates for Aliases Sales Universe
5/17/12 confidential

Duplication of Objects:

Reservations Universe
6363

Duplication of Objects:

Section B.5 Other Uses of Contexts: Chasm Traps

5/17/12

confidential

6464

The Chasm Trap

The Chasm trap appears in the following situation:


Sales Person Start Date Salary Value 1. SELECT Sales_Person.sales_person, SELECT Sales_Person.sales_person Abscences.ABSSTART, Count(Abscences.ABSSTART), Salaries.SALARY_VALU 2.GROUP BY E Sum(Salaries.SALARY_VALUE) Sales_Person.sales_person FROM 3. Applies Aggregate Count() Sum() WHERE functions SalesGROUP BY Abscences Total Salary 4. Generates incorrect Person No. Sales_Person.sales_person results
5/17/12 confidential 6565

BusinessObjects resolves the Chasm Trap through Contexts and Multipath SQL

The BusinessObjects Resolution

5/17/12

confidential

6666

Section B.6 The Fan Trap:

5/17/12

confidential

6767

The Fan Trap

The fan trap occurs in the following situation:

SELECT days) FROM WHERE GROUP BY


5/17/12

Customer.last_name Count(Sales.Inv_id), Sum(Invoice_Lines. Customer.last_name


confidential 6868

Section C Hierarchies in Universe Design


5/17/12 confidential 6969

Section C.1 What is a Hierarchy?

5/17/12

confidential

7070

What is a Hierarchy?

Level in Hierarchy:

Entities Returned:

U.K.
North South

Liverpool Manchester Newcastle 5/17/12 confidential

London Southampton Bristol 7171

How to spot a Hierarchy

Less Detailed More Detailed NOTE: As each level is divided in to its components at the level below a more atomized view of any statistical information can be found.
5/17/12 confidential 7272

How to Represent a Hierarchy

Dimension Objects represent the entity levels in a hierarchy:

Measures can be analysed at each entity level Top Level


Level 1 Level 2 Level 3

5/17/12

confidential

7373

Multidimensional Analysis

Drill is the central mechanism through which multidimensional Drill Down analysis can be conducted:

5/17/12

confidential

7474

Section C.2 A Simple Default Hierarchy?

5/17/12

confidential

7575

What is a Default Hierarchy?

A Default Hierarchy is visually represented to the User in the Classes and Objects Window:
Default Hierarchies are represented by the way Objects are laid out in the Classes and Objects Window of the Query Panel

5/17/12

confidential

7676

How to Create a Default Hierarchy

Dragging and Dropping fields from the Structure Window and existing objects from the Classes and Objects Window are the simplest ways to build a default hierarchy:

5/17/12

confidential

7777

Testing a Default Hierarchy

Create a Scoped Query to test out a Default hierarchys operation: from the base Dimension Object

5/17/12

confidential

7878

Section C.3 A Special Case: Time

5/17/12

confidential

7979

Why is time a Special Case?

Time is a special case because each of its levelsInvoice Date: from a single can come field in the underlying database:

01/01/1997
Month Quarter
confidential

Day

Year and dependant on definition...


8080

5/17/12

Four Ways to Create Time Hierarchies

There are four ways to develop a Time hierarchy in BusinessObjects: n Using standard functions: Automatically:

Altering the database:

Defining a Custom function:

5/17/12

confidential

8181

Automatic Time Hierarchies

Automatic Time hierarchies are fine for testing and quick design work:

In the Classes and Objects window...

5/17/12

confidential

8282

Designer Defined Time Hierarchies

Using functions to manipulate the data returned by a Date Object improves presentation in Reports:

Copy the Object to save time

Edit the duplicate Objects definition


5/17/12 confidential 8383

DBA Defined Time Periods

Altering the database table structure gives the Designer the flexibility to provide their own definition of periods: Calendar Year: Financial Year:

Calendar Quarter 1: 1/1/94 31/3/94 Year: 1/1/94 - 31/12/94 Calendar


5/17/12

Financial Quarter 1: 6/4/94 5/7/94 Financial Year: 6/4/94 - 5/4/95


8484

confidential

Section C.4 Designer Defined Custom Hierarchies and Hierarchy Maintenance

5/17/12

confidential

8585

What is a Custom Hierarchy?

A Custom Hierarchy combines elements from default (or pure) Default Hierarchy: in to a single path of Custom Hierarchy: hierarchies analysis:

5/17/12

confidential

8686

Creating a Custom Hierarchy

Custom Hierarchies can be defined in the Hierarchies Editor:

5/17/12

confidential

8787

Custom or Default Hierarchies?

There are three options when defining a hierarchy strategy:

Only Default Only Custom Both

5/17/12

confidential

8888

An Ongoing Process
The hierarchies made available in a Universe must change to meet user requirements: Ive But I need

designed this new hierarchy for you...

this hierarchy you fool!!!

Designer Updates Universe


5/17/12 confidential

User requests new hierarchy


8989

Dimensional Rifts and Link Hierarchies

If a Analysts persistently meet Dimensional Rifts it is a clear Link Hierarchy: indication that a Custom hierarchy is needed:

}
No linking meta data in Universe
5/17/12

Dimensional Rift

confidential

9090

Section D Distributing and Maintaining Universes

5/17/12

confidential

9191

Section D.1 Documenting a Universe

5/17/12

confidential

9292

Documenting a Universe

Documenting a Universe will save time in the future and make it easier to envisage it in its entirety:

5/17/12

confidential

9393

Printing Documentation

Printing out documentation for a n How? What? Universe is a simple process:

5/17/12

confidential

9494

Section D.2 Deploying a Universe

5/17/12

confidential

9595

The Life Cycle of a Universe

The Universe development cycle has Phase 3 several distinct phases:


Phase 4

Phase 1-2

Phase 5

Phase 7 Phase 6

5/17/12

confidential

9696

Distributing Universes

There are two major mechanisms for distributing Universe files:

File System Central Management Server (CMS) repository

5/17/12

confidential

9797

Workgroup Mode

The File System allows unsecured Universes to be distributed:

5/17/12

confidential

9898

Enterprise Mode

The BusinessObjects Central Management Server (CMS) repository allows the Universe to be distributed and secured:

5/17/12

confidential

Central Management Server (CMS) repository

9999

Central Management Server (CMS) repository

Universe is made available to Web Intelligence users and other designers by exporting a universe to the CMS repository. When a universe is exported, the universe is:

Moved to the selected universe folder on the repository file system and

Created in the Central Management System (CMS). 5/17/12 confidential 100100

Section D.3 Maintaining a Universe

5/17/12

confidential

101101

Modifying the Underlying Database

The implications of modifying the underlying database for n Severe Impact: No Impact: BusinessObjects Universes varies in Renaming/Moving Database severity: Adding new Fields

Adding new Tables

Changing existing Field names Changing existing Table names Deleting Tables

5/17/12

confidential

102102

New Tables in an Existing Universe

Certain Procedures must be followed when new Tables are added to an existing Universe structure:

Add new Tables Check if it is a Multi Domain Lookup (Aliases) Insert Joins and Cardinalities
confidential 103103

5/17/12

Changes to Existing Objects

Changes to existing Objects in a Universe have two types of impact n Impact: No Impact: on existing Documents created from Deleting and existing Object the Universe: Redefining Object SQL

Renaming an Object Copying to different Class Moving in same Class or to a different Class Adding new Objects

Deleting and recreating the Object with exactly the same Definition

5/17/12

confidential

104104

Adding New Objects

There are three main ways to add 1. new Objects to an Copy from another Universe: Create from scratch: 2. existing Universe:

3. Include User Defined Objects:

5/17/12

confidential

105105

Module Summary

Universe Design is cyclical:


Phase 3

Phase 1-2

Phase 4

Phase 5 Phase 7 Phase 6


5/17/12 confidential 106106

Functions available

DESIGNER provides a number of functions for the SQL definition of objects. By using these functions, you make the definition of objects dynamic as well as database-independent. Referred to as @ functions, these functions are as follows:

@Aggregate_Aware @Prompt : allows creation of an interactive object.

@Select : reusability of a Select statement of an existing object 5/17/12 confidential 107107

Thank you for your time

Our promise
With utmost respect to Human Values, we promise to serve our customers with Integrity, through Innovative, Value for Money solutions, by Applying Thought, day after day

Information contained and transmitted by this presentation is proprietary to Limited and is intended for use only by the individual or entity to which it is addressed, and contains information that is privileged, confidential or exempt from disclosure under applicablelaw.

5/17/12

confidential

108108

You might also like