Business Objects Interview FAQs
Business Objects Interview FAQs
BUSINESSOBJECTS is an integrated query, reporting and analysis solution for business professionals that allow
them to access the data in their corporate databases directly from their desktop and present and analyze this
information in a BUSINESSOBJECTS document.
It is an OLAP tool that high-level management can use as a part of a Decision Support Systems (DSS).
BUSINESSOBJECTS makes it easy to access the data, because you work with it in business terms that are familiar
to you, not technical database terms like SQL.
How do you save a Business Objects document which can be accessed by all users in workgroup mode?
If we want to make a universe accessible to another designer working without a repository, then click the Save as
Workgroup check box in the Save as universe dialog box.
What is a macro?
A macro is a series of commands and functions that are stored in a Visual Basic for Applications module and can be
run whenever you need to perform the task. If you perform a task repeatedly, you can automate the task with a
macro. You create macros using the Visual Basic Editor.
What is an add-in?
Add-ins are programs that add optional commands and features to BUSINESSOBJECTS. Add-ins are usually created
by those responsible in your company for adding customized features to BUSINESSOBJECTS. All you probably need
to do is install and uninstall add-ins that are sent to you.
DESIGNER
In the Business Objects User module, universes enable end users to build queries from which they can generate and
perform analysis. Universes isolate end users from the complexities of the database structure as well as the
intricacies of SQL syntax.
What are the types of connections we use when connecting to the database? (KPIT Infotech, Pune)
There are three types of connections namely: - Secured, Shared and Personal.
A secured connection is used to centralize and control access to sensitive or critical data. It is the safest type of
connection for protecting access to data.
A shared connection is used to access common resources such as universes or documents. Several users can thus
use it.
A personal connection is specific to one user and can be used only from the computer on which it was created.
What is Designer?
Designer is a Business Objects IS module used by universe designers to create and maintain universes. Universes are
the semantic layer that isolates end users from the technical issues of the database structure. Universe designers
can distribute universes to end users by moving them as files through the file system, or by exporting them to the
repository.
When creating universes, universe designers define and qualify objects. The qualification of an object reveals how
it can be used in analysis in reports. An object can be qualified as a dimension, a detail, or a measure.
A dimension object is the object being tracked; in other words, it can be considered the focus of the analysis. A
dimension can be an object such as Service, Price, or Customer. Dimension objects retrieve the data that will
provide the basis for analysis in a report. Dimension objects typically retrieve character-type data (customer
names, resort names, etc.), or dates (years, quarters, reservation dates, etc.)
A detail object provides descriptive data about a dimension object (or attribute of a dimension). It is always
associated with a specific dimension object. However, a detail object cannot be used in drill down analysis. E.g.
Address & phone number can be attributes about the customer dimension.
A measure object is derived from one of the following aggregate functions:
Count, Sum, Minimum, Maximum or average or is a numeric data item on which you can apply, at least locally, one
of those functions. This type of object provides statistical information. Examples of measure objects include the
following:
Revenue, unit price etc
What is a hierarchy?
Groups of related dimension objects are referred to as dimension hierarchies. An example of a dimension hierarchy
is Geography, which can consist of City, Region, and Country.(Hierarchy is an ordered series of related dimensions,
which can be used, in multidimensional analysis) Good examples of hierarchy are geography and time
Country
Year
Quarter
Region
City
Month
With certain database structures, you may need to use contexts rather than aliases to resolve loops. A situation
where this commonly occurs is a transactional database with multiple fact tables (“multiple stars”) that share
lookup tables.
Of course, the reliability of the technique depends on the accuracy of the aggregate tables. In fact, they must be
refreshed at the same time as all fact tables. A universe that is “aggregate aware” has one or more aggregate
objects with alternative definitions based on these tables. These definitions correspond to levels of aggregation.
For example, a Profit object can be aggregated by month, by
quarter, or by year. Queries built from such a universe return information aggregated to the
appropriate level at optimal speed.
Aggregate awareness is a feature that makes use of predefined aggregate tables to enhance the performance of
SQL transactions. It is used to improve the speed by which aggregates are calculated in the database.
To set up aggregate awareness in a universe, you define one or more objects using the @Aggregate_Aware
function. The syntax for this function is as follows:
@Aggregate_Aware(aggregate_table_1, ... aggregate_table_n)
The arguments of this function are all the names of alternative aggregate tables. When you formulate the syntax,
you should be aware of the order of the arguments. The precedence is from left to right; this means that
BusinessObjects determines the aggregate to use beginning from the leftmost argument. As a general rule, you
should enter the most aggregate table as the first argument, the next most aggregate table as the second
argument, and so on. You must then use the Aggregate Navigation editor to set up a list of incompatible objects
and/or incompatible conditions for each aggregate table in your universe. These are the components that cannot
be used with an aggregate table. You can either set up these lists manually, or cause the list of objects to be
detected by Designer.
What is Incompatibility?
The set of incompatible objects you specify determines which aggregate tables are disregarded during the
generation of SQL. With respect to an aggregate table, an object is either compatible or incompatible. The rules
for compatibility are as follows:
When an object is at the same or higher level of aggregation as the table, it is compatible with the table.
When an object is at a lower level of aggregation than the table (or if it is not at all related to the table), it is
incompatible with the table.
I have Customer dimension table and a fact table with cust_to_ship_key and cust_to_bill_key. How do I get the
corresponding customer names?
Built-in Strategies: Designer provides a number of default strategies which we can use. These are strategies for
extracting joins, detecting cardinalities, and creating default classes and objects. Options for indicating default
strategies are located in the Database tab of the Options dialog box.
External Strategies: We can also create our own strategies. Such strategies are referred to as external strategies.
With an external strategy, we can specify the exact way that objects and joins are to be extracted from the
database structure. The strategy we use, for example, can be a script generated from a CASE Access tool. An
external strategy is specific to one RDBMS.
What is LoV?
A list of values contains the data values associated with an object. These data values can originate from a
corporate database, or a flat file such as a text file or Excel file. In Designer you create a list of values by running a
A Theta join links tables based on a relationship other than equality between two columns.
@Function Purpose
@Aggregate_Aware is used to enhance the performance of SQL transactions; i.e. it determines which tables to
use in SQL generation: either aggregate tables or detailed tables.
@Prompt is used to create an interactive object. In the Query Panel, this type of object causes a
message to appear that prompts the end user to enter a specific value.
@Script is used to recover the results of an executed macro created with the Visual Basic Editor in
the Business objects User module.
@Select lets you re-use the Select statement of an existing object
@Variable is used to reference the value assigned to a name or variable.
@Where lets you re-use the Where clause of an existing object.
Because a join represents a bi-directional relationship, it must always have two cardinalities.
If you selected the Detect cardinalities in joins options in the Database tab of the Options dialog box, Designer
detects and retrieves the cardinalities of the joins. If you do not use this option, you can still retrieve the
cardinalities for one or all joins in the universe.
What are linked universes? (Designer’s Guide, 246) (Mascot, MBT, KPIT InfoTech Pune)
Linked universes are universes that share common components such as parameters, classes, objects, or joins.
Among linked universes, one universe is said to be the kernel or master universe while the others are the derived
universes.
A kernel or master universe represents a re-usable library of components. Derived universes may contain some or
all the components of the kernel or master universe, in addition to any components that have been added to it.
Approaches to linking universes
You can use one of three approaches when linking universes:
• The kernel approach
• The master approach
• The component approach
How many types of Linked universes are there, and what are they? (ITC)
Answered above
SUPERVISOR
A security domain, which contain the definition of the other domains as well as the definition of users
USER MODULE
What is a Data Provider?
The data source (Query) is called as the data provider.
Can one create a report having two Data Provider each pointing to different Universes?
Yes.
What is Channel?
It is a Website that uses ‘push’ technology, also known as web casting, to keep subscribers abreast of up-to-date
information.
Each BO channel is associated with a BROADCAST AGENT, itself associated with a user group in the BO repository.
One BROADCAST AGENT can have several channels.
How do Channels work?
General supervisors and supervisors can create, modify and remove channels using SUPERVISOR.
Each channel uses a Channel Definition Format (CDF) file as an index to the Website.
The first time a document is published in the channel, the CDF file is created based on the template. It is then
updated every time a new document is published in the channel.
BO users can schedule a document to be published in one or more channels by a BROADCAST AGENT.
They can only publish in channels associated with the BROADCAST AGENT of groups to which they belong.
When BROADCAST AGENT publishes a BO document in a channel, it converts the document to HTML format and
simultaneously updates the channel’s CDF file so channel subscribers via IE4 can view the document.
SCHEDULING/PUBLISHING RELATED
How do you publish BO report?
There are 2 ways of publishing BO reports on website
User who has publishing rights for a document can publish that document for other users.
Documents can be published via a scheduler for Business Object known as BCA or Broadcast Agent.
What is BCA?
BROADCAST AGENT provides scheduled or batch processing of BUSINESSOBJECTS and WEBINTELLIGENCE documents.
All the end user has to do is send a document to BROADCAST AGENT using BUSINESSOBJECTS or WEBINTELLIGENCE,
and specify scheduling and distribution information. No understanding of the server configuration is required.
BROADCAST AGENT lets users not only automate simple actions such as refreshing and printing documents, but
control processing with conditions which trigger distribution when pre-defined events occur.
Users can choose to publish documents to the repository, on a web server or on the server file system. Users with
access to the repository can view documents that BROADCAST AGENT has processed in BUSINESSOBJECTS or
What are the different tools in Business Objects 5.1? (AG technologies)
What’s new in BusinessObjects 5.1?
Although not a major release over BUSINESSOBJECTS 5.0, BUSINESSOBJECTS 5.1 has some important new features.
Save as PDF
Add hyperlinks to reports
Zero Administration BusinessObjects
Explain the Reporting features in Business Objects reporting tool? (AG Technologies)
What data sources are available?
BUSINESSOBJECTS let you access data from a wide range of sources. You can access data from
• Relational databases (RDBMS), such as ORACLE, Microsoft SQL Server, Informix and IBM DB2.
• Multidimensional (OLAP) databases, such as Microsoft OLAP Services, Hyperion Essbase, and
ORACLE Express.
• Text files and spreadsheets
• Packaged applications such as SAP
• Virtually any data source using Microsoft Visual Basic for Applications (VBA) procedures.
How do you access data sources?
BUSINESSOBJECTS lets you access your data through a graphical user interface. You need no technical knowledge of
the underlying data structures to get the information you want. What you do need, however, is knowledge of your
business.
To access a data source with BUSINESSOBJECTS, you build a data provider. The types of data providers supported in
BUSINESSOBJECTS depends on whether you install BUSINESSOBJECTS from the installation CD or install
BUSINESSOBJECTS via an Internet browser.
What is scope of analysis? (BO User’s guide,65) (Mascot, KPIT Infotech, Pune)
Analysis means looking at data from different viewpoints and on different levels of detail. In reports, you can use
scope of analysis to ensure that the data included in your report can be displayed at the appropriate level of detail
for your analysis. Setting a scope of analysis allows you to work in drill mode, which enables you to display data in
progressively greater detail. “Scope of analysis” means a subset of data, returned by a query, that you will use for
analysis in your report. The data for your scope of analysis does not appear in
the report until you decide that you want to use it in analysis. The scope of analysis you can define depends on
hierarchies in the universe. A hierarchy, which the designer sets up when creating the universe, consists of
dimension objects ranked from “less detailed” to “more detailed”. The objects that belong to hierarchies are the
ones you can use to define scope of analysis.
Applying conditions
A condition is a way of limiting the data that a query returns.
Predefined When universe designers build universes, they can create predefined
conditions conditions for you to use. For example, the Island Resort Marketing
universe contains predefined conditions such as Year 98, which lets
you obtain reservations for 1998 only. You can apply one or more
Note: Scheduling reports containing user objects is not a supported feature. User objects are removed when
the report is refreshed.
How can an end-user share user objects with other users?
If an end-user wants to share user objects with other users, they should ask the universe designer to include these
user objects in the related universe in order to make them available to all BUSINESSOBJECTS end-users. The
universe designer includes the file UNIVERSE_NAME.UDO in the universes where the user objects are to be used.
Applying Groups of Conditions
You use conditions to limit the data retrieved by queries. A group of conditions consists of two or more conditions
(predefined, simple or complex) applied on the same query. You use groups of conditions when a single condition
does not enable you to obtain the data that you need.
A group of conditions consists of two or more conditions applied on the same query. In the Conditions box in the
Query Panel, conditions are linked by an operator (AND or OR).
Building Combined Queries
BUSINESSOBJECTS lets you combine the data returned by up to eight queries as one set of results. These combined
queries enable you to:
• Obtain a single column of data from multiple objects.
Note: You can only work in drill mode if you have installed the EXPLORER option with BUSINESSOBJECTS.
Exporting Data From BusinessObjects
Tables: BUSINESSOBJECTS tables display data in either rows or in columns and have a header and a footer. Header
and footer rows and columns are special rows and columns. The header displays information about the row or
column e.g. a label or the name of the variable whose values are displayed. The footer displays
calculations on the values displayed in the columns or rows.
Crosstab tables: A crosstab is a particular kind of table where data is displayed in columns and in rows.
Corresponding data appears at the intersection of the columns and rows; this part of the crosstab is called the
body. The body typically displays numerical data. A crosstab can display both row totals and column totals as well
as a grand total. You need at least three variables to display data in a crosstab including one measure. The
measure is placed in the body of the crosstab.
Free-Standing Cells: BUSINESSOBJECTS reports have two types of cell: cells that make up tables and freestanding
cells. A free-standing cell is a single cell that is not attached to any other report component and can be moved and
formatted individually. Free-standing cells have many uses in BUSINESSOBJECTS reports. They are containers for
text, calculations or graphics and are used among other things for report titles, for adding comments and for
displaying page numbers.
Ignoring filters
You can force BUSINESS OBJECTS to ignore any filters you have inserted on a report so that when you make a calculation, the
calculation is made on all the data, not just the filtered values. To do this, you use the
NoFilter function. The syntax is: =NoFilter(formula)
Highlighting Data: using Alerter Note: You cannot use alerters on charts.
What is a break?
A break does what its name implies. It breaks up the data in a table or crosstab by grouping the data according to a selected value.
This allows you to display all the data for each value of a dimension variable together, and more importantly, it allows you to
display subtotals.
Calculations
BUSINESS OBJECTS has standard calculation functions that enable you to make quick calculations on the data in reports. These
calculations are available directly from a menu. The most commonly used calculations are also available on the Report toolbar.
Hierarchies
Objects are also organized in this way for drilling. When you analyze data in drill mode, you use hierarchies. The Universe
classes are the default hierarchies you use for drilling but the Universe designer can also set up custom hierarchies. You can also
create and edit hierarchies in your reports. Drill hierarchies only contain dimension objects. In drill mode, you drill down on
dimensions, for example from Year to Quarter to Month. At each level, measures, such as Revenue or Profit Margin, are
recalculated.
Slice-and-dice mode enables you to switch the position of data in a report. You can, for ex, move data from columns
to rows. The result would be a crosstab, where numeric data such as revenue appears at the intersection of rows and
columns. You can also use slice-and-dice mode to:
• Work with master/detail reports • Display and remove data
• Rename, reset and delete blocks • Turn tables and crosstabs into charts, and vice versa
• Apply, edit and delete breaks, filters, sorts, rankings and calculations.
Slice-and-dice mode is enabled by the Slice and Dice Panel, a pop-up window that provides a graphical
representation of the report you are working on. You carry out tasks by dragging and dropping icons that represent
the data you can use.
Formatting Sections
Formatting Tables
Tables and crosstabs are made up of headers and footers, columns and rows, and cells. All these elements together make up the
block. The cell is the most basic element of a table or crosstab. Rows and columns are made up of groups of cells. When you
format tables and crosstabs, you can work on the formatting cell by cell or on the block formatting.
When you have a report in sections with a lot of information in each section, a convenient way of presenting the report is to use
outline view. Outline view folds up the sections in the report to display only the high level information that you’ve included at the
top of each section. People viewing your reports can then open up the sections they are interested in to get more details. A bar
with arrows is displayed at the left side of the report window. The number of buttons displayed at the bottom of the outline bar
depends on the number of sections you have in the report.
What is a template?
Structure: The structure of a report defines how the data is presented. Your data can be presented in a crosstab, a column chart, or
it can have a master/detail structure
Styles: The styles contained in a template define the report page background and the style of the headers and footers.
What are categories? (while publishing the reports (supervisor & BCA))
Planning
Break down the information system into functional
areas
Analysis
Analyze the information needs of users
Design
Design a conceptual schema
Design the specification of a universe
Implementation
Create a universe with DESIGNER
Test the universe with BUSINESSOBJECTS/WEBINTELLIGENCE
Distribute the universe
Repeat the above steps for other universes
Maintenance
Update and maintain the universe
Notify end users of changes
Business Objects
1. Can we create aliases for every table before hand ? If yes what are the disadvantages?
2. What problems are NOT known while performing Integrity Check?
2. Explain the steps to create Universe? (Need to explain all the necessary steps including filters,
joins, objects etc.)
3. How if you will create conditions and where we will create these filters?
4. Can we create conditions at report level? What are disadvantages creating conditions at report
level. Explain?
5. Practical question: I have one department and avg(sal) of each department,
Now I want a report some thing like department name along with Avg(sal) by specifying the
department number as Parameter. Explain how best we can do this report.
A logical pointer to an alternate table name. The purpose of an alias is to resolve loops in the paths of joins.
2.Cardinality
Expresses the minimum and the maximum number of instances of an entity B that can be associated with an instance of an entity
A. The minimum and the maximum number of instances can be equal to 0,1, or N.
3.Cartesian product
A situation in which a query includes two or more tables that are not linked by a join. If executed, this type of query retrieves all
possible combinations between each table and may lead to inaccurate results.
4.Class
A logical grouping of objects and conditions within a universe. In general, the name of a class reflects a business concept that
conveys the category or type of objects.
5.Condition
A component that controls the type and the amount of data returned by a specific object in a query. A condition created in the
Designer module is referred to as a predefined condition.
6.Connection
Set of parameters that provides access to an RDBMS. These parameters include system information such as the data account, user
identification, and path to the database. Designer provides three types of connections: secured, shared, and personal.
7.Context
A method by which Designer can decide which path to choose when more than one path is possible from one table to another in
the universe.
An object qualified as a detail provides descriptive data about a dimension object. A detail object cannot be used in drill down
analysis.
9.Dimension object
An object being tracked in multidimensional analysis; the subject of the analysis. Dimensions are organized into hierarchies.
10.Document domain
The area of the repository that stores documents, templates, scripts, and lists of values.
11.Drill
The action of navigating through levels of data. When you drill up, you obtain more summarized or general information. By
drilling down, you can reach more refined or detailed information.
12.Equi-join
A join based on the equality between the values in the column of one table and the values in the column of another. Because the
same column is present in both tables, the join synchronizes the two tables.
13.Enterprise mode
A work mode whereby a designer creates universes in an environment with a repository. The mode in which a universe is saved
determines whether other designers are able to access it. By default, a universe is saved in the mode in which the designer is
already working.
14.Hierarchy
15.Join
A relational operation that causes two tables with a common column to be combined into a single table. Designer supports equi-
joins, theta joins, outer joins, and shortcut joins.
16.List of values
A list of values contains the data values associated with an object. These data values can originate from a corporate database, or a
flat file such as a text file or Excel file. In Designer you create a list of values by running a query from the Query Panel. You can
then view, edit, purge, refresh and even export this file. A list of values is stored as an .lov file in a subfolder of the UserDocs
folder.
17.Loop
A situation that occurs when more than one path exists from one table to another in the universe.
18.Measure object
An object that is derived from an aggregate function. It conveys numeric information by which a dimension object can be
measured.
19.Object
A component that maps to data or a derivation of data in the database. For the purposes of multidimensional analysis, an object
can be qualified as a dimension, detail, or measure. Objects are grouped into classes.
20.Offline mode
The work mode in which the designer works with universes stored locally.
21.Online mode
The work mode appropriate for a networked environment in which the general supervisor has set up a repository.
22.Outer join
A join that links two tables, one of which has rows that do not match those in the common column of the other table.
23.Personal connection
A personal connection is used to access resources such as universes or documents. It can be used only by the user who created it.
Information about a personal connection is stored in both the PDAC.LSI and PDAC.SSI files; its definition is static and cannot be
modified.
24.Qualification
A property of an object that determines how it can be used in multidimensional analysis. An object can be qualified as one of
three types: a dimension, detail or measure.
25.Query
In Designer a query is a technique for creating or modifying a list of values associated with an object. From the Query Panel, a
designer builds a query from the classes, objects, and conditions of a universe.
In the BusinessObjects User module, a query is a type of data provider. An end user builds a query from a universe, and then runs
the query to generate a BusinessObjects report.
26.Quick Design
A wizard in the Designer module that provides guided instructions for creating a basic universe. It lets a designer name a
universe, set up a connection to a database, select strategies, create classes and objects, as well as generate joins with cardinalities.
27.Repository
A centralized set of relational data structures stored in a database. It enables BusinessObjects users to share resources in a
controlled and secured environment. The repository is made up of three domains: the security domain, the universe domain, and
the document domain.
28.Secured connection
A secured connection is used to access universes or documents that may be restricted or confidential.
It can be shared by several authorized users. Stored in the repository, the definition of a secured connection is updated
dynamically.
29.Shared connection
A shared connection is used to access common resources such as universes or documents. It can be used by several users.
Information about a shared connection is stored in a SDAC.LSI or SDAC.SSI file; its definition is updated dynamically.
30.Shortcut join
A join that links two tables by bypassing one or more other tables in the universe.
31.Strategy
Scripts that automatically extract structural information about tables, columns, joins, or cardinalities from a database. Designer
provides default strategies but a designer can also create strategies. These are referred to as external strategies.
The graphical component within the main Designer window that shows the schema of the universe. It reflects the underlying
database structure of the universe.
33.Subclass
A component within a class that groups objects. A subclass can itself contain other subclasses or objects.
34.Table Browser
The graphical component within the main Designer window that lets you create the classes and objects of the universe from the
tables and columns of a database.
35.Theta join
A join that links tables based on a relationship other than equality between two columns.
36.Universe
A mapping of the data structure found in databases: tables, columns, joins, etc. A universe, which is made up of classes, objects,
and conditions, can represent any specific application, system, or group of users.
37.Universe domain
The area of the repository that holds exported universes. The universe domain makes it possible to store, distribute, and
administrate universes. There may be multiple universe domains in a repository.
38.Universe pane
The graphical component within the main Designer window that displays a hierarchical view of the classes, objects, and
conditions in a universe.
Two radio buttons on the lower edge of the pane filter the display of the components. One button, the Classes/Objects filter,
provides a view of the classes and objects. The other button, Classes/Conditions, provides a view of the classes and conditions.
39.User object
An object created by the end user from the BusinessObjects User module. A user object can be inserted into a universe by the
designer.
40.Workgroup mode
A work mode whereby a designer creates universes in an environment without a repository. The mode in which a universe is
saved determines whether other designers are able to access it. By default, a universe is saved in the mode in which the designer is
already working.
41.What is Designer?
Designer is a BusinessObjects IS module used by universe designers to create and maintain universes. Universes are the semantic
layer that isolates end users from the technical issues of the database structure.
Universe designers can distribute universes to end users by moving them as files through the file system, or by exporting them to
the repository.
During the first phase, you create the underlying database structure of your universe. This structure
includes the tables and columns of a database and the joins by which they are linked. You may need to resolve loops which occur
in the joins using aliases or contexts. You can conclude this phase by testing the integrity of the overall structure.During the
second phase, you can proceed to enhance the components of your universe. You can also prepare certain objects for
The first step in creating a universe is to specify its parameters. These parameters include the definition of a universe, which is
comprised of:
You enter universe parameters from the Universe Parameters dialog box. This dialog box also lets you set up database options,
external strategies, graphic options, and print settings.
You create the initial classes and objects of your universe by selecting them from the tables and columns listed in the Table
Browser, and inserting them into the Structure pane.Depending on the database connection parameters, the browser presents you
with a list of database tables and columns.
Note
Before selecting tables, you should indicate the strategies you wish to use in creating your universe.
With the Check Integrity command, you can test the structure of your active universe. This means testing to determine whether its
components are accurate and up-to-date.
It detects any inconsistencies in the objects, joins, conditions, and cardinalities of your universe.
It detects whether there are any loops in the joins.
It determines whether changes were made to the database to which the universe is connected.
46.What is a universe?
A universe is a business-oriented mapping of the data structure found in databases: tables, columns, joins, etc. It can represent any
specific application, system, or group of users. For example, a universe can relate to a department in a company such as marketing
or accounting.In the BusinessObjects User module, universes enable end users to build queries from which they can generate and
perform analysis.Universes isolate end users from the complexities of the database structure as well as the intricacies of SQL
syntax.
Aggregate awareness is a feature that makes use of predefined aggregate tables to enhance the performance of SQL transactions.
It is used to improve the speed by which aggregates are calculated in the database.
To set up aggregate awareness in a universe, you define or more objects using the @Aggregate_Aware function. The syntax for
this function is as follows:
Multidimensional analysis is a technique for manipulating data in order to view it from different perspectives and on different
levels of detail. In BusinessObjects, multidimensional analysis involves drill mode and slice-and-dice mode, and is enabled by the
Analyzer and Explorer components of the User module.
To set up a universe for multidimensional analysis, you must define hierarchies and dimensions that determine how users view
and analyze the data.
A dimension is simply the object to be tracked. A dimension can be an object such as Country, Region, and City. A hierarchy is
an ordered series of related dimensions. An example of a hierarchy is Geography, which may group dimensions such as Country,
Region, and City.
A class is a logical grouping of objects within a universe. In general, the name of a class reflects a business concept that conveys
the category or type of objects. For example, in a universe pertaining to human resources, one class might be Employees.
A class can be further divided into subclasses. In the human resources universe, a subclass of the Employees class could be
Personal Information.As designer, you are free to define hierarchies of classes and subclasses in a model that best reflects the
business concepts of your organization.
An object is the most refined component in a universe. It maps to data or a derivation of data in the database. Using objects, end
users can build queries to generate reports.The name of an object suggests a concept drawn from the terminology of a business or
discipline. For a human resources manager, objects might be Employee Name, Address, Salary, or Bonus, while for a financial
analyst, objects might be Profit Margin, Return on Investment, etc.For the purposes of multidimensional analysis, objects are
qualified as one of three types: dimension, detail, or measure
.
51.What is a list of values?
A list of values contains the data values associated with an object. These data values can originate from a corporate database, or a
flat file such as a text file or Excel file. In Designer you create a list of values by running a query from the Query Panel. You can
then view, edit, purge, refresh, and even export this file. A list of values is stored as an .lov file in a subfolder of the UserDocs
folder.
The SQL editor lets you enter or modify an SQL statement for either the Select statement or Where clause. To invoke this editor,
click the button to the right of either the Select or Where text box. You can type the SQL statement directly in the text box
located in the upper part of the editor window. Or you can formulate your syntax by using any combination of the following
elements: tables, columns, classes, objects, operators, or functions. To select an element (and cause it to appear in the text box)
double-click it in the appropriate pane.The functions listed in the Functions pane include the native SQL functions of your
RDBMS as well as BusinessObjects @ functions. For further information on @ functions, click .
By clicking on a function, you can view its syntax and purpose; this information is displayed in the Description box.
Notes
If you intend to export the universe, you must select Secured as the connection type.
If you click the File/New starts Quick Design wizard check box in the General tab (Tools menu, Options command) the
New command automatically launches the Quick Design
The Universe pane displays the components of the universe from the point of view of BusinessObjects; that is the classes, objects,
and conditions.
The Structure pane reflects the underlying database structure of the universe including the tables, columns, and joins.
The Table Browser is the component that lets you create the classes and objects of the universe from the tables and columns of a
database.
Designer contains a variety of features for organizing and viewing the tables and columns in the Structure pane. Among these
features are:
List Mode, which adds three panes to the Structure pane. These panes are for viewing the names of tables, joins, and contexts.
When you click a component in a pane, its corresponding graphical representation in the schema is highlighted.
Graphic options, which let you customize the shape or appearance of the tables, columns, joins, and cardinalities in the
Structure pane.
Arrange tables, a feature that reorganizes the tables in the Structure pane so as to produce an orderly display.
Gridlines, a command that displays a grid, which you can use to align tables in the Structure pane.
Table (Column) Values, commands that display the data values associated with a particular table or column.
5 Click OK.
A strategy is a script that automatically extracts structural information from a database. Designer provides a number of default
strategies you can use. These are strategies for extracting joins, detecting cardinalities, and creating default classes and objects.
Options for indicating default strategies are located in the Database tab of the Options dialog box.
3 In the Default Creation box, select the default strategies you want.
Option Description
Extract joins with tables. Retrieves tables with the joins that link them according to a join strategy.
Detect cardinalities in joins. Detects the cardinalities inherent in the joins.
Create default classes and objects from tables. Causes classes and objects to be generated in the Universe pane when you
insert tables in the Structure pane.
If you select one or more options, Designer uses the corresponding strategies specified in the Strategies tab of the Universe
Parameters dialog box:
Option Description
Objects The strategy creates classes, and names them based on the tables in the database; it also creates objects, and names them
based on the columns in the database. It replaces all underscore characters (_) with spaces.
Joins From the list box, select a join strategy. A description is displayed below the name of the current strategy.
Tables Reads the table structure from the database system tables.
With an external strategy, you can specify the exact way that objects and joins are to be extracted from the database structure.All
external strategies are contained within the same text file. The name of this text file is indicated in the .prm file specific to your
RDBMS. In the .prm file, the strategy file is declared as follows:
STG=[StrategyFileName]
where StrategyFileName is the name of the strategy file.
An external strategy, whether for objects or for joins, is made up of the following sections:
a name and description (These are visible in the Strategies tab of the Universe Parameters dialog box.)
a type parameter: object or join
an SQL parameter or file parameter
an optional parameter that points to a connection other than the universe connection.
An external strategy can be based on SQL or a file.
After you have set up external strategies, you can specify them from the Quick Design wizard. Or you can specify them from the
Strategies tab of the Universe Parameters dialog box.
Select the List Mode command from the View menu.panes (Tables, Joins, and Contexts) are added above the display of the
schema. When you click a component in one of these panes, Designer highlights its graphical representation in the schema, and
vice-versa.
1 In the Structure pane, click the table whose values you wish to view.
2 Select the Table Values command from the View menu.displays a window, which lists all the values for each
column in the table. With the check box Distinct Values, you can filter the display so that only unique values are shown.
1 In the Structure pane, place the pointer on the column whose values you wish to view.may
wish to enlarge the view of the columns by applying the Zoom In command one or more times.
This makes it easier to select a column.
2 Click the right mouse button.pop-up menu appears.
3 From the pop-up menu, select the View Column Values command.displays a window, which lists all the values for the
column. With the check box, Distinct Values, you can filter the display so that only unique values are shown.
Designer supports the following types of joins: equi-joins, outer joins, theta joins, and shortcut joins.
In addition to join strategies, Designer provides several other methods for creating or editing joins:
the Detect Joins command
tracing the joins manually
the Edit Join dialog box
the formula bar
1 Select the Detect Joins command from the Tools menu.Candidate Joins dialog box appears. It displays the joins that
were detected according to the join strategy set for the universe. By default, all the joins are selected.
2 Insert the joins by doing any of the following:
Select one join by clicking it, and then click the Insert button.
Select several contiguous joins. Hold down the Shift key, then click the first and last join. All the joins between the
selected joins will be highlighed. Click the Insert button.
Select several joins that are not contiguous. Click each join while holding down the Ctrl key. Click the Insert button.
Select all highlighted joins, and then click the Insert.
3 Click the Close button to dismiss the dialog box.joins appear in the Structure pane.
1 Position the mouse pointer over the column to be the source of the join.pointer is transformed into a hand symbol.
2 Click the column with the left mouse button.column is highlighted.
3 While keeping the left mouse button pressed, drag the join which begins to appear away from the source column toward
the destination column.pointer is transformed into a pencil.
4 Position the pencil over the column to be the destination of the join.
5 When the second column is highlighted, release the mouse button.join between the two tables is created.
1 Click the join that you want to edit.formula for the join appears in the formula bar.
2 Click the entry area of the formula bar, and edit the formula.
3 Press the Enter key to exit from the formula bar.
Note
By default, the formula bar is activated. To deactivate it, select the Formula Bar command from the View menu.
74.Delete a join
Cardinality expresses the minimum and maximum number of instances of an entity B that can be associated with an instance of an
entity A. The minimum and the maximum number of instances can be equal to 0, 1, or N.Because a join represents a bidirectional
relationship, it must always have two cardinalities.
If you selected the Detect cardinalities in joins options in the Database tab of the Options dialog box, Designer detects and
retrieves the cardinalities of the joins. If you do not use this option, you can still retrieve the cardinalities for one or all joins in the
universe.
There are two main methods for detecting or editing cardinalities:
the Detect Cardinalities command
the Edit Join dialog box
76.Detect cardinalities
You can detect the cardinalities for one join or for all the joins in the universe. For a single join, click it, and in the Edit Join
dialog box, click the Detect button. To detect the cardinalities for all joins:
Note
The Graphics tab of the Options dialog box contains a number of options for the display of cardinalities in the Structure pane.
A loop is a situation that occurs when more than one path exists from one table to another. Loops result in ambiguity in the design
of a universe. Designer enables you to identify loops in one of two ways:
You can run the Check Integrity function, which indicates the existence of any loops.
You can select the Detect Loops command from the Tools menu. If there are loops, the Loop Detection viewer appears; it
indicates the joins causing a loop.You can then use aliases or contexts to resolve the loops in your universe.
An alias is a logical pointer to an alternate table name. The purpose of an alias is to resolve loops in the paths of joins. In some
cases, more than one alias may be necessary for a given table.
As you create aliases, Designer may prompt you to create other aliases. This occurs when the new aliases result in the need for
additional aliases; in other words, creating such aliases entails the propagation of other aliases.
In such a situation, two options are available to you:
You can cause only the first table proposed to be aliased
You can alias all the tables listed (i.e. propagate the aliases)
Designer displays an alias in the Structure pane as a table. It links an aliased table to existing tables, re-arranging joins, as
necessary.
1 Select the Detect Aliases command from the Tools menu.Candidate Alias dialog box appears.
2 In the left pane of the dialog box, click the first table that you wish to alias.right pane displays the alias name(s) Designer
suggests for the table you selected. To give an alias a different name, click the Rename button, and enter the new name.
3 Click the Create button.message box prompts you to confirm the creation of the alias(es). In some cases, a dialog box
may prompt you to propagate additional aliases.
Notes
Before using Detect Aliases, check to see that all the tables in the universe are already linked by joins.
Before using Detect Aliases, be sure that Designer has already detected all the cardinalities of joins; if this is not the
case, select the Detect Cardinalities command from the Tools menu.
1 In the Structure pane, click the table for which you want to create an alias.
2 Select the Alias command from the Insert menu.dialog box appears prompting you to enter a name for the aliased table.
3 Enter a new name for the aliased table, or keep the one proposed.
4 Click OK.aliased table appears in the Structure pane.
Note
If you create an alias manually, you must also create the joins necessary to link it to the other tables.
A context is a rule by which Designer can decide which of two paths to choose when more than one path is possible from one
table to another. Contexts can be used to resolve loops in the universe.
You can create contexts manually, or cause them to be detected by Designer. When contexts are useful, Designer suggests a list of
contexts that you can create.
1 Select the Detect Contexts command from the Tools menu.Candidate Contexts dialog box is displayed.
2 In the left pane of the dialog box, click the name of the first context you wish to create. Click the Add button.context is
displayed in the right pane. You can remove any context from the right pane by selecting it, and then clicking the Remove button.
4 Repeat steps 2 and 3, if applicable, to add the other contexts.
6 Click the OK button.Structure pane is displayed in List Mode. This lets you view the contexts you created.
With the Check Integrity command, you can test the structure of your active universe. This means testing to determine whether its
components are accurate and up-to-date.
Check Integrity serves the following purposes:
It detects any inconsistencies in the objects, joins, conditions, and cardinalities of your universe.
It detects whether there are any loops in the joins.
It determines whether changes were made to the database to which the universe is connected.
1 Select the Check Integrity command from the Tools menu.Integrity Check dialog box appears.
2 In the dialog box, click the component(s) to be checked by clicking the corresponding check boxes.Check All causes all
the options to be checked.
3 Click the parse level.parsing checks only the syntax of a component Thorough parsing checks both the syntax and
semantics of a component. Of the two options, the latter may take longer to run.
4 Click OK.
Note
Options for running Check Integrity automatically are available in the Options dialog box (Tools menu).
1 Click the class after which you want the new class to appear in the Universe pane.
2 Select the Class command from the Insert menu.Edit Properties dialog box appears.
3 Enter the name of the class in the Class Name text box.
4 Enter information about the class in the Description text box.
5 Click the OK button.
Notes
A class appears within the Universe pane with a symbol.
If you insert a class in an opened class, it becomes a subclass of this class. Otherwise, it appears
87.Create an object manually
1 In the Universe pane, position the pointer within the class in which you want the object
to appear.
2 Select the Object command from the Insert menu.Edit Properties dialog box appears; by default, the Definition tab is
displayed.
3 In the Name box, type the name of the object.
4 If necessary, change the type of the object in the list box.object can be a character, number, long text, or date.
5 Enter information about the object in the Description text box.
Note
You can use the SQL editor to enter the SQL definition of the object; i.e. the Select statement and the Where clause. To invoke
this editor, click the to the right of either the Select or Where text box.
The SQL editor lets you enter or modify an SQL statement for either the Select statement or Where clause. To invoke this editor,
click the button to the right of either the Select or Where text box.
You can type the SQL statement directly in the text box located in the upper part of the editor window. Or you can formulate your
syntax by using any combination of the following elements: tables, columns, classes, objects, operators, or functions. To select an
element (and cause it to appear in the text box) double-click it in the appropriate pane.
The functions listed in the Functions pane include the native SQL functions of your RDBMS as well as BusinessObjects @
functions. For further information on @ functions, click .
By clicking on a function, you can view its syntax and purpose; this information is displayed in the Description box.
Designer provides four types of functions: Number, Character, Date and @Functions. Refer to your database guide for further
details on the first three types of functions. Functions beginning with the @ character are BusinessObject functions that render the
definition of objects dynamic and database-independent.
@Function Purpose
@Aggregate_Aware is used to enhance the performance of SQL transactions; i.e. it determines which tables to use in SQL
generation: either aggregate tables or detailed tables.
@Prompt is used to create an interactive object. In the Query Panel, this type of object causes a message to appear that
prompts the end user to enter a specific value.
@Script is used to recover the results of an executed macro created with the Visual Basic Editor in the BusinessObjects User
module.
@Select lets you re-use the Select statement of an existing object
@Variable is used to reference the value assigned to a name or variable.
@Wherelets you re-use the Where clause of an existing object.
@Aggregate_Aware
Syntax @Aggregate_Aware(aggregate_table_1, ... aggregate_table_n)arguments are the names of alternative aggregate tables.
The precedence of the arguments is from left to right.
Description is used to enhance the performance of SQL transactions; i.e. it determines which tables to use in SQL
generation: either aggregate tables or detailed tables.
Example@Aggregate_Aware(sum(Region_SLine.sales_revenue), sum(Service.price * Invoice_Line.days *
Invoice_Line.nb_guests))
@Prompt
Syntax @Prompt ('message', ['type'], [lov], [MONO|MULTI], [FREE|CONSTRAINED]) message is the text of a message within
single quotes. type can be one of the following: 'A' for alphanumeric, 'N' for number, or 'D' for date. lov can be either a list
of values enclosed in brackets (each value must be within single quotes and separated by commas) or the name of a class and
object separated by a backslash and within single quotes. MONO means that the prompt accepts only one value. MULTI
means that the prompt can accept several values. FREE refers to free input as opposed to CONSTRAINED, which means
that the end user must choose a value suggested by the prompt.
Description Is used to create an interactive object. In the Query Panel, this type of object causes a message to appear. This
message prompts the end user to enter a specific value.
Note The last four arguments are optional; however, if you omit an argument you must still enter the commas as separators.
ExampleIn Where Clause:.city IN @Prompt ('Choose City', 'A', {'Chicago', 'Boston', 'New York'}, MULTI, FREE)the Query
Panel, the object prompts the end user to choose a city.
Syntax @Script('var_name', 'vartype', 'script_name') 'var_name' is a variable name declared in the VBA macro. This name enables
the results of the executed macro to be recovered in the SQL definition of an object. This name must be identical in both the
macro and in the SQL definition of the object. 'vartype' is the variable type declared in the VBA macro: 'A' for
alphanumeric, 'D' for date, 'N' for numeric. 'script_name' is the name of the VBA macro to be executed. VBA macro files are
located in the Scripts folder.
Description Recovers the results of an executed macro created with the Visual Basic Editor in the BusinessObjects User
module.
Note The second argument is optional; however, if you omit it you must still enter the commas as separators.
ExampleIn Where clause:.cust_id = @Script('Number_of_customers', 'A', 'customers')the results of a macro called customers,
which calculates the number of customers.
@Select
Syntax @Select(Classname\Objectname)
Description Lets you re-use the Select statement of an existing object.
@Variable
Syntax @Variable('myname')'myname' can be one of the following: The text of an interactive object previously created with
the @Prompt function; i.e. the first argument entered in the @Prompt function. A BusinessObjects system variable such as
BOUSER or BOPASS. These variables represent respectively the user name and password forming the user identification.
System variables also exist for the connection to the RDBMS.
@Where
Syntax @Where(Classname\Objectname)
Description Lets you re-use the Where clause of an existing object.
The qualification of an object reveals how it can be used in multidimensional analysis. An object can be qualified as a dimension,
a detail, or a measure.In the Universe pane, the symbol beside each object indicates its qualification:
a for a dimension
a for a measure
a for a detail
1 Double-click the object in the Universe pane.Edit Properties dialog box is displayed.
2 In the Definition tab, change the object's type, if necessary.
3 Click the Properties tab.
4 In the Qualification box, click the Dimension radio button.the object is of type date, click the Automatic Time Hierarchy
button, enter the necessary options, and then click the OK button.
5 Click the OK button.
Notes
By default, all objects you create manually already have a dimension qualification.
A dimension object appears within the Universe pane
Note
In the Universe pane, each time dimension appears as an subobject of the date object.
1 Double-click the object in the Universe pane.Edit Properties dialog box is displayed.
2 In the Definition tab, change the object's type to number.
3 Click the Properties tab.
4 In the Qualification box, click the Measure radio button.
5 Indicate how the measure is to be projected when aggregated: Average, Count, Max, Min, Sum, or Unknown.the
appropriate value from the list box.
6 Click the OK button.
Note
A measure object appears within the Universe pane with a symbol.
1 Double-click the object within the Universe pane.Edit Properties dialog box is displayed.
2 In the Definition tab, change the object's type, if necessary.
3 Click the Properties tab.
4 In the Qualification box, click the Detail radio button.
5 Click the Associated Dimension list box, and select the object to which you are assigning the detail object.
6 Click the OK button.
Notes
A detail object is displayed in the Universe pane with a symbol.
A detail object appears in the Universe pane as a subobject of the dimension object it describes.
95.Create a condition
Notes
You can use the SQL editor to formulate the Where clause.
A condition appears in the Universe pane with a symbol.
1 Select the User Objects command from the Insert menu.Insert User Objects dialog box is displayed.
2 Click a user object file.user object file has a .udo extension
3 Click the Open button.
Notes
By default, user object files are stored in the Universe folder.
By default, user objects appear in a class called Created from User Objects.
Notes
When you add a hierarchy, you automatically include all its dimension objects.
You can also drag and drop a hierarchy from the Default Hierarchies box to the Custom Hierarchies box.
You can rearrange the order in which hierarchies are displayed by using the Move Up or Move down button.
Note
You can rearrange the order in which dimension objects are displayed in a hierarchy by using the Move Up or Move down button.
A list of values contains the data values associated with an object. These data values can originate from a corporate database, or a
flat file such as a text file or Excel file. In Designer you create a list of values by running a query from the Query Panel. You can
then view, edit, purge, refresh, and even export this file. A list of values is stored as an .lov file in a subfolder of the UserDocs
folder.
1 In the Universe pane, double-click the object for which you want to create a list of values.Edit Properties dialog box
appears.
2 Click the Properties tab.
3 Enter a name for the .lov file in the List Name text box.can enter up to 8 alphanumeric characters.
4 Click the Display button to obtain the List of Values dialog box.List of Values dialog box displays all the possible data
values associated with the object.
5 Click the OK button to create the .lov file.stores .lov files in a subfolder of the UserDocs folder. The name of the
subfolder is that of the universe in which the object is located.
1 Select the Lists of Values command from the Tools menu.List of Values dialog box is displayed.
2 In the dialog box, click the object whose list of values you wish to edit.
3 Click the Personal Data radio button in the Properties group box.message box informs you that you are about to change
the .lov type from corporate to personal.
4 Click the OK button to confirm the action.displays the Access Personal Data dialog box. The options displayed vary
depending on the file type you select.
5 Click the Browse button, and from the browser, specify the file to be used as the .lov.can also type the file name in the
Name text box.
6 Specify the file format by selecting an option from the Format list box.options are Text Files (*.asc;*.prn;*.txt;*.csv),
Microsoft Excel, Lotus 1-2-3, or dBASE.
7 Specify the remaining options, as necessary.a text file, one line is equivalent ot one row. For a text file, indicate the type
of column delimiter: a tabulation, space, or character. If you select character as the type, enter the character in the text box.
8 Click the Run button to confirm the above actions, and to close the dialog box.
Aggregate awareness is a feature that makes use of predefined aggregate tables to enhance the performance of SQL transactions.
It is used to improve the speed by which aggregates are calculated in the database.
To set up aggregate awareness in a universe, you define or more objects using the @Aggregate_Aware function. The syntax for
this function is as follows:
The arguments of this function are all the names of alternative aggregate tables. When you formulate the syntax, you should be
aware of the order of the arguments. The precedence is from left to right; this means that BusinessObjects determines the
aggregate to use beginning from the leftmost argument.
As a general rule, you should enter the most aggregate table as the first argument, the next most aggregate table as the second
argument, and so on.
You must then use the Aggregate Navigation editor to set up a list of incompatible objects and/or incompatible conditions for
each aggregate table in your universe. These are the components that cannot be used with an aggregate table.
You can either set up these lists manually, or cause the list of objects to be detected by Designer.
Designer lets you save universes in either enterprise or workgroup mode.Enterprise mode means that you are working in an
environment with a repository. Workgroup mode means that you are working without a repository. The mode in which you save
your universe determines whether other designers are able to access them.By default, a universe is saved in the mode in which
you are already working. For example, if you launched a session in enterprise mode, any universe you save is automatically in
1 Select the Export command from the File menu.Export Universe dialog box appears.
2 In the Repository list box, click the universe domain to which you want to export the universe.
3 In the Groups box, click the group(s) to which you want to export the universe.
4 If you wish to export other universes at the same time, click the Add button, and then use the browser to specify the
universes.default, all open universes are displayed.
5 Double-click each universe you wish to keep locked in the repository.padlock appears beside a locked universe.
6 In the Universes box, click the universe(s) you wish to export.
7 Click OK.
Notes
You can export a universe only if its connection type is secured.
By default, the Universes box displays a list of all open universes. To remove a universe from this list, select it, and then
click the Remove button.
6 Click OK.
Linked universes are universes that share common components such as parameters, classes, objects, or joins. Among linked
universes, one universe is said to be the kernel or master while the others are the derived universes.A kernel or master universe
represents a re-useable library of components.
Derived universes may contain some or all of the components of the kernel or master universe, in addition to any components that
have been added to it.
Some of the benefits inherent in the use of linked universes are as follows:
A dynamic link may considerably reduce development and maintenance time. When you modify a component in the kernel
universe, Designer propagates the change to the same component in all the derived universes.Instead of re-creating common
components each time you create a new universe, you can centralize such components in a kernel universe, and then include them
in all new universes.
Linked universes promote workgroup design. Common components can be shared among several designers.
Linked universes facilitate specialization. Development can be split between database administrators who set up a basic kernel
universe, and the more specialized designers who create more functional universes based on their specific field.
You can link the active universe to a kernel universe, only if the following requirements are met:
The kernel universe and active universe were created from the same data account and the same RDBMS.
The kernel universe was exported and re-imported at least once.
Exported derived universes are located in the same universe domain as the kernel universe.
All classes and objects are unique in both the kernel universe and the derived universes. (Otherwise, collisions may occur.)You
are authorized to link the given universe.
Note
A derived universe does not recover the lists of values containing personal data from the kernel universe. However, if you need
certain lists of values, you can use the following workaround: in the derived universe, create new objects defined in the same way
as those in the kernel, then hide them. You can then assign them to these objects lists of values, which you can then modify and
export.
Notes
To link an active universe to a kernel universe, you must have exported the kernel universe at least once. Otherwise, Designer
does not allow the link.
Designer displays the components from the kernel universe as dimmed in both the Universe and Structure panes of the
active universe. You cannot modify or delete them; however, you can create a join linking a table originating from the kernel
universe to one in the active universe.
Why don't my prompts come out in the order I want them to? Any workarounds?
How can I link or "attach" report blocks so that they are positioned in relation to the each other?
Why can't I see all of the data returned by the cube in my report?
How can I send a report from Business Objects to another Business Objects User?
Why can't I create user defined objects (UDO's) for a particular universe? I can for other universes...
How can I make a table from two data providers and only show data common to both?
How can I import data from Excel and keep the numbers numeric?
How can I change or rid myself of the 'No data to fetch' message?
What is synchronization?
How and when can I point a data provider from one universe to another?
How can I sequentially number the pages of a report across all report tabs?
Why do I get an error when I try to Sum(<Sales>) Where (<Year> > 2000)?
I lost my work because of a power outage. Is there any way to retrieve my 'corrupt' report?
What is the difference between Full-Client Reporter and ZABO (Zero-Admin BusinessObjects)?
How can I include data for all months in a crosstab, even if a particular month has no data?
How can I include a Wildcard Character in a wildcard search when I use "Matches Pattern"?
Cindy Clayton - Tue Aug 13, 2002 11:28 am
Post subject: What does 'Variables are not compatible' mean?
Why is BusinessObjects telling me that my 'variables are not compatible?
A "combined block" that contains data from more than one data provider can only have objects that meet one of the following
criteria:
1. A dimension object that is linked
2. A detail object associated with a linked dimension object
3. Any measure object
4. Any additional dimension object (unlinked) from a single (one only) data provider
You may not include:
1. Unlinked dimensions from two (or more) data providers
2. Detail objects that are not associated with a valid dimension object that can be used
Note that measure objects are always allowed, but may or may not provide the proper value based on the linked (or lack of of
linked) dimensions.
Report prompts appear alphabetically. Try beginning your prompt text with 1, 2, 3, etc. to force them into logical order. Using
a period to begin a prompt is a good, virtually hidden method of forcing a particular prompt to the top of the list.
Cindy Clayton - Tue Aug 13, 2002 11:33 am
Post subject: What does 'You are not authorized to use this document' mean
Explain "You are not authorized to use this document"
The most common reason for this is that the document was - at one point - exported to the repository. Then it was deleted. At
that point, it is a "secured" document (since it was exported) and yet there is no record of who has access to it (since it's missing
from the repository). Thus you, even as the owner, do not have the authority to access the document. A General Supervisor can
open the document and save it for all users to remove the security information and allow access to anyone.
Another reason why this error can occur is if you totally delete your repository. This will cause this error even if the document
was never exported. If you have a document that was created while you were logged in, and then you send it to someone that does
not have a repository (and therefore cannot log in), they get the same message.
This message means that one or more of the objects used in your report are no longer available in the universe. A Designer
may have deleted them. Deleting objects is generally a bad idea. Hiding them removes them from use in future reports but
preserves them in current ones.
Another possible reason for this error is that a previously linked universe has now been 'included' instead. Objects from the kernel
universe will report this error. Evidently the inclusion process assigns new ids to objects from the kernel universe. One way to
work around this error is to provide both the original linked version and an included version of the universe in the repository
simultaneously. Users can then use the ... button in the Data Manager to point the report to the included universe using class and
object names rather than ids.
There are a couple of ways to determine which objects are being removed from your query. Use the DataProviderSql function to
display the sql BEFORE accessing the query panel. Compare this sql to what is written AFTER the message appears. Another
method is to use the Data Manager to see a list of query objects.
Eileen King - Tue Aug 20, 2002 7:32 am
Post subject: How can I Save/Export to Excel?
Saving / Exporting to MS Excel
There are several ways to get Business Objects data into Excel. Which method works best probably depends on what you want
to do with it once you get it there!
This will allow you to take a Business Objects Table into Excel. This keeps the data as displayed (objects, variables, filters, etc.)
and will bring the data as it appears in Business Objects into Excel. It will not preserve formatting or formulas from Business
Objects.
1. From the Business Objects Edit Menu, select Copy All. This will paste your data to the clipboard. Depending on how large
your Business Objects Table is, this can take a while!
2. Open Excel.
3. To maintain text attributes in Excel (such as keeping leading zeros) select the columns that you want to be treated as text. With
the columns selected in Excel choose Format Cells Text.
4. From the Excel Edit Menu, select Paste Special.
5. Choose Text and click OK.
This process will allow you to take the raw data from a Business Objects data provider and put it into Excel.
1. From the Business Objects Data Menu, select View Data. This will bring up the Data Manager window where you can see the
Data Providers for your report.
2. Click on the Data Provider you want to export.
3. Make sure the Results Tab is highlighted. There will be buttons on the bottom which include Options, Refresh, Purge, and
Export.
4. Click on Export.
5. The Export to External Format screen will appear. Make sure Export to Local File Format is highlighted.
6. Specify the name and path of the file where you want your data to be stored in Name. You can use the Browse button to locate
the path.
7. Specify the format of the file where you want your data to be stored in Format. On the pull down menu, choose Microsoft
Excel Files (*.xls).
8. If you choose the option Delete Spaces it will delete the spaces before and after the delimiters that separate the columns of data.
Eileen King - Tue Aug 20, 2002 7:39 am
Post subject: How can I position report blocks relative to each other?
How can I link or "attach" report blocks so that they are positioned in relation to the each other?
This process will allow you to position the report blocks relative to other report blocks.
1. From the Business Objects Report screen, double-click on the edge of the block you want to position. This will bring up the
block format window where you can set Formats for tables in your report. Click on the Appearances tab. Alternate method: click
on the block, and select Format + Block (Table, Crosstab, or Chart depending on the block type selected).
2. You will see the Position screen. Horizontal or vertical position allows you to set the table's position relative to the margins,
upper section, another table, or center across the page (called markers). The space between the marker and the table is relative to
the upper left corner of the selected table.
3. To move the table to the left and right, use the Horizontal Position Relative to option. To table up and down, use the Vertical
Position Relative to option.
4. You can enter a number (positive or negative) to set the horizontal space between the marker and the table. You can also enter
a number to set the vertical position between the marker and the table.
Eileen King - Tue Aug 20, 2002 10:09 am
Post subject: What could cause my data to be hidden?
Why can't I see all of the data returned by the cube in my report?
Business Objects seems to be hiding data. I get 9 rows in the cube, but only 3 rows show up on the report. What would cause
this?
There are a couple of reasons why you may not be seeing all the data in your cube within your report.
One possibility is that the data is being filtered. You can check to see whether any filters are excluding rows.
BusinessObjects, by default, shows only unique rows of data. If the values in your block would result in the same row being
displayed more than once it will only show that row once. However, you can force the block to display duplicate rows.
Sure! BusinessObjects keeps all of the user defined objects (UDO's) in a particular file. This file has the same name as the
short name for the universe, with the file type of UDO. For example, the short name (file name) for Island Resorts Marketing is
BEACH.UNV. There will be a file named BEACH.UDO that contains the UDO's for that universe.
However, sometimes - generally when the first UDO is being created - BusinessObjects has a problem accessing that file. If you
check and see if there is a zero-byte file for your UDO's for that universe, you should delete it. Once you've done that, you will
generally be able to go back into BusinessObjects and create User Defined Objects for that universe.
This never seems to be a problem except for the very first object. Once that first object has been created, you'll never have a zero-
byte file from that point forward.
Cindy Clayton - Sat Apr 12, 2003 5:04 pm
Post subject: Two data providers, show only data common to both...
How can I make a table from two data providers and only show data common to both?
Once they are linked, each object of linked data providers contains ALL of the values from BOTH queries. If you want to
isolate the display to show only records that are in both queries, you need to filter for non-null values from some other non-linked
value.
For example, assume you have measure M1 from query 1, and measure M2 from query 2. Measures work the best, but detail
object can be used also. You need to create a custom filter (not a pick list) using the following steps.
1. Click on M1
2. Click on Format + Filters from the menu. Do NOT use the filter toolbar button.
3. Click on Add, and select M1
4. Click Define, and enter the following expression:
= Not (IsNull(<M1>))
Repeat for measure M2. Now you will only see rows that have entries from both queries.
Cindy Clayton - Sat Apr 12, 2003 5:18 pm
Post subject: Troubleshooting Unhandled Exception Errors
Something under here becomes corrupt. This can happen in many circumstances, but in particular where a low spec machine (e.g.
64Mb - this should ring alarm bells) is trying to open a 'large' report - sometimes as little as a couple of Mb. When USERNAME
signs on to BO again, the key is recreated with the correct values.
2. Refreshing a report.
In fact, the refreshing completes and you see the message 'Disconnecting...'. This is BO, signing out from the database which it
has been getting data from - normally you wouldn't see this unless BO is going slow. The fact that you see this, then get the bug is
again a PC resource problem. Try it on a faster better specified machine to prove this.
Tidy up the report, remove unused variables, formulas as well as objects from the different queries. Encourage the user to purge
the report, so when they pick it up next time the PC doesn't use much resource opening it. Sound them out on scheduling the
report and getting the final result sent to them.
3. Importing universes
Another reason for C0000005 is a bug specific to the version of BO we have, 5.1.2. This is the problem with importing universes.
Basically, each changed version of the universe has a counter which is incremented each time you save and export. Something
goes wrong with this counter so BO is not happy to get the new universe. Mostly this is solved by deleting the existing universe
from the C:\ drive and then forcing and import. There is a fix (which I have never got to work) which is to import and export
twice. Don't forget about Tools/Universe - you can try and force an import from here. This was supposed to be fixed in 5.1.3.
6. Miscellaneous resolutions
Try a full reinstallation of BO. i.e. deinstall, make sure no trace of files, folders and registry entries before reinstalling. Reduce the
graphics acceleration level via control panel - not a problem on this site, but worth knowing about.
This is the method that I use for Excel personal data providers, and at the risk of jinxing myself, it never fails:
Instead of using a "live" Excel file to build the data provider, create a sample file. Same column headings, but use dummy data.
Put alpha characters in the columns you want to be alpha, numerics in numeric, and so forth. Maybe 20 rows, but every row the
same. It's usually columns that have ambiguous data (could be alpha, could be numeric) that confuse BusObj.
After creating the data provider, you can now put "live" data in the Excel file, and the definitions will "stick" from now on.
Is it possible to
make a copy of a data provider in the same or in a new document?
The current versions of BusinessObjects (up to and including version 6.0.0) do not include this functionality. However, we do
have some code on this site which will allow you to achieve this. See here for details.
In 6.1a (or later) if you already have 1 data provider and want to create a similar second data provider then you can do the
following: Go to Data > New Data Provider in the menu. Then on the options displayed select "Use an existing query to build a
new one". A list showing all the available data providers is displayed. You can select the one which you want and click OK and a
similar new data provider is created.
Cindy Clayton - Tue Jun 17, 2003 8:48 pm
Post subject: Re: FAQ: Reporter
Why do I get a Syntax Error (DMB0007) when I try to Sum(<Sales>) Where (<Year> > 2000)?
This means that the WHERE Clause in Business Objects Reporter only allows the "=" operator, and the right side of the equation
has to be a constant as well (and not another report variable etc.).
For example:
Code:
Sum(<Sales>) Where (<Year> = 2000)
will work
There are multiple methods of supressing the 'No Data To Fetch' message.
Programmatically...
If you copy this code into the ThisDocument module, it should work. To implement the code, you will need to have your Report
which gives you the No Data to fetch message open. Click on Alt + F11, and the Visual Basic Editor will open. On the left hand
side you should see a list of all the documents you have open. Under the name of the document which gives you the message you
will see a icon called ThisDocument. Double click on it and on the main window, a blank sheet should appear. It not only
suppresses the "No Data to Fetch..." message, but any prompts and so forth are also suppressed. It even turns off the hourglass
cursor, so it can be confusing to the user.
Code:
Private Sub Document_BeforeRefresh(Cancel As Boolean)
Application.Interactive = False
End Sub
Note that this code is executed only when a full refresh is performed. If you run queries individually (from the query panel or
Data Manager) the above events are not triggered.
You can then take a report where you don't want to see the "No data to fetch" message and create a union query using the blanks,
zeroes and the object referencing the dummy table. This will guarantee that at least one row will be returned by the query. The
zeroes added to numeric columns will not influence the result. Create a report filter to hide the union row. This technique can be
used for long-running reports that contain multiple data providers where processing should not stop if one of the queries does not
return data.
The way to get the No Data to Fetch message to disappear is to put a dummy table in your database with a single row with a
single column with a value of 1 or use a system table such as Oracle's dual table. In your universe, add your dummy table as a
class with a single object. Put a self-join on the dummy table. In the object definition put in the where clause that the column
equals 1, so that the value will always be found by the sql. Put the self join in a separate context. It should be the only join in the
context. Do not include the join in any of your other contexts.
Include the dummy object in your result set in your dataprovider when you don't want the No Data to Fetch message to appear.
The dummy object in its own context will cause B/O to create two datacubes for the query because two different contexts are
used. Because of the self-join always being true you will always get some result. Just hide or delete the dummy column in your
report.
Create an object in Designer that uses your databases' method of selecting the current date. In Oracle, your object would select
'sysdate'. The object will not be attached to any table and as a result will not parse successfully. Never fear . It will work when
combined with other valid objects attached to tables.
Cindy Clayton - Sun Jul 13, 2003 2:09 pm
Post subject: What is synchronization?
What is synchronization?
Synchronization happens when there are no (or not enough) common dimensions in each query. The desired result, when
running queries across multiple contexts, is a join not a synchronization operation. You can find out the exact operation being
performed by looking at the SQL from the query panel, you will see a number of "folders" on the left side of the SQL window,
and at the top, the operation used to combine them. If you see "synchronization" then your queries don't have enough in common.
Yes it is possible. In order to do so, the target universe must have the same class and object name structure as the source
universe. BusinessObjects uses class name and object name when pointing dataproviders from one universe to another.
You can change the universe a data provider is pointing to by going to BO Reporter, menu Data| View Data..., in the window
"Data View" select your data provider from the left pane and switch to tab "Definition". Notice the entry under Universe, click on
the "..." button to display the available universes (universes your BO user ID has been granted access to via BO Supervisor). Note
that the current universe that the data provider is pointing to is not listed in the Window "Change Universe".
Now select the new universe from the list you want the data provider to use, select OK and save the BO document. Repeat the
steps for every single data provider.
Possible problem:
The universe that a data provider is based upon has already been removed (your access to the universe has been denied, or the
universe has been renamed or deleted). In this case if you try to point the data provider to a different universe you might get the
error message "Cannot find the 'UniverseName' universe. DA0011".
Solution:
Ask the BO Supervisor or a BO Designer to re-point the data provider to another universe (they might have a copy of the old
universe or they might still have access to the old universe).
Do NOT try to open the BO document with a text editor and modifying it in the text editor, because this will most likely lead to a
corruption of the BO document.
Advice:
Always re-point all your data providers of all your documents to the new universe BEFORE you remove/re-name any existing
universe used by data providers.
Cindy Clayton - Mon Jul 14, 2003 7:40 pm
Post subject: Can I sequentially number report pages across all tabs.
First, create a variable for each tab that is named exactly the same as the tab name. Then, use this code:
Code:
Sub PageNumberTabs()
PageNum = 0
For i = 1 To ActiveDocument.Reports.Count
If i <> 1 Then
DocumentVariables.Item(ActiveDocument.Reports.Item(i).Name).Formula = "= " & Chr(34) & "Page " &
Chr(34) & " & FormatNumber (Page() + " & PageNum & ", ""#"")"
Else
DocumentVariables.Item(ActiveDocument.Reports.Item(i).Name).Formula = "= " & Chr(34) & "Page " &
Chr(34) & " & FormatNumber (Page() , ""#"")"
End If
ActiveReport.ForceCompute
Next i
End Sub
Have this called from the afterrefresh() event. It has been tested it and it numbers all the tabs correctly. Even if you move the tabs
around, there are no code changes that have to occur.
The best way to do it (and the fastest) is to do it in the database. If you simply subtract the two days, you will get a number in
the format D.T, where "D" is the number of days, and "T" is the fraction of days in decimal form. In other words, day 2 and noon
minus day 1 at midnight will yield 1.5 as the result.
Take this number and multiply by 24, that gives you the number of hours. Take the decimal portion of that and divide by 60 and
you get the number of minutes. So if you have 1.5 (earlier example) and multiply by 24 you get 36 hours and 0 minutes.
Cindy Clayton - Mon Jul 14, 2003 7:59 pm
Post subject: How can I open a report that is corrupt?
I had a power outage and now BO is telling me that I cannot open my report because it is corrupt. How can I save my work?
Search your computer for a temp file saved at the time of the outage. The file may not have a name anything like the original
filename. If you can locate this file, it should open and contain the work you had saved prior to the outage. Read this thread for
more detailed info...
Anita Craig - Fri Jun 25, 2004 6:41 pm
Post subject: Difference between Full-Client Reporter and ZABO (Zero-Admin
What is the difference between Full-Client Reporter and ZABO (Zero-Admin BusinessObjects)?
The highlights:
2. As far as reporting functionality, ZABO and full-client are identical, with the exception that ZABO cannot use either personal
connections nor FreeHand SQL.
3.) One difference is database connectivity. With ZABO, all database connections are managed by the ZABO/WebI server. With
full-client, database middleware and related configuration is on each workstation.
So, Full-Client Reporter is a "2-tier" tool -- the Reporter module sends the query to the database, and the results are brought right
back to your computer.
Reporter <--> Database
ZABO is a "3-tier" tool -- the ZABO Reporter module formulates the query, and sends it to the ZABO/WebI server, which then
sends the query to the database (using the database middleware and configuration on the server) -- the ZABO/WebI server
receives the data cube back -- and then forwards the data cube to the ZABO client.
ZABO Reporter <--> WebI Server <--> Database
With ZABO Reporter, the initial installation is done by logging in to the WebI server (via Infoview) -- and setting the WebI
options to edit full-client documents with BusinessObjects. Then, the first time you try to build a query, or edit an existing one in
the repositoy -- the WebI/ZABO server launches the installation of a mini version of the Reporter module on the client computer.
Afterwards, for upgrades, only the WebI/ZABO server is updated directly. Users need to log into WebI via Infoview, and
create/edit a full-client document -- and ZABO will detect that an upgrade is needed -- and will launch the upgrade.
Dave Rathbun - Mon Aug 02, 2004 4:03 pm
Post subject: Re: FAQ: Reporter
How can I include data for all months in a crosstab, even if a particular month has no data?
One way to do this is to create a second data provider using only the months. Then link the second data provider with the first
data provider. Use the month column from the second data provider in the cross tab. This should bring in all months even if there
were no data for that month. However this technique does not work if you have sections in your report.
Dave Rathbun - Wed Aug 11, 2004 10:36 pm
Post subject: How do I migrate between repositories?
How do I migrate documents between repositories?
-------------------------------
Steve Krandel describes this process the best (BusObjects version 5.x/6.x):
Here are some shortcuts to the Moving Reports steps above as suggested by many of the people from the forum:
Open document and do Save As and use Save for all users. Log into the second repository and Publish the document. When you
open the report it will automatically switch itself over to a universe with the same name in the new repository. WebI reports
apparently work the same way if you save them as personal documents first.
The only caveat to this is the original universe from repository "A" needs to be deleted from your local directory. Otherwise,
when you switch BOMain key to point to repo "B" and open the report after doing a "Save for all Users" you will get the error "A
connection required to refresh this document is unavailable". This is because it still recognizes the original universe (or so it
would seem). When you delete all local instances, it is forced to import the universe from Repo "B" and therefor does the
seamless switch. This is of course only if your universe short names match.
Here are some important considerations and issues encountered when you migrate documents (or universes) between repositories
(as posted by our Forum Moderators):
1. Moving repositories (from one database to another) is easy for everything but documents. For some databases (Oracle to SQL
Server) it seems to be pretty straightforward. For Sybase to anything, I think the security and universe domains will be fine. The
document domains likely won't work. Sybase treats BLOBs differently that Oracle. They simply do not convert correctly. I'd
make sure you do a BIG test first.
2. If you cannot change the repository connection from secured to shared/personal or visa versa as this box is disabled, it is
because that is not possible. You must create a new shared connection. You need to make sure that you have rights to do this from
the Supervisor Module.
3. After moving the updated universe to production first (if needed), open each document in production, open each data provider
and click "save and close," before finally saving the document and publishing to corporate documents. The "save and close" is the
only we have found to guarantee that the connection information is updated properly.
4. After you created the new repository and imported the old info -- make sure you go into the new repository and change all of
the connnections to point to the new repository domains.
Chris Pohl - Tue Aug 17, 2004 12:14 pm
Post subject: Re: Converting Excel Content to Text
Why is my report so slow?
What makes up the total time a report runs from hitting the Refresh button to being displayed:
1. Query execution time (database side)
2. Transferring results across the network to the client/web browser (network bandwidth & latency)
3. Computing local report variables, formulas, local report filters, alerters, etc. within the report (BOE server/ DesktopIntelligence
workstation)
4. Rendering the page (page layout, page margins, page numbers, etc.)
---------------------------------------------
1. Optimizing Query Performance (tuning universes and databases):
There are a number of things you can do to speed up your query. The first things I will do is to review your universe to minimize
Your Oracle database may be using either "Cost based" or "Rule Based" optimization. You need to find out which your system is
using. If your system is using Cost Based, (which is the more recent offering), you must make sure the "Statistics" are up to date.
Oracle under rule based oprimization uses row counts etc to determine the fastest path to resolve queries. Once you are happy that
the stats are up to date you can use "Hints" to alter the approach the db might take.
If your system is using Rule Based optimization (old technology!), the order of the the tables in the "From" clause are important,
altering these by manually assigning row counts in designer is how you do this.
For large data volumes consider partitioning your fact table for example by time dimension (Year, Month), country dimension,
etc..
If you are able to look at the Plan of execution, this may give you an insight on how you can make improvements. Most of DBMS
(Oracle, IBM UDB, etc.) will have some sort of utility to find out what index the SQL statement are using, what execution path
they go through. You might need to use this kind of tool(s) to find out what's wrong with the SQL first. Investigate your SQL
statement in SQL Plus (Oracle) or a similar tool. In a past job, I was given the task of performance tuning SQL statements. Minor
changes to the SQL can have tremendous impacts on retrieval times. Just because a statement is using an index does not mean that
it is using a good index. Especially investigate selected objects that are also used in table joins. Which table you are pulling the
object from can make a big difference but still yeild the same results.
You must have someone do an Explain Plan on your query. The result will provide a starting point for your performance tuning.
If you have the knowledge to do this yourself, I recommend using TOAD, SQL Station, DBArtisan, etc. These tools will also let
you monitor Server Session statistics to see what your Server is doing while your slow query is running.
Consider playing with the value of the array fetch size on your universe/database connection (see also 2.). The optimum value is
different for everyone.
Consider building summary/aggregate tables (in the database) to speed up queries, for example: Sales transaction precaculated at
the granularity of Month (instead of daily sales transactions). As a rule of thumb your summary table should contain 10% or less
rows than your original fact table to produce measurable performance gains.
To utilize these summary tables use the Query Rewrite Option (Oracle, etc.), which is totally transparent to BusinessObjects or if
needed use @Aggregate_Aware in the universe/Designer.
Universe Design
- Make sure all your universe measures are using a SQL aggregate function (as a rule of thumb) to reduce the size of your result
set by aggregating the data at the database level (instead of projecting the data in your report). Note: SQL aggregation and
projection for measures (set via Designer) are two very different things.
- Evaluate shortcut joins or Index Awareness.
- Consider using the universe parameter JOIN_BY_SQL (available since XI R2) (see B) below) if a data provider generates
multiple SQL statements, whose microcubes are "joined".
2. Network performance
Make sure you are using a fast network connection with appropriate bandwidth (between database/DBMS hosting your source
data/data mart and the BOE server/DesktopIntelligence workstation), check for latency, required hops, and packet loss (if any)
from the database to the BOE server, using the command PING or NETSTAT for example.
Again, adjust the Array Fetch Size Parameter (universe connection via Designer, see also 1.). Rule of thumb: if your network is
reliable (no packet loss) choose a higher Array Fetch Size.
Suggestions:
- Reduce formulas/local report variables and complex filters (reporter side), etc.
- Use variables instead of formulas
- Remove Auto-sizing (auto-height/width) if possible
A) Is the result set of data in the report very large? Perhaps you should add more conditions/prompts to your query to reduce the
number of records returned from the database.
Do not expect a report containing 100ks of rows to be fast, as it has to be rendered as well.
B) Is the report very complicated, eg. does it contain several data providers/queries or many calculations? You might try to see if
you can reduce the complexity of the report. Data providsers are executed sequentially, and the merging of the microcubes will
cost performance.
Consider using the universe parameter JOIN_BY_SQL (available since XI R2), if a data provider generates multiple SQL
statements, whose microcubes are "joined".
C) Is the query on the database side taking a long time to execute? Then you should work with your DBA to see what can be done
on the database side to optimize query performance (show the generated SQL to your DBA).
D) Consider optimizing your BOE cluster architecture (XI R2): For example configuring additional Webi Report servers, adding
cache, etc.
Anita Craig - Thu Aug 03, 2006 6:41 pm
Post subject: Is it Possible to Query the Repository & Build Reports?
Is it Possible to Query the BusinessObjects Repository and Build Reports?
It's done that way to prevent an infinite loop. You can filter on the report level, you just can't filter on an aggregate. That's because
Process:
1. Return data to the cube
2. Apply filter
3. Display data
4. Calculate aggregates
If you tried to apply a filter after displaying the aggregates, you would loop back to step 2 and have to recalculate your aggregate.
At which point you would have to loop back to step 2 and apply your filter all over again.
One work-around is to use the "rank as a filter" trick that has been documented many times on the listserv / Bob. Or you can do a
sub-query so that only the values you are actually interested in are returned. Or - as you suggest - BusObj could rewrite their
report engine to be smart enough to avoid the loop and provide this feature. But that will take a while.
BO_Chief - Tue Aug 05, 2008 5:26 pm
Post subject: Sol:How to show and hide reports based on user selection ?
How to show and hide reports based on user selection.
For Example : You have four reports TABULAR, PIE, DETAIL, CROSS TAB and user wants to see only one report in a single
tab on its selection.
Solution:
1. Create a Prompt for the user input in universe.
2. Generate your report query and execute it.
3. Create different tables(blocks) in the report to display different reports. Here in your case you want to display 4 reports, so
you want 4 table blocks.
4. Create one condition based on the User response for Table 1
5. Add the condition to the Table 1.
6. Repeat Steps 4 & 5 for other report Tables.
Code:
=@prompt('Select your report',{'TABULAR','PIE','DETAIL','CROSS TAB'},,MONO,FREE)
3. Now, Create your report with 4 different report tables. (As you say: Table 1 displays Tabular, Table 2 displays PIE, Table 3
displays DETAIL, Table 4 displays CROSS tab)
4. Lets say user selects option 'TABULAR', For this you need a condition to show Table 1 and hide other tables. So lets create a
condition to show Table 1 and hide others. The syntax would be:
Code:
=UserResponse("Data Provider Name", "Prompt Text") = "PIE" or UserResponse("Data Provider Name", "Prompt
Text") = "DETAIL" or UserResponse("Data Provider Name", "Prompt Text") = "CROSS TAB"
5. To add the above condition on Table 1, Click Format Table --> Appearnace --> Hide Block --> Click Edit Formula and the
paste the above formula.
Is there any way to set up a prompt that will allow a user to select one value, many values, or type 'ALL' for all values in a list?
Now that my LOV lets me use ALL for all values, how do I get the ALL in the list?
How do I increase the number of items I can pick from a list of values?
What is synchronization?
Why do all my date lists of values include time and can I get rid of the time portion?
How do I link universes? Why would I link universes? What are the restrictions? What are the advantages and disadvantages?
I'm confused about connections! What's the difference between secured, personal, shared, full-client, and ZABO connections?
What functions are included in the Functions list, and can I add more if I want to?
How can I use the system date in a prompt or an object? Why won't they parse?
How can I provide a default value for a prompt? How can I make the prompt default to another object, or a formula like today's
date?
I have a universe and it tells me it's from a different CMS. How can I open it?
Cindy Clayton - Sun Aug 18, 2002 8:21 pm
Post subject: How can I prompt for select one, many, or all values?
Yes. Below is a sample of the syntax required to allow a user to select one, many, or all values from a prompt.
Code:
(@Select(Sales Geography\Country Group) IN @Prompt('Select Country Group or
enter * for all groups','a','Sales Geography\Country Group',multi,free) ) OR
('*' in @Prompt('Select Country Group or enter * for all groups','a','Sales
Geography\Country Group',multi,free))
In the sample, the asterisk is used as the wildcard. The first part of the formula...
Code:
(@Select(Sales Geography\Country) IN @Prompt('Select Country or
enter * for all countries','a','Sales Geography\Country',multi,free) )
works when a user picks one or more values from the list. The second part...
Code:
OR
('*' in @Prompt('Select Country or enter * for all countries','a','Sales
Geography\Country',multi,free))
The IN, combined with 'multi' are the keys to allowing the selection of multiple values from the list.
Here is another example which demonstrates how a prompt of this type can accept multiple wildcards and handle case
sensitivity...
Code:
(PER_JOBS.ATTRIBUTE3 IN @Prompt('Enter Employee Survey Code(s) ("ALL" for
all)','A','Job Information\Add. Job Details Survey Code',multi,free) OR
'ALL' IN @Prompt('Enter Employee Survey Code(s) ("ALL" for all)','A','Job
Information\Add. Job Details Survey Code',multi,free) OR
'All' IN @Prompt('Enter Employee Survey Code(s) ("ALL" for all)','A','Job
Information\Add. Job Details Survey Code',multi,free) OR
'all' IN @Prompt('Enter Employee Survey Code(s) ("ALL" for all)','A','Job
Information\Add. Job Details Survey Code',multi,free) OR
'*' IN @Prompt('Enter Employee Survey Code(s) ("ALL" for all)','A','Job
Information\Add. Job Details Survey Code',multi,free) OR
'%' IN @Prompt('Enter Employee Survey Code(s) ("ALL" for all)','A','Job
Information\Add. Job Details Survey Code',multi,free))
Nick Daniels - Thu Jul 10, 2003 12:27 pm
Post subject: What is an isolated join and how do I fix it?
An isolated join is one that has not been included in any context in your universe. Once you start using contexts in a universe,
every single join must belong to at least one context. A join can belong to more than one context, but if it doesn't belong to any it
is considered by BusinessObjects to be isolated from the rest of the universe structure.
To understand this add a new table to an existing universe that uses contexts. Create a join between that table and an appropriate
existing table. Now create a new object based upon your new table. Now create a simple query with one object from your new
table and one object from the table you joined to. The result is two bits of synchronised SQL. Why? Because we left our join
isolated, as we forgot to add it into an appropriate context. Go back to the universe and add the join to a suitable context. Now try
your report again
Cindy Clayton - Mon Jul 14, 2003 8:16 pm
Post subject: How do I increase the number of items I can pick from a list
What is the limit on the number of objects I can pick from a list of values and can I increase the limit?
BusinessObjects restricts the number of objects that can be picked from a list of values to '99'. It is possible to increase this
limit by adding a MAX_INLIST_VALUES value to your database prm file. This parameter is not in any driveren.prm file by
default. To use it, you must enter it in the [RDBMS] section under the (GENERAL) subsection. If you do not enter this
parameter, the default value is 99.
Your database has a constraint on the number of values that can be present in an inlist condition. Oracle for example, allows
thousands of values.
Picking values from a list is different than pasting or typing values into a prompt box. If values are pasted or typed in, the
constraint does not apply.
One of our listserv users did some testing with regard to inlist values and had the following to report...
Quote:
I have thoroughly tested this ("this" being max values when using the "in list" operator in a condition) and here is
what I've found out:
1. If you select the values from an LOV, BusObj checks to see if you have set the MAX_INLIST_VALUES
parameter value in your .prm file. If you have, it uses this number to limit how many values you can select. This
number CAN be greater than 256 if your database supports it. Oracle 8 supports up to 1000 values, so I would
assume you could set this value up to 1000 if you use Oracle. (I tried 280 and it worked!).
2. If you select values from an LOV, and you have NOT set the MAX_INLIST_VALUES parameter, BusObj will
limit the number of values to 99.
3. ...and this is what I didn't see documented anywhere!... If you type or cut and paste the values instead of selecting
them from an LOV, the limit is whatever your database allows. It doesn't matter if you have the parameter set or not.
Cindy Clayton - Mon Jul 14, 2003 8:28 pm
Post subject: How can I calculate the number of hours between two dates?
How can I calculate the number of hours between two dates?
The best way to do it (and the fastest) is to do it in the database. If you simply subtract the two days, you will get a number in
the format D.T, where "D" is the number of days, and "T" is the fraction of days in decimal form. In other words, day 2 and noon
minus day 1 at midnight will yield 1.5 as the result.
Take this number and multiply by 24, that gives you the number of hours. Take the decimal portion of that and divide by 60 and
you get the number of minutes. So if you have 1.5 (earlier example) and multiply by 24 you get 36 hours and 0 minutes.
Cindy Clayton - Mon Jul 14, 2003 8:32 pm
Post subject: How can I get rid of the time portion of my dates?
How can I eliminate the time portion from my dates and my date lists of values?
Read this till I have time to summarize for the FAQ's ...
See here...
MichaelWelter - Tue Jul 15, 2003 11:21 pm
Post subject: How do I create cascading or nested prompts?
How do I create cascading or nested prompts?
Let's create a Series of Cascading Prompts for the Island Resort Marketing Universe. We'll simply work our way through the
Resort class for a quick example. All of the prompts will be fairly similar, and I am going under the assumption that everyone has
some Designer Experience.
Let's start at the Highest Level that we'd need a prompt for. That would be the Resort itself, since we need to know what Resorts
we're interested in.
* Edit the List of Values for the Resort object.
* Check the Automatic Refresh Before Use option.
* Click Edit.
* Bring Country into the Conditions and set it to: in list Prompt('What Country are you interested in?')
* Click Save and Close
* Click Apply and edit the next LOV object.
Edit the Service Line and set up the same Prompt on Resort as: in list Prompt('What Resorts are you interested in?')
Again... Save and Close, ensuring that the Automatic Refresh Before Use checkbox is selected then Edit the next.
Service will have: Service Line in Prompt('What Service Lines are you interested in?') with the Automatic Refresh...
--------
Save this Universe and let's generate a report.
--------
Generate a report that pulls in the Country, Service Line and Revenue. Set a prompt on Service Line and apply a prompt as a
condition asking: 'What Service Lines are we tracking?'
For the Service Line, click on Values.... A new Prompt should appear, asking about the Services. Again... click the Values button,
and so on... and so forth.
Once you've answered the questions, you only need to hit the Values button when you need to backtrack to another level.
Cindy Clayton - Sat Sep 27, 2003 6:50 pm
Post subject: How can I see 'ALL' in my list of values?
Now that my LOV lets me use ALL for all values, how do I get the ALL in the list?
There are two approaches - overriding the LOV SQL, and creating a universe object.
Universe Object
1. Create a universe object defined as a constant 'ALL'
Keep away from sharp objects . Take a deep cleansing breath and don't panic
Can you get a copy of the universe from the web server?
Can you get a copy from another user or Designer's PC?
Do you have a backup copy in a source control system?
Do you have a repository backup that your DBA could restore to a temporary location? If so you could do the stuff in this post
and import the universe.
Reports will complain if they are unable to find the universe you've deleted. A thorough explanation by digpen is located here.
Cindy Clayton - Tue Jun 01, 2004 9:08 pm
Post subject: Re: FAQ: Designer
What is synchronization?
Synchronization happens when BO creates two queries for you but doesn't really understand how to merge the result sets. Say
you have a product table, an inventory table, and a sales table. You join products to inventory on product_code and place that join
in the inventory context. You join products to sales and place that join in the sales context. Create the product code object from
the product table, the inventory measure from the inventory table, and the sales measure from the sales table. When you create a
report in the query panel, you'll get two JOINED queries. BO understands that it can write a query with inventory and product and
another with sales and product and put them back together by product_code.
If you're getting synchronized queries, you've got messed up contexts, joins not in the proper contexts or objects in the query that
aren't from dimension tables joined to both facts. It is very rarely ever acceptable to have synchronized queries.
MichaelWelter - Wed Jun 23, 2004 11:21 pm
Post subject: How do I migrate universes between repositories?
How do I migrate universes between repositories?
Although it is not advisable to have multiple repositories, sometimes it is necessary. Migrating universes from one repository to
another is not difficult, at least the first time.
Log into Designer, using the Key of the repository that currently contains the universe.
Import the universe.
Click on File - Save As, and, in the Save As dialogue box, check "Save for all users".
Click Save, and then Yes, to overwrite the existing universe.
Log back into Designer, using the Key for the destination repository.
Open the universe, and give it a new connection.
Export the universe.
In subsequent migrations, you will be prompted, during export, if you want to overwrite the existing universe. Click yes.
Dwayne Hoffpauir - Fri Jul 23, 2004 8:10 pm
Post subject: Connection confusion! Secure? Non-Secure? Full-Client? ZABO?
I'm confused about connections! What's the difference between secured, personal, shared, full-client, and ZABO
connections?
Remember that Designer, Supervisor, and Business Query only use the full-client method of connecting. Reporter can use full-
client or ZABO methods. Since the ZABO method cannot use personal or shared connections, it explains why ZABO users can't
use Free-Hand SQL.
Bob - Tue Aug 10, 2004 10:11 am
Post subject: What is a fan trap why is it a problem how can I resolve it?
What is a fan trap, why is it a problem, and how do I resolve it?
Dave Rathbun describes it well in his presentation, ZEN and the ART of Universe Design. Which is located here:
http://www.dagira.com/conference-presentations/
Here is a quick synopsis of Fan Trap from his presentation:
A Fan Trap is a one - many - many relationship. This would happen if you are using a Summary and a Detail table in one query.
Fan Traps can cause numbers to multiply. Business Objects resolves this transparently by using 2 queries. It is resolved
automatically as long as the measure objects have aggregrate functions (query will split in 2). You just need to make sure the
Multiple SQL Statements for Each Measure box is checked in Designer. It is a default setting, so before you turn it off consider
what it is doing.
Another way to solve a Fan Trap comes from the Business Objects web site: [obsolete link removed]
Create an alias for the table containing the initial aggregation, then create a context for the alias table and a context for the
original table. You can then apply the aggregate awareness function to optimize the query. This is the most effective way to solve
the Fan trap problem.
1. Create an alias for the table that is producing the multiplied aggregation.
2. Create a one to one join between the original table and the alias table.
3. Build the object that is causing the aggregation on the alias tables.
4. Define a context for the original table and a context for the alias.
5. Select File>Parameters and click the SQL tab to display the SQL page.
7. Modify the select statement for the columns that are summed so that the columns in the alias table are summed and not the
columns in the original table.
A "many to one to many relationship" exists among three tables in the universe structure. The query includes objects based on two
tables both at the "many" end of their respective joins. There are multiple rows returned for a single dimension.
1. One way to resolve a Chasm Trap use Designer to define a context for each table at the "many" end of the joins. This creates
two SQL statements and two separate tables in Business Objects.
2. Another way to resolve a Chasm Trap is in Designer select the option Multiple SQL Statements for Each Measure from the
Universe Parameters dialog box. (This is a default setting). Only applies to measures. You force the SQL generation engine in
Reporter to generate SQL queries for each measure that appears in the Query panel. You cannot use this solution to generate
multiple SQL statements for dimensions.
Dave Rathbun - Wed Aug 11, 2004 10:28 pm
Post subject: How can I implement row level security?
How can I implement row level security?
First -- what is Row-Level Security? When you want to specify which rows of data each userid is permitted to retrieve from the
database, based on some column of data, or combination of columns of data -- that is row-level security.
Row-level security can be implemented in BusinessObjects in several possible ways. If you have a tech support login, you can
look at some of the techniques and the pros and cons in Steve Krandel's 2002 International User Conference presentation Using
Designer to Implement Row-Level Security.
1.) By letting the database do it. This is usually the most secure, although for logistic reasons, many sites do not find it feasible.
To make this work, individual logins have to be set up in the database for each user, and those logins need to correlate to the
BusinessObjects login and password. A possible way is to have a security table that is joined to the fact table(s) -- via a view --
and use the view in BusinessObjects. For this to work, the universe connection will need to specify "Use BusinessObjects
username and password". (This has sometimes been called "Advanced Login Strategy" in the past.)
2.) In BusinessObjects Supervisor -- for a given group or user, select the universe. Go to the Rows tab of Universe Properties.
Click the Add button, and select the table to be protected. Enter the appropriate WHERE clause to be imposed. However, only
256 characters of a WHERE clause can be entered in this panel, which many folks find very restrictive.
3.) A workaround to this is to define the WHERE clause in a special object in Designer, and impose that object in Supervisor,
using @WHERE(special_object) for the WHERE clause.
4.) You can impose the security restrictions in Designer, by using self-joins and a maintained lookup table. You might end up
with self-joins along the lines of:
Code:
DataTable.Region in ( Select Region From SecurityLookup Where User = @BOUSER)
Using Designer to Implement Row-Level Security in BOB's Downloads has more information.
Dave Rathbun - Fri Aug 31, 2007 10:00 am
Post subject: Re: FAQ: Designer
How can I use the current system date in an object?
You use a different function for each database. For example, Oracle users would typically use sysdate while Sybase or SQL
Server users would use getdate(). Teradata uses DATE, and DB2 uses CURRENT_DATE. Ask your DBA if you are unsure
which method is appropriate for you.
Ok, so I have done that, but my object does not parse. How can I fix it?
These functions or pseudo-columns do not need to reference a table. Yet when Designer parses these and other objects it will
create a full SQL statement as:
Code:
SELECT object FROM table
When you don't reference a table in your object definition, the SQL is not valid:
Code:
SELECT object FROM
Don't worry about it, the object will still work in a query as long as you include at least one "real" object with it. Do not be
tempted to include the DUAL table (Oracle specific tip) as you will add more problems to the universe than you solve.
This question comes up very often, and the answer is that you usually don't want to do this if there's any chance that more than
one object will have a WHERE clause on the same database column -- because the conflicting WHERE clauses will be ANDed
together, causing you to get No Results.
From a recent post by Dwayne Hoffpauir, where a person wanted 10 objects on the same database column each with different
WHERE clauses:
Note that NULL will be returned if the condition is not met. You can specify an ELSE if you like. Assuming
Table1.Column1 is numeric:
Code:
CASE Table1.Column2 = 'String1' THEN Table1.Column1 ELSE 0 END
Of course, this specific syntax only works if your particular database's SQL supports the CASE syntax. If it doesn't, then you
should work with your DBA or co-workers to identify which alternate syntax to use instead.
Dave Rathbun - Tue Jul 15, 2008 9:23 pm
Post subject: Re: What is an isolated join and how do I fix it?
How can I provide a default value for a prompt?
Using standard code that is portable for all products you cannot do this as of XI 3.0. The standard prompt syntax via the
@Prompt() function does not provide for a default value option. If your universe will only be used in a web environment then you
can opt to make use of the extended syntax which will allow you to specify a prompt order, whether the prompt is persistent or
not, and even include a default value. Note that these objects will probably not parse successfully as Designer is not aware of the
extended syntax.
Okay, so if I use the extended syntax, how can I make the prompt default to another object? or a formula, like today's date?
You can't. The extended syntax only supports having a constant value as a default. You cannot use a formula or a reference
to another object.