BO Designer _Intelligroup

Embed Size (px)

Citation preview

  • 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