Vous êtes sur la page 1sur 63

BO FAQ

BUSINESS OBJECTS
Frequently Asked Questions
Prepared by Raj
Date: July 12th, 2011

Version: BO XI 3.x

Note: This material is prepared by referring to many websites, blog sites of many BO gurus
and material from various sources. I would like to thank all for their contribution. I just
gathered and kept here for the sole purpose of helping BO newbies and whoever attending
interviews to have a quick glance of the subject.

1 | Page

BO FAQ

Chapter 1: Data warehousing & BO Concepts


2 | Page

BO FAQ

What is Data warehouse?


Ans. A Data warehouse is a Subject-oriented, Integrated, Time-variant and
Non-volatile collection of data in support of managements decision
making process.
1)

Subject-Oriented: A data warehouse can be used to analyze a particular


subject area. For example, "sales" can be a particular subject.
Integrated: A data warehouse integrates data from multiple data
sources (transactional systems - OLTP). For example, source A and source
B may have different ways of identifying a product, but in a data
warehouse, there will be only a single way of identifying a product.
Time-Variant: Historical data is kept in a data warehouse. For example,
one can retrieve data from 3 months, 6 months, 12 months, or even older
data from a data warehouse.
Non-volatile: Once data is in the data warehouse, it will not change.
Only inserts are done to data warehouse and No updates.
So, historical data in a data warehouse should never be altered.
What is Data mart?
Ans. Data mart is a subset of a Data warehouse.
2)

What is Rapid Mart?


Ans. It uses pre-packaged data marts for SAP, Oracle, PeopleSoft and
Siebel applications to accelerate the delivery of analytical data.
3)

What is the difference between OLTP and OLAP?


Ans. OLTP stands for On Line Transaction Processing which deals with
day-to-day transactions, stores the current data in the database which is
normalized as updates are very frequent and deals with the small amount
of data.
4)

OLAP stands for On Line Analytical Processing stores the historical data
based on OLTP source and the database is De-normalized as frequent
updates will not happen and deals with bulk amount of data to support
trend analysis and future predictions.
What are the types of Dimensions?
Ans. The types of dimensions are:
Confirmed Dimension
Junk Dimension
De-generate Dimension
Role-playing Dimension
5)

6)

What is Confirmed Dimension?


3 | Page

BO FAQ

Ans. Dimension which is shared by all fact tables or shared across


different data marts is called as Confirmed dimension.
Example: The date dimension table connected to the sales facts is
identical to the date dimension connected to the inventory facts.
What is Junk Dimension?
Ans. It is a dimension table consisting of attributes that does not belong to the fact
7)

table or any of the existing dimension tables. These attributes are usually text or flags
with yes/no or true/false indicators.

What is Degenerate Dimension?


Ans. It is a fact table primary key and represents the unique identifier of
the parent. It has no attributes and doesnt join to an actual dimension
table. Example: Invoice/Tran number.
8)

What are Degenerated Objects?


Ans. Objects created using SQL queries or stored procedures called
Degenerated Objects.
9)

10) What

is Role playing Dimension?


Ans. Dimensions which are used in multiple applications within the same
database. For example a "Date" dimension can be used for "Date of Sale",
as well as "Date of Delivery", or "Date of Hire". This is often referred to as
a "role-playing dimension".
11) What is Casual Dimension?
Ans. Dimension which will not change the fundamental grain of the fact table is called
as casual dimension.
Example: Gender - Male, Female.
12) What

are slowly changing dimensions?


Ans : Slowly Changing Dimensions are basically those dimensions whose
key value will remain static but description might change over the period
of time. For example, the product id in companies, product line might
remain the same, but the description might change from time to time.
13) What

are the types of slowly changing dimension (SCD)?


Ans. There are 3 types of SCD.
Type 1: History of dimension is not stored in the dimension table. No
trace of the old record exists
Type 2: A new record is added into the customer dimension table for
maintaining history whenever the attributes of a dimension is changed.
Type 3: The original record is modified to reflect the change of dimension
attribute. Partial history is maintained.
4 | Page

BO FAQ

14) What

is MOLAP? (Multidimensional)
Ans. In MOLAP data is stored in multidimensional cube. The data can be
retrieved fast and slicing and dicing operation is optimal and can perform
complex calculations but limited data can be handled.
15) What

is ROLAP? (Relational)
Ans. In ROLAP data is stored in relational database. Can handle large
amount of data but is limited by SQL functionalities and performance can
be slow.
16) What

is HOLAP?
Ans. It is the combination of MOLAP and ROLAP. For summary type
information, it uses the cube technology for fast performance and when
detail information is needed, it can drill through from the cube into
underlying relational data.
17) What

is Dimension Modeling?
Ans. Dimensional modeling is a logical design technique to present the
data in a standard framework to allow for high-performance access. It is
inherently dimensional and uses the relational model with some
restrictions.
Every dimensional model is composed of one table with a multipart key
called the fact table and a set of smaller tables called dimension
tables. Each dimension table has a single-part primary key that
corresponds exactly to one of the components of the multipart key in the
fact table.
18) What

is Fact table?
Ans. It is a table which contains two types of columns. One that contain
numeric facts (measurements) and other column have foreign keys to
dimension tables.
A fact table contains either detail-level facts or facts that have been
aggregated (Summary tables).
19) What

is Dimension table?
Ans. It is a table which contains further information about an attribute in a
fact table.
A foreign key of a fact table references the primary key in a dimension
table in a many-to-one relationship.
20) What

are the different measure (fact) types?


Ans.
Additive: Measures that can be added across all dimensions.
5 | Page

BO FAQ

Example - Sales
Semi-Additive: Measures that can be added across some dimensions
and not across others.
Example: Inventory level, where you cannot tell what a level means
simply by looking at it.
Non-Additive: Measures that cannot be added across any dimension.
Example Average
21) What

is ODS (Operational Data Store)?


Ans. An operational data store (ODS) is an integrated database, source
includes legacy systems and it contains current or near term data, means
data is not static. An ODS may contain 30 to 60 days of information, while
a data warehouse typically contains years of data and data is static.
22) What

is a Star schema?
Ans. A typical star schema has a completely de-normalized dimension and
fact tables whose Entity-Relationship (ER) diagram looks like a star.
Dimensions have Primary key and Fact table have foreign keys referencing
dimension table primary keys.
A star schema can have any number of dimension tables. The crow's feet
at the end of the links connecting the tables indicate a many-to-one
relationship between the fact table and each dimension table.

23) What

is a Snowflake schema?
Ans. In a snowflake schema one or more dimension tables are partially or
completely normalized.
A snowflake schema can have any number of dimensions and each
dimension can have any number of levels. The following figure shows a
snowflake Schema.

6 | Page

BO FAQ

24) What

is the difference between Star and Snow flake schema?


Ans. STAR SCHEMA: De-Normalized Data Structure, Category wise Single
Dimension Table, More data dependency and redundancy, No need to use
complicated join, Query Results Faster, No Parent Table, and Simple DB
Structure.
SNOWFLAKE SCHEMA: Normalized Data Structure, Dimension table split
into many pieces, less data dependency and No redundancy, Complicated
Join, Some delay in Query Processing, It May contain Parent Table,
Complicated DB Structure.
25) What

is the use of AFD? Where it can be stored?


Ans. AFD stands for Automatic File Distributor. It is used to create
dashboards. It can be stored in repository, corporate or personal.
26) What

is Data Integrator (BODI)?


Ans. Data Integrator is a data movement and integration tool and has the
capability of Extracting, Transforming and Loading data from multiple
sources into a target database or data warehouse.
27) What

is Data Federator?
Ans. It provides federated query capabilities that can accelerate
deployment performance. It creates a virtual view of all data sources and
allows a single BO universe or crystal reports to map to multiple sources
and optimally federates (Integrates) queries against individual sources
directly.
28) Are

data mart and data warehouse normalized or de-normalized? Can


both exist in same tier?
7 | Page

BO FAQ

Ans. Data in Data mart and Data warehouse is de normalized and


optimized for OLAP systems. As data mart is the subset of data
warehouse both can exist in same tier and it supports a particular
business unit.
29) Can

you explain BO architecture?


Ans. BO is a 5 tier architecture consisting of:
Client tier
Application tier
Intelligence tier
Processing tier
Data tier

8 | Page

BO FAQ

Client tier: There are two types of clients.


a) Windows based clients These are also called as Thick clients and
needs to be installed on your machine to work on it.
Example: Central Configuration Manager, Designer, Web Intelligence
Rich Client, Desktop Intelligence, Report Conversion Tool, etc.
b) Web based clients These are also called as Thin clients and are
accessed by any web browser.
Example: Infoview, Web Intelligence, Central Management Console
(CMC).
Application tier: BO servers will be hosted either in JAVA application
or .NET application.
Intelligence tier: It has four servers.
a) Central management Server - It is a primary server which provide
services for all other servers in the BI platform including management
of
Security
Objects
Servers
Auditing
b) Event Servers - It is a responsible for monitoring file based events, and
notifying the CMS of any events occurred.
c) Input/Output File Repository Server - It is a responsible for the creation
of file system objects, such as exported reports, and imported files in
non-native formats.
d) Cache Server - It is used to store previous run activities of report view
requests and avoids accessing the database each time a report is
requested, thus accelerates viewing performance and reduces network
traffic.
Processing tier: It is the only tier that directly interacts with the
reporting database and accesses the data tier and generates reports for
clients. The main servers include:
Job servers
Processing servers
Report Application server
Multi-Dimensional Analysis server
Dashboard and Analytics servers
Data tier: It is made up of the data sources that contain the information
used in the reports and documents managed by BO enterprise system,
and supports wide range of corporate databases.
The Connection server is responsible for handling connection and
interaction with the various data sources. It supports relational databases
9 | Page

BO FAQ

(Oracle, MySQL, Microsoft SQL Server, DB2, Sybase) as well as OLAP (SAP
BW, Microsoft Analysis Services, Hyperion Essbase).
30) What

are the different authentication modes you know?


Ans. Version 3.0 supports below authentication:
Enterprise
Windows NT
Windows AD
LDAP (Light weight Data Access Protocol) which will be mapped in
CMC.
31) What

is Semantic layer?
Ans. It is a business transaction layer between the database and reports.
The semantic layer in BO is called as Universe.
As many business rules will be applied on database, these rules
generate the SQL and if two users ask for the same information,
these users will get same result.
It gives the users independence on the technology as just by
dragging objects the query will be modified.
It is an extra layer and is not free. It has to be created, maintained
and managed. It must be kept in sync with any database changes
that occur.
It could connect to only 1 database at a time.
32) What

is meant by ZABO?
Ans. ZABO stands for Zero Administration Business Objects which uses
the hardware resources of the client machine for application level
processing and communicates through the protocol defined for the
browser to use the server resources for processing External requests (like
running a database Query, creating a data provider to access data.)

10 | P a g e

BO FAQ

11 | P a g e

BO FAQ

Chapter 2: Designer
What are the difference between BO XI R2 and 3.0?
Ans. BO XI 3.0 supports the following features which are not supported in
XI R2. These are:
Smart measure: A measure can be called as a smart measure in the
universe when its data aggregated in a way not supported by WEBI. A
smart measure has projection function set to Database delegated on
the properties tab of object properties.
1)

12 | P a g e

BO FAQ

Optional prompts: In WEBI you can ignore optional prompts by not


specifying any value and prompts does not apply a filter on the data.
ForceMerge function: With this WEBI function you can calculate measures
for merged dimensions and is similar to Multicube function in DESKI.
Data tracking: WEBI has the feature to track data changes by highlighting
the changed data and displays the previous value of a dimension or
measure along with its current value.
It highlights the changed data according to parameters you set. In the
option Auto-update, the current data becomes the reference data after
each data refresh and the other option is use the current data as
referenced data the report always show the difference between the most
recent data and this fixed reference data.
Multilingual support: From the same report, you can decide in which
available language you want to view the reports metadata and prompts.
Using Translation manager you can add translations to the universe on
which the report is created or translate the report itself. Once the
document is translated, it is published and available to users in their
preferred viewing language.
Note: Data is dependent on database source cannot be translated.
Document linking: Using WEBI you can create links to other WEBI
documents, to web sites, or to any resource accessible from a WEBI report
using a simple user interface. From WEBI you can even pass data to
linked resource.
Stored Procedures: In Designer, you can create a universe based on one
or more existing stored procedures.
How can you optimize a Universe?
Ans. Query time can be shortened by optimizing a universe. There are
several ways to optimize a universe.
Optimizing the Array fetch parameter in the Universe parameters
Allocating weight to each table
Using shortcut joins
Creating and using aggregate tables in database
2)

Optimizing the Array fetch parameter


The array fetch parameter allows you to set maximum number of rows
that are permitted in a fetch procedure and determines the packet size on
the network. For example, if the array fetch is set as 20 and you plan to
retrieve 40 rows, then two fetches will be executed to retrieve the data.
Some data sources do NOT allow to modify the fetch size, in such cases
all rows will be return in single FETCH. If you want to reteive binary longobjects (BLOB) set FETCH size as 1.
13 | P a g e

BO FAQ

If you have a network that allows you to send a large array fetch, then
you can set a new larger value. This value will speed up the FETCH procedure
and reduce query processing time. Values can be set from 1 to 999.
Allocating table weights
Table weight is a measure of how many rows are there in a table. By
default BO sorts the table from lighter to heavier tables and this determines
the table order in the FROM clause of SQL statement.
If you are using Oracle database, you can optimize the SQL by
reversing the order that BO sorts the table. To do this we need to modify the
oracle .PRM file by changing parameter REVERSE_TABLE_WEIGHT from Y to
N (Default Y ). By doing this BO forces to sort the tables from those with
most rows to those with least rows.
Path of oracle.PRM file =>
<INSTDIR>\dataAccess\RDBMS\connectionServer\oracle\oracle.prm
Restart Designer to apply the changes to the file.
In Designer we can manually change the number of rows for any table.
To view, select View menu => Number of rows in tables. To modify
Open a universe in designer, Right click the relevant table.
Select number of rows in table from contextual menu. A dialog box
appears.
Select the Modify manually tables row count radio button. A text box
appears.
Type a number in the text box. This is the number of rows that you
want to use for the
table.
Click ok and save the universe.
Using short cut joins
A short cut is an alternate path between two tables. Short cut join used
to reduce number of tables that are used in a query.
Using Aggregate Awareness
The ability of a universe to make use of Aggregate tables to optimize
SQL query is called Aggregate Awareness. These are the tables which contain
pre-calculated data.
You can use @Aggregare_Aware function in the select statement for an
object which directs SQL query to run against Aggregate tables rather than
on base tables.
Using Aggregate tables speeds up the execution of query and thus
improves the performance.
Setting up aggregate awareness
Build the Objects
1. Identify all the possible definitions (table/column combinations) of
the objects.
14 | P a g e

BO FAQ

2. Arrange the objects by level of aggregation.


3. Build the objects using the @Aggregate_Awareness function.
Specify the incompatible objects ( Tools- Aggregate Navigation )
1. Build an objects/aggregate tables matrix.
2. For the first aggregate table, decide whether each object is either:
- at the same level of aggregation or higher (compatible)
- at a lower level of aggregation (incompatible)
3. Check only the boxes of objects that are incompatible for that table.
4. Repeat the steps for the remaining aggregate tables.
Define any necessary contexts
1. Define one context per level of aggregation.
Test the results
1. Run several queries.
2. Compare the results.
Can you please clarify the difference between compatible and
incompatible objects? When we will use these two?
Ans. When you are defining Aggregate tables in Universe design, you
need to create hierarchies for aggregated objects, for that you need to
make the relative objects incompatible (the objects which are of lower
level of aggregation -- not of hierarchy). If you have Year, Quarter, Month,
Day as a hierarchy, while aggregation, you need to define as follows Year - Quarter, Month, Day Compatibles
Quarter - Month, Day Compatibles, Year Non-compatible
Month - Day Compatible, Year, Quarter Non-compatible
3)

How can you set access restrictions on a universe?


Ans. Access restrictions that apply to a user group are defined in a
restriction.
Universe security is managed at two levels:
CMS
o From the Central Management Console, you can set what
universes Users can access and depending on the rights
defined for a user group, you can restrict viewing, editing,
deleting and other actions in a universe.
Universe
o You can define restrictions for users allowed to use a universe.
It can be
Connection
Query controls
SQL generation option
Object access
Row access
Alternate table access
4)

15 | P a g e

BO FAQ

How do you set Row access restriction?


Ans. Tools => Manage Security => Manage Access Restrictions
Click New => Click Rows tab => Click Add
Click Browse button next to Table box
Click table name and click ok
Click Browse button next to Where clause box
Give condition => OK => OK .
5)

To view the restrictions applied to all users and groups, select


Tools => Preview security restrictions, click user account name in the list
=> Preview.
Parameters and options that appear in red are those that have been
modified and apply specifically to the restriction.
What are Linked universes?
Ans. Linked universes share the common components such as
Parameters, classes, objects or joins. When you link two universes, one
universe has the role of core universe the other has a role of derived
universe. When changes are made in core universe, they are
automatically propagated to derived universe.
Core universe is a universe to which other universes are linked.
Derived universe is a universe that contains a link to a core universe.
If the linked core universe is a Kernel universe, then components can be
added to derived universe. If the linked core universe is a master
universe, then the derived universe contains all the core universe
components. Class and objects are not added to the derived universe but
they can be hidden in the derived universe depending on the user needs
of the target audience.
6)

16 | P a g e

BO FAQ

Advantages:
Maintenance will be easy because when you modify a component in
the core universe, designer will automatically reflect the changes in all
the derived universes.
No need to re-create common components each time you create a new
universe as often used components can be kept in a core universe.
Requirements:
Core universe and derived universe use the same data account or
database. Using the same connection for both universes makes
managing the universes easier, but this can be changed at any time.
Core and derived universes must be in same repository.
Core universe was exported and re-imported at least once. Derived
universe does not need to have been exported before creating a link.
Exported derived universes are located in the same universe domain
as the core universe
You have the authorization to link the given universe.
Restrictions:
You can use only one level of linking. You cannot create derived
universe from a universe which is itself derived.
All classes and objects are unique in both the universes else conflict
will occur.
Only the table schema, classes and objects of the core universe are
available in the derived universe. Context must be re-detected in the
derived universe.
The two universe structures must allow joins to be created between a
table in one universe to a table in the other universe else Cartesian
product will occur.
List of values associated with a core universe are not saved when you
export a derived universe with the core universe structure.
To save LOVs associated with core universe:
Create new objects using the same definition
Assign the new objects the same LOVs as the core objects
Hide these new objects.
The hidden objects serve the function of holding the LOVs so that they
can be exported and imported with the derived universe.
17 | P a g e

BO FAQ

You can log into designer as a different user without quitting your work
session.
Tools => Login As. Give user name and password.
(If there are any open universes, designer closes them automatically)
Tools => Change password ( to change password).
What is cardinality and what happens if Cardinalities are not resolved?
Ans. 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.
7)

If Cardinalities are not specified between the tables, then


We get more results at report level than the actual result, like a Cartesian
product.
We cant detect the Loops & Traps which are mainly detected by the
CARDINALITIES option.
What is Context?
Ans. Context is a list of joins that defines a specific path for query and is
used for solving loops and traps.
8)

18 | P a g e

BO FAQ

Main disadvantage is that it exposes the end users to the database


structure and they are forced to decide which Context to use to run their
query.
9)

How to test the Context?


Create a query which includes objects which are only in one
context : BO should be able to get the correct result by determining
the context.
Create a query which includes objects from both the contexts: BO
should generate two queries and then unions it.
Create a query which includes object which are common two both
the context: BO should prompt for contexts to be used.

10) What

is Alias?
Ans. Alias used for solving loops and traps by using same table with
different name in the query.
11) What

is loop and how do you resolve them?


Ans. Loop is a closed circular path among the joined tables.
If the loop is formed between 1 fact table and 2 (or more) dimension
tables, then create an Alias for existing dimension table.
If the loop formed contains more than 1 fact table, then go for Context.
If loops are not resolved and report is run following error might come.
Error: Incompatible combination of objects
12) What

is Chasm trap?
Ans. It is a type of join path between three tables when there are two
many to one joins converging on a single table, and there is no context
in place that separates the converging join paths. Because of Chasm trap
we get incorrect results i.e., Cartesian product will occur.
Resolving a Chasm trap:

When there are dimension objects in one or both fact tables, use context.
When there are measure objects defined for both fact tables, use the universe
parameter option SQL Multiple SQL statements for each measure.

13) What

is Fan trap?
Ans. It is a type of join path between three tables when a one to many
join links a table which in turn kinked by another one to many join.
Because of Fan trap we get incorrect results i.e., Cartesian product will
occur.
Resolving a Fan trap:

Create an alias for the table that is producing the multiplied aggregation.

19 | P a g e

BO FAQ

Create a join between the original table and Alias table


Create the context

When there are only measure objects defined for both the tables , use the universe
parameter option SQL Multiple SQL statements for each measure.

OR

14) What

are the Derived Tables and its use?


Ans. It is defined by an SQL query at the universe level that can be used
as a logical table in Designer.
Sometimes it not possible to create dimension/measure directly in
universe in that case we use derived tables. E.g. First time users, union
queries etc.
Derived tables have the following advantages:
Reduced amount of data returned to the document for analysis.
You can include complex calculations and functions in a derived table.
These operations are performed before the result set is returned to a
document, which saves time and reduces the need for complex analysis
of large amounts of data at the report level.
15) What

is the difference between Conditions and Filters?


Ans. The major difference between query conditions and document filters
is that a condition is applied to the query and limits the data retrieved
from the database, whereas the filter is applied to the data in the
document to hide information and display only the information that you
want to appear.
16) What

is a Join? What are different types of Join?


Ans. As we retrieve data from more than 1 table, we apply join between
the tables.
Different types of Joins are:
Inner join
Left outer join
Right outer join Full outer join
Theta
join
Equi join Self join
17) What

are different types of Objects?


Ans. Dimension object - Dimension is a main analysis object in a query
which maps to one or more key columns in a database. Dimension objects
can be organized hierarchically within a class to make default hierarchies
for drill-down operations. For example, time can be a dimension with yearmonth-day hierarchy.
Detail Object - Detail object provides descriptive detail data about a
dimension (maps to one or more columns or functions). For example, a
month name in time dimension can be a detail of month index.
Measure - Object provides metrics (aggregated numbers) by which
dimensions are compared.
20 | P a g e

BO FAQ
18) What

are concatenated Objects in a Universe?


Ans. A concatenated object is an object you create by combining two
existing objects.
For example, lets say that you wish to create an object called Full Name,
which is a concatenation of the objects Last Name and First Name in the
Customer class.
Example: Full Name = [First Name] + [Last Name]
If Month value is 1 and Year value is 2011 then MonthYear = 12011
(Both variables are number datatype)
=FormatNumber([Month];0) + FormatNumber([Year];0)
19) What

is Class?
Ans. Class is a logical grouping of objects within a universe and can be
divided hierarchically into subclasses and represents as folders on a tree
hierarchy in the universe pane.
20) How

do you group measure objects?


Ans. Create a new variable and use If..Then..Else in the formula.
Example: =If (<Usage Billing> < 5000) Then "Low" Else If (<Usage
Billing> > 5000 and <Usage Billing> < 10000) Then "Medium" Else
"High"
21) Is

it possible to join more than one universe in Business Objects? If it


is so how is that possible?
Ans. Yes it is possible. We can link the two universes by using add link
option which is available in parameters (option seen in tool bar file menu).
22) What

is category?
Ans. Category is logical way of structuring or organizing the content (BO
document).
23) What

are the different data providers can be used to create report?


Ans. Universe, Personal data files such as Text files(.asc,
.prn,.txt,.csv),Excel spreadsheet (.xls),Database files(.dbf), xml files(.xml),
Free-hand SQL, Stored Procedures, VB, etc.
24) What

is the delimiter can be used for text files?


Ans. Tabulation, Space, or Character.
25) How

do you combine data from different data providers?


Ans. Dimension objects from one data provider are linked to dimension
objects that contain the same values in a different data provider.
26) What

are the limitations for Combined queries?


Queries must contain the same number of objects
21 | P a g e

BO FAQ

Objects must be of the same type( i.e. character, date, number)


there can be upto eight queries in a combined query
when using minus, the second query is subtracted from the first
27) How

can you check the integrity of universe?


Ans. By making use of Check integrity button.
28) Is

it possible to create reports from different universes in one


document?
Ans. Yes it is possible to use different universe to generate a single
report....multiple data providers. OR you can link other universes to
existing universe and then develop the report.
29) What

are Universe parameters?


Ans. Definition, Summary, Strategies, Controls, SQL, Links and Parameters
.
30) Why

do we need metrics and sets?


Ans. Metrics are used for Analysis and Sets are used for grouping.
31) What

issues you faced while creating universe?


Ans. Loops, traps, connections to the data base.
32) What

are Pre-defined conditions? How do you compare with report


conditions?
Ans. These are the conditions defined by Designer in the Universe. Often
used Query conditions are qualify for pre-defined condition.
33) What

is object and what do you mean by object qualification?


Ans. Object is an instance of class and object qualification represents
what kind of object it is like: Dimension or Detail or Measure.
Object is a component named with business terminology and maps to
data in the database or uses other objects within the same universe.
34) What

is LOV? Where it is store?


Ans. It displays the list of data values associated with an object. A list of
value can contain data from a Database file or an External file.
35) Explain

in Detail about Measure Objects? What is the use of it? How to


create it?
Ans. Measure Object conveys numeric information which is used to
quantify a dimension object. A measure object returns numeric
information. You can create a measure object by using aggregate
functions such as: Sum Count Average Minimum and Maximum.
22 | P a g e

BO FAQ
36) In

universe parameter if you dont give the option multiple contexts,


what is the impact in report level?
Ans. By having multiple contexts you can utilize the Multipass SQL
feature.
Multipass: Breaking one large SQL into multiple SQL. If you are using the
star schema with two or more fact tables, and you enable this feature, BO
will automatically generate two or more SQLs (i.e. one SQL for each fact
table object used in the report). Then the results will be synchronized in
the report.
37) What

is isolated join in check integrity


Ans. A join which is not associated to any one of the contexts.
38) Can

I link two Universes having with different connection?


Ans. Yes as long as they point to same database.
39) I

have 2 universes, U1 and U2. From U1, I created one report that is
R1. Now i want to give the connection R1 to U2 and at the same time
delete the connection from U1 to R1? How is it possible?
Ans. We can change the connection for the report R1. For webI reports in
query panel on left side we have Query properties there we can change
the connection of the universe to U2. Then it will map to the U2.
40) How

to set Cascading LOVs?


Ans. We are going to create Prompt based on:
Country > Resort > Service Line > Service (Hierarchy diagram shown
below)
Go to the Edit Properties window of Resort
Select Automatic refresh before use and click Edit
Bring the Country object to conditions panel and build prompt:
What Country are you interested in? Save and Close Apply
Go to the Edit properties window of Service Line
Select Automatic refresh before use and click Edit
Bring the Resort object to conditions panel and build prompt:
What Resort are you interested in? Save and Close Apply
Go to the Edit properties window of Service
Select Automatic refresh before use and click Edit
Bring the Service Line object to conditions panel and build prompt:
What Service Lines are you interested in? Save and Close OK

23 | P a g e

BO FAQ

In WEBI, Select Country, Service Line, Revenue in result objects and


Service Line into query conditions panel and build prompt What service
lines are we tracking?
Click Run query
Now you will be prompted for Service Line
Hierarchy

Click values and this is where the fun begins. You will be then prompted
for a Resort

41) What

is the test methodology for testing BO Universes?


24 | P a g e

BO FAQ

Ans. Universe is tested keeping in view of the reporting requirements. A


Universe should support creation of all the reports that needs be created
off it plus any other additional requirements.
Using check integrity option we can test the universe.
Check whether any loops are there in universe.
Check any chasm trap and fan trap are there in universe.
Check parse of all the objects created in universe.
Check the joins. Weather any condition is not properly specified.
42) What

is hierarchy?
Ans. Hierarchy is an ordered tree structure of relevant dimension objects.
Hierarchies are used for drilling information across various levels.
43) What

is the difference between the default hierarchy and custom


hierarchy?
Ans. Default hierarchies are created as per the default classes and
dimension structure in the Universe while Custom hierarchies are those
explicitly defined by in Universe by using dimension objects.
44) What

is difference between local filter and global filter?


Ans. Applying filter to a specific table (block) is called as local filter while
applying filter to a report is called as global filter and it is applicable for all
the blocks in a report.
45) What

is Drill down, Drill up, Drill Through, and Drill across?


Ans. Drill Down: When you drill down, you display the next level of detail
in a hierarchy.
Drill Up: When you drill up, you display the next highest level of detail in
a hierarchy.
Drill Across: When you drill down and up, you move through the levels of
the same Hierarchy. However, if you cannot find the answer to a question
by analyzing data in its current hierarchy, you can move to another
hierarchy to analyze other data.
Drill Through: If the lowest level of detail you need is not currently
available in the report, you can drill through to the database directly from
drill mode and get the data you need. You do not have to edit the query in
the Query Panel.
46) What

is the syntax of prompt?


Ans. @Prompt('message','type',
[lov],mono/multi,free/constrained/primary_key,per
sistent/not_persistent, [{'default value':'default key'[,'default
value':'default
25 | P a g e

BO FAQ

key',...]})
message
quotes.
type
Lov

- Test of the prompt message enclosed in single


- Data type returned by the function.
A for alphanumeric, N for number & D for date.
- You can specify two types of list of values.
Hard coded list: {AUSTRALIA,FRANCE,USA}
for

example.
Pointer to a list of values from an existing object:
CLIENT\COUNTRY.
Mono
- user can select only 1 value from LOV.
Multi
- user can select multiple values from LOV
Free
- user can enter a value or select from LOV
Constrained - user must select a value from the LOV
Primary key
- Use the primary key parameter with "free" or
"constrained". The user
enters a value or selects from
the list of values. If the primary key parameter is present,
the entered or displayed value is not used to generate the
query. The associated key value from the Index Awareness
column is used.
Persistent
- when refreshing a document, the last values used in the
prompt is displayed by default.
Not persistent - when refreshing a document, no last values will be
displayed in prompt.
'default value':'defaultkey' - The default values parameter is used to
define default values presented to the user.
You can define multiple default values. The syntax for each
default value is: value:key.
The colon (:) is the separator between the value and the
key.
When refreshing a document these values are displayed by
default but if
the persistent option is set, then the last values used in the
prompt are used instead of the default values.
If you specify the primary key parameter, then you must
provide the key value(s).
47) What

is Index Awareness in Universe?


Index awareness is the ability to take advantage of the indexes on key
column to retrieve the data fast.
The objects that we create in the universe are based on database columns
that are meaningful to an end user. When you set up index awareness in
26 | P a g e

BO FAQ

designer, you tell designer which database columns are primary and
foreign keys which will increase query performance.
To setup Index Awareness, open the properties of objects, open Keys
tab. Click Insert and Add respective primary key and foreign key.
48) How

to implement Index awareness?


Ans. This is a feature of the universe to speed up performance of queries
in several ways:
It can remove joins from the SQL
It can remove tables from the SQL
It can search indexed, rather than non-indexed, columns

Here ClientName is a transformation (concatenation of FirstName and


LastName) and searching a transformation is never going to be fast, as it
cannot be indexed in the database.
Now with the help of Index awareness, instead of searching a ClientName,
the SQL will search the ClientID which is a indexed column.

The Key values are then stored in the LOV for the object. When a user
selects a value from the LOV, the SQL will switch the value to the indexed
column. Of course, if the user does not select from the LOV, but types in
the value instead, Index Awareness is not used. So you will need to train
your users to select from the LOV.

27 | P a g e

BO FAQ

Index awareness works best when used on a transactional database, or a


snowflake schema. Star schemas are usually already optimized for
queries, so you may not get as much improvement with a star schema.
49) You

are a universe designer and report developer in BO, what type of


information you gather from client?
Ans. Universe level:
What new objects to be made available in Universe
What new pre-conditions to be added
What User restrictions apply
Report Level:
Attributes required in report
Report input criteria (Prompts)
Report filters to be added
Alerter - Any information to be highlighted on specific criteria
Any calculated attributes required and exact calculation in
functional terms
Is User to be informed in case of duplicate records and what should
be the action
Report layout
50) What

is BIAR file?
Ans. It stands for Business Intelligence Archive Resource which is similar
to a zip file which is used to collect objects together to facilitate easier
backup, restore or transporting objects from one system to another.
You can create, export, import and promote a BIAR file with Life Cycle
Manager (LCM).
51) How

to make Back-up of a universe?


Ans. Using Business Objects Designer import the universe. Then making
no changes, close the universe. This will create a fresh, unaltered copy of
the universe on your local computer.
Locate the universe file (*.unv) and the folder (has the same name as the
universe file) in the following folder path on the computer on which you
are running Designer:
C:\Documents and Settings\Application Data\Business Objects\Business
Objects 12.0\Universes@DevelopmentWorking Area
28 | P a g e

BO FAQ

Select both the universe file and the folder (hold CTRL and use mouse).
Then right-click either the selected file and chose WinZip -> Add to Zip
File Note: Any compression tool will do.
Enter a name that is meaningful to you; it may indicate the version of the
universe, the date/time, or editor. Click OK and notice the new Zip file
you created. This is your backup.
52) How

to Restore a back-up of a universe


Ans. Many logical work flows for handling universes can result in changing
CUIDs and lost report bindings. Nevertheless, if properly back-up a
universe can be restored to a prior state by following this work flow.
Open Designer, but do not open any universe
Locate the desired corresponding Universe folder and zip file.
They should be located in:
C:\Documents and Settings\Application Data\Business Objects\Business
Objects 12.0\Universes@DevelopmentWorking Area
Back-up the existing universe file and folder to a new Zip file
Delete the existing universe file and folder
Unzip the backed-up universe file and folder to this same location. Note:
They must be in the same local folder as the universe file and folder they
are replacing.
Open the universe file that you just unzipped and export it to the folder in
which you are working:
You will receive a prompt similar to the following. Click Yes.
Prompt reads, A newer version of this universe exists in the repository. If you
continue with the export you may overwrite existing changes. Do you want to
continue?

WARNING: if you receive any messages asking you to Move, Copy, or Overwrite a universe
then you may not be restoring to the exact location that the universe previously resided.
Prompts asking to overwrite the universe will be received if the universe you are attempting to
restore does not have the same CUID as the backup universe. In this case, double-check your
directories and analyze everything in Query Builder.

1. At the end of the export close the universe and import the universe you just
exported.
2. Verify that this is the correct universe.
3. You have successfully restored the universe

29 | P a g e

BO FAQ

Chapter 3: Web Intelligence & Desktop Intelligence

What is the difference between Variable & Formula?


Ans. Formulas are unnamed and will create confusion when there are
many formulas in a report or document. There are three methods to
create a formula.
1)

Enter a formula directly into a cell


Enter a formula into the Formula bar
Use the formula editor

Variable is a named formula and stored in a document. A complex


formula can be simplified by using variables to create the formula in
pieces.
The major difference is the Variable Editor has a definition tab, where the
name and variable type are specified.
2)

What is the difference between User objects and Formulas / Variables?


30 | P a g e

BO FAQ

Ans. Formulas and Variables are used to manipulate the data after data
has been retrieved from the database while User objects operate at the
database level through the SQL query.
Formulas and Variables are associated with single document and are
available to any user refreshing or modifying the document while User
objects are associated with specific universe and are not available to
other users. They exist only on your computer.
(To create, Tools ==> Universe. Select the Unv under which the user
object will be created for)
How you will do Relative Positioning of Tables, Charts, and Cells?
Ans. Moving one block relative to the other block either up or down or left
or right is called relative block positioning. Process is:
Click on the table, chart, or cell until you see a border around the object.
Right click Align Relative position or Right click and select Position
3)

Then your choices are flexible: horizontal, right and left, and vertical, top
and bottom.
Each option allows the space to be defined in pixels (px).
What is User Object?
Ans. It is not available to other end users and if an end user tries to
refresh or edit a query that contains another user's user object, BO
removes the objects from the query and report.
4)

What is SetPrompts Failed error message?


Ans. When the Universe and reports migrated from DEV region to QA
region and at the time of testing reports by running them via Infoview, we
get this error message SetPromptsFailed(). If we refresh All list of values at
the time of Universe migration, we can get rid of this error.
5)

What is GetLov Failed Cannot load universe?


Ans. We get this error while refreshing report mostly in Infoview.
If you do not have data access to universe then you will get this error. In
case if you have access, open the report in DESKI. Tools menu ==>
Universe, select the particular universe causing the issue and click List of
values. Select the particular object or class and click Refresh. If you select
the class then it will refresh each and every object of that class.
6)

31 | P a g e

BO FAQ

What is Micro cube? How it works?


Ans. Micro cube works like a cache. For example if you drag objects in
Result objects pane and run query, complete report data will go and store
in Micro cube and then display in the report.
In report if you apply filter, you will get data that satisfies your filter. The
remaining data will not be deleted from the report, micro cube will store
that data.
Whenever you remove that filter from the report, again you will get
complete data from the micro cube.
7)

How do you do BO report testing in DESKI?


Ans. When you open the Report in Desktop Intelligence before refreshing
the report, you need to set the row limit according to your convenience in
Data Manager by clicking the Options tab. You can select 10, 20 or
whatever number of rows you want in your report. Now run the report, It
will retrieve all the rows from database and stored it in the data cube but
in Report only the number of rows selected will be displayed. It will make
the report testing easy.
8)

How do you do BO report testing in WEBI?


Ans. When you open the Report in Web Intelligence before refreshing the
report, you need to set the row limit according to your convenience in
EDIT QUERY mode by clicking the Properties tab. You can test for Rows
retrieved, Retrieve duplicate rows, Prompt order, etc.
9)

10) How

can you do load testing for WEBI reports? Concurrent users


refreshing report at one time?
Ans. Load testing can be done using Load runner tool. The results which
you get are:
Maximum running virtual users
Hits per second
Average response time for login, logout, click on particular link,
etc
Errors per second
Connections per second
11) How

you will do report investigation?


First look at the report and check for report filters
Check for query filters
Look at SQL

12) How

you can create Date prompt with Default today?


Ans. CALENDAR_TABLE.CAL_DATE = (
CASE WHEN @Prompt(Enter date or Today,'A,,mono,free,not_persistent,
{Today})
=Today THEN TRUNC(SYSDATE) ELSE
32 | P a g e

BO FAQ

@Prompt(Enter date or Today,'A,,mono,free,not_persistent,{Today})


END)
For DB2 use CURRENT_DATE and for SQL Server use GetDate()
13) How

to overcome overflow of data in a report?


Ans. When you have huge number of rows in report then u will get partial
results in that report. for that u have to increase the (Limit Size of the
Result set) check box button in Universe Parameters under Controls. The
number of rows that are returned in a query are limited to the number
that you specify.
14) What

do you mean by Purging?


Ans. Purging removes the data but keeps the structure. Before you share
the report with other users we need to purge the document because other
users have different security access based upon their profile. Purging also
reduces the size of document and saves disk space. The purged data can
be retrieved by user by using refresh.
15) How

do u get requirement from the client? In what format?


Ans. Design Specification (.doc)- shows the architecture of the Project.
Requirement Specification (.doc) - Security Requirements, Performance
Requirements, Non Functional Requirements, Functional Requirements
Project Plan (.mpp) - Project Duration
Report Specification Template (.xls) - Look and feel of the Reports
Data Element Matrix (.xls) - Tables and Columns involved in the Project
16) How

can you add multiple values in a filter?


Ans. Right-click on the report, a block, or an individual element
Filter > Add Filter option to provide access to the Report Filter Editor,
Block Filter Editor, and Filter dialog boxes
Use these dialog boxes/editors to create and/or edit your filters
You can now use both AND and OR operators with these filters
The selection of operands is limited here as compared to query filters.
Example Matches pattern

17) How

can I see and work with all of the filters applied on a report at
once?
Ans. You can only do this in InfoView's 'Interactive View' mode by making
use of the 'Document Structure and Filters' tab. Double-click on one of the
report filter boxes in the 'Document Structure and Filters' tab, the
'Block Filter Editor' dialog box opens.
33 | P a g e

BO FAQ
18) What

character do I use for a "wildcard" and how should I use it?


Ans. Wildcards are used with the "Matches Pattern" operator which has
the keyword LIKE
% is used for multiple value and _ is used for single value.
19) How

can I break on multiple columns at once (e.g., Name and Penn ID


together)?
Ans. Create a variable that concatenates these columns, and then put
break on that column.
20) How

do you retrieve information from Repository?


Ans. In earlier versions, this information is stored in repository database
and can be obtained easily with query SELECT * FROM
OBJ_M_CONNECTION
Using Query Builder tool (URL http://<your system name: port>
/AdminTools/querybuilder/query.jsp )

SELECT * FROM CI_APPOBJECTS WHERE SI_KIND =


MetaData.DataConnection

Using DESKI and VBA to retrieve information from


repository:
Launch DESKI with the new report wizard and then create a simple query
using just one object and click RUN button.
From Tools menu, select Macro => Visual Basic Editor ( Alt F11 key).
On the left side, right click on doc name and select Insert => Module.
Copy and paste the code and name it.

34 | P a g e

BO FAQ

Insert menu => Table => Access new data in different way => Others(Visual
basic for Applications) => Choose the previously created subroutine and
click Run. The query result is inserted into report.
We can query the System Database using an abstraction layer, made up of 3
virtual tables:
CI_INFOOBJECTS (user desktop info + )
CI_SYSTEMOBJECTS (administration info)
CI_APPOBJECTS (App info + universe metrics)
21) How

can I see how many rows of data were returned from my query?
Ans. In InfoView Interactive View mode, you can see the number of rows
returned, last execution time on the Data Summary tab.

22) How

can I see the order of the report breaks or sorts, and how can I
change them?
Ans. The most efficient way to do this is with InfoView Interactive View
mode.
Right-click in a column that you think has a break.
Notice that the Sort and Insert break... buttons change and look
'indented' when a column that has sorts or breaks is clicked.

Select Break from the drop-down menu that appears when you rightclick.
Select Properties and click on it and the Break Properties box will
appear.
Existing breaks are listed in order here.
Up and down arrows allow you to change the order of multiple breaks.
Existing Display Properties are shown and you can change them.
Existing Page Layout items are shown and you can change them.
35 | P a g e

BO FAQ

You can also remove a break.

In custom sort, you can add and remove temporary values in the sort as
well as change the order of the sort.
23) If

the time duration given in seconds, then you can display in


hh:mm:ss format in report?
Ans. In WEBI

V_hh =If (Truncate(([Duration] / 3600) - (Truncate([Duration]/86400 ; 0) * 24) ;


0)<10) Then
"0"+FormatNumber(Truncate(([Duration] / 3600) (Truncate([Duration]/86400 ; 0) * 24) ; 0) ; "#") Else
FormatNumber(Truncate(([Duration] / 3600) -(Truncate([Duration]/86400 ; 0)
* 24) ; 0) ; "#")
V_mm = If(Truncate(([Duration]/60) -(Truncate([Duration]/86400 ; 0)*1440)(Truncate(([Duration] / 3600) -(Truncate([Duration]/86400 ; 0) * 24) ; 0)*60) ;
0)<10) Then
"0"+FormatNumber(Truncate(([Duration]/60) - (Truncate([Duration]/86400 ;
0)*1440)(Truncate(([Duration] / 3600) -(Truncate([Duration]/86400 ; 0) * 24) ; 0)*60) ;
0) ;"#") Else
FormatNumber(Truncate(([Duration]/60) -(Truncate([Duration]/86400 ;
0)*1440)(Truncate(([Duration] / 3600) -(Truncate([Duration]/86400 ; 0) * 24) ; 0)*60) ;
0) ;"#")
V_ss =If(Mod([Duration];60)<10) Then
"0"+FormatNumber(Mod([Duration] ;
60) ;"#")ElseFormatNumber(Mod([Duration] ;60) ;"#")
V_hhmmss =[v_hh]+":"+[v_mn]+":"+[v_ss]

36 | P a g e

BO FAQ
24) The

Left Panel offers 9 function icons at its base (as opposed to the
tabs available in Webi report viewing)?

Document summary- lists information such as author name, date created,


and when it was last refreshed as well as prompt values used, if any exist
in the report.
Data Summary- lists information concerning the query that was used to
retrieve the data in the document. It shows the name of the universe and
the objects that make up the query definition, as well as the number of
rows that were returned by the query.
Chart and table types- allows you to view all the templates available to
you for modifying the way the data in the document is currently
presented. All the templates available for designing reports in the Java
Report panel are also available to you in Interactive View mode. Using
either drag and drop, or by clicking the Insert button available in the Chart
and Table Types panel, you can very quickly and easily transform a table
or chart in the document to another format, or insert a new block.
Available objects- lists all the objects that have been used in the
document's query to retrieve the data available in the document. You can
use drag and drop to move objects in and out of the blocks of data, or
even to create new blocks of data. You can also make your own variables.
Document structure and filters-allows you to view all the elements that
make up this document, such as the sections, report blocks, headers and
footers, as so on. In this pane, you can click a document element and
move it to another position in the document, just by moving it up or down
in the pane. Also allows you to format elements.
Navigation map-allows you to jump to different sections of the report by
clicking on the elements in the map.
User prompt input- allows you to add or modify prompts and then run the
query again.
Input controls- allows you to modify the reports input controls if it has any
37 | P a g e

BO FAQ

Find- allows you to find data on the report tab displayed on the right hand
side of the screen.
25) Can

I work in multiple documents at the same time?


Ans. Yes. There are two different ways that you can work with multiple
open documents.
Set your InfoView preferences to open documents in a new window (The
default setting is all-in-the-same-window. See 'How to Set InfoView
Preferences'.)
Click on the plus (+) sign in the upper right to open a new window with
the document if your preferences are NOT set to automatically open a
document in a new window (see below for more specific instructions)

BOTH of these methods will require you to cope with timeout


issues in InfoView/Webi. While you are actively working in one Webi
document, the open InfoView window with the other report can timeout
if it remains inactive too long, causing your whole session to timeout. The
only remedy for this timeout issue is to
Regularly go back to the original InfoView window and click around to
keep it active, AND
In Webi SAVE OFTEN (this is always a good idea, by the way).
26) Is

there a feature in InfoView/Webi to delete trailing blanks?


No, but if you need it for formatting purposes, or to download it to Excel
and you want to remove the trailing blanks, create a variable in your
report using the RightTrim.
27) How

can I create complex conditions (now called 'Query Filters') by


nesting or indenting them together, and using AND and OR?
Ans. If you slide your mouse up a little (before you release the object!),
you'll see the screen change: the object above where you were turns into
a blue rectangle, with a white rectangle below it , and both are indented a
little, indicating the thing you are inserting and the thing above it will
together be indented.

38 | P a g e

BO FAQ

You can do multiple levels of indents - it just takes a little practice.

Once you have the filters indented the way that you want them, doubleclick on the AND to turn it to an OR (and visa versa).
28) What are Alerter, Breaks, Filters and Conditions?
Ans. Alters are used for conditional formatting like highlighting

the data .
Breaks are nothing but grouping the data without any change in the
format.
Condition or Filters are used to get necessary data.
We can apply a maximum of 10 alerters on a single dimension/column
and a max of 30 alerters on a report.
29) Can

I take an existing query and run it against a different universe


without having to build it again from scratch?
Ans. You can move queries between universes to preserve all the query
structure and the reporting formatting. To do this, use the Properties tab
in Edit Query mode and click the ... button next to the universe name to
select from a list of all available universes. Then, you can use the Change
Source window to map your query to different objects, if you choose, or
remove them from the query all together.

39 | P a g e

BO FAQ

30) Why

there are html tags in my free-form text fields?


Ans. When reports converted from Deski using report conversion tool, it
assumes all text in text boxes should be displayed as html.
Edit the report, select the text box, and on the Properties tab Display Read cell content as "Text" instead of Hyperlink or HTML.

31) I'm

using the user response to a date prompt in a variable, but want to


see it just as the date, without the time. How can I do this?
Ans. FormatDate(ToDate(UserResponse([Query 1];"Enter Start
Date:");"");"MM/dd/yyyy")
32) What

kind of a date formula can you create to add a specified number


of days to a date?
Ans. Using relative date function
Date minus 7: =RelativeDate([Account End (FC)];-7)
Date plus 7: =RelativeDate([Account End (FC)];7)

33) How

do I add a logo to my Web Intelligence document?


40 | P a g e

BO FAQ

Answer: Add a blank cell from the templates tab:


Select this new cell and then click on the Properties tab Appearance
section Background image.
In this dialog box, select "Custom" and in the area for Image (URL), type
the name of your image file: InfosolHeader.jpg. Be sure to include the file
extension of the image, or it will not render.
Your logo is ready now for viewing as part of your Web Intelligence
report ...

To add a logo:
Go to the section, at the bottom, called <!-- Settings Default Skins background per report element
type -->
Add a new KEY entry for the new file as per the example below.
Note that the sequence numbers can be different for each type (4 and 5 in the example below).
<KEY VALUE="cell_skin5,report_skin4,section_skin5,bloc_skin5">
<SKIN NAME="InfoSol Logo" TYPE="stretch">
boimg://LogoCorp.jpg
</SKIN>
</KEY>
34) How

do I search for an object in Web Intelligence?


Ans. Click anywhere in the work area and start typing the object name. It
highlights the first object beginning with those letters. Then, simply press

41 | P a g e

BO FAQ

the down arrow key to take you to the next match till you find your object.

35) When

getting 'No data to fetch' message, how can you make the
report to display at least one record?
Ans. Add a second SQL UNION query with the same number of objects and
object types in the Result Objects and make it always return one value.
Then you may need to filter this value out of your reports by adding a
simple report level filter. OR
You can have two blocks, one hidden behind the other, where one block is
displayed when there is data, and the other block (with a hard-coded text
message) displayed only when there is no data.
Variable NumRows=NumberOfRows(DataProvider(< Order Date >))
36) How

can you import a single-tab report into another multi-table report


so the single- tab report will keep its formatting?
Ans. Use a template to move the formatting, but have to use VBA or
manually move the data provider as there is no feature within the product
to do this.
37) What

is difference between Break and Section?


Ans. In Section (Master Detail) you can have two or more different
crosstabs or tables Where as In break one block is break into groups and
subtotal is shown
In Section (Master Detail) you can have charts for each section or detail.
can have chart and table combination as well. Whereas in Breaks u cannot
insert a chart for each of the groups formed out of break.
What is meant by ForEach and ForAll function. In which case we use
the option in BO?
Ans.
ForEachIt is used to include a dimension in a context. Detail purpose.
ForAll It is used to exclude a dimension from a context. Summary
purpose.
38)

42 | P a g e

BO FAQ

We use ForEach for detail purpose and ForAll for summary purpose.
In
It is used to specify exactly which dimensions to include in a
context.
Input context
formula.
Output context
formula.
Reset context
starts over at zero.
In Report
In Block
In Body

It is used to determine the input values for the


It is used to determine the output scope of the
It is used to determine when a running function
sets the context at the report or Grand Total level.
sets the context for each section.
is the standard default context for each row of data.

39) What

is the difference between master-detail and Breaks?


Ans. In break common values are deleted (here in this case the table
number of columns will not changed) in master-detail , we declare certain
entity as a master to get the detailed information or report in this case
the table format is changed. (to do this Hyperlink is used)
40) What

is the source for metrics?


Ans. Measure objects.
41) What

are the general issues in migration process?


Ans. Alignment, Performance.
42) What

is the use of BO SDK?


Ans. Bo SDK main use is to suppress no data to fetch using Macros.
43) Analysis

in BO?
Ans. Slice & Dice and Drill analysis.
44) What

is meant by scorecards?
Ans. Scorecard is a concept used for measuring a company's activities in
terms of its vision and strategies, to give managers a comprehensive view
of the performance of the business.
45) What

are different types of saving options in web intelligence?


Ans. We can save as EXCEL, PDF,HTML..etc.
46) What

is the difference between thin client & thick client?


43 | P a g e

BO FAQ

Ans. Web based clients are called as thin clients and windows based
clients are called as thick clients.
47) What

Ans.

are Connection types available in BO?


Secured
Shared

Personal

48) What

is Slicing and Dicing?


Ans. It is used to analyze the data in different views and perspectives and
we can perform operations like: Breaks, Rank,
49) How

to schedule the object?


Ans. By using Program object in CMC.
Program object can be used to execute a batch file, a shell script, or a
binary executable. It can also run Java, Java script, and VB script and can
schedule the object.
The program requires a Logon As account and Program Job server
configured for your environment.
Process: In CMC go to Objects New object Program
Browse the test script to run
Choose the program type (Executable / Java / Script)
Select the target folder and Submit
50) What

is meant by object store?


Ans. It is the container of object which is created after .rpt file ran once.
51) How to refresh the database changes in
Ans. Refresh the Universe then refresh the report.

the report?

52) How

to execute the macro through Infoview?


Ans. Running the VB macro as full client(DESKI) report by invoking DeskI
using a batch file. This batch file can then be scheduled in Infoview too.
The batch file looks like this Code:
"C:\ProgramFiles\BusinessObjects\BusinessObjectsEnterprise11.5\win32_x
86\busobj.exe" "C:\temp\VB_BOXI.rep"
check 11.5 or 12.0
This will invoke the DeskI application and run the .rep file containing the
macro.
And it can be scheduled as program object in CMC/Infoview.
53) How

to move the report from Development environment to Production


Environment?

Ans. Using Import Wizard


54) Can

we customize the BO Infoview?


44 | P a g e

BO FAQ

Ans. Yes we can customize BO Infoview settings from the OPTION


available on the first page of it. There we have options to set default skin,
language, default page...etc
55) Im

having a report having 4 columns and N number of rows. If I click


on one cell, the report should go to another report page which gives
the detail of the cell?
Ans. This can be done using hyper linking. The cell can be defined as a
hyperlink and parameters can be passed to the destination report to
open.
56) Type

is same, 2 tables values are same. How do you find out both
values are same?
In Designer, File tab-->parameter-->Strategy, we have lot options to join.
Options are:
Match by column names, Match by values etc..
57) What

are cascading prompts explain with steps?


Ans. Series of prompts will narrow the end user selection. Select a
hierarchy and apply prompts.
Time hierarchy: year/quarter/month/week. take dimension objects
year/quarter/week and apply a prompt on month. Follow the same steps.
58) How

to hide empty tables in WEBI?


Ans. We can hide a table in WebI when the table is empty. From the
properties tab, deselect 'Show when empty' check box.
59) I

have a report with n number of records. I want to take alternative


rows as a red in color. How to make it?
Ans. In the properties of the table in which you are displaying data look
for "Alternate rows" and change the color to "Red" OR use Alerters.
60) Can

we prepare report based on Excel in BO?


Ans. Yes. BO separately provided the option to get the report data from
universe or others(personal data option)in the business objects entered
wizard. Click or Select the others option and it will let u different files or
extension files. here select .xls file and follow normal report style.
61) What

is the local or block filter and global filter in BO?


Ans. If a filter is applied on single block then it is called local or block filter
and if it is applied by clicking in a report then it is called global filter and it
applies to all the blocks.

45 | P a g e

BO FAQ
62) What

is offline mode? How can you log on to BO in off line mode? Can
we refresh a document while working in offline mode using a
Client/Server Connection?
Ans. Using BO in offline mode means that you are not connected to a
repository which in turn means that, whatever your connection type, you
will not be able to retrieve and send documents using BCA
Client Server Connection: If you are using a BO client/server connection
offline and not connected to a repository, you can still work with
documents and universes stored locally on your computer and even
create and refresh documents if you have a connection to the database.
63) How

do you implement dense rank in BO reports?


Ans: The DENSE_RANK function computes the rank of a row in an ordered
group of rows. Rows with equal values for the ranking criteria receive the
same rank.
SELECT * FROM ( SELECT deptno, ename, sal,DENSE_RANK() OVER (
PARTITION BY deptno ORDER BY sal desc ) TopN FROM emp
) WHERE TopN <= 3 ORDER BY deptno, sal DESC;
/
DEPTNO ENAME
SAL
TOPN
---------- ---------- ---------- ---------10 KING
5000
1
CLARK
2450
2
MILLER
1300
3
20
SCOTT
3000
1 <--- ! (in case of rank JONES will
have 3 and dense
rank will have 2)
FORD
3000
1 <--- !
JONES
2975
2
64) Can

you apply Rank and Sort at a time on single report?


Ans. No. If one tries, it will ask you want to overwrite the previous
condition. But it can be applied on another column, say I applied ranking
on salary to retrieve top 10 salaries and then apply sort on employee
name. It will affect only those rows which has common salary.
65) In

a report i need vertical table and below that a chart. How do you
make sure that data overlap does not happen?
Ans. By relative positioning under Appearances
66) What

is batch processing in BO?


Ans. Batch processing means scheduling the reports.
46 | P a g e

BO FAQ
67) How

can you schedule the report to run only when there is data in it?
Ans. You could schedule a report to run and generate output to a file. If
the data is not refreshed, then the logic in the report's SQL should cause
the report to fail, therefore generating no output. If the data is refreshed,
then the output file is generated. Next, set up a File-based Event to watch
for that file.
68) Whenever

my database table gets updated with latest records, the


scheduler should run and send the report to users?
Ans. Each time the database table gets updated with latest data,
Generate a file and place it in specific location
Create a file based event and point to location of this file
Each time a file gets created , this Event will detect it and
will trigger the report to run
And finally delete the trigger file and report ran.
69) How

can you delete the above file automatically?


Ans. Create a batch file with the following code, and upload it to the CMS
as a program object:
@echo off
dir %1
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo Deleting file: %1\%2.old
del %1\%2.old
echo Renaming %1\%2 to %1\%2.old
ren %1\%2 %2.old
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dir %1
Create a separate schedule for each trigger file to be deleted. Set the
schedule to run when the File Event fires. Set its arguments to the file's
path<space>filename (ex. "\\server\share filename.txt".
70) What

is the difference between desktop intelligence and web


intelligence in detail?
Ans. Scheduling can be done directly in Web-I (Xi R2), where as we need
additional softwares to schedule Deski reports. You can view the Deski
reports in Web-I, but not Web-I Reports in Deski. But we can schedule the
Deski reports via Web-I.
In Web-I we can create the reports only through Universes and DeskI we
can also create from personal data files, Free-hand SQL, Stored
Procedures, VB Application and XML data provider.
47 | P a g e

BO FAQ
71) What

is repository?
(BOE source)
Ans. All universe objects and connections are stored and secured in the
central repository.
72) What

is CCM?
Ans. Central Configuration Manager is used to start, stop, enable and
disable servers.
73) What

is CMC?
Ans. Central Management Console is a web-based environment used for
managing:
User and group creation
Security authentication
services
Object rights
Scheduling
Business calendars
License keys
Universe and data connections
74) What

are underlying processes that run on a BO XI R2 server?


Ans. These are:
Central Management Server
File Repository Services Event Services
Schedule Services
Cache Services
Report
Services
75) What

is CMS?
Ans. Central Management Server performs four main tasks:
Maintaining Security
Managing Objects
Managing Servers
Managing Auditing
76) What

is File Repository Service (FRS)?


Ans. It consists of two components:
Input file repository server which manages all of the objects managed by
the platform
Output file repository server which manages all of the report instances
generated by scheduling services
77) What

is Event Service?
Ans. After a file based event is created, the event service monitors the
specified directory for new files and when they appear, it notifies the CMS
that the file based event has occurred and triggers the event.
78) What

is Scheduled Service?
Ans. Report job server processes scheduled reports and generated report
instances.
48 | P a g e

BO FAQ
79) What

is Cache Service?
Ans. Cache services are responsible for handling all report viewing
requests.
80) What

is Report service?
Ans. It consists of two components:
Web Intelligence Report Server It is accessed when the CMS
requests the creation or viewing of a WEBI document for further
interaction
Desktop Intelligence Report Server It handles the collection of data,
formatting, and layout of a DESKI document.
81) How

you can add ALL in the selection list of LOV in report?


Ans. The process to include All is
Double click on the object in the universe
Under Properties tab, enable Associate a list of values and click Edit
Modify the query as
SELECT ALL FROM DUAL UNION
SELECT DISTINCT Kind.kind FROM Kind
Enable Do not generate SQL before running and click ok
Create a new condition Kind Prompt
Click browse (>>) button next to where clause box and develop the below
expression
@Select(Kind\Kind) IN @Prompt(Enter kind
code:,A,KIND\KIND,Multi,Free,not-persistent) OR
ALL IN @Prompt(Enter kind code:,A,KIND\KIND,Multi,Free,notpersistent)
And then parse it.

82) How

can you shade alternate records in the report?


Ans. First create a variable (Even or Odd) which calculates the alternate
row as =Mod(LineNumber(),2) which will return either 0 or 1
Create an alerter based on the condition of variable created Even or Odd
This results in every other row shaded
Apply the alerter to each column
83) Why

is there a tilde (~) in the name of my Web Intelligence folder in


My Favorites? Is that a default folder and if so, what goes into it?
Ans. If Web Intelligence is configured for 'autosave', and if you have the
appropriate security rights, Web Intelligence saves your documents
automatically in the My Favorites / ~Web Intelligence folder as you work.
49 | P a g e

BO FAQ
84) What

is Universe override?
Ans. Universe Overrides or Access Restrictions are simply object
restrictions, table mapping, and row restrictions which are directly added
to a universe.
85) What

is Open Document?
Ans. With the open document, you can embed hyperlinks in one
document to another.
Example:
Ampersand is always required between parameters and joined by &.
Document identifier properties:
="<a
href="+Char(34)+"/OpenDocument/opendoc/openDocument.jsp?
iDocID It is used to specify how to access a particular document in CMS
or determine how to display the document to the user. It is used in
conjunction with sIDType
sIDType specifies the type of object identifier.
Values: CUID / ParentID / InfoObjectID
="<ahref="+Char(34)+"/OpenDocument/opendoc/openDocument.jsp?
iDocID=Aa6GrrM79cRAmaOSMGoadKI&sIDType=CUID
sDocName specifies the name of the viewable document. Used in
conjunction with sPath and sType
sPath specifies the name of the folder and subfolder containing the
target document.
Values: [folder],[subfolder]
sType specifies the file type of target document.
Values: wid / rpt / car
="<ahref="+Char(34)+"/OpenDocument/opendoc/openDocument.jsp?
sDocName=Sales+in+2011&sPath=[Sales+Reports]&sType=rwid

sInstance specifies the scheduled instance of the target document to


open. Used in conjunction with sDocName or iDocID
Values: User (Latest instance owned by current user)
Last (Latest instance of document)
Param (Latest instance of document with matching parameter
values)
="<ahref="+Char(34)+"/OpenDocument/opendoc/openDocument.jsp?
sDocName=Sales+in+2011&sPath=[Sales+Reports]&sType=rwid&sInstance=Us
er

sKind Only mandatory if target is a DESKI document. Value: FullClient


Input parameters:
50 | P a g e

BO FAQ

lsC - specifies a contextual prompt if there is ambiguity during SQL


generation
Value: context name
lsM[Name] specifies multiple values for a prompt. [Name] is the text of
prompt
Value: Multiple prompt values separated by comma
No_value for optional prompts
lsR[Name] specifies a range of values for prompt
Value: A range of values for prompt separated by double
period (..)
No_value for optional prompts
lsS[Name] specifies a value for single prompt
Value: A single prompt value
No_value for optional prompts
sRefresh indicates whether a database refresh should be forced when
the target document is opened .
Value: Y / N
&lsMparamNumberDR=[3],[4]
&lsMparamDateDR=[Date(2003,6,3)],[Date(2003,6,4)]
&lsMparamDateTimeDR=[DateTime(2003,6,1,3,1,1)],
[DateTime(2003,6,1,4,1,1)]
&lsC=Sales
&lsRTime+Period:=[2000..2004]
&lsRparamDateDR=[Date(2003,6,7)..Date(2003,6,8)]
&lsRparamDateTime
DR=[DateTime(2003,6,1,7,1,1)..DateTime(2003,6,1,8,1,1)]
&lsSparamDateTime=DateTime(2003,6,11,14,38,37)
&sRefresh=Y
86) How

Ans.

to get iDocID in open document?

Click on Report in Infoview


Right click on Name of tab and select Properties
Click on View Source
Scroll down to strDocID

87) Can

I build a query based on a spreadsheet or another query?


Since Webi is a server-based product, it doesn't have the ability for users
to upload Excel spreadsheets and base queries off them.
88) What

are @functions
Ans. @Aggregate_Aware, @Prompt, @Script, @Select, @Variable,
@Where
51 | P a g e

BO FAQ

@Prompt: It prompts the end user to enter a specific value.


Syntax: @Prompt (message, [type], [lov], [MONO|MULTI], [FREE|
CONSTRAINED])
@Select: This function enables you to re-use the Select statement of an
existing object.
Syntax: @Select (Classname\Objectname)
@Where: This function lets you re-use the Where clause of an existing
object.
Syntax: @Where (Classname\Objectname)
@Variable: The @Variable is used to reference the value assigned to a
name or variable.
Syntax: @Variable(myname)
@Script: This function recovers the results of Visual Basic for Applications
macro (VBA macro).
Syntax: @Script (var_name, vartype, script_name)
89) When

BO report is exported to excel, what issues we may come


across?
Ans. BO report can be exported to excel from View mode or Edit mode.
Alignment issues
Issues with colors (chart colors, cell colors etc).
Cell wrapping issues etc
90) What

is the syntax for FOREACH and FORALL?

Ans.

Max ([Sales Revenue] In ([Year];[Quarter])) In ([Year]) OR


Max ([Sales Revenue] ForEach ([Quarter])) In ([Year])

Sum([Sales Revenue] In ([Year]))

OR

52 | P a g e

BO FAQ
Sum([Sales Revenue] ForAll ([Quarter]))
91) What

type of errors you get in report?


Ans. Formula error and information messages like
#MULTIVALUE

#SYNTAX
#ERROR
#DATASYNC
#CONTEXT
#SECURITY

#EXTERNAL
92) What

is #MULTIVALUE?
Ans. #MULTIVALUE occurs when you place a formula that returns more
than one value in a cell that supports one value only.
Example: Multivalue in a cell
You have a report showing Country, Resort and Revenue and you add a
cell to the report containing the formula [Revenue] ForEach
([Country]).
This cell returns #MULTIVALUE because Country has many values in the
report and one cell cannot display the revenues for all the countries.
What is #SYNTAX?
Ans. #SYNTAX occurs when a formula references an object that no longer
exists in the report.
Example: Referencing a non-existent object
93)

You have a report that originally showed Year, Quarter and Sales revenue,
with an additional column showing difference between the revenue and
the average yearly revenue. This figure is given by the variable Difference
If this variable is deleted from the report, the column containing it returns
#SYNTAX.
94) What

is #ERROR?
Ans. #ERROR is the default error message that covers all errors not
covered by other error messages.
95) What

is #DATASYNC?
Ans. #DATASYNC occurs when you place a dimension from a different data
provider in a block containing dimensions from another data provider, and
the two data providers are not synchronized through a merged dimension.
#DATASYNC appears in all Dimensions in the block and #CONTEXT in the
Measures.
53 | P a g e

BO FAQ
96) What

is #SECURITY?
Ans. #SECURITY occurs when you attempt to use a function for which you
do not have security rights.
Example: Using the DataProviderSQL() function
If a user who does not have the right to view data provider SQL places the
DataProviderSQL() function in a cell, the #SECURITY message appears in
the cell.
97) What

is #EXTERNAL?
Ans. #EXTERNAL occurs when a formula references an external function
that is not available to Web Intelligence.
Example: Using the Multicube() in WEBI
98) How

can I hide a column or row in a table?


Ans. Format the column with no shading (or with white fill) so text,
background and border don't appear, move it to the far right of the table,
and then shrink it down to the smallest possible width (4 px).
99) How

to test BO report results?


Ans. To make sure BO report is correct we need to test:
BO report results (totals) against data base by comparing totals
against fact table records for that criteria the report is generated
(Need to write query on fact table to fetch totals and compare with
BO report).
Run BO query against DB to check if it produces same results in DB
too and to check performance variation.
Check formatting in BO report - should be as per requirements doc.
BO report query should be as per requirements and NO additional
joins should be involved.
Pass multiple sets of values in to Prompts/parameters to check if the
report is producing correct results in all scenarios.
Check if row level or object level security is working properly if at all
any.
Check formulas and query logic is correct.
How to create Hyperlink in webi report that links one tab in a
report to another tab in the same report?
Ans. Use sReportName=<Name of the tab> in the URL
100)

How to pass multiple values to multiple prompts from one report


to another report using hyperlinks?
Ans. Use MparameterName in URL
101)

54 | P a g e

BO FAQ

Chapter 4: Oracle
What is a Primary Key?
Ans. A primary key is used to uniquely identify each row in a table. It can
either be part of the actual record itself , or it can be an artificial field (one
that has nothing to do with the actual record). A primary key can consist
of one or more fields on a table. When multiple fields are used as a
primary key, they are called a composite key.
Primary keys can be specified either when the table is created (using
CREATE TABLE) or by changing the existing table structure (using ALTER
TABLE).
1)

What is a Foreign Key?


Ans. A foreign key is a field (or fields) that points to the primary key of
another table. The purpose of the foreign key is to ensure referential
integrity of the data. In other words, only values that are supposed to
appear in the database are permitted.
2)

What is the difference between Primary key and Unique key?


Ans. Both Primary key and Unique Key enforce uniqueness of the column
on which they are defined. But by default primary key creates a clustered
index on the column, where are unique creates a non-clustered index by
default. Another major difference is that, primary key doesnt allow NULL
value, but unique key allows NULL values.
3)

What is the difference between WHERE clause and HAVING clause?


Ans. The WHERE clause selects rows before grouping and cannot contain
aggregate functions. The HAVING clause selects rows after grouping and
can contain aggregate functions.
Individual records must to be selected by a query in Where clause. It can
be used without the group by clause. The Having clause cannot be used
without the group by clause and is used in conjuction with GROUP BY
clause.
4)

5)

What is Normalization?
55 | P a g e

BO FAQ

Ans. Normalization is the process of efficiently organizing data in a


database (that suits frequent inserts and updates of records in database).
There are two goals of the normalization process: eliminating redundant
data (for example, storing the same data in more than one table) and
ensuring data dependencies make sense (only storing related data in a
table). Both of these are worthy goals as they reduce the amount of space
a database consumes and ensure that data is logically stored.
What are the different types of Normal Forms?
Ans. First Normal Form (1NF): No repeating group of data items. Each
column should contain specific values. Each row is equivalent logical
record Relation should contain records of identical format.
Second Normal Form (2NF): It consist Foreign Key Relation Ship. Each
data items in a record are functionally dependent on the key of that
record. Each record uniquely identified with the Key. No Redundant of
data. It should full fill the 1NF.
Third Normal Form (3NF): First full fill second normal form. Example:
Fact Table. All non-key functionally depends on primary key.
Boyce-Codd Normal Form (BCNF): Eliminate redundancy. It adheres
both 2NF AND 3NF.
Fourth Normal Form (4NF): Eliminate multi dependency.
Fifth Normal Form (5NF): Eliminate cyclic dependency.
Sixth Normal Form (6NF): It satisfies No Non Trivial join at all,
extending relational model, temporal dimensions.
Domain Key Normal Form (DKNF): No constraints other than domain
constraints.
6)

What is Surrogate Key?


Ans. There was product called Baby Powder and after two years,
organization decides to stop selling this product because of its cost and
low sales and they launched a new product Talcum Powder for Men and
want to give same key to the product, say 336 and organization does not
want to remove all data of Baby Powder, what will you do now?
So to avoid such situation, its always better to use Surrogate Keys as
Primary Key in dimension table along with Business Key.
7)

Surrogate Keys are integers that are assigned sequentially in the


dimension table which can be used as PK.
SK_Proud
uct
1

Product_
ID

Product
Name

Cost

Aciv
e

336

Baby
Powder

444

N
56 | P a g e

BO FAQ

2
3

345

Cream

34

336

talkem
Powder

44

Now with above table you can use same code for another Product, mark
the product as Active and Inactive and maintain all the product in Data
Warehouse
Advantages of Surrogate Key:
Data need that arises from the Business or operational changes and
recycling.
It allows the data warehouse to integrate data from all sources if
they lack natural Business keys.
These are very helpful for ETL transformations
What is Materialized view?
Ans. A materialized view is a database object that contains the results of
a query.
CREATE MATERIALZED VIEW MV_NAME AS SELECT stmt;
8)

What is the difference between View and Materialized view?


Ans. View is the virtual table which does not have any physical existence
and will run the query definition each time they are accessed.
Materialized view has the physical existence (disk) which contains results
of query and updated periodically based upon the query definition.
9)

10) What

is Package?
Ans. Package is a database object which holds other objects in it such as
procedures, functions, cursors, variables, constants and exceptions.
11) What

is the difference between Procedure and Function?


Ans. Function returns only value back to the caller but in the case of
procedure multiple values can be passed back to caller.
12) What

is the difference between Trigger and Procedure?


Ans. Triggers do not accept any parameters and is executed internally by
the database engine itself upon data modification to an associated table
while procedures accept parameters and to execute a procedure, it has to
be explicitly called by a user.
13) What

is Stored Procedure?
Ans. A Stored procedure is a set of SQL statements with a name assigned
to it and stores in the database in the compiled form. SP are helpful in
57 | P a g e

BO FAQ

controlling access to data, preserving data integrity and improving


productivity.
Supported Stored Procedures in BO
Any PL/SQL procedures that return result sets through a REF Cursor.
PL/SQL stored procedures that have at least one IN/OUT REF cursor
variable parameter and no OUT or IN/OUT parameter.
Unsupported Stored Procedures
Any PL/SQL procedure that does not return result sets through a REF
CURSOR parameter
Any PL/SQL procedures having at least one OUT parameter
Any PL/SQL function
Any PL/SQL procedure having one IN/OUT parameter of a type different
than a REF CURSOR, for example, VARRAY
Any PL/SQL Table function
Ensure that your stored procedures are compatible with the Business
Objects products.
Setting up stored procedure access
To allow user access to stored procedures in BusinessObjects, implement
the following steps before they create connections:
1. Create a cursor inside a package.
2. Create the stored procedures using the defined cursor.
Both stages are done using Procedural Language/Standard Query
Language (PL/SQL).
CREATE or REPLACE PACKAGE catalog_data AS
TYPE CatCurTyp IS
REF CURSOR
RETURN
all_objects%ROWTYPE;
END catalog_data;
CREATE or REPLACE PROCEDURE get_ownerobjects(owner_name
IN
varchar2, cat_cv IN OUT catalog_data.catcurtyp) AS
BEGIN
OPEN cat_cv FOR SELECT * FROM all_objects WHERE
owner=owner_name;
END;
14) How

will you create a report using oracle stored procedure?

Ans.
58 | P a g e

BO FAQ

Select Data---New Data Provider--Stored Procedure


Selector define the db connection
Choose the stored procedure
Specify stored procedure as the data source
Define parameters
15) What

is the difference between Co-related sub query and nested sub


query?
Ans. Correlated subquery runs once for each row selected by the outer
query. It contains a reference to a value from the row selected by the
outer query.
Nested subquery runs only once for the entire nesting (outer) query. It
does not contain any reference to the outer query row.
Correlated Subquery:
Select e1.empname, e1.Sal, e1.deptno
From emp e1 where e1.Sal = ( Select max(Sal)
From emp e2
Where e2.deptno = e1.deptno) ;
Nested Subquery:
Select empname, Sal, deptno
From emp where (deptno, Sal) in (
Select deptno, max(Sal)
From emp group by deptno) ;
16) What

is the difference between Truncate, Delete, and Drop?


Ans. DELETE command is used to delete rows from a table and the
operation can be rollback.
TRUNCATE removes all rows from a table. The operation cannot be rolled
back and no triggers will be fired. As such, TRUCATE is faster and doesn't
use as much undo space as a DELETE.
DROP command removes a table from the database. All the tables' rows,
indexes and privileges will also be removed. No DML triggers will be fired.
The operation cannot be rolled back.
17) What

is NVL() function?
Ans. It is a function which returns a non-null value, if a null value is
passed to it.
NVL(a,b) == if 'a' is NULL then return 'b' else return 'a'.
18) What

is difference between Char and Varchar2 data types?


Ans. Char is used for storing fixed length character strings and will waste
lot of disk space. Varchar2 is used to store variable length character
strings and string value length will be stored on the disk with the value
itself.
59 | P a g e

BO FAQ

Note: Varchar should not be used as it is reserved for future usage. Use
Varchar2 instead.
19) What

is ROW ID?
Ans. ROW ID identifies where exactly the record is stored in the table with
the help of data value in index.
Format: BBBBBBB.RRRR.FFFFF where
B- block of database file, R row in block and F- database file
20) What

is the difference between ROWID and ROWNUM?


Ans. Rowid - Address of a record in database.
Rownum - Is a unique number assigned to record when retrieved by
a query.
21) What

is the difference between ROWINDEX() and ROWNUMBER()?


Ans. Row Index
-- Is the address of record in db
Row Number
-- Is the number assigned to the row retrieved by
SQL.
22) Write

a query to Display Sum of Salary for each department


Ans. SELECT SUM(sal), deptno FROM emp GROUP BY deptno.
23) What

is the difference between Row_Number(), Rank() and


Dense_Rank()?
Ans. Row_Number assign different values to each row, Rank will leave a
gap in the ranking sequence when there are common values(ties) and
Dense_Rank does not leave a gap in the ranking sequence.
SELECT names
, salary
,row_number () OVER (ORDER BY salary DESC) as ROW_NUMBER
,rank () OVER (ORDER BY salary DESC) as RANK
,dense_rank () OVER (ORDER BY salary DESC) as DENSE_RANK
FROM salaries
>>Output
NAMES SALARY ROW_NUMBER RANK DENSE_RANK
F

10000

6000

5000

5000

3
60 | P a g e

BO FAQ

4000

C
3000
6
6
5
Note: rank () OVER (Partition by deptno ORDER BY salary DESC
NULLS LAST) as RANK (try this)
24) Write

SQL query to list top 5 employee salary?


Ans. SELECT A.SAL FROM (
SELECT
ROWNUM, E.*
FROM
EMP E
ORDER BY E.SAL DESC ) A
WHERE A.ROWNUM <= 5
25) How

to get/retrieve even/odd number of records?

Ans.
Even:

SELECT * FROM EMP


WHERE ROWID IN (
SELECT
DECODE(MOD(ROWNUM,2),0,ROWID) FROM EMP)
Odd:

SELECT * FROM EMP


WHERE ROWID IN (
SELECT
DECODE(MOD(ROWNUM,2),1,ROWID) FROM EMP)

26) How

to get/retrieve every Nth row from a table?

Ans.
SELECT *
FROM (
SELECT rownum rn, empno, ename
FROM emp
) temp
WHERE MOD(temp.ROWNUM,4) = 0;

27) How

to get/retrieve N th max salary?

Ans.
SELECT DISTINCT A.SAL FROM EMP A
WHERE N = (
SELECT COUNT(DISTINCT(B.SAL)) FROM EMP B
WHERE A.SAL >= B.SAL);
28) How

to get/retrieve the Top 10 employees based on their salary?

Ans.
SELECT ename, sal
FROM ( SELECT ename, sal, RANK() OVER (ORDER BY sal DESC) sal_rank
61 | P a g e

BO FAQ
FROM emp )
WHERE sal_rank <= 10;
29) How

to get/retrieve the employees making the Top 10 salaries?

Ans.
SELECT ename, sal
FROM ( SELECT ename, sal, DENSE_RANK() OVER (ORDER BY sal DESC)
sal_dense_rank
FROM emp )
WHERE sal_dense_rank <= 10;
30) How

to get/retrieve the Bottom 10 employees based on their salary?

Ans.
SELECT ename, sal
FROM ( SELECT ename, sal, RANK() OVER (ORDER BY sal ASC) sal_rank
FROM emp )
WHERE sal_rank <= 10;

31) How

to get/retrieve the employees making the Bottom 10 salaries?

Ans.
SELECT ename, sal
FROM ( SELECT ename, sal, DENSE_RANK() OVER (ORDER BY sal ASC)
sal_dense_rank
FROM emp )
WHERE sal_dense_rank <= 10;
32) How

to get/retrieve only rows x to y from a table?

Ans.
SELECT *

FROM (

SELECT rownum rn, empno, ename

FROM emp
Where rownum < 101
) temp
WHERE rn BETWEEN 50 AND 60;
33) How

to remove the duplicate rows from table?

Ans.
DELETE FROM EMP
62 | P a g e

BO FAQ

WHERE rowid NOT IN (SELECT MAX(rowid)


FROM EMP
GROUP BY <columns>)
34) How

can you select a random collection of rows from a table?


Ans.
SELECT * FROM emp SAMPLE(10);
It randomly returns 10% of the rows in the table.
35) How

to add a day/hour/minute/second to a date value?

Ans.
select sysdate, sysdate+1/24, sysdate +1/1440, sysdate + 1/86400 from dual;
SYSDATE
SYSDATE+1/24
SYSDATE+1/1440
SYSDATE+1/86400
-------------------- -------------------- -------------------- -------------------03-Jul-2002 08:32:12 03-Jul-2002 09:32:12 03-Jul-2002 08:33:12 03-Jul-2002 08:32:13

Here are a couple of examples:


Description

Date Expression

Now

SYSDATE

Tomorow/ next day

SYSDATE + 1

Seven days from now

SYSDATE + 7

One hour from now

SYSDATE + 1/24

Three hours from now

SYSDATE + 3/24

A half hour from now

SYSDATE + 1/48

10 minutes from now

SYSDATE + 10/1440

30 seconds from now

SYSDATE + 30/86400

Tomorrow at 12 midnight

TRUNC(SYSDATE + 1)

Tomorrow at 8 AM

TRUNC(SYSDATE + 1) + 8/24

Next Monday at 12:00 noon

NEXT_DAY(TRUNC(SYSDATE), 'MONDAY') + 12/24

First day of the month at 12 midnight TRUNC(LAST_DAY(SYSDATE ) + 1)


The next Monday, Wednesday or
Friday at 9 a.m

TRUNC(LEAST(NEXT_DAY(sysdate, 'MONDAY'), NEXT_DAY(sysdate, 'WEDNESDAY'),


NEXT_DAY(sysdate, 'FRIDAY'))) + 9/24

63 | P a g e

Vous aimerez peut-être aussi