Upload
sreehari-chepuri
View
515
Download
1
Embed Size (px)
Citation preview
How to Create Objects and Classes
by BIDW TEAM on NOVEMBER 1, 2010
Now we have understood how to insert tables and create relationship amongst them. This posts covers how to create different types of
objects in Business Objects Universe objects.
Classes
Classes are nothing but a logical group of objects. Classes are represented as a folder in a universe. Classes are very useful to group
related objects in order to locate them fast and for better organization of universe. The order of objects in a particular class forms a default
hierarchy from top to down order.
Classes can also contain sub classes and objects can’t exist without classes.
How to create a class
There are three ways you can create class
Right click on the free area of left tree bar and click on class OR
From insert menu, select class OR
From tool bar click on insert class icon
An create class dialog will appear provide the name and description of class and click on ok
To create sub classes repeat above process by click on a particular class under which you want to create subclass
Objects
Objects represent a database column or an expression in a Business Objectsuniverse. These objects are represented as different icon
based on type of objects. Creating meaningful objects is a very essential part of universe development as these would be used
by end user to create reports.
Users will drag drop these objects in a report panel in order to create a reports. An object or combination of objects infers a SQL which in
turn gets fired on underlying database to fetch the data for report.
There are three types of objects in a Universe.
Dimension Objects
Detail Objects
Measure Objects
Let’s first understand creating objects regardless of its type.
How to create an object
Right click on class and from menu select object OR
Click on Insert from menu bar and click on objects OR
Drag-drop the column from a universe pane under a class you want to create an object
Once objects icon appears under a class, double click on it to edit its properties
Enter Name of Objects
Select the type of objects. It depends on type of data to be returned by a column which would be used in Select clause
of objects property
Enter relevant description
Enter the Column name or expression on Select box
If you want impose a restriction on data to be returned by object enter a SQL expression in Where clause
Further you can force a Business Objects to use specific table in a join condition when particular objects is used in query by click
on “Tables” button and selecting table to be used.
Click on Properties tab to define objects type and other properties.
· Select the type of objects
· Check if you want associate LOV with objects and other properties based your universe specification and type of objects
· Click on Advanced tab to define advance properties.
Select the security access level of objects by default its Public. Following type security access leve can be applied to an object.
· Public : All user can see and use an object
· Controlled : User with controlled or higher profile can see and use object
· Restricted : User with controlled or higher profile can see and use object
· Confidential : User with confidential or higher profile can see and use object
· Private : User with private or higher profile can see and use object
· Check the required check boxes to specify if a objects can be used in result, condition and sort operations
· Database format is applicable only to date objects by default its windows regional format further it can be set
· Click on Keys tab to define primary key and foreign key to make object index aware which is helpful in performance optimization
· Source Information tab is useful when Universe is create from Data Integrator. It help to define technical information of an object like
description, mapping information and Data Lineage information.
Dimension Object
A dimension objects is an object against which analysis is done. It’s a main part of analysis. It represents single column of a table or multiple
column of table.
To create dimension object follow the procedure give in “Creating Object” and from properties tab select dimension radio button .
Detail Object
A detail provides descriptive data about a dimension. A detail is always attached to a dimension. It maps to one or more columns or functions
in the database that provide detailed information related to a dimension. You define a detail object by selecting Detail as the qualification for
an object, and specifying the dimension attached to the detail.
To create dimension object follow the procedure give in “Creating Object” and from properties tab select Detail radio button.
Measure Object
Measure object are numeric objects and they are dynamic in nature as they valuereturned by measures changes based on dimension
objects used in the query.
To create dimension object follow the procedure give in “Creating Object” and from properties tab select measure radio button. You would
generally use aggregate functions while creating measure object.
Following five basic aggregate functions are available to be used while creating measures.
SUM
COUNT
AVERAGE
MAXIMUM
MINIMUM
Including above other aggregate function can also be used.
SAP Business Objects Universe Development Life Cycle
by BIDW TEAM on MAY 1, 2010
1. Prepare and Analyze Before you touch the Universe Designer
Well, Most of the designers make this mistake and they jump directly on designer. But this might end up you in future Universe Maintenance
problems. Understanding the data source on top which universe to be developed is very important. The Universedesigner must understand
the tables, type of data stored in those tables, relationship between tables, Business terms and their meaning, any specific formula which will
be used to derive the measures. Understand Reporting need and what all tables are required to feed the data to reports.
2. Plan the Universe.
Before you actually start building the Universe plan it well in advance. Identify number of universes required for reporting. Identify mesures,
dimensions and details objects. Try to document it well and in detail. This would be a Universe blueprint which will help while actually
desiging the universe.
3. Implementation or Actual Design of Universe.
Once you have completed first two stages, start building the universe using Universedesigner. The planning document created in planning
stage will help you a lot while building the universe. While building the universe its always better to create a Unittesting document for
universe and create unit tests fof every object you create in universe. Test each and every object in universe as soon as you create it. This
will minimize the possible errors and bugs. Frequently use the universe integrity test tool to identify SQL traps, join path problems.
4. Test once its built.
This is one of the very important stage of Universe building process. have very detailed universe testing plan ready for this stage. Test
universe against different scenarios, for SQL traps by creating sample reports, test measures, compare the data against manual SQL data. if
possible ask few business users to use the universe for creating some sample ad hoc reports .
5. Deploy it.
Once all above stages are completed and well documented, Its time to deploy it for actual use for creating reports. You can deploy universe
using BIAR tool. if productionBusiness Objects Server is available from development environment you can directly export the universe to
production servers.
6. Maintenance.
Since nothing is prefect issues are supposed to come frequently after deployment. Change the Universe for possible resolution and re-
deploy it. Make sure you document every change you made in universe against the change request.
How Measures Affects SQL Query Generation
by BIDW TEAM on NOVEMBER 1, 2010
Measure object definition contains aggregate function and a column. When measures are used with dimension or details objects query
automatically infers Group by clause in Select statement.
As a thumb rule of SQL, if any aggregate function is used in SQLquery rest of the attributes should be used in Group by clause. Same
applied here while inferring SQL.
e.g.
Dimension: Week Column: DateWeek
Measure: revenue Definition: sum(revenue)
If you have used above objects in query, Following query will be inferred
SELECT DateWeek, Sum(revenue) FROM Table GROUP BY DateWeek.
Now if you use another dimension object in query following query will be generated .
SELECT DateWeek,DateDay Sum(revenue) FROM Table GROUP BY DateWeek, DateDay
Causing revenue measured to be aggregated at day level.
The Query Process
Let’s understand how Business Objects processes the measure objects in a report query.
Business Objects processes aggregates at two level
Aggregation at SELECT level
Aggregation when they are projected at report
TODO: Diagram
Aggregation at SELECT level
It’s the first step of aggregation which happens at SELECT level
1. The user creates a query to generate a report
2. web Intelligence infers the SQL based n objects used in report query and it send select query to database
3. The data is returned to the micro cube. First level of aggregation takes place at micro cube.
4. Micro cube then projects the data to report. Lowest level aggregated data is now held at micro cube.
Aggregation at Projection level
Micro cube holds data ate lowest level of aggregation. This data is then project to the report in the form of chart, table. Since you are
projecting all the data from micro cube no projection aggregation takes place.
TODO: Diagram
However, if you edit the table or chart and remove any of the dimension or column from table, the measure needs to be aggraded at higher
level and projection aggregation takes place.
e.g. if you are have defined report as region wise, country wise sales revenue. In this report
region, country are dimension whereas sales revenue is measure. Now if you delete any of the dimension say region then sales revenue
needs to be aggregates at country level which is nothing but projection aggregation.
Projection aggregation is different than SELECT aggregation at depends on measure properties.
The recommended projection aggregation is as follows.
SELECT Aggregate Projection Aggregate
SUM SUM
COUNT SUM
AVERAGE NONE
MAXIMUM MAXIMUM
MINIMUM MINIMUM
You need to define projection aggregation while defining the measure.
Business Objects Performance Tips – JOIN_BY_SQL
by BIDW TEAM on MARCH 14, 2010
JOIN_BY_SQL and its Performance Consideration.
What does JOIN_BY_SQL do?
JOIN_BY_SQL is a one of the parameter in Universe Parameters. Its included to define how to handle multple SQL. When multiple
JOIN_BY_SQL is set to YES
Business Objects will combine the the results of SQL’s if database permits it, When JOIN_BY_SQL is set to NO Business Objects will not
combine the SQL and NO is the default value of JOIN_BY_SQL.
When do we get Multiple Queries and effect of JOIN_BY_SQL on it
While designig a Universe, I am sure you must have encountered join path problems and various traps like chasm traps, fan trap to solve this
we have to use alias or contexts and separate query for measures. In situation like this, Business Objectsgenerates mutple queries and
synchronizes the queries in a single cube. However this can result in slow running report as each query can bring lots of record (e.g. 2M) and
combining them into a single cube can be performance intensive task resulting slow running report.
To avoid this we can use JOIN_BY_SQL which uses JOIN_BY_SQL and push the sunchronization of resultsets on to database side instead
of BO side. This can
help significantly to imporve performance as database servers are more powerful and pushing synchronizatin on DB side will reduce the load
of BO servers resulting imrpoved report performance.
JOIN_BY_SQL uses FULL OUTER JOIN to combine the reultsets as
e.g.
These two query
SELECT DISTINCT
Article_lookup.Family_name,
sum(Article_lookup.Sale_price)
FROM
Article_lookup
GROUP BY
Article_lookup.Family_name
SELECT DISTINCT
Article_lookup.Family_name,
sum(product_promotion_facts.promotion_cost)
FROM
Article_lookup,
product_promotion_facts
WHERE
( Article_lookup.Article_id=product_promotion_facts.Article_id )
GROUP BY
Article_lookup.Family_name
Will look like as follows after enabling JOIN_BY_SQL
SELECT
NVL( F__1.Axis__1,F__2.Axis__1 ),
F__1.M__262,
F__2.M__194
FROM
(
SELECT
Article_lookup.Family_name AS Axis__1,
sum(product_promotion_facts.promotion_cost) AS M__262
FROM
Article_lookup,
product_promotion_facts
WHERE
( Article_lookup.Article_id=product_promotion_facts.Article_id )
GROUP BY
Article_lookup.Family_name
)
F__1
FULL OUTER JOIN
(
SELECT
Article_lookup.Family_name AS Axis__1,
sum(Article_lookup.Sale_price) AS M__194
FROM
Article_lookup
GROUP BY
Article_lookup.Family_name
)
F__2
ON ( F__1.Axis__1=F__2.Axis__1 )
well, after reading this dont just go back and turn on the JOIN_BY_SQL. There are cases when JOIN_BY_SQL might degrade your
performance than improving it. You should evaluate it for any of your report which is slow performing and which has multiple queries and
then turn on the JOIN_BY_SQL and then evaluate the performance.
How to set up JOIN_BY_SQL
JOIN_BY_SQL can is Universe parameter. open the Universe Options dialog and click on Parameters tab and you can find it there, if its not
there just add it
JOIN_BY_SQL = YES/NO
I would like to know your questions and experience on JOIN_BY_SQL topic.
Shortcut Join and Its use in Business Objects Universe
by BIDW TEAM on NOVEMBER 7, 2010
In this SAP Business Objects Universe Designer Tutorial we will learn about shortcut joins, How to use shortcut join to generate
performance optimized query and use of shortcut join to resolve loops.
What is shortcut join?
Shortcut join is a join that joins tables by bypassing middle table that exist in the universe. Generally shortcut joins are used to generate more
efficient query by reducing the joins in the query.
e.g. Consider following scenario. If we want to see article and its sold amount the query will join article_lookup and shop_facts through
product_promotion_fact,
However this is not a efficient query as we can simple join article_lookup ans shop_facts using article_id.
But creating such a join, It will introduce a loop in universe, now you can solve this loop using alias or shortcut join.
Lets see how we can solve this using shortcut join.
Instead of creating normal join between article_lookup and shop_fact, we will create shortcut join. Now check the loop. You could see that,
loop has been resolved.
How to create shortcut join
1. Join the tables using common column between tables.
2. Check the shortcut join check box to mark join as shortcut.
3. Shortcut join is represented as dotted line.
4. Click OK.
Types of Joins in Business Objects Universe
by BIDW TEAM on OCTOBER 27, 2010
In Previous post we have covered cardinalities in BO universe. In this post we would be learning types of join in SAP Business
Objects Universe and how to set up joins.
Following join types are available in Business Objects UniverseDesigner which can be used to join two tables.
Equi-Join
Equi-join is join which uses “=” equal operator to join two tables. Generally equi join is used to join primary table using primary key with
foreign tale using foreign key
When two tables are used using equi-join it returns all those rows from selected table which matches the equality condition.
Outer Join
Outer join links two tables using a join operator. When tables are linked using outer joins the select query returns all the records which
matches the join condition and returns all the records from one table even though do not match the join condition.
There are two types of outer join
Left Outer join: This outer join returns all the records from left table even when they do match the join condition.
Right Outer join: This outer join returns all the records from right table even when they do match the join condition.
You should avoid using outer joins as it may cause query to run slower. Outer joins should be placed at the end of a join path otherwise it
maybe causes other queries to match a NULL equality condition which might give an error.
Theta Join
A theta join is a between-type join that’s joins tables based on a relationship other than between two columns. It is generally used to
demonstrate ranges. A theta join can use any operator other than equality operator.
Lets see how to create a theta join
1. From Insert menu click on join to create a new join
2. Select the table1 which should be joined to another table using between operator.
3. Select the table2
4. Now select the two columns from table two which should represent the range.
5. Set the cardinality to N-1
6. Click Ok
This theta joins uses between operators to join two tables
Shortcut Join
A shortcut join is a join which provides shorter way to join two tables by avoiding intermediate tables between join paths of tables. It is very
helpful to improve the performance of a query as it reduces number of joins in a query.
Shortcut joins are also useful to solve loops in a Universe.
Lets take an example of Shortcut join.
Shop_facts, Article_lookup and product promotion facts are joined through Article id. Now if we want to see Duration and amount sold the
query will have un-necessary join of shop_fact and Article_lookup table as there is no join between shop_facts and product_promotion_fact.
However if we join shop_facts and product_promotion_fact, it will create a circular loop which might confuse universe to decide on which join
path to take. This can be avoided by using shortcut join instead of using normal join. Shortcut join is represented by dotted line in designer.
Self Restricting Join
Self restricting join is not actually a join but a restriction on a table. Generally it is used to restrict the data returned by a table.
To create a self restricting join
1. Click on Insert menu and click on join to create new join
2. Select the table on which you want to create self restricting join.
3. Select the same table name from table 2 combo box also.
4. Select the column which should be used for self-restricting join.
5. Edit the expression and put the restriction condition
6. Click OK.
Cardinality of self restricting join should be set to 1:1 otherwise it gives error while detecting contexts.
Try to create each type of join in BO universe and practice it and test it using Query Panel.
How to Define Cardinalities in Business Objects Universe
by BIDW TEAM on OCTOBER 26, 2010
In previous post we have learned how to set up join in BO universe. in this post we will lean what is cardinality and how to define cardinalities
in SAP Business Objects Universe.
What is cardinality?
Cardinality means a relationship between two tables based on a join. Means how many rows of one table will match with rows in other tables
when these tables are joined.
Setting up cardinality is very important to resolve loops BO universe.
Let’s take a practical example of cardinality.
A manager can have many employees reporting to him, so the relationship between manager and employee table is 1-N.
The cardinality can be any of one type.
One-to-One (1-1)
One-to-Many(1-N)
Many-to-many (N-N)
Many-to-one(N-1)
Setting up cardinality manually or using automatic detection tool
Cardinality in universe design is based on a logical algorithm, which uses physical count of record from the table.
The automatic detection tool only gives correct cardinality if the database is populated with realistic data.
Also, the automatic detection tool fires three queries for every join to set the cardinality. So if you have lots of table in schema, automated
cardinality detection tool is not a good idea as it might overload the database with queries.
Let’s take an example of how cardinality detection tool works.
Manager table has multiple employees reporting to each manager so cardinality of manager and employee table is 1-N. Let understand how
automated cardinality detection tools determines the cardinality for this join.
1. One query to find number of rows from manager table
2. One query to find number of rows from employee table
3. One query to find number of rows when these two tables are joined
If manager table has 10 rows, Employee table has 20 rows.
1st query will return 10, second query will return 20, and third query will return 20 which would tell that employee table is at many sides and
manager table is at 1 side.
The output of queries is very important for automated tool and that’s why database should contain realistic data.
Detect cardinality using automation tool.
To detect cardinality of all joins
1. From Tools->Automation Detection->Detect Cardinality
2. If no joins is selected, it asks for if you want to detect cardinality for all joins.
3. Click OK.
To detect cardinality for specific join
1. Right click on specific join
2. Click on detect Cardinality
To set cardinality manually
1. Double click on join for which you want to set cardinality
2. Edit join dialog appears with join expression
3. Check on cardinality check box
4. Select appropriate 1,N radio box
5. Click ok.
After reading this article you should be comfortable with cardinality concept and its usage in SAP Business Objects Universe Design.
How To Define Joins In Universe
by BIDW TEAM on OCTOBER 21, 2010
Since now we have inserted table in designer pane. We need to define joins between tables. For correct SQL query generation its very
important to define joins correctly.
There are two different ways to define joins in Business ObjectsUniverse Designer.
Define joins manually in schema
Using edit join dialog by specifying join properties
Defining joins manually in Schema
1. Position The table close to each other
2. Drag the column from one table on the column of other table to which you want to join the table
Defining Joins by using defining join properties.
1. From Insert menu click on “Join”
1. From “Edit Join” properties select table table1 and table2 in between which you want to create joins.
2. Select the columns from both the table which would be part of joins
3. Once Columns are selected join expression will be created in expression text box you can specify join operator here if you want to
join table using other than “=” operator.
4. Click OK. Join will be created between two tables.
Joins can also be created automatically.
1. Select table you want to create join for.
2. from the editing toolbar click on “Detect Join” icon
3. A dialog will pop up showing possible joins for selected tables based on similar column name
4. Click Insert to create selected join.
Understanding context and its use in Business Objects Universe
by BIDW TEAM on NOVEMBER 7, 2010
What is a context?
A context is a group of path that defines a specific path for a query. Any objects created on a table column which belong to specific contexts
is naturally compatible with all other objects from same contexts. When objects from two or more contexts are used, separate SQL is
generated and results are then merged in a micro cube. This makes sure that no incorrect result is generated due to loop or any other join
path issue.
How to Create Context.
There are multiple ways to create context.
1. Automatically using Detect Context
2. Automatically using Loop Detection Tool.
3. Manually
For automatic detection of context, cardinalities must be set correctly.
How to detect context automatically
1. Click on Detect context icon from the toolbar.
2. Designer will show up the name and joins for the candidate context
3. Review the highlighted joins in respective context if you are ok with it click on add button.
4. once done click OK
How to detect context using Loop Detection Tool
1. Click on tools
2. Click on Automated detection-> detect loops
3. Detection tool will show the loops in universe and it will propose either alias on context to resolve the loop.
4. Click on forward button till it says “The loop is not covered by any context”
1. Click on candidate context button to detect context.
2. It will show the possible context. Follow the process of “Creating context automatically” to create context and resolve loop.
Creating context manually.
To create context manually
1. Click on Insert->Context
2. A create context box will appear.
3. Enter the name of context and joins in context.
4. Click OK
5. Make sure each join except shortcut join is included in at least one context.
Testing Contexts
When context exist in universe. Designer can generate three types of queries.
Ambiguous query
Inferred query
Incompatible Objects query.
Whenever you create a context you should check context against these three queries two test correctness of context.
Ambiguous query
If you have multiple contexts in universe, try creating a report which includes objects common to both the context. This situation does not
give enough information on which context to use while generating the query and inturn it prompts all available contexts to user to choose
from. Once user selects the context, query is generated accordingly.
Make sure Allow selection of multiple context option is selected from SQL tab of universe parameters as user might select multiple
context in case of ambiguous query.
Incompatible Objects query.
If you have used object in a report which belong to multiple context and objects which are unique to each contexts. The tool creates multiple
SELECT statements for each context and then result is merged in to present in single table form this is called as Incompatible Objects query.
Inferred query
Inferred query is query which gives enough information to tool to choose the right context without prompting to user.
When you have context in universe make sure you test the contexts by creating all three types of query and observe the behavior of tool in
each query type .
Resolving Loops using Shortcut Join.
Apart from alias and context, shortcut join can also be used to resolve the loops in universe.
Understanding Loops and its Resolution Technique in Universe
by BIDW TEAM on NOVEMBER 7, 2010
In the series of Business Objects Designer Tutorial in this post we will be learning about loops in Universe how to resolve it.
What is Loop
Loop is a join path problem which causes query to return less records than expected. Loop arises when join between tablesforms a closed
path.
e.g. in below tables, join arrangement between table forms a loop when these tables are joined in universe.
How to detect loop.
There two ways to detect loop, automatically and manually. You can just view the structure in BO designer and detect the loop visually by
seeing a closed or circular join path or other way is detect it using loop detection tool.
1. Click on Tool
2. Automated Detection
3. Detect Loop or click on detect loop icon on toolbar.
How loop causes a query to return incorrect data
Now if you look carefully at country table. Country table has two meaning, country where resort exists and country of a tourist.
Now if you create a report to see number of tourist and their country by each resort country, you will get undesired result. Query will only
show data for only that country where tourist country and resort country is same, means it will not show tourist which came from other
country.
If you build report on above object, designer will generate query like
WHERE
( City.city_id=Customer.city_id )
AND ( City.region_id=Region.region_id )
AND ( Country.country_id=Region.country_id )
AND ( Resort_Country.country_id=Resort.country_id )
AND ( Customer.cust_id=Sales.cust_id )
AND ( Sales.inv_id=Invoice_Line.inv_id )
AND ( Invoice_Line.service_id=Service.service_id )
AND ( Resort.resort_id=Service_Line.resort_id )
AND ( Service.sl_id=Service_Line.sl_id )
AND ( Service_Line.service_line = ‘Accommodation’ )
Now if carefully notice the WHERE caluse you will see why result are coming wrong.
Country.country_id=Region.country_id
Country.country_id=Resort.country_id
Above two joins are putting the restriction causing query to return only those tourists which reside in same country of resort
You can fix the loop issue using Aliases or Context in designer.
Resolve Loops using Aliases
Alias is an alternative name given to table or any other object. Same technique can beused to break the loop in designer.
In our loop problem COUNTRY table is serving two purposes, resort country and customer country. We can break this loop by creating an
alias table for country table to separate resort country and customer country as.
Country table will join to resort to become resort country
Country_Regioin alias will be joined to region to become customer country
Now if you create same report you will see
Country_region =Region.country_id
Country.country_id=Resort.country_id
There is now one join applying a restriction on the Country table and another join applying a restriction on the Resort_Country table. Now
you can see the loop has been broken.
How to create an alias
1. Select the table for which you want to create a alias.
2. Right click on table and from menu click on alias OR
3. from Insert menu select Alias
4. Give the new name of an alias
5. Remove the join from original table
6. Join the alias table appropriately and set the cardinality.
Once you have created an alias, you would also need to redefine the object to use alias table. In above case origin country should use
coutry_region.country column instead of country.country column.
Resolving Loops using Contexts
Context is another way to resolve loops in universe. Contexts resolves loop by defining a set of join that defines specific path through tables
in a loop. It makes sure that join are not included from different path in the same query.
Generally contexts are used solve a loop caused by multipurpose lookup table .
What is SAP Business Objects Universe
by BIDW TEAM on MAY 1, 2010
The Business Objects Universe is a semantic data model or layer between users and database ( that stores organization data ). InBusiness
Objects terminology its a semantic layer which contains Objects ( dimension, detail and measure), Classes and which depicts Organization
data store using Business Terminology to ease reporting.
Classes : A class is nothing but a logical grouping of a related objects. Name of the class describes the object it contains.
Objects: Object is nothing but a names entity that’s maps to the column of a underlying data source table.
While naming the Classes and Objects one should use Business Terminology as these are the things which gets exposed to report users
and they only understand Business Terms.
e.g. instead of naming an objects as YEAR_REVENUE you should name it as “Yearly Revenue”
Advantages of Universe or Semantic Layer
1. The places an layer between database and business uers and presents database/data warehouse in Business Terminologies which
makes easy for them to create a report.
2. Universe allows user to have no knowledge of SQL only developer needs to know the SQL. Business User can simply drag drop the
objects and the tool will generate the required query to fetch the data.
3. All types and security can be applied on Universe making it data secure and only available to related person.
List of Values (LOV) in Business Objects Universe
by BIDW TEAM on NOVEMBER 7, 2010
List of values or LOV is a distinct list of data values associated with an object. When any dimension of details object is created LOV is
assigned to an object automatically.
Use of List of values.
When user needs to filter data in a query based on specific object values, User can simply view the LOV of that objects and choose the value
on which they want to filter the data.
e.g. if COUNTRY dimension has following distinct values
A,B,C and if user wants to filter the data of country B, user can put a filter on Country dimension and choose the B as filter while executing
the query.
How to create a LOV for an object.
1. Double click on object in designer to view its properties.
2. Click on Properties Tab
3. Click on “Associate a List of Values” checkbox.
4. Select other LOV options based on requirement.
When first LOV is created it is stored in .LOV file name at universe subfolder on the system file system.
The default location is
C:Documents and Settings<UserName>Application DataBusiness Objects Business
Objects 12.0Universes@<ServerName><UniverseName>
LOV Options
List Name
It’s the name of LOV file by which it will stored on local file system. User can override the default name and can enter his own LOV name.
Maximum character limit is 8.
Allow Users to Edit List of Values
When checked this option allows report users to edit the list of values of an objects. The purpose of a list of values is usually to limit the set of
available values to a user. If they can edit a list, you no longer have control over the values they choose. Normally, if you are not using a
personal data file as a list of values source, you clear this option to ensure that users do not edit lists of values.
Automatic Refresh before Use
When selected this option LOV will be refreshed each times it is referred and used in report. You should choose this option only if contents of
underlying column are frequently changing. This options should be use very carefully after evaluation. If this option is not selected LOV is
refreshed first when the objects is used in a user session.
Hierarchical Display
Select the Hierarchical Display property to display the cascading list of values as a hierarchy in Web Intelligence.
Export with Universe
When this option is selected LOV file associated with object is exported to universe CMS and gets stored as XML on CMS
Viewing the LOV of an object
To view the LOV of an objects click on display button on properties tab of an object
Modifying the LOV of an object
You can remove the values from LOV of an object by applying a filter or add values to LOV by adding a column.
Apply condition on LOV
To apply condition on LOV
1. Click on Edit button on objects edit properties tab
2. The designer query panel will appear showing default object of a LOV
3. Drag drop the condition object in condition pane and specify the appropriate condition.
4. You can also view the SQL of the LOV query by click on SQL icon on toolbar.
5. Run the query to test the values after applying condition on LOV
View and Edit LOV of complete universe
You can also view all the object which has LOV associated with them and edit them.
1. Click on Tools->List of Values->Edit
2. List of values dialog will appear
3. Select the LOV objects and click on Edit if you want to edit a LOV.
1. In addition to query you can also define LOV for an object using personal data file like CSV and values from this file can also be
used as LOV for an object. To do so.
2. Click on Personal Data and provide the details on Personal data LOV dialog box.
Cascading LOV
Cascading LOV is a LOV associated with hierarchy of an object in the universe. Cascading LOV is created, and if any of the object is used
as prompt filter in report query, user has to answer series of values from cascading LOV.
How to create Cascading LOV
1. Click on Tools->List of Values->Create Cascading LOV.
1. Add the object and re-arrange them as per your hierarchy
2. Click on generate LOVs
3. Click OK.
Now if you use any of the objects as prompt in query. It will prompt the hierarchical LOV to user.
Getting Started with Universe Design
by BIDW TEAM on OCTOBER 11, 2010
In this topic we would be covering very basics of starting universedesigner and basics of universe file name and other details which are very
helpful to get started with SAP Business Objects Universe Designing
How to start Universe Designer?
1. Click on Start on windows taskbar.
2. Click o Programs->Business Objects 3.1 -> Business Objects Enterprise
3. Click on Designer
On Login screen you would need to provide following information
System:
Sever Name: It’s the Business Objects Server Name or a CMS Name.
Port Number: It’s the port number which would be used to communicate betweenDesigner and Business Objects Server default is 6400
User Name: User name provided by Administrator default is Administrator
Password: Password provided by administrator default is blank.
Authentication:
Enterprise: enterprise is the most widely used authentication in which a Universedesigner user is created in Business Objects CMS
enterprise server.
Standalone: This mode is used when no CMS is available or you are working locally
LDAP , Windows AD, Windows NT
4. After providing above details click on OK.
It will open up Business Objects Universe Designer and Quick Design Wizard screen will appear. Cancel it as we are not going to use a
wizard to create a Universe.
Basics of Universe
Lets understand the basic concepts around the Business Objects Universe which would help you to work with the designer in well manner.
Apart from other universe concepts understanding Classes and Objects initially is important to go ahead with universe design.
Classes: A Class is logical group name of objects created in universe. Basically it represents the category of a objects it groups.
e.g. Marketing class will hold all the objects related to marketing department.
Objects: An object represents the table column or column expressions of a database table.
Going forward we will discuss it in more details.
Importing Universe:
Importing a universe means getting it from Business Objects repository and storing it to the local file systems for development and
modification. When you import a universe its latest copy from universe gets stored on local file system and gets opened in the
universe designer.
To import a universe
1. Open designer
2. Click on File>Import
3. It will list all universes which are available to be imported.
4. Click on universe
5. Click OK
By default universe gets stored at
Documents and SettingsApplication DataBusiness Objects Business Objects 12.0Universes
However you can choose the folder where you want to import the universe while importing the universe.
Exporting Universe
Exporting universe means saving universe in the repository to be consumed by end users and report developers for report development.
To export universe.
1. Save the universe to be exported.
2. Click on File -> Export
3. Select the target Domain (CMS Name)
4. If universe names is listed inn the listed click on Add button to add it.
5. Click ok
Once Universe is exported to the repository it is available all users who have access to universe and CMS. They can now use to create
reports on top this universe.
There is a difference between saving universe and exporting a universe.
When you save universe it is saved locally with filename.unv but not in the repository. When you export universe its saved locally as well as
in the repository and other user can access the changes.
Saving Universe for other Users
If you want to make universe available to other universe designer who do not have access to CMS. You need to save this universe with
special option as “Save for All Users”.
While saving universe for all users you need to save universe with unsecured data source connection like personal connection instead of
secured data connection.
Universe File Name
Universe gets saved on local file system with filename with .UNV extension. The maximum length of universe file names depends on the
OS> Windows allows 156 characters.
Long Name: The Universe name which will be published to the end user is called as universe long name and you cam use up to 200
characters.
Building Universe Skeleton
by BIDW TEAM on OCTOBER 21, 2010
Building universe structure involves designing schema, creating joins. A schema in universe is a logical representation of
underlying database schema .
Designing Schema
This is the very first step of universe design. Designing schema involves adding table, setting up joins and cardinalities and then assessing
schema for possible joins problems and fixing them.
To design a good schema universe designer is expected to know the basics of database schema design, business concepts, relationship
between different tables and reporting need.
Add Tables
Let’s start designing schema by adding tables.
1. Connect to a database by creating data source connection.
2. Launch database table browser in universe. You can launch table browser either by two way
1. Double click on design pane
2. From Insert->Tables menu
1. Select the table of view by clicking on it and click on Insert button to insert a table in universe designer pane. You can also add
table by double clicking on it.
2. After adding all tables in universe designer pane it should like as below. Once tables are added it is represented graphically along
with its all columns
1. After adding all tables in universe designer pane it should like as below.
Tips:
When tables are added to designer pane it gets arranged horizontally. To arrange them properly click on arrange table icon
You can change the table display by pressing Ctrl+T which would be very helpful if you have lots of table in universe.