Upload
sravan001
View
219
Download
0
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