0% found this document useful (0 votes)
345 views

Datawarehouse Best Practices: What Is Businessobjects?

This document provides information about BusinessObjects and InfoView business intelligence tools. It explains that BusinessObjects is a full-client decision support tool that enables users to structure information from corporate databases into reports, while InfoView is a web-based tool that provides similar functionality through a web browser without requiring installation. The document advises using InfoView for general use due to its web-based accessibility from any computer, and using full-client BusinessObjects when greater report formatting is needed or the computer cannot connect to the network.

Uploaded by

Axay
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
345 views

Datawarehouse Best Practices: What Is Businessobjects?

This document provides information about BusinessObjects and InfoView business intelligence tools. It explains that BusinessObjects is a full-client decision support tool that enables users to structure information from corporate databases into reports, while InfoView is a web-based tool that provides similar functionality through a web browser without requiring installation. The document advises using InfoView for general use due to its web-based accessibility from any computer, and using full-client BusinessObjects when greater report formatting is needed or the computer cannot connect to the network.

Uploaded by

Axay
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

DATAWAREHOUSE BEST PRACTICES

What is BusinessObjects?

BusinessObjects is a full-client decision support or business intelligence tool. It enables


users to retrieve information from the corporate databases and to structure that
information into sophisticated reports.

What is InfoView?

InfoView, which incorporates WebIntelligence, provides much of the functionality of full-


client BusinessObjects. InfoView, however, is web based. To run InfoView all you require is
an internet connection and a suitable web browser. InfoView will retrieve information from
the corporate databases and structure it into web pages for browsing. It also includes the
ability to refresh and display full-client BusinessObjects documents.

To log into InfoView select InfoView on the index, then click the Log In button.

BusinessObjects or InfoView: which tool do I use?

InfoView (incorporating WebIntelligence) reproduces much of the functionality of full-client


BusinessObjects, which prompts the question: do I use InfoView or the full-client package?

When to use InfoView

For general use, InfoView is preferred. There are a number of reasons for this which are
summarised by the web-based nature of InfoView. Providing you have an internet
connection and a suitable web browser, InfoView can be used to access the corporate
databases on any computer, anywhere in the world - the full-client software does not have
to be installed on the computer. Thus, InfoView can be used by MAC users. Also, it can be
used when your computer is not connected to the MWS.

When to use Full-Client BusinessObjects

Full-client BusinessObjects can only be used when your computer is connected to the MWS
and when BusinessObjects and the associated SQL*Net software is installed on your
computer. If those conditions are not met, then it cannot be used. However, where it can be
used it provides advantages over InfoView in the greater functionality it offers for the
structuring and formatting of reports. When your proposed report is particularly demanding
in this respect, for example using pre-printed stationery or adhesive labels, then full-client
BusinessObjects is recommended.

BUSINESS OBJECTS XI 3.0 1|P a ge [email protected]


DATAWAREHOUSE BEST PRACTICES

@FUNCTIONS

@Functions are special functions that provide more flexible methods for specifying the SQL
for an object. @Functions are available in the Functions pane of the Edit Select box for an
object.

@Function Description Usually used


in...
@Aggregate_Aware Incorporates columns containing aggregated and Select
dimension data into objects statement
@DerivedTable Eases building the SQL definition of derived tables Select
statement
@Prompt Prompts user to enter a value for a restriction each time Select
the object using the @Prompt function is included in a statement
query. Where
clause
@Select Allows you to use the Select statement of another object. Select
statement
@Where Allows you to use the Where clause of another object. Where
clause

To insert an @function in the SQL definition for an object

1. Double click an object.

The edit properties dialog box for the object appears.

2. Click the >> button next to the Select box.

Or

Click the >> button next to the Where box.

The Edit Select statement or Edit Where clause dialog box appears.

3. Click in the Select statement or Where clause at the position where you want to add
the @function. If the box is empty as above, click anywhere in the box.

The cursor automatically appears at the top left corner of the box.

4. Click the @functions node in the Functions pane.

The list of available @functions appears.

BUSINESS OBJECTS XI 3.0 2|P a ge [email protected]


DATAWAREHOUSE BEST PRACTICES

5. Double click a @function.

The syntax for the @function is added to the Select statement or Where clause. A
description of the syntax appears in the Description box at the bottom of the dialog
box. You can use this to help you type the parameters for the @function.

6. Type the necessary parameters.


7. Click the Parse button to verify the syntax.
8. Click OK in each of the dialog boxes.

@Aggregate_Aware

The @Aggregate_Aware function allows an object to take advantage of tables containing summary data in
the database. If your database contains summary tables and you are running queries that return
aggregate data, it is quicker to run a Select statement on the columns that contain summary data rather
than on the columns that contain fact or event data.

You can use the @Aggregate_Aware function to set up aggregate awareness in a universe. This process
includes a number of other steps which are associated with the use of the @Aggregate_Aware function.

@PROMPTS

You can use the @Prompt function to create an interactive object. You use a @Prompt
function in the Where clause for an object. It forces a user to enter a value for a restriction
when that object is used in a query. When the user runs the query, a prompt box appears
asking for a value to be entered.

@Prompts are useful when you want to force a restriction in the inferred SQL but do not
want to preset the value of the condition.

You can optionally define default values for prompts. A prompt containing default values
behaves in the same way as a Web Intelligence prompt with default values.

The syntax of the function is as follows:

@Prompt('message','type',[lov],mono/multi,free/constrained/primary_key,persistent/not_pe
rsistent, [{'default value':'default key'[,'default value':'default key',...]})

The syntax is described in the following table:


Syntax Description
Text of the prompt message. The text must be enclosed between single
'message' quotes, for example, 'Choose a Region', 'Pick a time period', or 'Choose a
showroom'. The text appears in the prompt box when the query is run.
Data type returned by the function. It can be one of the following:
'type'
'A' for alphanumeric
'N' for number

BUSINESS OBJECTS XI 3.0 3|P a ge [email protected]


DATAWAREHOUSE BEST PRACTICES

Syntax Description
D' for date

The specified data type must be enclosed in single quotes.


List of values (optional). You can specify two types of list of values:

Hard coded list. Each value is separately enclosed in single quotes and
separated by a comma. The whole list is enclosed in curly brackets.
For example, {'Australia', 'France', 'Japan', 'United Kingdom', 'USA'}.
lov Pointer to a List of Values from an existing object. You invoke the
target lov by double clicking on the object containing the lov that you
want to use in the Classes and Objects panel. This gives the Class
name and the Object name, separated by a backslash. It must be
enclosed in single quotes. For example: 'Client\Country'.

mono User can select only one value from the list of values.
multi User can select multiple values from the list of values.
free User can enter a value, or select one from the list of values.
constrained User must select a value from the list of values.
Use the primary key parameter with "free" or "constrained". The user enters
a value or selects from the list of values. If the primary key parameter is
primary key
present, the entered or displayed value is not used to generate the query.
The associated key value from the Index Awareness column is used.
When refreshing a document, the last values used in the prompt is displayed
persistent
by default.
When refreshing a document, no values used is displayed in the prompt by
not persistent
default.
The default values parameter is used to define default values presented to
the user.
You can define multiple default values.
The syntax for each default value is: „value‟:‟key‟.
'default
The colon (:) is the separator between the value and the key.
value':'key
When refreshing a document these values are displayed by default but if the
value'
persistent option is set, then the last values used in the prompt are used
instead of the default values.
If you specify the primary key parameter in the prompt definition, then you
must provide the key value(s).

Example

Country.country in @Prompt('Choose Customer


Country:','A','cusloc\country',multi,free,Not_Persistent,{ ' * ' },)

Prompt Persistence: Default value is “Persistent”; however, the value “Not_Persistent” is the
reason most Business Objects WebI report writers want to use this syntax. Using
“Not_Persistent” removes the last prompt used with the report; it purges the value. This

BUSINESS OBJECTS XI 3.0 4|P a ge [email protected]


DATAWAREHOUSE BEST PRACTICES

can be very important in many settings because it can be the difference between an end-
user accidentally running the report for some unwanted parameter value.

@Script

The @Script function returns the result of a Visual Basic for Applications macro (VBA macro). VBA macros
can only run in a Windows environment. You use the @Script function to run a specified VBA macro each
time a query that includes the object is refreshed or run.

Note: @Script is only supported with Designer and the client version of Desktop Intelligence or Desktop
Intelligence Three-tier Mode. You are strongly advised to avoid using the @Script function for any use
beyond the client version of Desktop Intelligence. It is not supported with the server version
of Desktop Intelligence available in InfoView for Publishing or Scheduling Desktop Intelligence reports,
and Web Intelligence. In the case of Web Intelligence, you should not use the @Script function, but stay
with a simpler design using the @Prompt function for interactive objects.

You would typically use a @Script function in a Where clause to run a more complex process than a simple
prompt box (@Prompt function). VBA macros are stored in BusinessObjects report files (.REP). The
default directory for these reports is the UserDocs folder in the BusinessObjects path, however,
you can define any folder to store .REP files.

Syntax

The syntax for the @Script function is as follows:


@Script('var_name', 'vartype', 'script_name')

@Where

You can use the @Where function to re-use the Where clause of another object. When the @Where
function is used in the Where clause of an object, it specifies the path of another object in the universe as
a parameter of the @Where function, in the form Class_Name\Object_Name. This then acts as
a pointer to the Where clause of the referenced object.

Using the Where clause creates a dynamic link between two objects. When the Where clause of the
original object is modified, the Where clause of the referencing object is automatically updated.
Using the @Where function allows you to use existing code. This has the following advantages:

• You have to maintain only one instance of the SQL code.


• Ensures consistency of the code.

When you use @Select and @Where functions, one object now depends on another in the universe. You
have created a new object dependency. When one object is deleted, the other object using the @Select or
@Where function needs to be manually updated.

BUSINESS OBJECTS XI 3.0 5|P a ge [email protected]


DATAWAREHOUSE BEST PRACTICES

Syntax

The syntax of this function is the following:

@Where(Classname\Objectname)

• Classname is the name of a class.


• Objectname is the name of the referenced object.

When you run a query with Resort Service Line, you are prompted to type the name of a
resort. When you modify the Where clause for Resort, the change is automatically made in
the Resort Service Line object.

@Select

You can use the @Select function to re-use the Select statement of another object. When
the @Select function is used in the Select statement of an object, it specifies the path of
another object in the universe as a parameter of the @Select function, in the form
Class_Name\Object_Name. This then acts as a pointer to the Select statement of the
referenced object. Using the @Select function allows you to use existing code, which has
the following advantages:

- You have to maintain only one instance of the SQL code.


- Ensures consistency of the code.
-
Note: When you use @Select and @Where functions, one object now depends on another in
the universe. You have created a new object dependency. When one object is deleted, the
other object using the @Select or @Where function needs to be manually updated.

The @Select function has the following syntax:

@Select(Classname\Objectname)

• Classname is the name of the class that contains the referenced object.
• Objectname is the name of the referenced object.

BUSINESS OBJECTS XI 3.0 6|P a ge [email protected]


DATAWAREHOUSE BEST PRACTICES

@Variable

The @Variable function is used to call the value assigned to one of two types
of variables:

Using BusinessObjects system variables

You can use the @Variable function with BusinessObjects system variables to restrict data
according to the identity of the currently logged in BusinessObjects user.

Note: To use the @Variable function with BusinessObjects system variables the
BusinessObjects login parameters must be the same as the database login parameters.

The User Name and Password assigned to each BusinessObjects user are held as the
following BusinessObjects system variables:

• BOUSER - the username


• BOPASS - the password

These two variables appear in the User Identification box when the user performs a logon to
a Business Objects product.

You use the @Variable function in the Where clause for an object to restrict data access for
a user and their database profile when the object is used in the query.

Syntax

The @Variable syntax with Business Objects system variables is as follows:


@Variable('BOUSER')

BUSINESS OBJECTS XI 3.0 7|P a ge [email protected]


DATAWAREHOUSE BEST PRACTICES

You insert the @Variable on the operand side of the condition in the Where clause for an
object from the Definition page of its Edit properties sheet.

Example:

@Variable

In the universe for a human resources database, you have an object called Employee name.
You want to restrict the returned data for Employee name to the values authorized in the
database for each user. This ould allow you to control what employee information each user
is allowed to see. This information is defined by their database profile. You insert the
@Variable function in the Where clause as follows:

Employees.Employee_Name = @Variable('BOUSER')

REPORT PERFORMANCE

What is an unbound report?

With the migration to the Business Objects XI platform many things changed. One of these
changes was the method used to connect (or bind) documents to universes. In BOXI reports
and universes are primarily and securely bound to each other through a set of unique
identifiers of the objects: CUID and Object ID. If a report loses this relationship to its
universe we call it and “unbound report”.

What causes a report to become unbound from its universe?

The basic event that occurs causing a report to become unbound from its universe is that
the unique identifier of the universe is removed from the system. Some of the actions that
remove this unique identifier may seem rather innocuous, but they can all be potentially
deadly to your reports:

1. Deleting a Universe:, but it is the most obvious and it actually has a few variants
2. Replacing a Universe Using Designer: Many people use Designer to migrate
universes from a development environment to a production environment. If during
export you are prompted to “overwrite” a universe and you accept. If you quickly
delete the original universe and then upload the new one, same story.
3. Improper Use of Import Wizard: The “Merge” option causes so much trouble
because it is not understood properly by many. If you use this or even if you use the
much preferred “Update” option and you see that a new universe named with a “(2)”
suffix was created, you haven‟t ruined your report binding yet, but you next actions
might. You must manually bind each report to the new universe with the “(2)” using
the Java Report Panel to transfer the binding and make it safe to remove the old
version of the universe. Failure to do this will fill your day with regrets.

BUSINESS OBJECTS XI 3.0 8|P a ge [email protected]


DATAWAREHOUSE BEST PRACTICES

Unrecoverable Error - Error: WIS 00501

If your report cannot locate a universe, even with using the hidden short name stored in the
report‟s meta data then this is the error you will see:

Refreshing Data
Universe not found. See your Business
Objects Administrator. (Error: WIS 00501)
(Error: INF )

There are certain rules, tried and true practices, that you always try first before you call
someone. In IT the first one is restarting an application and the second one is rebooting the
computer. After those two, the order becomes debatable.

How do I clear the browser cache?

In Mozilla FireFox follow these instructions:


In the drop-down top menu navigate as follows:
Tools > Options > Privacy (tab) > Clear Now (button)
or just
Tools > Clear Private Data
Make certain that "Cache" and "Authenticated Sessions" are selected, the other options are
up to you if you want to include them. You may want to add "Offline Website Data" too.

BUSINESS OBJECTS XI 3.0 9|P a ge [email protected]


DATAWAREHOUSE BEST PRACTICES

For Internet Explore follow these instructions:


In the drop-down top menu navigate as follows:
Tools > Internet Options > Delete Files (button)
I usually select to delete off-line content too.

BUSINESS OBJECTS XI 3.0 10 | P a g e [email protected]


DATAWAREHOUSE BEST PRACTICES

Sometimes You Need to Dump the Java Cache Too

There are times when the Java Query Panel won‟t load or it misbehaves on the client.
Instead of wasting time debugging or wishing you had “Full Client” back, just dump the Java
Cache. Here is how to do it in my current Java version:

Open the Java Control Panel by looking in your PC's control panel or by double clicking the
Java icon in your system tray.
On the "General" tab click the "Settings" button. Click "Delete Files". You could also click the
"View" button and then hand pick the BO related applications, resources, or deleted
applications that you want to dump. Be aware that the next time you access java web
components, such as the java query panel, expect the initiation to take some time.

BUSINESS OBJECTS XI 3.0 11 | P a g e [email protected]


DATAWAREHOUSE BEST PRACTICES

Use Web Intelligence (WebI) Java Report Panel Structure View

Many new BO WebI users, especially former “full-client” users, complain about how slow
and inefficient it is to develop reports on WebI.

BO WebI Client Server Relationship

Business Objects XI WebI is a web application that depends on the web server and CMS
repository for quite a few things. This is not a stateless web application. Initially the server
provides the editor, GUI, parser… to the client. Once the editor application (a.k.a. Web
Intelligence Java Report Panel) loads locally the server maintains a constant communication
channel with the editor. The WebI Java Report Panel starts by default in the “Results
Viewer” mode.

BUSINESS OBJECTS XI 3.0 12 | P a g e [email protected]


DATAWAREHOUSE BEST PRACTICES

What is the “Results Viewer” / “View Results” mode?

The results viewer mode of WebI is the complete WYSIWYG (What You See Is What You
Get) mode of Web Intelligence. It present the report almost exactly as it will appear to end-
users (there are a few differences). Complete communication with the BO server is required
in order to generate the WYSIWYG view as it applies all formatting, filtering, aggregation,
and calculating on the report‟s variables and the query‟s results. All of this means that
EVERY change made to the report while in “View Results” or “Results Viewer”
mode will require communication to and from the server and this will make editing
the report VERY slow.

WebI Java Report Panel’s Structure View to the Rescue

What is surprising to many is that certain mundane actions that normally would not even
register with the server do require server processing when executed in the default “Results
View”, but not in the “Structure View”! To switch to the “Structure View” click on the button
labeled “View Structure”. This will switch you to a template of the structure of the report
you are building. Now changing fonts, cell shading, column order, header titles, cell
contents and much much more become instantaneous. Most of the changes you make to
the report are cached on the local client; this explains the new found speed.

Additional Advantages of the Structure View

The structure view also allows you to view and easily manipulate certain elements of the
report better than the “results view”. For example, table footers can be quickly accessed
and section within the report are represented with gray lines that mark their beginning and
end. A cell‟s object(s) or variable(s) can also be immediately visually identified in the
structure view as well.

A Disadvantage of the Structure View

All of the speed of the Java Report Panel Structure View is because server communication is
reduced to the minimum. This minimal level of communication means that most report
formatting actions and several common report editing actions are not communicated to the
server at all. this means that the server is not being reminded that you are working hard on
your report and it is certainly not saving those wonderful changes you are diligently working
on.

BO InfoView WebI Session Timeout

Business Objects has been encouraging report writers/developers to stop using the “full-
client” and start using WebI. There are quite a few obstacles to overcome to be able to
make the switch to WebI (training, functionality adjustment, server capacity planning, etc.),
but perhaps the most difficult adjustment is learning to development under a timed session.

For many reasons Business Objects administrators configure their systems to timeout a web
session and an InfoView session after a certain period of inactivity. With finite resources,
which we all definitely have, this is always a good idea. However, this limiting concept has
two problems. The first issue is that “full-client”, ZABO, or Desktop Intelligence developers

BUSINESS OBJECTS XI 3.0 13 | P a g e [email protected]


DATAWAREHOUSE BEST PRACTICES

are used to working in a virtually limitless development environment: their own desktop PC.
The second problem is that system adminstrators need to find just the right balance
between flexible the valid and acceptable dormant session limits and the obvious session
abandonment.

Business Objects Administrator Settings

When Business Objects system admins find that magical median, which will be different for
every user community, they need to set it at a few different places:

1. The web server “connection timeout” setting should be increased first. This one is
usually stored in seconds, not minutes.
2. The InfoView application within the web server should also have its “Session
Timeout” value increased.
3. The web.config file also needs an update to the “” section, setting “” (using the
number of seconds in place of the “#” character.

BusinessObjects Report Developer Adjustments

Report developers or writers, including ad-hoc report writers, will need to adjust their
methods and habits. Initially, business objects report developers will assume that as long as
they save before any periods of inactivity they are safe. However, they will face the harsh
facts of this assumption if they are working on the query the whole time.

In BO XIR2 editing the query of a Web Intelligence report does not reset the session
timeout timer. Therefore it is entirely possible for a developer to be actively developing a
report‟s query and find that their session is lost, along with all of their work. In fact, in the
WebI java editor panel there are many actions that are registered only on the client and
they are not communicated to the server until a logging action takes place such as saving a
document. Among these actions you may find general formatting, query editing, and even
adding fields to a report.

The safest bet is to require all of your report developers to develop a habit of saving their
report every 5 minutes. This will certainly reset the timeout timer and it will ensure that no
report development work is lost. I have probably lost about 10 to 20 hours of work because
of lost session.

BUSINESS OBJECTS XI 3.0 14 | P a g e [email protected]


DATAWAREHOUSE BEST PRACTICES

Business Objects Query Builder

Business Objects Consultants use Query Builder quite often. It can provide the most pure,
accurate, and rapid information about your BO repository

The loss of binding between reports and universes is a common problem experienced by BO
XI users. The best tool for detecting of Report-Universe Binding Status is Query Builder.
there is no third part tool or BO utility for this other than Query Builder, but honestly,

Business Objects Query Builder Query: Universe Binding Status

This query brings back a limited set of properties for the desired universe.

SELECT
si_id,
si_name,
si_webi,
si_cuid
FROM
CI_AppObjects
WHERE
( si_name = '„ OR si_id = ) AND
si_kind = „Universe‟

You need to put in the universe name (upper or lower case is not important) or the Object
ID of the universe (most people are more familiar with name, but object ID (si_id) provides
more precise results. From this query we will see only the reports to which this universe is
bound. It won‟t list the reports to which it should be bound. The report name nor the
report‟s query name are given here, but the reports si_id or object ID is given here. And so
you my need to do some additional queries to identify the reports listed here. Which leads
us to the other way to start looking at this issue.

Business Objects Query Builder Query: Report Binding Status

For many people this is the query they will lead with in QueryBuilder. Usu

SELECT
si_id,
si_name,
si_universe,
si_cuid
FROM
CI_InfoObjects
WHERE
( si_name = '„ OR si_id = OR si_parentid = ) AND
si_kind = „WebI‟ AND
si_instance = 0

Using the query will require you to provide at least one of the following: report name
(si_name), report object ID (si_id), or parent folder object ID (si_parentid). This query‟s
result will list all of the universes to which the report(s) is/are bound. How can a report be

BUSINESS OBJECTS XI 3.0 15 | P a g e [email protected]


DATAWAREHOUSE BEST PRACTICES

bound to more than one universe? Multiple queries in the report (also called the classic
name of “data providers”). This fact makes this query the most important query in my
opinion. If it fails to list an expected universe then you have identified and unbound report.

What does an Unbound Report Look Like in Query Builder?

The following image show what the report Query Builder query looks like when a report is
showing that it is bound to its universe (just a single universe in this example):

Query Builder output of a report properly bound to its universe

In the rather unfortunate case that a report is not bound to its universe you will see output
that looks like this:

Query Builder output for a report not bound to ANY universe

Note:This query will return only WebI or Web Intelligence reports. You will need to modify it
if you are interested in other reports in your CMS InfoStore.

A Note About the Query Builder “si_universe” Property

Many properties in Query Builder are compound in nature, meaning they have multiple
values for a single object. For example and report can have multiple universe and in fact its
si_universe property has multiple sub-properties (si_total and the universes‟ object IDs).
We call properties like si_universe property bags. The unfortunate fact here is that in Query
Builder you cannot filter on a property bag. Therefore, you cannot create a query that only
returns all of the unbound reports.

What about the CUIDs?

The relationship between reports and universes is really at the CUID level and not the
Object ID level. Well, the truth is that Object IDs are specific to an environment, but CUIDs
are portable between environments (with the write methods). Anyway, Query Builder and
the CMS InfoStore will show the binding at the Object ID level, but this binding will look
different in another environment to which you have correctly and successfully migrated the
report and universe because the Object IDs will be different (but the CUIDs will be the
same). Anyway, for now, just know that the CUID is very important with regards to
report-universe binding; however, when detecting the status of that binding they are not
important.

BUSINESS OBJECTS XI 3.0 16 | P a g e [email protected]


DATAWAREHOUSE BEST PRACTICES

Important Note about Business Objects’ Import Wizard

It is possible to use Business Object‟s Import Wizard to detect unbound reports. If you
select a report and the option to automatically select its universes then if Import Wizard
fails to select all of the expected universes you know that the report is in an unbound state.

Query Builder - Active User List

Sometimes you can‟t get Business Objects‟ Central Management Console (CMC) to return
the “Metrics” page and you need to know how many users are logged in to the system.
Other times the CMC “Metrics” page works, but in the case of system administration, you
may want to know who is logged in to your Business Objects XI CMS InfoStore. In either
case,

SELECT TOP 3000


*
FROM
CI_SystemObjects
WHERE
si_kind = 'Connection' AND
si_parent_folder = 41 AND
si_authen_method != 'server-token'
ORDER BY
si_name

About the Query

This query returns all of the information available in the CMS InfoStore for all users that are
currently logged in. The results are presented alphabetically by user name.

IMPORTANT NOTE: the results will not be filtered by distinct user; therefore if a user
account is used by multiple people or multiple applications are used you can expect to see
multiple logins. The field si_lastlogontime might be useful in making sense of multiple
entries.

BUSINESS OBJECTS XI 3.0 17 | P a g e [email protected]


DATAWAREHOUSE BEST PRACTICES

Query Performance Concerns: Indexed Properties

It is important to remember that you are still querying a database and certain portions of
that database have been indexed for improved performance in Business Objects. For
improved performance use these in your query‟s selection criteria (WHERE clause):

SI_CUID
SI_GUID
SI_HIDDEN_OBJECT
SI_ID
SI_INSTANCE_OBJECT
SI_KIND
SI_NAME
SI_NAMEDUSER
SI_NEXTRUNTIME
SI_OWNERID
SI_PARENTID
SI_PLUGIN_OBJECT
SI_RECURRING
SI_RUID
SI_RUNNABLE_OBJECT
SI_SCHEDULE_STATUS
SI_UPDATE_TS
SI_INSTANCE

Optimizing Query Builder Queries

Query performance is improved by using indexed properties in your selection criteria


(WHERE clause); however, the order of these can additionally optimize your query‟s
performance. All selection criteria with indexed properties should be placed first in the
WHERE clause. The BusinessObjects Enterprise CMS InfoStore, and therefore Query Builder,
processes queries from top to bottom and left to right. Therefore the selection criteria
should also be ordered from the most restrictive to the least restrictive. For example,
SI_NAME = „My Report‟ should be place before SI_KIND = „WebI‟ in the query. For
example:

SELECT si_id, si_name, si_universe, si_cuid FROM CI_InfoObjects

SELECT * FROM CI_InfoObjects WHERE si_id != ALL si_parentid

SELECT * FROM CI_InfoObjects WHERE si_children >= ALL si_children

BUSINESS OBJECTS XI 3.0 18 | P a g e [email protected]

You might also like