BO_Designer1

Embed Size (px)

Citation preview

  • 8/3/2019 BO_Designer1

    1/67

    Business Objects

    Designer

    Desktop Intelligence (Reporting)

    Info view/Web Intelligence

    CMC

  • 8/3/2019 BO_Designer1

    2/67

    What is Business Objects

    Business Objects is an integrated query, reporting andanalysis software used as the interface to the Data

    Warehouse.

    Business Objects provides integrated query, reporting,and analysis for the enterprise.

    It is a web enabled, full-client product that allowsusers to easily track, understand, and manage the wealth

    of information stored in multiple data sources withinand beyond the enterprise.

  • 8/3/2019 BO_Designer1

    3/67

    UNIVERSE DESIGNER

    Business Objects Designer is a software tool that allows you to

    create universes for Web Intelligence and Desktop Intelligenceusers.

    Universe is a semantic layer between data base and businessobjects which converts data base tables and columns into classesand objects in BO.

    Designer provides a graphical interface that allows you to selectand view tables in a database. The database tables are represented

    as table symbols in a schema diagram. You can use this interfaceto manipulate tables, create joins that link the tables, create aliastables, contexts, and solve loops in your schema.

  • 8/3/2019 BO_Designer1

    4/67

    A schema of the tables and joins used in the database. Objectsare built from the database structures that you include in yourschema. The schema is only available to Designer users. It is not

    visible to Web Intelligence and Desktop Intelligence users.

    Web Intelligence users connect to a universe, and run queriesagainst a database. They can do data analysis and create reportsusing the objects in a universe, without seeing, or having to knowanything about, the underlying data structures in the database.

  • 8/3/2019 BO_Designer1

    5/67

    The role of a universe is to provide an easy to use and understand

    interface for non technical Web Intelligence users to run queriesagainst a database to create reports and perform data analysis.

    As the universe designer, you use Designer to create objects that

    represent database structures, for example columns and databasefunctions, that users need to access and query, to get the informationnecessary to meet their business requirements.

    The objects that you create in the universe must be relevant to the

    end user business environment and vocabulary. Their role is topresent a business focussed front end to the SQL structures in thedatabase.

  • 8/3/2019 BO_Designer1

    6/67

    What does a universe contain?

    Classes

    Objects

    A class is a logical grouping of objectswithin a universe. It represents a category ofobjects.

    An object is a named component that mapsto data or a derivation of data in thedatabase.

  • 8/3/2019 BO_Designer1

    7/67

    In Business Objects, objects are qualified as one of three types:dimension, detail, or measure.

    Dimension : Parameters for analysis. Dimensions typically relate to ahierarchy such as geography, product, or time. For example Last Name

    and City_Id

    Detail : Provide a description of a dimension, but are not the focusfor analysis. For example Phone Number

    Measure : Convey numeric information which is used to quantify adimension object. For example Sales Revenue

  • 8/3/2019 BO_Designer1

    8/67

  • 8/3/2019 BO_Designer1

    9/67

    How do you use Designer to create universes?

    Designer provides a connection wizard which allows you toconnect to your database middleware.

    You can create multiple connections with Designer, but only one

    connection can be defined for each universe. This databaseconnection is saved with the universe.

    Designer allows you to distribute universes by importing and

    exporting universes to the Central Management Console (CMC)repository.

  • 8/3/2019 BO_Designer1

    10/67

    What are universe parameters?

    Universe parameters are definitions and restrictions that you

    define for a universe that identify a universe and its databaseconnections, specify the type of queries that can be runusing the universe, and set the controls on the use of systemresources.

    You define universe parameters from the UniverseParameters dialog box (File > Parameters) when you create auniverse. The database connection is the only parameter that

    you must manually select or create when you create a newuniverse.

  • 8/3/2019 BO_Designer1

    11/67

    Selecting strategies :

    A strategy is a script that automatically extracts structural

    information from a database or flat file. Strategies havetwo principle roles:

    Automatic join and cardinality detection (Join strategies)

    Automatic class, object, and join creation (Objects and

    Joins strategies)

    Strategies can be useful if you want to automate the

    detection and creation of structures in your universebased on the SQL structures in the database.

  • 8/3/2019 BO_Designer1

    12/67

    What is a connection?

    A connection is a named set of parameters that defineshow a Business Objects application accesses data in adatabase file. It is the link between Business Objects and

    your database.

    You must have a connection between your BusinessObjects application and your database in order to access

    your data.

  • 8/3/2019 BO_Designer1

    13/67

    Connection Types :

    Personal Connection :

    A personal connection is used to access resources such as universesor documents.

    It can be used only by the user who created it.

    Information about a personal connection is stored in both the

    PDAC.LSI and PDAC.SSI files. Its definition is static and cannot bemodified.

    You could use personal connections in the followingsituations:To access personal data on local machineTo access Specific database accounts to test SQL sample through

    the Free hand SQL option in BO.

  • 8/3/2019 BO_Designer1

    14/67

    Shared Connection :

    A shared connection is used to access common resources such as

    universes or documents.

    It can be used by several users. Information about a sharedconnection is stored in a SDAC.LSI or SDAC.SSI file;

    Its definition is updated dynamically.

  • 8/3/2019 BO_Designer1

    15/67

    Secured Connection :

    A secured connection is used to access universes or documentsthat may be restricted or confidential.

    It can be shared by several authorized users stored in therepository.

    The definition of a secured connection is updated dynamically.

  • 8/3/2019 BO_Designer1

    16/67

    How to Import built universes from CMS

    File Import

    Using the above option wecan import the universe

    which are exported toServer.

  • 8/3/2019 BO_Designer1

    17/67

    You can import one or more universes stored in a universe folderin the repository. You can only import a universe that has alreadybeen exported to the repository.

    When you import a universe, the CMS checks the universe versionon the repository file system. If the version is identical, theuniverse is made available to Designer. If the universe version onthe repository file system is more recent than the CMS version, a

    message box appears asking if you want to replace the universe inthe folder. If you answer Yes, then the universe on the repositoryfile system is replaced by the version in the CMS.

  • 8/3/2019 BO_Designer1

    18/67

  • 8/3/2019 BO_Designer1

    19/67

    How are universes used?

    Universes are used by Desktop Intelligence and Web Intelligenceusers for reporting and analysis. The universe should provide them

    with classes and objects relevant to their business domain.Theuniverses are stored in the Crystal Management System (CMS)repository. An end user connects to a universe from a DesktopIntelligence or web browser.

    The connection to the database is defined in the universe, so byconnecting to the universe, the end user automatically has access tothe data. The access to data is in turn restricted by the objects thatare available in the universe.

  • 8/3/2019 BO_Designer1

    20/67

  • 8/3/2019 BO_Designer1

    21/67

    Joins :

    A join is a condition that links the data in separate but

    related tables. The tables usually have a parent-childrelationship. If a query does not contain a join, the databasereturns a result set that contains all possible combinationsof the rows in the query tables. Such a result set is knownas a Cartesian product and is rarely useful.

    You use joins to ensure that queries returning data frommultiple tables do not return incorrect results. A joinbetween two tables defines how data is returned when bothtables are included in a query.

  • 8/3/2019 BO_Designer1

    22/67

    Linking all tables in the schema with joins ensures that yourestrict the number of ways that data from columns indifferent tables can be combined in a query. Joins limit

    column combinations between tables to matching orcommon columns. This prevents result data being returnedthat contains information from columns that have no sensebeing matched.

  • 8/3/2019 BO_Designer1

    23/67

    Equi-Joins

    Link tables based on the equality between the values in the

    column of one table and the values in the column ofanother. Because the same column is present in both tables,the join synchronizes the two tables.

    Theta Joins

    Link tables based on a relationship other than equality

    between two columns.

  • 8/3/2019 BO_Designer1

    24/67

    Outer Joins

    Link two tables, one of which has rows that do notmatch those in the common column of the other table.

    Shortcut Joins

    Join providing an alternative path between two tables,bypassing intermediate tables, leading to the sameresult, regardless of direction. Optimizes query time bycutting long join paths as short as possible.

  • 8/3/2019 BO_Designer1

    25/67

    Connectivity and Cardinality

    The connectivity of a relationship describes the mapping of

    associated entity instances in the relationship.

    The values of connectivity are "one" or "many".

    The cardinality of a relationship is the actual number of relatedoccurrences for each of the two entities

  • 8/3/2019 BO_Designer1

    26/67

    Cardinality :

    A Property of a relationship between objects in a databasedescribing how many objects of type A are associated with howmany objects of type B.

    Cardinality expresses the minimum and maximum number of

    instances of an entity B that can be associated with an instance of anentity A. The minimum and the maximum number of instances canbe equal to 0, 1, or N. Because a join represents a bidirectionalrelationship, it must always have two cardinalities. If you selected theDetect cardinalities in joins options in the Database tab of the

    Options dialog box, Designer detects and retrieves the cardinalitiesof the joins. If you do not use this option, you can still retrieve thecardinalities for one or all joins in the universe.

  • 8/3/2019 BO_Designer1

    27/67

    Types of Connectivity Relations

    One-to-One (1:1)Relationship is when at most one instance of a entity

    A is associated with one instance of entity B

    One-to-Many (1:N)Relationship is one instance of entity A, there are

    zero, one, or many instances of entity B, but for oneinstance of entity B, there is only one instance of

    entity A

  • 8/3/2019 BO_Designer1

    28/67

    Many-to-Many (M:N)

    One instance of entity A, there are zero, one, ormany instances of entity B and for one instance ofentity B there are zero, one, or many instances ofentity A

    We wont use this property for joins in BusinessObjects.

  • 8/3/2019 BO_Designer1

    29/67

    How are cardinalities used In Designer?

    The cardinality of a join does not have a role in the SQL

    generated when you run a query. However, Designer usescardinalities to determine contexts and valid query paths.

  • 8/3/2019 BO_Designer1

    30/67

    Memory allocation for the connectionserver

    Seconds to allow while connectingto DB

  • 8/3/2019 BO_Designer1

    31/67

    Array Fetch size :

    Array Fetch Size is a parameter of universe connection sothat you can retrieve a larger number of rows each timeyou go to the database.

    Array fetch size is an attempt to set the number of rowsreturned in a packet from the database

    Maximum size is 500

  • 8/3/2019 BO_Designer1

    32/67

    Array Bind size :

    Array Bind Size is a parameter of universe connection sothat you can set how much data can be held in memorybefore being written to the repository. It is the memory

    allocation for connection server which is introduced fromBO XI version.

    It has very small impact on the performance than ArrayFetch parameter.

  • 8/3/2019 BO_Designer1

    33/67

    Login timeout :

    It relates to the universe connection to the data source. AsBO Enterprise connection server connects to the datasource, the user id and pwd in the connection parameters

    are passed to the data source.This parameter setting allows you to increase the numberof seconds the connection server will attempt to log in tothe data source before returning an error message.

  • 8/3/2019 BO_Designer1

    34/67

    Join path problems in universe

    A join path is a series of joins that a query can use to accessdata in the tables linked by the joins.

    Join path problems can arise from the limited way thatlookup and fact tables are related in a relational database.

    The three major join path problems that you encounterwhen designing a schema are the following:

    loops

    chasm traps

    fan traps

  • 8/3/2019 BO_Designer1

    35/67

    You can solve all these problems by creating aliases (a copy ofa base table), contexts (a defined join path), and using featuresavailable in Designer to separate queries on measures or

    contexts.

    We can solve loops by creating aliases (a copy of a basetable), contexts (a defined join path), and using featuresavailable in Designer to separate queries on measures orcontexts.

    What is a loop ?

    It is an occurrence of more than one path exists fromone table to another table. That means loops occur whenthere are two different paths to accomplish one join.

  • 8/3/2019 BO_Designer1

    36/67

    Two Types of Loop Problem:

    1) FANTRAP PROBLEM :

    Definition: Two One-to-many table link each other is in turnlinked another one-to-many table.

    2) CHASM TRAP PROBLEM :

    Definition: Two Many-to-one table converges on one singlelookup table.

    Loop can be detected while INTEGRITY CHECK is done. Anoption is there as "Check for LOOPS" available. By "DetectLoop" we can choose what to be applied for solving the loop.

  • 8/3/2019 BO_Designer1

    37/67

    Fan Trap

    Chasm trap

    Trap

    h

  • 8/3/2019 BO_Designer1

    38/67

    What is Fan trap?

    A fan trap is a type of join path between three tables whena one-to-many join links a table which is in turn linked byanother one-to-many join. The fanning out effect of one-to-many joins can cause incorrect results to be returned

    when a query includes objects based on both tables.

    You cannot automatically detect fan traps. You need tovisually examine the direction of the cardinalities displayed inthe table schema.

  • 8/3/2019 BO_Designer1

    39/67

    What is Chasm trap?

    A chasm trap is a type of join path between three tables

    when two many-to-one joins converge on a single table,and there is no context in place that separates the convergingjoin paths.

    The chasm trap causes a query to return every possiblecombination of rows for one measure with every possible

    combination of rows for the other measure.

  • 8/3/2019 BO_Designer1

    40/67

    Defining Aliases!

    An Alias is a table that is an exact duplicate of the

    original table (base table), with a different name. The datain the table is exactly the same as the original table, but thedifferent name "tricks" the SQL of a query to accept thatyou are using two different tables.

  • 8/3/2019 BO_Designer1

    41/67

    Define Contexts!

    The most common use of contexts is to separate two

    query paths, so that one query returns data for one path,and the other query returns data for another path of facttable. You use contexts to direct join paths in a schema

    where Aliases are not appropriate.

  • 8/3/2019 BO_Designer1

    42/67

    When you save a universe, the changes are not saved to the

    CMS. You must export the universe to the CMS when youhave completed updating a universe.

    The universes stored in the CMS server are used for versioncontrol. When you export an updated universe to therepository, the updated universe is copied to the CMS server.

  • 8/3/2019 BO_Designer1

    43/67

    Saving a universe definition as PDF

    You save the universe information as an Adobe PDF

    file. You can save the same information that you canprint out for a universe. This information includes:

    General information: parameters, linked universes, and

    the graphical table schema.

    Component lists: lists of components in the universe

    including objects, conditions, hierarchies, tables, joins,

    and contexts. Component descriptions: descriptions for the objects,

    conditions, hierarchies, tables, joins, and contexts in theuniverse.

  • 8/3/2019 BO_Designer1

    44/67

    Aggregate Tables

    Aggregate tables are database tables contain summarized

    data at different levels.Aggregate tables contain informationthat has a coarser granularity (fewer rows) than the detaildataused to load other tables.

    For example, in a retail database, the transaction-level datadrawn from the online transaction processing (OLTP)system might be in the form of individual sales receipts.

    The Sales_Receipts fact table would contain this detaildata, but the records in that table might also be aggregatedover various time periods to produce a set of aggregatetables

  • 8/3/2019 BO_Designer1

    45/67

    An aggregate table is created with a standard CREATETABLE statement at Database level.

    It does not have to share a primary key/foreign keyrelationship with other tables in the database. However, acommon design strategy is to create a "family" of aggregatetables, including one that references one or more aggregatedimension tables known as derived dimensions.

    This strategy optimizes query-rewriting performance.

  • 8/3/2019 BO_Designer1

    46/67

    Usage of aggregate tables in Designer

    You can use features in Designer to allow you to define

    the Select statement for an object to run a query againstaggregate tables in the database instead of the basetables. You can set conditions so that a query will be runagainst aggregate tables when it optimizes the query, and

    if not, then the query will be run against the base tables.This ability of an object to use aggregate tables tooptimize a query is called aggregate awareness.

  • 8/3/2019 BO_Designer1

    47/67

    Aggregate awareness is a term that describes the abilityof a universe to make use of aggregate tables in a

    database. These are tables that contain pre-calculateddata. You can use a function called @Aggregate_Awarein the Select statement for an object that directs a queryto be run against aggregate tables rather than a table

    containing non aggregated data.

    Using aggregate tables speeds up the execution ofqueries, improving the performance of SQL transactions.

  • 8/3/2019 BO_Designer1

    48/67

  • 8/3/2019 BO_Designer1

    49/67

    3 years x 3 countries x 3 companies = 27 rows

    So, in this example, 27 rows from a table are sufficient toanswer the question. Based on this information, it would befar more efficient to pre summarize these rows intoaggregate tables.

  • 8/3/2019 BO_Designer1

    50/67

    Creating User defined variable object:

  • 8/3/2019 BO_Designer1

    51/67

    Creating User defined variable object:

  • 8/3/2019 BO_Designer1

    52/67

    Working with Classes and Objects :

    Classes and Objects can be renamed, deleted, hidden

    and modified. You can do all these by using itsproperties window.

    Creating an user defined object

    You create objects in the Universe pane. WebIntelligence users identify an object by its name andqualification. You can create objects manually in the

    Universe pane using the existing variables andfunctions based on end users report requirement.

  • 8/3/2019 BO_Designer1

    53/67

    SQL Editor to create an Object:

    You can use an SQL editor to help you define the Selectstatement or a Where clause for an object. The SQLEditor is a graphical editor that lists tables, columns,

    objects, operators, and functions in tree views. You candouble click any listed structure to insert it into the Selector Where boxes.

    Most of the user defined variables we create are dynamic.

  • 8/3/2019 BO_Designer1

    54/67

    A measure object returns numeric information. You create

    a measure by using aggregate functions. The five mostcommon aggregate functions are the following:

    Sum

    Count Average

    Minimum

    Maximum

  • 8/3/2019 BO_Designer1

    55/67

    Using List Of Values:

    A list of values is a list that contains data values

    associated with an object. A list of values can containdata from two types of data sources.

    Database file : When you create an object, Designer

    automatically associates a list of values with the object.The list of values is not created until a user, or you thedesigner, choose to display a list of values for the objectin the query panel.The returned data is stored in a file

    with a .lov extension in the userdocs folder.

    External file : Personal data. For Ex: text file/Excel filecan be associated with a list of values.

  • 8/3/2019 BO_Designer1

    56/67

    A .LOV file is also created whenever any condition isapplied to an object in the query panel that requires arestriction on the column values inferred by the object.

    The list of values for an object appears showing valuesavailable for an object, allowing the user to choose theterms for the condition. The first time a list of values is

    used, it is saved as .lov file in the user data folder in thebusiness objects path. This allows the SELECTDISTINCT query to be run only once for an object.

    This folder also stores the .lov files created in designerwhich are used to restrict the list of values returned forobjects for which the designer wants to control access tothe data.

  • 8/3/2019 BO_Designer1

    57/67

    Using @Functions

    @Functions are special functions that provide more

    flexible methods for specifying the SQL for an object.@Functions are available in the Functions pane of theEdit Select box for an object.

    @Functions are very flexible. Depending on what youwant to achieve, you can use any @function in either aSelect statement, or a Where clause.

  • 8/3/2019 BO_Designer1

    58/67

    @Aggregate_Aware

    The @Aggregate_Aware function allows an object to take

    advantage of tables containing summary data in thedatabase. If your database contains summary tables and youare running queries that return aggregate data, it is quickerto run a Select statement on the columns that containsummary data rather than on the columns that contain factor event data.

    You can use the @Aggregate_Aware function to set up

    aggregate awareness in a universe. This process includes anumber of other steps which are associated with the use ofthe @Aggregate_Aware function.

  • 8/3/2019 BO_Designer1

    59/67

    Syntax

    @Aggregate_Aware(sum(agg_table_1), ...

    sum(agg_table_n))

    Ex:

    @Aggregate_Aware(sum(AAYEAR.REVENUE),sum(AAQTR.REVENUE),sum(AAMONTH.REVENUE),sum(PRODUCTS.PRICE*ORDER_LINES.QUANT))

  • 8/3/2019 BO_Designer1

    60/67

    @Prompt

    You can use the @Prompt function to create an

    interactive object. You use a @Prompt function in theWhere clause for an object. It forces a user to enter avalue for a restriction when that object is used in a query.When the user runs the query, a prompt box appears

    asking for a value to be entered.

    @Prompts are useful when you want to force a restrictionin the inferred SQL but do not want to preset the value

    of the condition.

  • 8/3/2019 BO_Designer1

    61/67

    Syntax

    The syntax of the function is as follows:

    @Prompt(message,type,[lov],[MONO|MULTI],[FREE|CONSTRAINED])

  • 8/3/2019 BO_Designer1

    62/67

    Hierarchies :

    Tools Hierarchies

    The hierarchies editor appears. Designer representshierarchies with a folder symbol and dimensions with a

    cube symbol.

    The left pane list all the classes that contain dimensionobjects in the active universe. The right pane shows all

    the customized hierarchies that you create.

  • 8/3/2019 BO_Designer1

    63/67

    Linking of the universes :

    Linked universes are the universes that share commoncomponents such as parameters, classes, objects or joins.

    When you link two universes one universe has the roleof a core universe, the other is a derived universe. Whenthe changes are made in core universe, they are

    automatically propagated to the derived universe.

  • 8/3/2019 BO_Designer1

    64/67

    What is core universe ?

    The core universe is a universe to which other universe are

    linked. It contains components that are common to theother universes linking to it. These universes are calledderived universes. The core universe represents a re-usablelibriary of components. A core universe can be a kernal ormaster universe depending on the way the core universecomponents are used in the derived universes.

    What is derived universe?

    A derived universe is a universe that contains a link to thecore universe. The link allows the derived universe to sharecommon components of the core universe.

  • 8/3/2019 BO_Designer1

    65/67

    Advantages of linked universe

    You can link the active universe to a core universe,only if the following requirements are met;

    The core universe and derived universe use the same

    data account or data base and the same RDBMS.Using the same connection for both the core and thederived universe makes managing the universe easier,but this can be changed at any time.

  • 8/3/2019 BO_Designer1

    66/67

    Restrictions when linking universes

    All classes and objects are unique in both the coreuniverse and the derived universe. If not conflicts

    occur.

    The two universe structures must allow joins to becreated between a table in one universe to a table inthe other universe. If not then Cartesian product canresult when a query is run with objects from both

    structures.Only the table schema, classes and objects of thecore universe are available in the derived universe,contexts must be redetected in the derived universe.

  • 8/3/2019 BO_Designer1

    67/67

    Thankyou