Business Objects Developer Training (Bo - Developer - L1) Day 1
Business Objects Developer Training (Bo - Developer - L1) Day 1
(BO_DEVELOPER_L1)
Day 1
1
DESIGNER MODULE
Agenda
•Creation of Universe
•Connecting to Databases
•Creation of classes
•Creation of objects
•Joins
•Data Restriction
What is a Universe
Objects
Classes
• User Requirements
– Detailed analysis of the information needs of the users.
• Data Analysis
– Detailed data analysis of the database breaking it down
into functional areas that users can relate to.
• Design
– Information from first 2 phases must be amalgamated to
create the conceptual design of the Universe, its objects
and other components.
• Development and distribution
– Create using the Designer module.
– Test using the User module.
– Distribute to the users via the repository.
• Maintenance
– Designer is responsible for updating and maintaining
Universe and keeping it up to date with any changes in the
User Requirements.
Creation of the Universe
Insert Tables
Set up Hierarchies
Creating a Universe
• 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
connections.
Different 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
Creating a New Connection
1. Click on New.
Provides automated
strategies for:
• Creating objects
• Setting joins
• The Table browser
listing
Universe Strategies
• Enables
dynamic links
with other
universes
Saving a Universe
– Click on
27
Customizing Table Insertion
Manual Creation
– Use “Insert > class” from the menu. An ‘Edit
Properties’ box appears. Enter class description.
OR
– Use to create a
class
Automatic creation
– Select a table in the structure pane.
– Drag it to the universe pane.
– A class is created in the universe pane with the same name as the
table name.
– Objects are also created automatically in the class corresponding
to the fields in the table.
Creating objects
Manual Creation
– Select the class where object is to be created.
– Use “Insert”--> “Object” from the menu. An ‘Edit
Properties’ box appears. Enter object details.
Automatic creation
– Select a column from a table in the structure pane.
– Drag it to the universe pane.
– An object is created under the nearest class to the point
where you drop the column.
– Default object name is column name with underscores
replaced with spaces.
Object Properties
Three property pages
– Definition
• Name
• Data type
• Description
• SELECT statement
• WHERE clause
• Properties
– Qualification
– Associated
List of
Values
Aggregate
projection
– Applicable
only to
measures.
– Defines how
the measure
will be
aggregated
when
projected from
a micro-cube.
• Advanced
– Security
– User rights on
Objects
– Date Formats
Joins
Joins
• Equi-Join
– Table 1.Column A = Table 2.Column B
– Resulting data set limited to values common in Column A & B.
• Outer-Join
– Table 1 OUTER JOIN Table 2 on Column A = Column B
– Resulting data set limited to ALL the values in Table 1 and ONLY
matching values in Table 2 based on Column A and Column B.
• Theta-Join
– Table 1.Column A BETWEEN ….. AND ……
– Links tables based on a relationship other than equality between 2
columns.
Creating and Deleting Joins
• Definition Tab
• Properties Tab
• Advanced Tab
Exercise 2A
• Query 1 -
– Create a query which gives details about Customer
Names and their Invoice ID
– Run the query
• Query 2
– Find Out the number of customers for which the
invoices have not been created from Vacation
Universe.
Exercise 2B
Hint :- Use Age Range table ;Use Theta join between age ;
max ; min
Exercise 2C
• In the Vacation Universe create third class called
“Sales Measures”.
• In this class create a measure object called
revenue.
• Save the universe and test in user module.
• Notice the variation in “Group By” clause.
• Indirect Restrictions
• Multiple Prompt
Hard-coded Restriction
• Adding a WHERE condition to an object allows you to give a
more precise definition:
How Data is Restricted
• Where clause
Flexible / @Prompt type Restriction
6
Agenda
•List of Values
•Hierarchies
•Resolving Loops
•Maintenance of Universe
List of Values
What is a List of Values?
• By default,
Associate a List and
Allow Users to edit
are checked:
• It is important to un
check this box for
objects that do not
need a list
Controlling How Lists are Refreshed
• Country:
• Town:
• Showroom:
Basing a LOV on a Personal File
• Specify the file that contains the values for the list and click OK
HANDS ON WORKSHOP
Exercise 1
U.K.
North South
Custom Hierarchy
Default Hierarchies
Creating Custom Hierarchies
(or Tools,
Hierarchies)
• A time
hierarchy
can be built
automaticall
y for date
objects.
HANDS ON WORKSHOP
Exercise 2
N 1
• A lookup table can 1
be identified by its N
N
cardinality 1 1
• Designer routines
detect loops and
candidates for
aliases
• Break the loop by
creating an alias of
the lookup table for
each side of the loop
Sales Sal
Lines
Customers
Loans
There are two possible routesLoans
to
link Clients with Models: Lines
No Impact: Impact:
•@ functions
•Linking of Universe.
•Migration of Universes
@ Functions
Topics @Functions
–Types of @functions
– @prompt()
– @select()
– @variable()
– @where()
– @script()
– @aggregate_aware()
• MONO means that the prompt accepts only one value. MULTI means that the
prompt can accept several values.
• FREE refers to free input as opposed to CONSTRAIN, which means that the end
user must choose a value suggested by the prompt.
@Prompt
Country.Country_name = @prompt(Prompt
message-‘Select the country’,Data Type (‘A’, ‘N’,
‘D’)-‘A’,LOV name - ‘Country\Country’,Or
hard coded list - {‘India’;’US’},LOV selection-
MONO,To value in LOV- FREE )
@Prompt
@Prompt snapshot
Multiple @Prompt
Extension of @Prompt Conditioning
More than one Where clause can be prompted.
If the same ‘Message text’ is used in the next prompt, the user
is prompted only once and the same value is substituted for the
next prompt too.
This will result in the user being prompted only once and the
same value will be substituted for column B as well.
Cascading @Prompts
• Are prompts that get popped up in hierarchical manner.
• Each prompt will only contain the values associated with the previous
prompt.
–Definition of @aggregate_aware
–Syntax
There are two types of Join paths that return too many
rows.
The Chasm trap occurs when two “many to one” joins converge on a single
table.
Chasm Trap
If you have two Fact tables with many to one joins converging to a
single lookup table, then you have a potential Chasm trap.
How do you resolve a Chasm trap?
Methods to resolve a Chasm Trap
Create a context for each fact table. This solution works in all cases for
BUSINESSOBJECTS universes
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
Break the universe into multiple universes. One universe for each fact table.
Click
Click
Altering the Universe SQL Parameters
Check
• Query can produce multi SQL, but must produce only one cube. The multi
SQL must join and not synchronize SELECT statements. This ensures that
the data is displayed correctly in the one result table that is returned
Fan Trap
The Fan trap occurs when a “one to many” join links a table which is in turn
linked by another “one to many” join.
How do you detect a Fan trap?
3) Set Contexts.
Universe A
Universe A
Universe B
Two Approaches to Linking
• Kernel approach
• Master approach
Kernel Approach
Kernel
Kernel +
Human Resources
Kernel
Kernel
Staff Motors2000
Kernel
Kernel +
Master Approach
Master
Master -
Human Resources
Master
Master HR
and
Motors2000
Motors2000
Master
Master -
Making a Link
• Click
• and click on the Links tab Click Add Link...
Everything
from Universe A
Universe A
Universe A
Universe B
Included Universes
• Included universes become part of the new universe