47
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

Bo Tutorial

Embed Size (px)

Citation preview

Page 1: Bo Tutorial

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

Page 2: Bo Tutorial

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

Page 3: Bo Tutorial

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.

Page 4: Bo Tutorial

· 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.

Page 5: Bo Tutorial

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

Page 6: Bo Tutorial

· 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.

Page 7: Bo Tutorial

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.

Page 8: Bo Tutorial

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

Page 9: Bo Tutorial

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.

Page 10: Bo Tutorial

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.

Page 11: Bo Tutorial

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

Page 12: Bo Tutorial

( 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

Page 13: Bo Tutorial

( 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  )

Page 14: Bo Tutorial

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,

Page 15: Bo Tutorial

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.

Page 16: Bo Tutorial

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.

Page 17: Bo Tutorial

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.

Page 18: Bo Tutorial

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

Page 19: Bo Tutorial

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

Page 20: Bo Tutorial

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.

Page 21: Bo Tutorial

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.

Page 22: Bo Tutorial

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.

Page 23: Bo Tutorial

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.

Page 24: Bo Tutorial

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”

Page 25: Bo Tutorial

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.

Page 26: Bo Tutorial

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.

Page 27: Bo Tutorial

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.

Page 28: Bo Tutorial

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.

Page 29: Bo Tutorial

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.

Page 30: Bo Tutorial

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

Page 31: Bo Tutorial

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.

Page 32: Bo Tutorial

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

Page 33: Bo Tutorial

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.

Page 34: Bo Tutorial

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

Page 35: Bo Tutorial

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

Page 36: Bo Tutorial

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.

Page 37: Bo Tutorial

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.

Page 38: Bo Tutorial

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.

Page 39: Bo Tutorial

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

Page 40: Bo Tutorial

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

Page 41: Bo Tutorial

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.

Page 42: Bo Tutorial

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

Page 43: Bo Tutorial

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:

Page 44: Bo Tutorial

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.