bo designer _intelligroup
TRANSCRIPT
-
8/6/2019 BO Designer _Intelligroup
1/168
Business Objects
Designer
-
8/6/2019 BO Designer _Intelligroup
2/168
-
8/6/2019 BO Designer _Intelligroup
3/168
3 2005 Intelligroup, Inc. Confidential & proprietary3
Universe ?
Universes are nothing but a business intelligent semantic layer between the
end user and the database, that isolates the end user from technical issuesof the database.
Universe maps to data in the database in everyday terms that describe
business situations.
Universes are made of Classes and Objects.
Objects
- Maps to column of a table in the database.
Classes
- Logical Grouping / collection of objects.
-
8/6/2019 BO Designer _Intelligroup
4/168
4 2005 Intelligroup, Inc. Confidential & proprietary
Business Objects Designer
-
8/6/2019 BO Designer _Intelligroup
5/168
5 2005 Intelligroup, Inc. Confidential & proprietary
The semantic layer may consist of one or more separate universes
Each universe is a partial representation of a database, in the
form of business vocabulary
Sales/MarketingSales/Marketing
HumanHuman
ResourcesResourcesEmployee
Salary
Benefits...
Sales Revenue
Sales ExecutiveCustomer
Product
Price
Order Date ...
The Semantic Layer
-
8/6/2019 BO Designer _Intelligroup
6/168
6 2005 Intelligroup, Inc. Confidential & proprietary
Class & Object
A class is a logical grouping of objects within a universe. In general, the
name of a class reflects a business concept that conveys the category ortype of objects.
A class can be further divided into subclasses.
As a designer, you are free to define hierarchies of classes and
subclasses into a model that best reflects the business concepts of your
company.
An object is the most refined component in a universe. It maps to data or a
derivation of data in the database.
Object Categories Dimension
Detail
Measure
-
8/6/2019 BO Designer _Intelligroup
7/168
7 2005 Intelligroup, Inc. Confidential & proprietary
A typical universe layout
Universe Pane
Classes
Objects
Structure Pane
-
8/6/2019 BO Designer _Intelligroup
8/168
8 2005 Intelligroup, Inc. Confidential & proprietary8
Creating aUniverse
Define the Parameters
Insert Tables
Make the Joins
Resolve the Loops
Create Classes and Objects
Set up Hierarchies
-
8/6/2019 BO Designer _Intelligroup
9/168
9 2005 Intelligroup, Inc. Confidential & proprietary9
Select File, Parameters
To begin creating a new universe:
Select File, New
To access the Universe Parameters dialog box for an existing
universe:
or
Click on
Setting Parameters
-
8/6/2019 BO Designer _Intelligroup
10/168
10 2005 Intelligroup, Inc. Confidential & proprietary10
Definition Tab
A universe is identified with a universe name and a connection to the
database A detailed description can also be added
-
8/6/2019 BO Designer _Intelligroup
11/168
11 2005 Intelligroup, Inc. Confidential & proprietary11
What Is a Connection?
Definition:
A connection is a link from the universe to thetarget database
The link is achieved using middleware (for example ODBC)
An existing connection may be used or a new connection createdfor a universe
There are three different types of Business Objects connection
-
8/6/2019 BO Designer _Intelligroup
12/168
12 2005 Intelligroup, Inc. Confidential & proprietary
Different Types of Connection
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
PersonalCan only be used on the client
-
8/6/2019 BO Designer _Intelligroup
13/168
13 2005 Intelligroup, Inc. Confidential & proprietary13
Creating a New Connection
2. Identify the driver to be
used to access the
target database
1. Click on New
-
8/6/2019 BO Designer _Intelligroup
14/168
14 2005 Intelligroup, Inc. Confidential & proprietary14
Choose File, Save or click
Saving aUniverse
Save the universe using a maximum of 100 characters
This makes it possible to distribute the universe across different
kinds of computers
By default the universe is saved in the folder:
C:\Documents and Settings\user\Application Data\Business Objects\
Business Objects 11.5\Universes
When you save a universe, you save the version of the universe on the file system.
This is not the same as exporting the universe to the repository. When you export a
universe, the version in the Central Management System (CMS) is updated. This is
the version that replaces the file system version when you import the universe.
-
8/6/2019 BO Designer _Intelligroup
15/168
15 2005 Intelligroup, Inc. Confidential & proprietary15
Universe Default Save Settings
You can change the default folder where universes are saved
You can also set up Designer to automatically save at specified intervals
Choose Tools, Options:
-
8/6/2019 BO Designer _Intelligroup
16/168
16 2005 Intelligroup, Inc. Confidential & proprietary16
Access the Connections dialog box by selecting Tools,Connections
Displaying Existing Connections
All the available
connections can be
displayed, modified or
removed with the
Connections dialog box
-
8/6/2019 BO Designer _Intelligroup
17/168
17 2005 Intelligroup, Inc. Confidential & proprietary17
Setting up Universe Parameters
Definition Tab: name, description
and connection to the database Summary Tab: author and
statistics about the universe
Strategies Tab: internal or
personal wizards to make creating
a universe easier
Controls Tab: manages access
and control of resources
SQL Tab: queries and SQL
parameters
Links Tab: enables dynamic links
with other universes
ParameterTab: For defining SQL
parameter
-
8/6/2019 BO Designer _Intelligroup
18/168
18 2005 Intelligroup, Inc. Confidential & proprietary18
The Summary tab displays general information about the universe
Setting up Parameters : Summary Tab
-
8/6/2019 BO Designer _Intelligroup
19/168
19 2005 Intelligroup, Inc. Confidential & proprietary19
Provides automated strategies for:
Setting up Parameters : Strategies Tab
Creating objects Setting joins
The Table browser listing
-
8/6/2019 BO Designer _Intelligroup
20/168
20 2005 Intelligroup, Inc. Confidential & proprietary20
These allow you to limit the size of results and restrict the time allowed for
executing queries The Administrator can change these parameters for specific groups or
users
Setting up Parameters : Controls Tab
-
8/6/2019 BO Designer _Intelligroup
21/168
21 2005 Intelligroup, Inc. Confidential & proprietary21
SQL parameters are used to define the limits of the SQL that may be
generated by the universe
The Administrator can change these parameters for specific groups and
users
Setting up Parameters : SQL Tab
-
8/6/2019 BO Designer _Intelligroup
22/168
22 2005 Intelligroup, Inc. Confidential & proprietary22
Enables dynamic links with other universes
Setting up Parameters : Links Tab
-
8/6/2019 BO Designer _Intelligroup
23/168
23 2005 Intelligroup, Inc. Confidential & proprietary23
In Parameter tab, SQL generation parameters that you can set for the
universe.
Setting up Parameters : Parameter Tab
-
8/6/2019 BO Designer _Intelligroup
24/168
24 2005 Intelligroup, Inc. Confidential & proprietary24
Using Find and Replace
You can use Find to locate characters or a text string in both the universe
and structure panes. You can use Find and Replace to locate and replacecharacters or text in the names and descriptions for any structure in the
universe.
To search in a universe:
1. Click in the UniverseorStructure pane.
You want to find a string
in this pane.
2. Select Edit > Find.
-
8/6/2019 BO Designer _Intelligroup
25/168
25 2005 Intelligroup, Inc. Confidential & proprietary25
The box for an active Structure pane appears below.
Using Find and Replace
The box for an active Universe pane is below.
-
8/6/2019 BO Designer _Intelligroup
26/168
26 2005 Intelligroup, Inc. Confidential & proprietary26
What YouWillBe Able To Do
Add tables to the Structure
Move tables
Know about different ways of viewing tables
Using Derived Tables
-
8/6/2019 BO Designer _Intelligroup
27/168
27 2005 Intelligroup, Inc. Confidential & proprietary27
Adding Tables
Click on
Choose Insert, Tables from the menu
The Table browser displays all the tables and
views of the database
You can select multiple tables using the Shift keyor Ctrl key
3 ways to use the Table browser: Double-click on the background of the Structure
-
8/6/2019 BO Designer _Intelligroup
28/168
28 2005 Intelligroup, Inc. Confidential & proprietary28
Click on and to zoom in and out
Click on to arrange the tables to fit in the window
Use the View, Change Table Display option
Use the Speed menu on a table or row
Organizing Your Tables
A lot of options allow a better view of the tables:
Use drag and drop to move the tables around the Structure
-
8/6/2019 BO Designer _Intelligroup
29/168
29 2005 Intelligroup, Inc. Confidential & proprietary29
Customizing Table Insertion
Select Tools, Options then click on the Database tab
From here you can select and deselect options related to table
insertion
You can set internal strategies
to:
automatically extract joins
detect cardinalities
create objects when
inserting tables
-
8/6/2019 BO Designer _Intelligroup
30/168
30 2005 Intelligroup, Inc. Confidential & proprietary30
What YouWillBe Able To Do
Set equi-joins manually
Delete and modify joins
View joins in List Mode
Set cardinalities
Be able to set outer, theta and self-restricting joins
Full Outer Join
-
8/6/2019 BO Designer _Intelligroup
31/168
31 2005 Intelligroup, Inc. Confidential & proprietary31
Joins
A join is a condition that restricts the result set of a multi-relational query
Equi-join (otherwise known as a standard or inner join)
There are several different kinds of join:
Theta join
Self restricting join
Outer join
Full Outer Join
Short Cut Join
-
8/6/2019 BO Designer _Intelligroup
32/168
32 2005 Intelligroup, Inc. Confidential & proprietary32
Equi-Joins
-
8/6/2019 BO Designer _Intelligroup
33/168
33 2005 Intelligroup, Inc. Confidential & proprietary33
Ajoin can be entered manually using two methods:
Creating and Deleting Inner Joins Manually
With the menu option
Insert, Joins and the Edit
Join box
Graphically
To delete a join, click on the join line and press Delete
-
8/6/2019 BO Designer _Intelligroup
34/168
34 2005 Intelligroup, Inc. Confidential & proprietary34
Outer Joins
-
8/6/2019 BO Designer _Intelligroup
35/168
35 2005 Intelligroup, Inc. Confidential & proprietary35
Creating Outer Joins
An outer join is created by converting an existing equi-join
By default you can create either a left outer, or a right outer join dependingon which side of the join the outer table is designated.
You can also create a full outer join by activating ANSI 92 support for joinsin the universe. This is achieved by setting a universe SQL parameterANSI92 to YES (File >Parameters > Parameter).
Outer Join
-
8/6/2019 BO Designer _Intelligroup
36/168
36 2005 Intelligroup, Inc. Confidential & proprietary36
Example: Outer join
The tables Resort_Country and Resort below are linked by an equi-join.
Each resort belongs to a country, but each country may not have a resort.
If you use an equi-join, the result set of a query would only show
information on the countries that have a resort;Australia, France, and the
US.
-
8/6/2019 BO Designer _Intelligroup
37/168
37 2005 Intelligroup, Inc. Confidential & proprietary37
However, you may wish to show all countries irrespective of an equivalent
value in the foreign key of the Resort table. To achieve this you define anouter join so that all counties are returned, despite having no match in the
Resort column, as shown below:
-
8/6/2019 BO Designer _Intelligroup
38/168
38 2005 Intelligroup, Inc. Confidential & proprietary38
You can define an outer join using the ANSI 92 standard for defining outer
joins.T
his allows you to specify a full outer join.To use the
AN
SI 9
2standard for outer joins, you must set the ANSI 92 parameter to YES. This
parameter is available on the Parameter page
(File > Parameters > Parameter).
-
8/6/2019 BO Designer _Intelligroup
39/168
397/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
ThetaJoin
A theta join contains an expression that is based on something other
than equality:
ThetaJoin Result Set:
ThetaJoin
-
8/6/2019 BO Designer _Intelligroup
40/168
40 2005 Intelligroup, Inc. Confidential & proprietary
Creating ThetaJoins
A theta join is created by converting an existing equi-join
CTRL-CLICK
-
8/6/2019 BO Designer _Intelligroup
41/168
417/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
Self Restricting Join
This is not really a join at all. It is a method used to set a restriction on a table
in the universe Structure.
-
8/6/2019 BO Designer _Intelligroup
42/168
42 2005 Intelligroup, Inc. Confidential & proprietary
Creating Self Restricting Join
-
8/6/2019 BO Designer _Intelligroup
43/168
43 2005 Intelligroup, Inc. Confidential & proprietary43
Shows the relationship between tables on the basis of the join
Join Cardinalities
Cardinality:
Should only be one to many or one to one. It should never be many to
many
Is not needed to infer SQL in Business Objects
Is only required to resolve loops and alternative routes in the Structure
-
8/6/2019 BO Designer _Intelligroup
44/168
44 2005 Intelligroup, Inc. Confidential & proprietary44
Adding Cardinalities
Manually using the Edit Join dialog box
Automatically using (but can take a long time)
-
8/6/2019 BO Designer _Intelligroup
45/168
45 2005 Intelligroup, Inc. Confidential & proprietary45
List Mode displays tables, joins and contexts
Using List Mode
It is possible to identify joins related to a specific table
-
8/6/2019 BO Designer _Intelligroup
46/168
46 2005 Intelligroup, Inc. Confidential & proprietary46
Always check integrity after defining joins
Checking Integrity
-
8/6/2019 BO Designer _Intelligroup
47/168
47 2005 Intelligroup, Inc. Confidential & proprietary47
Testing
REMEMBER: Once you have created the objects for your universe
you must make extensive multi-relational queries to check that the
joins are producing the SQL output intended
-
8/6/2019 BO Designer _Intelligroup
48/168
48 2005 Intelligroup, Inc. Confidential & proprietary48
What YouWillBe Able To Do
Organize the universe into classes and sub-classes
Create dimension and detail objects
Understand and edit object properties
Test objects
-
8/6/2019 BO Designer _Intelligroup
49/168
49 2005 Intelligroup, Inc. Confidential & proprietary49
Objects
DimensionsProjects columns from the database which are key
to a query
DetailsProjects columns from the database that provide
detailed information related to a dimension
Measures
Contains aggregates to project statistics
-
8/6/2019 BO Designer _Intelligroup
50/168
50 2005 Intelligroup, Inc. Confidential & proprietary50
Classes
Used to group related objects
Used to provide subsets of
related objects
-
8/6/2019 BO Designer _Intelligroup
51/168
51 2005 Intelligroup, Inc. Confidential & proprietary51
The Classes and ObjectsWindow
Order of dimensions in a
class hierarchically
Details are attached to
dimensions
-
8/6/2019 BO Designer _Intelligroup
52/168
52 2005 Intelligroup, Inc. Confidential & proprietary52
The Classes and ObjectsWindow
Measures are grouped in aseparate class
Except where they can only be used withobjects from a given class
-
8/6/2019 BO Designer _Intelligroup
53/168
53 2005 Intelligroup, Inc. Confidential & proprietary53
Use to create a
class
Use the Description field
to provide information for
users
Creating and Editing Classes
-
8/6/2019 BO Designer _Intelligroup
54/168
54 2005 Intelligroup, Inc. Confidential & proprietary54
Sub-classes allow a better
organization of objects
Avoid too many levels of sub-
classes Use the Speed menu on a class to
create a sub-class
Creating aSub-Class
-
8/6/2019 BO Designer _Intelligroup
55/168
55 2005 Intelligroup, Inc. Confidential & proprietary55
Creating a Class from a Table
Use Drag and Drop
This wizard will create one object for each field
-
8/6/2019 BO Designer _Intelligroup
56/168
56 2005 Intelligroup, Inc. Confidential & proprietary56
Different Ways:
Manually with
Drag and drop from a database column into a class
Insert objects from another universe (copy and paste)
Creating an Object
-
8/6/2019 BO Designer _Intelligroup
57/168
57 2005 Intelligroup, Inc. Confidential & proprietary57
Object Properties : The Definitions Tab
By default the type is
the same type as used
by the database
Add a description to the
object
Inferred SQL for Select
statement
-
8/6/2019 BO Designer _Intelligroup
58/168
58 2005 Intelligroup, Inc. Confidential & proprietary58
The Select andWhere EditWindows
Inferred SQL
Pick Lists
-
8/6/2019 BO Designer _Intelligroup
59/168
59 2005 Intelligroup, Inc. Confidential & proprietary59
Object Properties : The Properties Tab
Define the type of object
Associate a List of Values
for end users conditions if
appropriate
-
8/6/2019 BO Designer _Intelligroup
60/168
60 2005 Intelligroup, Inc. Confidential & proprietary60
Object Properties : The Advanced Tab
Uncheck the Sort option
-
8/6/2019 BO Designer _Intelligroup
61/168
61 2005 Intelligroup, Inc. Confidential & proprietary61
Remember to check integrity after creating objects
Checking Integrity
Wh t i M Obj t?
-
8/6/2019 BO Designer _Intelligroup
62/168
62 2005 Intelligroup, Inc. Confidential & proprietary
What is a Measure Object?
A measure object returns numeric information
A measure object is created by using aggregate functions
The five basic aggregate functions are:
Sum
Count
Maximum
Average
Minimum
AM i D i
-
8/6/2019 BO Designer _Intelligroup
63/168
63 2005 Intelligroup, Inc. Confidential & proprietary
AMeasure is Dynamic
Measure objects are semantically dynamic
H M W k t S l t L l (1)
-
8/6/2019 BO Designer _Intelligroup
64/168
64 2005 Intelligroup, Inc. Confidential & proprietary
How a MeasureWorks at Select Level (1)
H M W k t S l t L l (2)
-
8/6/2019 BO Designer _Intelligroup
65/168
65 2005 Intelligroup, Inc. Confidential & proprietary
How a MeasureWorks at Select Level (2)
Levels ofAggregation in Business Objects
-
8/6/2019 BO Designer _Intelligroup
66/168
66 2005 Intelligroup, Inc. Confidential & proprietary
Levels ofAggregation in Business Objects
Select
database
Project
Query Results
Aggregation
Aggregation
Aggregation at Projection Level
-
8/6/2019 BO Designer _Intelligroup
67/168
67 2005 Intelligroup, Inc. Confidential & proprietary
Aggregation at Projection Level
When projecting all variables in the micro cube no aggregation takes
place
When projecting only some variables from the micro cube aggregation
occurs
Setting Select / Projection Aggregates
-
8/6/2019 BO Designer _Intelligroup
68/168
68 2005 Intelligroup, Inc. Confidential & proprietary
Setting Select / Projection Aggregates
Statistically, only certain select / project aggregates are compatible.
Select Aggregate Recommended ProjectAggregate
Sum Sum
Count Sum
Average None or Average (not recommended)
Maximum Maximum
Minimum Minimum
Measure Object Properties : Definitions
-
8/6/2019 BO Designer _Intelligroup
69/168
69 2005 Intelligroup, Inc. Confidential & proprietary
Measure Object Properties : Definitions
Data Type must be a number
Select must be an aggregate
Measure Object Properties : Properties
-
8/6/2019 BO Designer _Intelligroup
70/168
70 2005 Intelligroup, Inc. Confidential & proprietary
Measure Object Properties : Properties
Object Type must be a
measure
Aggregate Function must
be appropriate for the
Select aggregate
Measures should not have
an Associated List ofValues
Viewing Object Parent Table(s)
-
8/6/2019 BO Designer _Intelligroup
71/168
71 2005 Intelligroup, Inc. Confidential & proprietary
Viewing Object Parent Table(s)
You can view the parent tables of an object by right-clicking on anobject and selecting the View Associated Table option
Testing Measure Objects
-
8/6/2019 BO Designer _Intelligroup
72/168
727/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
There are three elements to testing a dimension or detail object :
Testing Measure Objects
Measure objects need more thorough testing :
1 Check objects exist.
2 Check inferred SQL.
3 Check query results.
1 Check objects exist. 2 Check inferred SQL.
3. Check query results.
4. Repeat with otherdimensions.
5 Make a query with aminimum of twodimensions and ameasure.
6. Check projection with
Slice & Dice.
Testing Measure Objects at Select Level
-
8/6/2019 BO Designer _Intelligroup
73/168
737/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
GROUPBYCountry.country
GROUPBYCountry.country,Region.Region_Name
Testing Measure Objects at Select Level
Testing Measure Objects at Project Level
-
8/6/2019 BO Designer _Intelligroup
74/168
747/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
Testing Measure Objects at Project Level
An Aggregation Problem
-
8/6/2019 BO Designer _Intelligroup
75/168
757/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
An Aggregation Problem
The Group By clause groups each distinct dimension attribute and produces asingle measure value for that group. If you are not careful when creating a
query with dimensions and measures, this can result in misleading
information.
What is a loop?
-
8/6/2019 BO Designer _Intelligroup
76/168
76 2005 Intelligroup, Inc. Confidential & proprietary
What is aloop?
A loop exists when the joins between tables form a continuous path
How to deal with loops
-
8/6/2019 BO Designer _Intelligroup
77/168
77 2005 Intelligroup, Inc. Confidential & proprietary
How to deal with loops
One of two routines can be used to resolve most loop situations in theuniverse structure window.
Alias DetectionRoutine
Context DetectionRoutine
...and...
Must be done prior to usingdetection routines and done
correctly. Otherwise,routines may recommendincorrect solution.
Set Cardinality ManuallyforAll Joins
Cardinality Detection
-
8/6/2019 BO Designer _Intelligroup
78/168
78 2005 Intelligroup, Inc. Confidential & proprietary
Cardinality Detection
Cardinality not set: Set Cardinalities:
Do this manually:
What is an Alias ?
-
8/6/2019 BO Designer _Intelligroup
79/168
79 2005 Intelligroup, Inc. Confidential & proprietary
What is an Alias ?
An Alias is an exact duplicate of the original table with a new name. The
data in the table is exactly the same.
The Alias is used only to resolve the loop in the structure of the universe.
There is no impact on the schema of the database
Easy to define
Easy to maintain
Easy to use
When to Alias
-
8/6/2019 BO Designer _Intelligroup
80/168
80 2005 Intelligroup, Inc. Confidential & proprietary
When to Alias
A loop with a single lookuptable should be resolved by
an alias
A lookup table can beidentified by its cardinality
N N
N
N
N
1 1
1
1
1
Alookup table only has theone end of joins attached to it
Alias needed here
How to Alias
-
8/6/2019 BO Designer _Intelligroup
81/168
81 2005 Intelligroup, Inc. Confidential & proprietary
Designer routines detectloops and candidates for
aliases
Break the loop by creating an
alias of the lookup table foreach side of the loop
Some designers like to
create an alias for both
sides of the loop.Do not remove the
original table
Detecting and Creating Aliases
-
8/6/2019 BO Designer _Intelligroup
82/168
82 2005 Intelligroup, Inc. Confidential & proprietary
g g
Use the Alias Detection routine
Manually insert an alias
Use the Loop Detection routine
To create an alias table to break a loop, you can:
Using automatic loop detection
-
8/6/2019 BO Designer _Intelligroup
83/168
83 2005 Intelligroup, Inc. Confidential & proprietary
g p
Click the Detect Loops button
The routine checks the structure for loops
The Loop Detection window identifies each loop
The window suggests candidate contexts or aliases
Using Detect Aliases Routine
-
8/6/2019 BO Designer _Intelligroup
84/168
84 2005 Intelligroup, Inc. Confidential & proprietary
g
Click the Detect Aliases button
The routine lists candidate
Alias tables
You can rename the Alias
tables if required
Inserting an Alias Manually
-
8/6/2019 BO Designer _Intelligroup
85/168
85 2005 Intelligroup, Inc. Confidential & proprietary
g y
Select the table and click the Insert Alias button
Name the Alias table and click OK
Then reset the joins manually
Choosing which Alias Method to Use
-
8/6/2019 BO Designer _Intelligroup
86/168
86 2005 Intelligroup, Inc. Confidential & proprietary
g
Met A t es Disadvantages
Detect s Canview l s ef reappl ing t em
Mayshowother loops tobe resolvedbycontexts
Detect Aliases Findsall candidatealiasesexcl sively
Novisual checkprior toacceptance
Insert Alias Choose table toalias -minimizingobjectredefinition
Must understandhow toidentify theneed foracandidateanalysis
Whichever method you choose, you must always redefine objects that
now use the Alias table
Listing & Renaming Aliases
-
8/6/2019 BO Designer _Intelligroup
87/168
87 2005 Intelligroup, Inc. Confidential & proprietary
g g
You can list all aliases in a universe via the Tools > List ofAliases.
Drop down menu option.
You can also rename an alias via this panel.
Resolving Loops using Contexts
-
8/6/2019 BO Designer _Intelligroup
88/168
88 2005 Intelligroup, Inc. Confidential & proprietary
Customers
Sales SalLines
Loans LoansLines
Country
There are two possible routes through
the structure:
Sale_Model context
Rental_Model context
A context is merely a collection ofALL the joins on a single route.
Context name = table name on a route with only many cardinality.
Resolving Loops using Contexts
-
8/6/2019 BO Designer _Intelligroup
89/168
89 2005 Intelligroup, Inc. Confidential & proprietary
Rental_Model context
Sale_Model context
Each context represents
what may be inferred in a
single SELECTstatement.
Any query which infers
some SQL code
exclusive to one context
and some exclusive tothe other will infer two
separate SELECT
statements
A context is detected for
each route on which
there is a table with just
many cardinality.
Detecting and Creating Contexts
-
8/6/2019 BO Designer _Intelligroup
90/168
90 2005 Intelligroup, Inc. Confidential & proprietary
Detect Contexts detects and proposes a list
of contexts to create
Loop Detection routine: suggests candidates for both
aliases and contexts
Insert Contexts inserts a context manually
Display the contexts : View List Mode
-
8/6/2019 BO Designer _Intelligroup
91/168
917/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
Editing Contexts
-
8/6/2019 BO Designer _Intelligroup
92/168
92 2005 Intelligroup, Inc. Confidential & proprietary
Double click the context in the List Mode window
The context name
The highlighted joins are
included in the context
The description appears in theUser module Help panel
Loop Detection routine - the drawback
-
8/6/2019 BO Designer _Intelligroup
93/168
93 2005 Intelligroup, Inc. Confidential & proprietary
When you use Loop Detection and detect a number of loops:
The routine does not offer the Alias candidates first, so you may have to
update the Contexts after you have added the Alias tables
Loop 1 of 10
-
8/6/2019 BO Designer _Intelligroup
94/168
Shortcut Joins
-
8/6/2019 BO Designer _Intelligroup
95/168
95 2005 Intelligroup, Inc. Confidential & proprietary
If a query includes Client andCountry but NOT Region, the
Region joins are still needed in
the SQL.
But joining Country to Client
directly creates a loop
Inefficient!
Shortcut Joins - the solution
-
8/6/2019 BO Designer _Intelligroup
96/168
96 2005 Intelligroup, Inc. Confidential & proprietary
Edit the join to create a Shortcut join:
This is not a Loop!
Be aware of existing Contexts when you add the join: Shortcut joins are
not automatically added
Recursive table structures
-
8/6/2019 BO Designer _Intelligroup
97/168
977/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
These occur when a table acts as a lookup for itself
Each Employee has a Manager, who is also an Employee
But adding a Self Join creates
a single table loop where the
cardinality is unknown
These loops must be resolved
manually
Recursive table structures - the solution
-
8/6/2019 BO Designer _Intelligroup
98/168
98 2005 Intelligroup, Inc. Confidential & proprietary
Create an Alias of the lookup table
Manually set the cardinality
Test the results in the user module
Test the structure ofa universe
-
8/6/2019 BO Designer _Intelligroup
99/168
997/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
Check the syntax
Test in the User Module
What are Contexts
-
8/6/2019 BO Designer _Intelligroup
100/168
100 2005 Intelligroup, Inc. Confidential & proprietary
A context is simply a list of joins denoting a path between tables.
Contexts are set to identify alternative routes in the universe structure.
BusinessObjects detects a context for each alternative route on which
there is a table with just the many end of joins attached to it.
Contexts identify joins (and therefore tables) which are compatible withinthe same SELECT statement
Alternative Routes
-
8/6/2019 BO Designer _Intelligroup
101/168
101 2005 Intelligroup, Inc. Confidential & proprietary
Alternative routes do NOT only exist in loop scenarios.
Loop
2 Routes = 2 Contexts
Context 1
Context 2
Fork
Context 1
Context 2
2 Routes = 2 Contexts
How Contexts are Detected
-
8/6/2019 BO Designer _Intelligroup
102/168
102 2005 Intelligroup, Inc. Confidential & proprietary
A separate context is identified for each table with only the many end of
joins attached:
The joins in a context are identified by working back from the table with
only the many end of joins attached - many-one, many-one.
Identifying how many Contexts are required
-
8/6/2019 BO Designer _Intelligroup
103/168
103 2005 Intelligroup, Inc. Confidential & proprietary
You can arrange your universe structure so that all joins are flowing from the many ends at
the left to the one ends at the right.
Number ofcontexts
required = 2
Identifying the joins that make up a Context
-
8/6/2019 BO Designer _Intelligroup
104/168
104 2005 Intelligroup, Inc. Confidential & proprietary
The forward flowing joins form the Sale context No joins flowing back from
one to many are included
Why Apply Contexts
-
8/6/2019 BO Designer _Intelligroup
105/168
105 2005 Intelligroup, Inc. Confidential & proprietary
To resolve Fan Traps
To avoid Chasm Traps
You can also use contexts as part of the means to resolve fan traps.
However, unlike chasm traps, you must identify them first before theycan be resolved.
By detecting and setting contexts you will avoid the possibility of
experiencing a chasm trap. This assumes that you have engineered
cardinality correctly before detecting contexts.
The Chasm Trap
-
8/6/2019 BO Designer _Intelligroup
106/168
106 2005 Intelligroup, Inc. Confidential & proprietary
For a Chasm Trap to occur, there must be:
A
B C
X
Y Z
When a query is run which
uses objects Y and Z the
inferred SQL includes tables B,
C and A which have a many-
one-many relationship
respectively. This results in thevalues for each object to be
multiplied by the other. The
effect is similar to a cartesian
productbut is known as a
chasm trap.
The chasm trap is resolved by executing a separate SELECT statement for object Y and
object Z.
Chasm Trap : Universe Solutions
-
8/6/2019 BO Designer _Intelligroup
107/168
107 2005 Intelligroup, Inc. Confidential & proprietary
How can we avoid the chasm trap?
By inferring two separate SELECT statements and only then combining
the results of each one into microcube(s) for projection into block(s).
To infer two separate SELECT statements from a single BusinessObjects
query you can either:-
1A
lter theSQ
L parameters for theU
niverse
2 Use Contexts
The first method is NOT recommended as it only works with measures
and will result in certain inefficiencies in processing. The second method
works every time and will not result in inefficiencies.
The Classic Fan Trap
-
8/6/2019 BO Designer _Intelligroup
108/168
108 2005 Intelligroup, Inc. Confidential & proprietary
For a Fan Trap to occur, there must be:
X
Y
Z
When a query is run which uses objects Y and Z
the inferred SQL includes tables B and C which
have a one-many relationship. This results in a
value for the Y object being multiplied by the
number of values of the Z object related to that Y
object value. Like the chasm trap, the effect issimilar to a cartesian product.
Like the chasm trap, the fan trap can be resolved by executing a separate SELECT
statement for object Y and object Z. The alternative solution is to avoid it in the first place!
A
B
C
This is a common structure and will not normally
result ina fan trap. The trap only occurs where
(due to DB design) a column in table B holds data
values which are already a sum of those values
held at table C.
Classic Fan Trap : Solution
-
8/6/2019 BO Designer _Intelligroup
109/168
109 2005 Intelligroup, Inc. Confidential & proprietary
How can we avoid the fan trap?
By inferring two separate SELECT statements and only then combiningthe results of each one into microcube(s) for projection into block(s).
By avoiding the fan trap scenario in the first place!
Classic Fan Trap : Universe Solutions
-
8/6/2019 BO Designer _Intelligroup
110/168
110 2005 Intelligroup, Inc. Confidential & proprietary
1 Alter the SQL parameters for the Universe
2 Use a combination ofAliases and Contexts
NOTE: The first method is NOT recommended as it only works with measures and will
result in certain inefficiencies in processing. The second method works every time and
will not result in inefficiencies.
To infer two separate SELECT statements from a single BusinessObjects
query you can either:-
To avoid placing a measure on anything other than the last table in a
table path (i.e. the table with only many cardinality attached to it).
How Data is Restricted
-
8/6/2019 BO Designer _Intelligroup
111/168
111 2005 Intelligroup, Inc. Confidential & proprietary
The Where clause in an SQL statement restricts the number of rows
returned in the result set:
WHERE... join definitions ...
WHERE... join definitions ...
AN
D Country=United Kingdom
Methods of Restricting Data in BusinessObjects
-
8/6/2019 BO Designer _Intelligroup
112/168
112 2005 Intelligroup, Inc. Confidential & proprietary
Designers and Users are able to influence the SQL Where clause in
different ways:
Designers: Users:
Where clause in objects:Creating acondition object:
Using a conditionobject:
Self-Restricting Joins:
Additional Join
Information:
Defining a condition:
Filtering a report:
Restricting Objects
-
8/6/2019 BO Designer _Intelligroup
113/168
113 2005 Intelligroup, Inc. Confidential & proprietary
Adding a restriction to an object allows you to give a more precisedefinition:
Restricting Objects: the Drawbacks
-
8/6/2019 BO Designer _Intelligroup
114/168
114 2005 Intelligroup, Inc. Confidential & proprietary
Multiple objects prevent you from building logical default hierarchies.
You have to add a new object for each separate restriction.
The restrictions are not obvious to the end user.
If a combination of similarly restricted objects is included in a query, noresults are produced because the conditions conflict:
The User expects data for both French and Germanclients, but gets no results, because no client is bothFrench and German
For example:
Restricting Objects:Advantages
-
8/6/2019 BO Designer _Intelligroup
115/168
115 2005 Intelligroup, Inc. Confidential & proprietary
The one advantage of applying restrictions to objects is that the User isautomatically forced to apply the restriction - no choice.
On balance, it is better to avoid applying restrictions to an object unless
this is absolutely necessary.
This assists with ease of use.
Restricting Objects - aWorkaround
-
8/6/2019 BO Designer _Intelligroup
116/168
116 2005 Intelligroup, Inc. Confidential & proprietary
If you apply restrictions to objects forSales Revenue 1998 and
1999:
These drawbacks apply: multiple objects, conflicting restrictions.
Restricting Objects - aWorkaround
-
8/6/2019 BO Designer _Intelligroup
117/168
117 2005 Intelligroup, Inc. Confidential & proprietary
Use conditional Select clauses rather than restrictions on objects:
Multiple objects, but no conflicting restrictions
Condition Objects
-
8/6/2019 BO Designer _Intelligroup
118/168
118 2005 Intelligroup, Inc. Confidential & proprietary
Useful for complex conditions and for frequently used conditions
Better than applying restrictions to Objects because the User can choose
to add the condition
No multiple objects
Condition objects do not change the User view of the Dimension objects in
the Classes and Objects window
Condition Objects
-
8/6/2019 BO Designer _Intelligroup
119/168
119 2005 Intelligroup, Inc. Confidential & proprietary
Select Condition Object View
Insert a Condition Object
Condition object name
Description
Where clause
Applying Restrictions to Tables
-
8/6/2019 BO Designer _Intelligroup
120/168
120 2005 Intelligroup, Inc. Confidential & proprietary
If a table in your database has a flag which it uses to switch between 2 or
more domains, you can apply a restriction to the table using a SelfRestricting Join
The Advantage of using Table Restrictions
-
8/6/2019 BO Designer _Intelligroup
121/168
121 2005 Intelligroup, Inc. Confidential & proprietary
The restriction is applied whenever the table is inferred in the SQL,
irrespective of where in the SQL statement the table is inferred.
For example, if the table only appears in the FROM clause, the restrictionstill applies in the WHERE clause.
Multi Purpose Lookup Tables
-
8/6/2019 BO Designer _Intelligroup
122/168
122 2005 Intelligroup, Inc. Confidential & proprietary
Aquery Which countries do our clients come from? may also includecountries that are Showroom countries or Car Maker countries.
AdditionalJoins
-
8/6/2019 BO Designer _Intelligroup
123/168
123 2005 Intelligroup, Inc. Confidential & proprietary
You can restrict the data that is returned for an object by specifying
additional tables in the object properties.
You do this in the Tables
box
The restriction is created from thejoins between the tables
Select the relevant table:
When to Use each Restriction Method
-
8/6/2019 BO Designer _Intelligroup
124/168
124 2005 Intelligroup, Inc. Confidential & proprietary
Apply Restrictions to Objects when you need to force a restriction which is
not automatically inferred whenever the table is included in the SQL.
Use Condition Objects when you want to assist the end users by
predefining optional conditions.
Use Table Restrictions (Self-Restricting Joins) when you want the
restriction to be applied whenever the table is inferred in the SQL.
Use Additional Joins when a lookup table serves more than one purposein the universe.
The @ Functions
-
8/6/2019 BO Designer _Intelligroup
125/168
125 2005 Intelligroup, Inc. Confidential & proprietary
The @ Functions available are:
These Functions are applied in the Select
and Where boxes of objects
They are used to provide flexible
methods of specifying SQL
@Prompt
-
8/6/2019 BO Designer _Intelligroup
126/168
126 2005 Intelligroup, Inc. Confidential & proprietary
@Prompt is placed in an object as part of the Select or Where properties
When a query is run that includes the object, the @prompt of the object
forces a prompt box to appear
@Prompt Syntax
-
8/6/2019 BO Designer _Intelligroup
127/168
127 2005 Intelligroup, Inc. Confidential & proprietary
SHOWROOM.SHOWROOM_NAME = @PROMPT
Free or constrained (to value in LoV).. Constrained
Enter Showroom Name,The prompt.
A,Data Type (A, N or D)...
Showroom\Showroom,LoV Pointer....
Or hardcoded list : {A,B,C}
Mono,Mono or multi (LoV selection)..
(
)
Operator dependent on operand
@Select
-
8/6/2019 BO Designer _Intelligroup
128/168
128 2005 Intelligroup, Inc. Confidential & proprietary
@Select function acts as a pointer to the Select box of another object:
@Select (Class_Name\Object_Name)
Creates a dynamic link between objects, so that update of the original
object Select statement automatically updates the other objects
@Where
-
8/6/2019 BO Designer _Intelligroup
129/168
129 2005 Intelligroup, Inc. Confidential & proprietary
The @Where function acts as a pointer to the Where box of another object
Creates a dynamic link between objects, so that update of the original
object Where clause automatically updates the other objects or condition
objects
@Where - Designer Strategy
-
8/6/2019 BO Designer _Intelligroup
130/168
130 2005 Intelligroup, Inc. Confidential & proprietary
You can create a Class containing only Where clause objects, and hide the
Class from end Users - other objects use the Where clauses, but the Users
dont see the base objects.
How do Lists ofValues work?
-
8/6/2019 BO Designer _Intelligroup
131/168
131 2005 Intelligroup, Inc. Confidential & proprietary
A designer can create a LoV which is based on:
A query of the target database
A constant set of values held in a file
In both cases, the result is stored locally in a file on the User s PC.
Creating a List ofValues
-
8/6/2019 BO Designer _Intelligroup
132/168
132 2005 Intelligroup, Inc. Confidential & proprietary
A LoV is created within the Properties tab of an object
By default, Associate a List
and Allow Users to edit are
checked:
It is important to uncheck
this box for objects that
dont need a List
Controlling How Lists are Refreshed
-
8/6/2019 BO Designer _Intelligroup
133/168
133 2005 Intelligroup, Inc. Confidential & proprietary
Normally, the first time a LoV is used in a
User login session, the system
fires a query at the target database.
The results of this query are used to populate the list, and are stored in
the .lov file.
Thereafter, the .lov file from this query is used each time the List is
required.
Controlling How Lists are Refreshed
-
8/6/2019 BO Designer _Intelligroup
134/168
134 2005 Intelligroup, Inc. Confidential & proprietary
Not normally used - uncheck
this box
Check this box for frequently
changing lists
Check this box for edited lists
Modifying the Content ofa List ofValues
-
8/6/2019 BO Designer _Intelligroup
135/168
135 2005 Intelligroup, Inc. Confidential & proprietary
You can limit the values returned by applying a condition to the LoV
You can simplify the process of choosing a value forUsers by creating a
hierarchy for the LoV
You can supply a personal data file containing the values for the list,
instead of using the results of the query
Applying a Condition to a List ofValues
-
8/6/2019 BO Designer _Intelligroup
136/168
136
2005 Intelligroup, Inc. Confidential & proprietary
Click Edit in the Properties box:
Apply the condition in the Query Panel:
Creating a Hierarchy for a List ofValues
-
8/6/2019 BO Designer _Intelligroup
137/168
137
2005 Intelligroup, Inc. Confidential & proprietary
Click Edit in the Properties box:
Place the hierarchy objects (which must be
sorted) to the right of the LoV object in the
Query Panel:
Creating a Hierarchy for a List ofValues
-
8/6/2019 BO Designer _Intelligroup
138/168
138
2005 Intelligroup, Inc. Confidential & proprietary
The resulting Hierarchical View of the LoV makes it easier to select the
required value:
Country:
Town:
Showroom:
What Is a Hierarchy?
-
8/6/2019 BO Designer _Intelligroup
139/168
1397/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
U.K.
North South
Liverpool Manchester Newcastle London Southampton Bristol
Level in Hierarchy Data Returned
What Is a Default Hierarchy?
-
8/6/2019 BO Designer _Intelligroup
140/168
1407/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
A Default Hierarchy is the hierarchy based on the order of the
Objects within the Class
Default Hierarchies arerepresented in the Usermodule by the order in whichDimension Objects areorganized in the Classes andObjects box of the QueryPanel
The Key to Creating Default Hierarchies
-
8/6/2019 BO Designer _Intelligroup
141/168
141
2005 Intelligroup, Inc. Confidential & proprietary
The designer must ensure, wherever possible, that Dimension Objectsare organized from the most general to the most specific within the
Class
How are Hierarchies used in Analysis?
-
8/6/2019 BO Designer _Intelligroup
142/168
14
27/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
Dimension Objects represent the levels in a hierarchy:
Top Level
Level 1
Level 2
Level 3
A Measure can be analyzed at each level
What IsA Custom Hierarchy?
-
8/6/2019 BO Designer _Intelligroup
143/168
143
7/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
A Custom Hierarchy combines Objects from Default Hierarchies
to build a CustomA
nalysis Path
Default Hierarchies
Custom Hierarchy
Creating Custom Hierarchies
-
8/6/2019 BO Designer _Intelligroup
144/168
144
7/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
Add Objects from Default Hierarchies to build a new Custom Hierarchy
(orTools,
Hierarchies)
The Effect of Custom on Default Hierarchies
-
8/6/2019 BO Designer _Intelligroup
145/168
14
5 2005 Intelligroup, Inc. Confidential & proprietary
User module Scope ofAnalysis after a Custom Hierarchy has been
created:
No Default Hierarchies are shown
The Effect of Custom on Default Hierarchies
-
8/6/2019 BO Designer _Intelligroup
146/168
146
2005 Intelligroup, Inc. Confidential & proprietary
Selected Default Hierarchies can be added to the Custom Hierarchies in
Designer module
Why Is Time ASpecial Case?
-
8/6/2019 BO Designer _Intelligroup
147/168
1477/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
Sale Date25/11/99
Month Year
Quarter
Day
Creating Time Hierarchies
-
8/6/2019 BO Designer _Intelligroup
148/168
1487/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
Automatic Time Hierarchies
Using Database Functions
Table Based Time Hierarchies
What is Aggregate Awareness
-
8/6/2019 BO Designer _Intelligroup
149/168
149
2005 Intelligroup, Inc. Confidential & proprietary
Some databases have Summary Tables which contain figures aggregated
to a high level.
These are used to speed up queries which contain statistics (for
example, Revenue) reported at, for instance, year rather than event level.
Aggregate Awareness is the BusinessObjects process by which these
higher level aggregates are incorporated into a universe.
Summary Tables
-
8/6/2019 BO Designer _Intelligroup
150/168
150 2005 Intelligroup, Inc.
Confidential & proprietary
Check the columns in the Summary Table:
The other columns relate to objects
that require @AggregateAware
definitions
Foreign Key columns are used for
the joins
Note that Summary Tables without Foreign Keys do not need joins - they
can be free floating tables.
How Summary Tables are used in SQL
-
8/6/2019 BO Designer _Intelligroup
151/168
151 2005 Intelligroup, Inc.
Confidential & proprietary
Aggregates of a normalized database are based on event / fact level data.
Sale
226 rows
Sale_Model
233 rows
Model
33 rows
Sales Revenue = sum(SALE_MODEL.SALE_QTY * MODEL.MODEL_PRICE *((100 - SALE.SALE_SALE_DISCOUNT) / 100))
Summary tables may be added to a database which hold data at a higher
level of aggregate.Annual_Figures
26 rows
Sales Revenue = sum(ANNUAL_FIGURES.ANNUAL_SALE_VALUE)
Making use of summary table data speeds up response times.
Procedure forApplying Aggregate Awareness
-
8/6/2019 BO Designer _Intelligroup
152/168
152 2005 Intelligroup, Inc.
Confidential & proprietary
1 Insert the Summary Table(s) in the universe structure; set joinsand cardinality
2 Set the contexts
3 Redefine objects using @AggregateAware
4 Define incompatible objects using Aggregate Navigation
Step 1: Inserting a Summary Table & Setting Joins
-
8/6/2019 BO Designer _Intelligroup
153/168
153 2005 Intelligroup, Inc.
Confidential & proprietary
Add the Summary Table to the structure
Set the joins and the cardinality
Step 2: Detecting Contexts
-
8/6/2019 BO Designer _Intelligroup
154/168
154 2005 Intelligroup, Inc.
Confidential & proprietary
Set the contexts The Annual_Figures context
Step 3: Redefining Objects
-
8/6/2019 BO Designer _Intelligroup
155/168
155 2005 Intelligroup, Inc. Confidential & proprietary
Edit the objects affected by the Summary Table.
@AggregateAware Syntax:
@AggregateAware(Definition1,Definition2,,DefinitionN)
From the most to the least Aggregated
The last definition must be valid for all the queries
Step 4: Incompatible Objects
Aggregate aware objects can only be compatible with objects derived
-
8/6/2019 BO Designer _Intelligroup
156/168
156 2005 Intelligroup, Inc. Confidential & proprietary
Aggregate aware objects can only be compatible with objects derived
from tables in the same context as the summary table
Incompatible objects are specified using Aggregate Navigation
Step 4: Aggregate Navigation
-
8/6/2019 BO Designer _Intelligroup
157/168
157 2005 Intelligroup, Inc. Confidential & proprietary
Select the Summary Table: Check each object for compatibility
against the context and the select
of the object .
Individual objects are checked to
define them as incompatible
The Aggregate Navigation box is opened from the Tools menu
Testing Aggregate Awareness
-
8/6/2019 BO Designer _Intelligroup
158/168
158 2005 Intelligroup, Inc. Confidential & proprietary
As with any universe element, you must always test the results in the
User module.
Run queries using the aggregated measures from the Summary Table.
Use both compatible objects and incompatible objects in different
queries to make sure all levels ofAggregate Awareness are operating
correctly.
Aggregate Awareness as Preferential Coding
-
8/6/2019 BO Designer _Intelligroup
159/168
159 2005 Intelligroup, Inc. Confidential & proprietary
The aggregate awareness functionality in BusinessObjects can be
viewed simply as a method of specifying preferential or conditionalcoding.
When viewed from this perspective you can begin to see the true
potential of aggregate awareness functionality within the Designer
module.
Aggregate awareness functionality can be used for purposes other than
taking into account summary tables to improve the efficiency of a
universe.
Select the Tools, Options menu then click on the Print tab to select what toi t
Documenting a Universe
-
8/6/2019 BO Designer _Intelligroup
160/168
1607/1/2011 2005 Intelligroup, Inc. Confidential & proprietary
print
Select the File, Print menu to print
Linking Universes
-
8/6/2019 BO Designer _Intelligroup
161/168
161 2005 Intelligroup, Inc. Confidential & proprietary
Within a universe (B) it is possible to dynamically link to another universe
(A).
UniverseA
UniverseB
Universe
A
This has the effect of making it appear as though the classes, objects and
structure of universe A are part of universe B. However, they are just a lookup
(signified by the fact they are greyed out) to universe A and can not be edited in
universe B.
Why Link Universes : The Kernel Approach
-
8/6/2019 BO Designer _Intelligroup
162/168
162 2005 Intelligroup, Inc. Confidential & proprietary
One possible reason for linking universes is where you have a number of
universes, each of which contains the same core set of objects. By
creating each universe as a separate entity you are effectively coding thesame objects several times over. By linking you could avoid this.
KernelA
DerivedB Derived C
Universe
A
Universe
A
Holds core objects
Edit objects/structure inKernel universe and changesare automatically reflected
in the Derived universes Band C.
Linking Universes : Things to Watch Out For
You can only link to a universe if that universe has been exported to the
-
8/6/2019 BO Designer _Intelligroup
163/168
163 2005 Intelligroup, Inc. Confidential & proprietary
Linking only links in classes, objects and structure from one universe to
another. It does not link contexts. The contexts of the derived universe
will have to be altered to accommodate the linked tables joins.
The linked structure will have to be joined to the native structure of the
derived universe to avoid Cartesian products.
y p
repository first.
Only ever contemplate linking universes which are part of the same
universe domain in the BusinessObjects repository and will remain so.
You can only use one level of linking.
Making a Link
-
8/6/2019 BO Designer _Intelligroup
164/168
164 2005 Intelligroup, Inc. Confidential & proprietary
Click and click on the Links tab
Click Add Link...
Choose universe tolink and click Open
The Derived Universe
-
8/6/2019 BO Designer _Intelligroup
165/168
165 2005 Intelligroup, Inc. Confidential & proprietary
The linked universe structure and objects cannot be edited in the derived
universe
The linked universe should be treated as though they were new tables
inserted in the derived universe. The same procedure should be applied
(i.e.insert new joins and edit contexts).
Why Link Universes : Include (Copy)
Another possible reason for linking universes is that you wish to copy
ll th l bj t d t t f i t th Y
-
8/6/2019 BO Designer _Intelligroup
166/168
166 2005 Intelligroup, Inc. Confidential & proprietary
all the classes, objects and structure from one universe to another. You
could do this by first linking from universe B to A and then use the
Include function to sever the link thus making the classes, objects and
structure of universe A part of universe B. In effect this is a way of
quickly copying everything in one universe to another,
UniverseB
UniverseAUniverseA
LINKInclude
UniverseB
Included Universes
I l d d i b t f th i
-
8/6/2019 BO Designer _Intelligroup
167/168
167 2005 Intelligroup, Inc. Confidential & proprietary
Included universes become part of the new universe
-
8/6/2019 BO Designer _Intelligroup
168/168
Thank you