Documente Academic
Documente Profesional
Documente Cultură
Published by
Schmidt Ink, Inc.
San Diego, CA 92122
Printed in USA
Copyright © 2006 by Robert D. Schmidt. All rights reserved. No part of this manual may be reproduced or
transmitted in any form, by any means without the prior written permission of the publisher.
For authorization to reproduce this manual for corporate internal use only, not for resale, but for training in a
classroom environment, contact:
The author and publisher of this book have used their best efforts in preparing the book and the examples
contained in it. These efforts include the development, research and testing of the theories and examples to
determine their effectiveness.
The Author and Publisher make no warranty of any kind, expressed or implied, with regards to the examples and
documentation in this book. The Author and Publisher shall not be liable in any event for incidental or
consequential damages in connection with, or arising out of, the furnishing, performance or use of the examples
contained in this book.
Trademarks:
BusinessObjects, Designer, and Universe Repository are trademarks of Business Objects, SA.
Microsoft and Excel are trademarks of Microsoft Corporation.
All other product and company names mentioned are trademarks of their respective companies.
0-9722636-5-9 (978-0-9722636-5-8)
I dedicate this book to my family. I also dedicate it to all the readers that trust my books to help further
their knowledge and careers. I appreciate your trust and thank you for the motavation that you give me.
Introduction
Thank you for purchasing Creating Universes with Designer XI. I hope that this book provides you with the
reference and training that will help you to become a Business Objects professional. In this book we will
examine many topics on creating universes. Most of these topics will reference a database called SI Data.
The SI Data database is delivered on the accompanying CD in a Microsoft Access database. You may use this
database directly, or import it into SQL Server. Importing it to SQL Server is recommended, because some of the
functions in this book are SL Server specific. The database contains data from an investment company that had a
one-year portfolio fund. In this fund there were six portfolios that traded stocks from their respective industries.
The data also includes calls to clients and the daily prices of included staocks.
It is also better if you can export your universe into a Business Objects repository, as we will create a linked
universe in this course. Link universes require a repository for security (CMS). If you do not have a repository
set up, you will still be able to do most of the examples in the book.
The CD does not contain a demo version of Business Objects software. It is assumed that you have the product
and that it is set up and running.
The CD does contain a PDF presentation file. This presentation can be used to present the material to your fellow
employees. You may not print this PDF and distribute it to anybody other than yourself, as this is a copyright
violation. However, you may purchase the books directly from the distributor at a discounted price so that
everybody viewing the presentation has a book. You may call 1-800-247-6553 for more information.
The PDF presentation contains hyperlinks on most of the slides. These hyperlinks allow you to launch videos of
the examples. These videos will help you to complete the exercises, if you become confused. They may also be
presented to fellow employees during training. Again, it is required that each student has a legal copy of the
book.
If your company has many people to train in Business Objects Designer, Web Intelligence, and Desktop
Intelligence, then you may be interested in the Corporate Training Package. This package gives a company
limited rights to reproduce the manuals in order to train their employees. Please contact us at
RSchmidt@SchmidtInk.com for more information. You may also contact me at this address, if you have any
questions on any of the exercises in the book. Please also send any comments and suggestions that you may have.
Sincerely,
Robert D. Schmidt
www.SchmidtInk.com
Creating Universes with Business Objects Designer XI Copyright © 2006 Robert D. Schmidt
1 Name the data source and select server 2 Assign the Login type and values
3 Assign the Login type and values 4 New DSN in System Data Sources
In the Beginning, There was Nothing...
Well, not exactly nothing. There was a database. In this database, there was data that we needed to supply our department with information. There
were many discussions on how to get this data into our reports to form useful information and BusinessObjects was finally decided on. That brings us
to this page and the purpose of this book - How to get data from our database into well designed reports that supply our company with much needed
information.
To get the data from the database and make it accessible to BusinessObjects, we can make a universe. We could retrieve the data using other methods,
such as stored procedures, freehand SQL, MS Excel files, and so forth. However, this book is not about those topics, so we won't discuss them.
Therefore, we are going to create a universe to retrieve the data. Most of the course, we will build a universe on the SI Equity database. But, sometimes
we will build universes on other data sources to demonstrate certain techniques.
To start our universe, or any universe, we need to know where the data is stored and what database server it is stored in. In this course, our data is
stored in SQL Server. It could be in Oracle or even MS Access, but it is not. Many of the techniques used for MS SQL Server will work in Oracle and
many other databases, but since the functions are different in most databases, some of the examples may not work. I will try to give equivalent
formulas to use in Oracle, when I believe that they differ from SQL Server.
To get started, we must have a data source created on the Server. In this course, we will use an ODBC connection to connect to our database server.
We will create a System DSN that points to our SQL Server. The name of the DSN is SIData and the server is SI MOTHER. You can name your data
source anything that you want and your server will probably (definitely) be named differently. Most companies will already the have the DSN's
configured or will use different configurations. That being said, here is how I created mine:
1. Click on Start located on the Taskbar at the bottom of the screen. 10. Enter the name of the Data Source, in my case it is SIData.
2. Click on the Control Panel to start it. 11. Select the Server from the drop list.
3. Select Classic view, if it is not the current view. 12. Click Next >.
4. Open Administrative Tools. 13. Select the type of authenticity for your login. I will use SQL Server.
5. Open Data Sources (ODBC). 14. Change the default database to your default, in my case it is SIData.
6. Click on the System DSN tab to activate the tab. 15. Click Next >.
7. Click the Add... button to start the New Data Source Wizard. 16. Click Finish.
8. Scroll down and Select SQL Server. 17. Test the Data Source. If it is successful, then we are ready to create a
9. Click the Finish button universe.
Notes
Hard-coded User Name and Password Windows NT using the Network Login ID
Windows NT using the Network Login ID allows the network login that the user used to login to his/her machine to be pass through to the database.
This method assures that every person using BusinessObjects is uniquely identified in the database. This also assures that every person can be assigned
unique rights to data stored in the database.
While this is definitely more secure, it requires more management on the database server to ensure that all users have rights to the data that is needed
for them to refresh and create documents.
Notes
Once the application is started, the User Identification dialog will usually be displayed. Depending on how the security environment has been set-up,
you will have to enter various values. I work at one place where all I have to do is click OK. In my home office, I identify the system as boweb:6400 -
where boweb is the name of my web server.
There are various types of authentication, in my home office I use Enterprise. Since this is not a class on BusinessObjects security, I am not going to
elaborate on the different security themes.
Notes
This is not to say that the Quick Design Wizard is of no value, and we may visit it later in this book. If anything, to show you how much you don’t need
it. Most universes take relatively little time to build. I know many people disagree with this and it is my experience that the closer you get to the data
source, the more people like to argue. One of the most popular arguments is how many tables should be in a universe. I have heard some popular
writers and consultants say there should be no more than 50 or so. I am not going to add to this argument, except to say that a universe should have has
many tables as needed and no more. This may seem obvious, because if we don’t include the needed tables, then we can’t build our needed reports.
The most basic of universes should be able to be built within a day. In my experience, this is usually the case for me. I think that in recent years this is
truer, since most data has been moved to data warehouses, where the data is organized for easy retrieval. Once in a while, I get a gig where the
database is a complete mess and it takes me a couple of days just to figure out what is going on in there. So, I would say that the time it takes to build
a universe is largely dependent on the data that it is to be built on. Clean organized data ensures a speedy development, where unorganized, confusing
data almost ensures a lengthy development time (and many tricks).
Therefore, the word Quick in Quick Design Wizard is misleading. It may be quick - it may not. Much of the speediness depends on the database and
not the method chosen to create the universe.
Notes
All universes need at least two things to exist - a Name and a Connection. The name helps us to use it in our reports and the connection allows us to use
a database connection. The name is the easy part - just type it in. Remember that this is the name that users will see when they create a new document,
so try to make it descriptive. However, don’t make it too long, as it is only the name. You can enter a long description into the description field.
If you have just installed BusinessObjects, then you may have no connections. Connections use the connection strings that we have defined to connect
to our universe. In the case of SQL Server, it is probably an ODBC data source, similar to the one that we created earlier in this course. The next slide
discusses how to create a universe connection.
Notes
3 Login Parameters
Define a New Connection
When a system is brand new, there may not be any connections to a database from within BusinessObjects. There may be many ODBC or other types
of connections that exist on a machine, but BusinessObjects can not use these connections until a BusinessObjects connection is defined. To create a
new connection from within Designer, click the New... button on the Definition tab, in the Universe Parameters dialog. This will display the Define a
New Connection dialog.
To start the creation process click the Next > button. The first step is to select your middleware, as this will affect the rest of the steps. The middleware
defines how BusinessObjects will communicate with the connection to your data source. As you can see, there are many different types of middleware
available. These different types allow us to use BusinessObjects with many different types of data sources. In this class, we are going to select the
ODBC Drivers for MS SQL Server 2000. Then, click the Next > button.
The next step is to define the login parameters. The first selection is the Type of connection - Shared, Personal, or Secured. All exported universes are
secured, so we will make ours secured. This also allows us to distribute the universe through the CMS. Then, we name our connection. It is probably a
good idea to include the name of the database and its purpose. For example, it could be ‘DWSales - Production.’
If you did not use one of the two options, then you will have to enter a user name and password, as I have done. This is the case in many companies,
but as I have mention, many companies implement logins the manner that they feel is best.
Lastly, we select the data source name. In this case, it is the ODBC connection that connects to the SI Data database. There are several other steps that
we will cover on the next slide. However, in most cases this is enough to get you going.
Notes
6 Custom Parameters
Define a New Connection (Continued)
After entering the login information, the next step is to test the connection. This is where you will find any errors in the connection. If it fails, then it is
typically the user name or password. A successful test means that we are ready to proceed to the next step.
On this step we assign the advanced parameters. The first three options are exclusive, meaning we can only choose one. They define what the
connection will do after it has finished retrieving data.
Array fetch sizes define how many rows a single fetch will retrieve. The bigger the number, the faster the retrieval time. However, the users machine
must have enough resources to accommodate the larger number of rows. An array fetch size of one will result in one row per fetch.
The login timeout parameter defines the amount of time before a failed login is declared unsuccessful. The number is in seconds. Usually, I just keep
the defaults for all of these options. I leave the fine tuning up to the administrators and system experts.
The last step is to define any custom parameters that may be associated with the connection type. Again, I usually just keep the defaults.
Finally, we can click finish and use our new connection in our Universe Parameters definition.
Notes
Summary Strategies
Controls SQL
Defining Controls and SQL
After defining a connection and assigning the universe a name, there are several other tabs of the Universe Parameters dialog that we should look at.
The Summary tab can be interesting, but not now, because we have no universe objects. However, as we build our universe, it may be interesting to
have a look at the summary. Now that I have been building universes for many years, I rarely look at this tab, because it is of little matter. The universe
is what it is, because it works - not because of the number of objects that are in it.
The Strategy is another tab that is rarely used, at least by me. It is for automatic creation of objects, which probably should never happen. It’s kind of
like building a surfboard - you can have a machine build it or you can have a human shaper build it. The human shaper is better, because he/she is able
to pay more attention to the creation.
The Controls tab is very important to visit, because it defaults to numbers that may be too limiting to your business. This tab allows you to set limits on
the query to try and protect the user and the system. It’s been my experience that these limits, at least the first two (Limit Rows and Limit Time), cause
more problems then they help. For example, suppose that you kept the 5000 row limit. Then, later someone creates a report and expects more than
5000 rows, but the report only returns the limit. Not only will he.she have to figure out why it only returned 5000 rows, he/she will also have to
research to find the person that can raise this limit for him. This could take some time and in the frustration, he/she may begins to complain about
Business Objects. This complaining makes everybody’s job more difficult. Therefore, I suggest to not set it, or make it larger rather than smaller. Most
data comes from well design warehouses, and this has made the controls relatively obsolete.
The SQL tab is very important, because it defines the behavior of the SQL generation in the report. SQL is the language that Business Objects uses to
create instructions to retrieve data from a data source. Most of the time the defaults will suffice, as Business Objects has been optimized to use them.
In some cases, due to data organization and limitations, the defaults will have to be changed. I will try to mention this tab throughout the book as we
talk about SQL generation. The Cartesian section may not even be necessary in a well designed universe, because we should never have one. I know
a lot of database theorists will argue that they are necessary, but in the Business Objects world they are difficult to work with.
Notes
Links Parameter
The Links tab is used to link or include other universes into the current universe. This can make universe creation more efficient, because core universe
components do not have to be redefined. We will cover this in more detail later in the course, so I will just touch on the topic here. Suppose that you
have a Product table. There may or may not be other tables that associated with this table. From this table and the associated tables we will create
objects and conditions.
Now, suppose that we have Inventory, Sales, and Marketing universes. Each of these universes will most absurdly need the Products table and related
objects. We can create the product structure in each of the other universes and this will work fine. However, as time goes by, we will begin to make
alterations on the product structure in each of the universes. This will cause them to diverge and some of them may even become out dated. To avoid
this situation, we can create a single Product universe, with all of the objects and conditions that make it perfect. Then, we can just link it into the other
universes. Now, whenever a change is made to the Products universe, it will propagate throughout the other universes.
The Parameters tab allows you to set parameters for your middleware. For example the first one is ANSI92. If this is set to yes, then the SQL generated
will be in ANSI92 format. Universes that expect to use outer joins may want to set this option to yes, since outer joins are less problematic for
ANSI92. The parameters displayed on this tab are the ones that are most common for most middleware. There is a *.prm file in the middleware
directory of BusinessObjects that allows you to set more specific middleware parameters. In this course, I am going to set this option to ‘Yes’, because
most of the people in this course will know this SQL standard.
After we have visited the Parameters tab of the Universe Parameters dialog, we are ready to click the OK button to begin the creation of our universe.
We can always return to the dialog by clicking the Universe Parameters toolbar button or by selecting | File | Parameters...| from the menu.
Notes
Tool Bars
Status Bar
I am not going to describe each button and area here, as I will introduce them as we use them. I will tell you that we are going to create a universe by
placing tables in the Structure pane, creating joins to define their relationships, and then creating objects and classes in the Universe section.
Notes
In the Browser, the tables are organized by the databases on the server. (This is true for SQL Server, for Oracle and other databases, they may be
arranged differently.) SQL Server is very convenient, because you can use tables and views from any of the databases on a server. To insert a table or
view into the Structure pane, we can drag them from the Table Browser or we can double-click on them in the browser.
In the screen shot above, we’ve inserted PORTFIOLIOTRANSACTIONS into the workspace.
Adding a table to the structure pane should have cause no other objects to be created. If a class
and objects were created in the Classes and Objects pane, then you have some automatic
strategies defined. In this class we won’t use this strategy, so let’s turn it off. Select | Tools |
Options | from the menu to display the Options dialog. Click on the Database tab and clear all
checks in the option controls.
Delete any classes that may have been created - click on the class to select it, and then press the
[Delete] key.
Notes
Table Values
To see a table’s values, right-click on the table and select Table Values... from the pop-up menu. To view a single column, right-click on the column in
the table and select Column Values... from the pop-up menu.
Sometimes, we only need to see a few rows and other times, we may need to see hundreds of values. Sure, we could go to Query Analyzer and see the
entire table, but sometimes, we don’t have access to such database tools. To set the number of rows in Designer, we use the Database tab in the Options
dialog.
Notes
Class folders are used to organize the objects in a universe. They usually contain objects that represent certain aspects of a business. For example,
Products, Employees, Regions, Dates, Orders, Invoices, and so forth. A single folder can, and usually does, contain objects created from multiple
tables. Class folders can even contain subclass folders to better organize folders that have many objects. For example, an Invoice class may have the
following subclasses: Invoice Date, Ship to Address, Mail to Address, and so forth. I have heard many rules of thumb about creating classes, but I have
found that you need what you need. Whatever makes it easiest for people to find the objects that they need to create reports. One important note is that
no two Class folders can share the same name.
Dimension objects define the data framework of a report. These frameworks are called Report Contexts. They are called contexts, because all
calculations and groupings take place in some context. For example, in the context of year, our company made $600,000 in 2006, and $800,000 in
2005. In the context of region, the West made $900,000 and the East made $500,000. Therefore, the first three columns in this table should be
Dimensions, because they define the context for the calculations. One other important note about dimensions is that they aggregate to unique values.
For example, the document that contains the above report may have thousands of rows. However, it can be said for sure, that there are only four unique
combinations of values for the three dimensions, as shown in the table.
Notes
Course Summary
Congratulations. You have finished the course. In this chapter I just offer some advice and thank you for trusting this manual to teach
you how to create universes with Business Objects.
Course Summary
This has been a very comprehensive and sometimes very creative course. We have learned how to create universes for our companies, which is a
tremendous responsibility. Even though it is a large responsibility, I hope that you feel confident to take on this effort. I have seen too many smart
people yield to others, because they feel that others could do a better job.
I have tried to put almost everything that can happen when creating universes into this course. So, if you feel confident with this course, then you
should be able to handle almost any job. Just remember that there is almost always a fact table and supporting dimension tables. Just find and identify
them and start joining. Create some objects and conditions and then make some reports. If the reports are correct, then you are doing a good job.
Always try to think like the people that will be using the universe. How will they like the objects organized? What conditions do they need? Do they
want custom lists of values? I have worked at a few places where the universe designers absolutely refuse to create a report. If they do not create a
report, then how can they know that their universes work? They did not know and many times the universes did not work. What a strain this was on
everybody and how foolish were those IT managers that insisted that is not their job to test the universes.
My suggestion is to test all of your universes by creating documents and comparing the results to expected results. They should match exactly, unless
the data or rules have changed from the older systems. I have seen many rookie designers explain every discrepancy with some kind of weird business
rule that nobody knows about or understands. It has been my experience that not many older systems are inaccurate. Therefore, we should strive to get
the same results out of our new systems.
One more piece of advice - Keep a good relationship with both the database people and the business people. Many times we work right in between
these two groups and it is very important that we can freely communicate with them. Try to address all issues and keep reassuring your business
people. Also, try to thank the database people as much as possible. They are often forgotten and you as the designer are often given the credit for the
system. Remember that the database people make it possible for you to create great universes. I have never made a great universe on a bad database. It
just doesn’t work.
I hope that if you get stuck, you don’t quit. There are too many quitters in this world and we will not add to this population. If you get stuck, please
email me. You can get the address from my web site: www.schmidtink.com. There is also a great WEB site that has helped me many times. People call
it BOB, I call it the best thing that ever happened to Business Objects. I guess calling it BOB is just more compact. Anyway, it is at this URL:
http://www.forumtopics.com/busobj/index.php.
Thanks for Listening and Learning
Thanks for staying with this course and giving it your best. I appreciate your effort and hope that you are rewarded with a great career. I write these
books for people just like you, and knowing that you will be able to enhance your career, thus improving your life is such motivation for me. As long
as you all continue to read, I will continue to write. Thank you so much.
Best Regards,
Robert D. Schmidt
www.SchmidtInk.com
Notes
A D
Aggregate Awareness 147 Data Manager 35
Automated Context Detection 111 DateAdd 69
Decode Property Flags 99
Derived Tables 151
B Detail Objects 85
Between Joins 171 Dimension Table 75
Building-block universes 103 Dimension Table Loops
Universes
C Table Loops 131
Candidate Contexts 111 Dimensions 27
Cardinalities 111 Properties 29
Case Statement 99 Distinct 41, 49
Chasm Trap 91, 95, 107 Duplicate row aggregation 51
Classes duplicate row aggregation 35
Default 27
Unique Names 59 E
Classes and Objects 59 Edit Properties
Create 81 Condition 59
Default 81 Exporting 33
Columns
Viewing Values 25
Conditions F
All or Selected 65 Fact Table 75
Creating 59 Fan Traps 139
Creating Prompted 61 Invoice Type 145
Date 69 Unsolvable 143
Date Table 121
Defined 57 G
Pane 59 Group By 51
Subquery 67
Connection
Define a New Connection 13
H
Disconnect after each transaction 15 Heirarchies 149
Keep the connection active during the whole ses- Hieracrhy
sion 15 Automatic Time 43
Keep the connection active for x minutes 15 Hierarchy
Login 5 Manual Creation 45
ODBC 11
Context Candidates 111 I
Contexts 109 Index Awareness 165, 167
Automatic Definition 111 Index Prompt 167
Deleting 115 Integrity Check 49, 51, 175
Creating Universes with Business Objects XI Copyright © 2006 Robert D. Schmidt
J Using Conditions 91
Join Cardinalities
Joins Cardinality 87 P
Joins 77 Parse 49, 51
Advanced Join Propertie 173 Primary Key 165
Between 171 Printing 179
Chasm Trap 91 Property Tables 89
Different Data Types 153
Fan Traps 139
Inner Join 77, 97
Q
Outer Join 97 Quick Design Wizard 9
L R
List Mode 113 Refreshing the Structure 175
List of Values 31
Cascading 163 S
Export with Universe 161, 167 SQL 53
Hierarchical Display 161, 167 SQL Function
Refresh Before Display 163 Cast 69
Login 7 DateAdd 69
Look-up Table 75 Year 69
LOV 167 Structure
LOV’s Arranging the Tables 177
161 Refreshing 175
Cascading 163
Export with Universe 161 T
Sortings 159
Table Browser 23
LOV’sRefresh Before Display 163
Tables
!Unknown 83
M Alias Tables 93
Measures 37 Aliasing 131
Counting 41 Date 119
Creating 39 Derived 151
Multiple SQL Statements for Each Measure 141 Dimesion 75
Fact 75
O Field Types 79
Objects Insert 23
!Unknown 83 Locate 113
Behavior 35 Look-up Table 75
Default 27 Multiple Fact 105
Detail 85 Show Format 79
Dimension 27 Show Row Count 79
Formatting 47 Transactions table 75
Hiding 169 Underline Keys 79
List of Values 31, 159 Viewing Values 25
Measure 37
Qualification 29
Creating Universes with Business Objects XI Copyright © 2006 Robert D. Schmidt
U
Universe
Arranging 117
Exporting 33
Universe Parameters
Controls 17
Definition 11
Links 19
Parameters 19
SQL 17
Universes
Export 123
Heirarchies 149
Insert Context 137
Integrity 49
Linking
Linking Universes 127
Logical Groups 125
Loops 129
Multiple Fact Tables 137
Save 123
Summary 133
Using Conditions 91
V
Views 151
W
Workspace 21
Y
Year 69
Creating Universes with Business Objects XI Copyright © 2006 Robert D. Schmidt
Creating Universes with Business Objects Designer XI Copyright © 2006 Robert D. Schmidt