Está en la página 1de 62


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.





Chapter 1: Data warehousing & BO Concepts

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.

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.

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.

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.

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

What is Confirmed Dimension?

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

What are Degenerated Objects?

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

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

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.

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.

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.



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.

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.

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.

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.

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

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-toone relationship.

What are the different measure (fact) types?

Additive: Measures that can be added across all dimensions.
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



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.

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.

What is a Snowflake schema?

Ans. In a snowflake schema one or more dimension tables are partially or completely
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.



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.

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.

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.

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.

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

Can both exist in same tier?
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.

Can you explain BO architecture?

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



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
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
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
The Connection server is responsible for handling connection and interaction with the
various data sources. It supports relational databases (Oracle, MySQL, Microsoft SQL Server,
DB2, Sybase) as well as OLAP (SAP BW, Microsoft Analysis Services, Hyperion Essbase).
What are the different authentication modes you know?
Ans. Version 3.0 supports below authentication:
Windows NT
Windows AD
LDAP (Light weight Data Access Protocol) which will be mapped in CMC.

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


11 | P a g e


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.

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.
12 | P a g e


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

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 long-objects (BLOB) set FETCH size as 1.
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.
13 | P a g e


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 =>
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
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
Setting up aggregate awareness
Build the Objects
1. Identify all the possible definitions (table/column combinations) of the objects.
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.
14 | P a g e


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

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:
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.
o You can define restrictions for users allowed to use a universe. It can be
Query controls
SQL generation option
Object access
Row access
Alternate table access

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 .

15 | P a g e


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


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.
16 | P a g e



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

You have the authorization to link the given universe.


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.

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

17 | P a g e


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.

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


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.

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

18 | P a g e


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

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.

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

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


What is the difference between Conditions and Filters?

19 | P a g e


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

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 year-month-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

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)

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.

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"

20 | P a g e


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

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

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.

What is the delimiter can be used for text files?

Ans. Tabulation, Space, or Character.

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.


What are the limitations for Combined queries?

Queries must contain the same number of objects
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

How can you check the integrity of universe?

Ans. By making use of Check integrity button.

Is it possible to create reports from different universes in one

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.

What are Universe parameters?

Ans. Definition, Summary, Strategies, Controls, SQL, Links and Parameters .

Why do we need metrics and sets?

Ans. Metrics are used for Analysis and Sets are used for grouping.

What issues you faced while creating universe?

Ans. Loops, traps, connections to the data base.

21 | P a g e


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

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

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.

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.

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.

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.

What is isolated join in check integrity

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

Can I link two Universes having with different connection?

Ans. Yes as long as they point to same database.

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.

22 | P a g e


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

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

23 | P a g e


What is the test methodology for testing BO Universes?

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

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


What is the difference between the default hierarchy and custom


24 | P a g e


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

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.

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
- Test of the prompt message enclosed in single quotes.
- 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.
- user can select only 1 value from LOV.
- user can select multiple values from LOV
- user can enter a value or select from LOV
- 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.
- when refreshing a document, the last values used in the prompt is
displayed by default.

25 | P a g e


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
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 designer, you tell designer
which database columns are primary and foreign keys which will increase query
To setup Index Awareness, open the properties of objects, open Keys tab. Click Insert and
Add respective primary key and foreign key.

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
26 | P a g e


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.

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


What is BIAR file?

27 | P a g e


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

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
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?

28 | P a g e


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


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.

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.
What is the difference between User objects and Formulas /
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

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

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

30 | P a g e


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.

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.

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

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.

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.

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

31 | P a g e


Errors per second

Connections per second

How you will do report investigation?

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

How you can create Date prompt with Default today?

CASE WHEN @Prompt(Enter date or Today,'A,,mono,free,not_persistent,{Today})
=Today THEN TRUNC(SYSDATE) ELSE @Prompt(Enter date or
Today,'A,,mono,free,not_persistent,{Today}) END)

For DB2 use CURRENT_DATE and for SQL Server use GetDate()
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.

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.

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

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

32 | P a g e


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
How can I see and work with all of the filters applied on a report at
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.

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.

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

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 )


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.
33 | P a g e


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)

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.

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.

34 | P a g e


Select Break from the drop-down menu that appears when you right-click.
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.
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.
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]

35 | P a g e


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
Find- allows you to find data on the report tab displayed on the right hand side of the
36 | P a g e


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

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.

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

37 | P a g e


Once you have the filters indented the way that you want them, double-click on the AND to
turn it to an OR (and visa versa).
What are Alerter, Breaks, Filters and Conditions?
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.

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.

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.

38 | P a g e


Edit the report, select the text box, and on the Properties tab Display - Read cell content
as "Text" instead of Hyperlink or HTML.

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

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)

How do I add a logo to my Web Intelligence document?

Answer: Add a blank cell from the templates tab:
Select this new cell and then click on the Properties tab Appearance section Background
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
Your logo is ready now for viewing as part of your Web Intelligence report ...

39 | P a g e


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">

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 the down arrow key to take you to
the next match till you find your object.

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

40 | P a g e


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

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?
It is used to include a dimension in a context. Detail purpose.
It is used to exclude a dimension from a context. Summary purpose.

We use ForEach for detail purpose and ForAll for summary purpose.

It is used to specify exactly which dimensions to include in a context.

Input context
Output context
Reset context

It is used to determine the input values for the formula.

It is used to determine the output scope of the formula.
It is used to determine when a running function starts over at zero.

In Report
In Block
In Body

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.

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)

What is the source for metrics?

Ans. Measure objects.

41 | P a g e


What are the general issues in migration process?

Ans. Alignment, Performance.

What is the use of BO SDK?

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

Analysis in BO?
Ans. Slice & Dice and Drill analysis.

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.

What are different types of saving options in web intelligence?

Ans. We can save as EXCEL, PDF,HTML..etc.

What is the difference between thin client & thick client?

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



What are Connection types available in BO?


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,

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
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
What is meant by object store?
Ans. It is the container of object which is created after .rpt file ran once.

42 | P a g e

51) How to refresh the database changes
Ans. Refresh the Universe then refresh the report.

in the report?

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


How to move the report from Development environment to

Production Environment?

Ans. Using Import Wizard

Can we customize the BO Infoview?

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

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.

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

What are cascading prompts explain with steps?

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

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.

43 | P a g e


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.

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.

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.

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

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;
---------- ---------- ---------- ---------10
1 <--- ! (in case of rank JONES will have 3 and dense
44 | P a g e


rank will have 2)



1 <--- !

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.

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

What is batch processing in BO?

Ans. Batch processing means scheduling the reports.

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.

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.

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

@echo off
dir %1
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo Deleting file: %1\%2.old
del %1\%2.old
echo Renaming %1\%2 to %1\%2.old
45 | P a g e


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

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

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

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

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

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

46 | P a g e


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

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.

What is Scheduled Service?

Ans. Report job server processes scheduled reports and generated report instances.

What is Cache Service?

Ans. Cache services are responsible for handling all report viewing requests.

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.

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
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,notpersistent) OR
ALL IN @Prompt(Enter kind code:,A,KIND\KIND,Multi,Free,not-persistent)
And then parse it.

47 | P a g e


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

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.

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.

What is Open Document?

Ans. With the open document, you can embed hyperlinks in one document to another.
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
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
48 | P a g e


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)

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

Input parameters:
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
&lsRparamDateTime DR=[DateTime(2003,6,1,7,1,1)..DateTime(2003,6,1,8,1,1)]
How to get iDocID in open document?
Click on Report in Infoview

49 | P a g e


Right click on Name of tab and select Properties

Click on View Source
Scroll down to strDocID
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.

What are @functions

Ans. @Aggregate_Aware, @Prompt, @Script, @Select, @Variable, @Where


@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
Syntax: @Script (var_name, vartype, script_name)
When BO report is exported to excel, what issues we may come
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


What is the syntax for FOREACH and FORALL?


50 | P a g e

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


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

Sum([Sales Revenue] ForAll ([Quarter]))


What type of errors you get in report?

Ans. Formula error and information messages like


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
Example: Referencing a non-existent object

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
51 | P a g e


revenue. This figure is given by the variable Difference If this variable is deleted from the
report, the column containing it returns #SYNTAX.
What is #ERROR?
Ans. #ERROR is the default error message that covers all errors not covered by other error

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.

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.

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

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

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.

52 | P a g e


BO report query should be as per requirements and NO additional joins should be

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

How to pass multiple values to multiple prompts from one report to

another report using hyperlinks?
Ans. Use MparameterName in URL

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

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.


What is the difference between Primary key and Unique key?

53 | P a g e


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

What is Normalization?
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.

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?

54 | P a g e


So to avoid such situation, its always better to use Surrogate Keys as Primary Key in
dimension table along with Business Key.
Surrogate Keys are integers that are assigned sequentially in the dimension table which can
be used as PK.
SK_Prouduct Product_ID
Product Name


Baby Powder






talkem Powder


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.

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.

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

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.


What is the difference between Trigger and Procedure?

55 | P a g e


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.
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 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).
END catalog_data;
CREATE or REPLACE PROCEDURE get_ownerobjects(owner_name IN
varchar2, cat_cv IN OUT catalog_data.catcurtyp) AS
56 | P a g e


OPEN cat_cv FOR SELECT * FROM all_objects WHERE owner=owner_name;


How will you create a report using oracle stored procedure?

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
What is the difference between Co-related sub query and nested sub
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) ;
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
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
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.

57 | P a g e


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

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.
Note: Varchar should not be used as it is reserved for future usage. Use Varchar2 instead.

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.
B- block of database file, R row in block and F- database file

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.

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.

Write a query to Display Sum of Salary for each department

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

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

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
58 | P a g e









Note: rank () OVER (Partition by deptno ORDER BY salary DESC NULLS LAST) as RANK (try
Write SQL query to list top 5 employee salary?





How to get/retrieve even/odd number of records?


How to get/retrieve every Nth row from a table?

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


How to get/retrieve N th max salary?

59 | P a g e



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

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


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

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


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

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


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

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


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

60 | P a g e



SELECT rownum rn, empno, ename

FROM emp
Where rownum < 101
) temp

How to remove the duplicate rows from table?

GROUP BY <columns>)


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

It randomly returns 10% of the rows in the table.


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

select sysdate, sysdate+1/24, sysdate +1/1440, sysdate + 1/86400 from dual;
-------------------- -------------------- -------------------- -------------------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:


Date Expression



Tomorow/ next day


Seven days from now


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


Tomorrow at 8 AM

TRUNC(SYSDATE + 1) + 8/24

Next Monday at 12:00 noon


First day of the month at 12


61 | P a g e

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


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

62 | P a g e