Subject: Business Objects FAQ, last modified 96/03/11
Date: 15 Apr 1996 04:58:10 GMT
Summary: Answers to Frequently Asked Questions (FAQs) about the Business
         Objects query tool software, used to produce easier queries from
         relational databases.
X-Last-Updated: 1996/04/15

Posting-Frequency: monthly
URL: http://pobox.upenn.edu/~thompson/busob-faq.html


                             BUSINESS OBJECTS FAQ
                                       
   This document was last changed March 10, 1996. Copyright 1995, 1996,
   by Stephen W. Thompson. Provided that no modification is made in the
   text and that this paragraph is retained, this document may be
   reproduced, except that employees of Business Objects must request
   permission for any reproduction.
   
   I have a hand-maintained mailing list to notify people about major
   changes to this FAQ. Send requests to be added to me at
   thompson@pobox.upenn.edu.
   
   The document is very Oracle-specific right now; users of other RDBMS's
   are invited to contribute to round it out. See end for contributor
   list.
   
                                 THE QUESTIONS
                                       
Administrivia

    1. A1.01 What recent changes recent changes have been made to this
       list?
    2. A1.02 Could you briefly explain what Business Objects is?
    3. A1.03 What are some resources to learn about Business Objects?
       
User Issues

    1. Installation on Windows
          + U1.01 How much space does Business Objects require on the
            hard drive?
          + U1.02 Why would a message about the environment variable
            CONFIG being incorrectly set arise during installation?
          + U1.03 How do I test if a connection problem with Business
            Objects is with BusOb itself or with SQL*Net instead?
          + U1.04 What type of configuration problems have you seen that
            prevent NETTEST.EXE from being successful (that is, SQL*Net
            is unhappy)?
          + U1.05 What type of configuration problems have you seen that
            prevent Business Objects from working?
          + U1.06 Will Business Objects work on Windows 95?
          + U1.07 What is the latest patch to Windows, and which do I
            have?
    2. Installation on Macintoshes
          + U2.01 Why when I try to open a universe for the first time do
            I get the error "SYS-0331: Error Retrieving Parameters "?
          + U2.02 Does installation need to be done using the
            installation disks, or can the files simply be copied?
   
       
       Some installation pointers written to be specific to University of
       Pennsylvania may be found at
       http://pobox.upenn.edu/~thompson/busob-penn.html.
       
    3. Access
          + U3.01 (PENN SPECIFIC) Why am I having problems getting into
            Business Objects with my password?
          + U3.02 Can I get rid of old universes by deleting
            directories/folders?
          + U3.03 What are some possible approaches to solving connection
            problems?
    4. Performance
          + U4.01 Why is Mac performance so poor?
          + U4.02 Why does canceling a query sometimes work and sometimes
            hang my machine?
    5. User Interface
          + U5.01 How can one retrieve queries from the repository?
          + U5.02 How does one find templates that are in the repository,
            or even find the command to import them?
          + U5.03 How can a Mac user close one universe and open another
            universe, short of quitting and restarting BusOb?
          + U5.04 How can I get labels to print 3-up (in three columns)?
          + U5.05 When creating conditions based on queries (rather than
            Constant, Variable or Object), which queries does BusOb
            display as candidate subqueries? For example, if the
            condition is on SSN, are queries displayed in the dialog box
            only if their result object is SSN?
          + U5.06 How can I query for records based on lists of id's that
            I have from other data sources? Say I have a file of SSN's to
            look up?
          + U5.07 How can I get better control of how my headers and
            footers appear? I want top-of-page headers related to some
            objects, beginning-of-break footers related to others, and
            sometimes text that accompanies each occurrence of an object.
          + U5.08 Why do some help screens describe features I can't
            locate, such as the "complex query" button mentioned under
            "outer joins"?
          + U5.09 How can I have a query use an outer join?
          + U5.10 How do I input the pipe? or or-bar character?
    6. Training
          + U6.01 How is the training provided by Business Objects?
          + U6.02 How is training provided by others?
    7. Upcoming versions
          + U7.01 What can we expect from BusOb v4.0 (codenamed Mercury
            )?
          + U7.02 What are new features that we BusOb users and managers
            wish would be added to the tool?
            
Manager Issues

     * M1.01 What are some approaches to resolving loops in the joins?
     * M1.02 How can I have a context with no joins?
     * M1.03 Why can't I add new objects?
     * M1.04 Are there any "gotchas" with using the Advanced Login
       Strategy for managing security?
     * M1.05 What do I do if I lose my manager password?
     * M1.06 How can I programmatically modify object names?
     * M1.07 How can I modify the MANAGERx universe to allow reporting on
       aliases?
     * M1.08 How can I find the metamodel? for the repository files?
       
                                  THE ANSWERS
                                       
Administrivia

   
   
   A1.01 What recent changes have been made to this list?
   
   Added mention of new BusOb WWW site. Moved the contributor list to the
   bottom. I added a thumbnail explanation of what BusOb is for the
   uninitiated. Added two user interface questions, one on help text and
   one on outer joins.
   
   I added a paragraph for the "new versions" question concerning Object
   Query.
   
   I gave the address to request being added to the update notification
   mailing list.
   
   I updated questions on Windows 95 and Manager passwords. I added
   questions on recent changes, new versions and requested enhancements,
   and Mac installation. I added an administrivia section for information
   about the FAQ itself.
   
   I changed the question numbering. Instead of each question numbered
   with Q, a number and a decimal, they now have a letter, a number and a
   decimal to allow easier insertions within a subsection. Letters are
   currently A (Administrivia), U (User) and M (Manager). 
   
   A1.02 Could you briefly explain what Business Objects is?
   
   Business Objects is a query tool sold by a company by the same name
   which is used to create 'ad hoc' reports from data stored in databases
   in a client/server fashion. It provides facilities to retrieve data
   from relational databases and create reports and graphs, as well as to
   export the retrieved data to other applications. Tools with which it
   might compare include Impromptu from Cognos, GQL from Andyne, Browser
   from Oracle and Brio Query from Brio Technology. It is available on
   Windows, Macs and Motif. 
   
   A1.03 What are some resources to learn about Business Objects?
   
   The current copy of this FAQ is always available at
   http://pobox.upenn.edu/~thompson/busob-faq.html.
   
   A WWW site is maintained by Business Objects at
   http://www.businessobjects.com/.
   
   Although there is no perfect newsgroup that exists yet,
   comp.database.olap is perhaps the most appropriate.
   
User Issues

   
     * U1.01 How much space does Business Objects require on the hard
       drive?
       
       For version 3.1.1E I estimate about 6.5 Mb. Of course, once you
       start downloading Universe definitions and doing reports, that
       could grow enormously. Use the Query, Document and Template
       management menus to delete work once you're done with it in order
       to save disk space. 
     * U1.02 Why would a message about the environment variable CONFIG
       being incorrectly set arise during installation?
       
       This has happened when SQL*Net was already installed on the
       machine and used with another query tool we were evaluating.
       Removing the entire ORAWIN directory and the \WINDOWS\ORACLE.INI
       file, removing any SET CONFIG or CONFIG_FILES line from the
       AUTOEXEC.BAT and starting the TCP/IP Adapter installation again
       was our fix. 
     * U1.03 How do I test if a connection problem with Business Objects
       is with BusOb itself or with SQL*Net instead?
       
       SQL*Net for Windows (not Mac, unfortunately) comes with
       NETTEST.EXE in /ORAWIN/NETWORK/ADMIN. From FileManager, double
       click it, and enter an Oracle uid and password and a connection
       string, which at Penn is "@tns:warehouse". If you don't get a
       successful connection then the problem is with SQL*Net and not
       BusOb. 
     * U1.04 What type of configuration problems have you seen that
       prevent NETTEST.EXE from being successful (that is, SQL*Net is
       unhappy)?
       
       SQL*Net was installed before TCP/IP Adapter, instead of TCP/IP
       Adapter first, as is required. (We surmise that the "Required
       Support Files", found with both packages, are bad somehow in the
       SQL*Net set of disks but okay with TCP/IP Adapter disks.)
       
       Problems also arise if you choose a "wrong" TCP/IP product when
       prompted during the TCP/IP Adapter installation. This is wrong as
       far as SQL*Net is concerned, not necessarily anything you have
       understood or done incorrectly. For instance, When using LAN
       Workplace for DOS v. 12, which uses WINSOCK, we found you must NOT
       select WINSOCK, but instead select LWP. 
     * U1.05 What type of configuration problems have you seen that
       prevent Business Objects from working?
       
       The PATH in AUTOEXEC.BAT does not include \ORAWIN\BIN.
       
       The TCP/IP package or WINSOCK.DLL was not compatible with the JSB
       files that Business Objects installs. (A symptom of this is an
       error message that appears when every server access is made, after
       which Business Objects successfully continues working fine.)
       
       There's a bug in 3.1.1E (at least) when using SQL*Net 2.1. A
       difference between v. 2.0 and v. 2.1 is that what was ORA7WIN.DLL
       is now ORA71WIN.DLL. Business Objects is expecting to find
       ORA7WIN.DLL. We had success simply copying ORA71WIN.DLL to
       ORA7WIN.DLL, and keeping both files around. This info came direct
       from BusinessObjects themselves! 
     * U1.06 Will Business Objects work on Windows 95?
       
       Yes, at least v. 3.1.1E. Similarly, a U.S. company reports using
       BusOb on Win95, with the added benefit that "In fact Windows 95
       can handle the "lockup" problem with Oracle and SQL*net. You're
       still not able to cancel the query, but at least your entire
       system is not tied up waiting for the first row to be returned.
       Windows 95 allows the user to switch applications during this lock
       up period (I guess they really did build a true multitasking
       environment.?)" This was using SQL*Net v1.1 and specifying "the
       generic WINDOCK TCP stack that comes with Windows 95" as the
       vendor for installation of Oracle's TCP/IP Adapter product.
       
       A European company reports much success using Windows 95 on
       thousands of machines, using versions 1 and 2.1 of Oracle's
       SQL*Net over TCP/IP as middleware.
       
       As to which vendor to specify when configuring TCP/IP Adapter,
       this company reports that "this TCP_VENDOR, you nearly always have
       problems. That's why we don't use the Oracle-Routines any more. We
       just copy the most important files directly from CD or diskettes.
       We have SQL*NET 2.1.4.1.0 at the time and the generic Microsoft
       32bit-TCP/IP. Here the most important files are:
       

- C:\WINDOWS\WINSOCK.DLL        42080 bytes     (came with Windows 95)
  this DLL-file is often overwritten by other installations



- ...\ORAWIN\BIN:
  COREWIN.DLL                   833856 bytes
  CORE3WIN.DLL                  245136 bytes
  MSOCKLIB.DLL                    42208 bytes
  MWINSOCK.DLL                      7104 bytes
  ORA71WIN.DLL                  321968 bytes
  ORA7WIN.DLL                   272448 bytes
  SQLTNS.DLL                        4848 bytes
  SQLTNS1.DLL                   198080 bytes
  NL.DLL                                137888 bytes
  NLS23WIN.DLL                  749312 bytes
  NS.DLL                                173600 bytes
  NT.DLL                                  26288 bytes
  NTT.DLL                         42096 bytes
   
       
       I don't enclose the file date because this may vary (Oracle
       doesn't have the same versions in the USA and in Europe). 
     * U1.07 What is the latest patch to Windows, and which do I have?
       
       The last patch known to me is Patch 9. Check the splash screen for
       your patch level. If if only has "3.1.1 E" (for the English
       version, anyway), you have no patches. 
     * U2.01 Why when I try to open a universe for the first time do I
       get the error "SYS-0331: Error Retrieving Parameters"?
       
       This message occurs on a DuoDock Macintosh. Our latest theory is
       that the Duodock and the Powerbook 180 have only one port, so
       ethernet, Appletalk, modem, etc., need to share it. Apparently
       they don't do this well, and making a switch from non-MacTCP to
       MacTCP wipes out a settings files which SQL*Net uses. The problem
       is NOT a Business Objects problem, but is entirely at the Mac and
       Oracle level. 
     * U2.02 Does installation need to be done using the installation
       disks, or can the files simply be copied?
       
       Copying the files, for instance over Appleshare network
       connections, has worked successfully. Copy everything from the old
       machine to the new one, including all the preference files, etc.
       
       For Oracle users, you then need to re-set the "home" directory for
       Oracle (using the "Set Oracle Home" application in the Oracle
       Applications folder), and everything works ok.
       
       (Note: The case that this documents is when BusOb was installed on
       a user's machine, they moved the installation to their new
       machine, then removed it from their old machine. The assumption in
       this FAQ is that software licenses are being followed.) 
     * U3.01 (PENN SPECIFIC) Why am I having problems getting into
       Business Objects with my password?
       
       Initially we have everyone using Steve Thompson's Oracle account
       to access BusOb. This is controlled by the DICT.KEY file. Very
       shortly we will change access so everyone uses their own Oracle
       account, which is important so access to data can be controlled by
       the Oracle built-in security scheme.
       
       What that means is that you need to remember your Oracle account
       and password, because you'll need it soon. But for now a BusOb
       account and password need to be created for you, currently by Lori
       or Steve.
       
       When we make the change, we'll make announcements about it by
       e-mail, then change Steve's Oracle account password so the old
       DICT.KEY no longer gives access to data. At the same time we'll
       make available a new DICT.KEY that requires you to login to BusOb
       using your ORACLE account and password. Hopefully there are few
       enough of us in the pilot group that we can minimize the confusion
       of this process.
       
       If your Oracle account is different from your Business Objects
       account, it is a good idea to contact Lori or Steve to change your
       BusOb account. 
     * U3.02 Can I get rid of old universes by deleting
       directories/folders?
       
       Yes. From either Windows or Mac, delete the contents of the
       appropriate directories as you would any other directory or
       folder. For a universe called FRED, there is a directory/folder
       called DEF/FRED containing the "definition" of the FRED universe
       to Business Objects and STORAGE/FRED containing the queries and
       results of queries that you have run against FRED. Deleting the
       STORAGE/FRED directory will delete all queries you've done again
       FRED, also.
       
       You might wish to be more selective in your cleanup. Since results
       of queries and reports against those results are called *.ASC and
       *.E??, you may delete just those files in order to save space and
       still have the queries themselves (*.REQ) to run again later if
       you need to. 
     * U3.03 What are some possible approaches to solving connection
       problems?
       
       Even after flawless installations of the middleware product such
       as SQL*Net from Oracle and of BusOb, there may still be connection
       problems. For example, you might get the error "UNI-0010: Invalid
       access code". Your problem then is to determine where the problem
       is -- with BusOb, with your desktop, with your network software
       (ie., TCP/IP), with your middleware, or with the server.
       
       BusOb provides a trace facility to aid in this detective work. In
       the OBJECTS.INI file, change "INTERNALTRACE=NO" to
       "INTERNALTRACE=YES". Then try to connect or do whatever you had
       tried before without success, and then quit BusOb.
       
       BusOb will have created TMP\SQLBO.LOG (TMP:SQLBO.LOG on Macs)
       which shows internal procedure calls and parameters passed to and
       returned from the middleware. Error codes and messages shown there
       may be very helpful in determining in what component of software
       the problem derives. 
     * U4.01 Why is Mac performance so poor?
       
       The standard release of version 3.1.1E for the Mac (internally
       known as Patch #4) experiences a long (10 - 30 second) lag time
       between double clicking on the "Result Objects" bar and when the
       list of available objects appears. There are apparently also long
       delays in notifying the user that the connection parameters fail
       to give a valid connection.
       
       In mid-September 1995, Patch #5 of version 3.1 was being delivered
       to customers. It makes performance 5 to 14 times faster, making
       the Mac and Windows comparable for most purposes. Congratulations,
       Business Objects!
       
       There are also recommendations from Business Objects has been to
       open the "Get Info" window for the BusOb application and give it
       the maximum "Minimum Memory" you can. While always wise for Mac
       applications, this doesn't make a noticeable difference. 
     * U4.02 Why does canceling a query sometimes work and sometimes hang
       my machine?
       
       At Penn we use Oracle's SQL*Net to access data from Oracle,
       including for access by Business Objects. Apparently either
       SQL*Net or the TCP/IP package (NOT BusOB) restricts you to being
       able to cancel only after you've received the first row back in
       response to your query, not before. So waiting for the row counter
       to indicate at least one record has been retrieved means it's safe
       to cancel your query; otherwise your machine will probably hang. 
     * U5.01 How can one retrieve queries from the repository?
       
       When a universe is open, use the "File->Import query from
       repository" menu item. Be sure to select "Import with associated
       documents" to get any reports and charts that accompany the query.
       
     * U5.02 How do you find templates that are in the repository, or
       even find the command to import them?
       
       The "Templates" menu only appears from within a report. So create
       a plain, vanilla report from your .ASC file by going to
       ReportAssist, choosing the first report-type icon, then "Ok." From
       the report screen, then, you can see the Templates menu. Use
       "Import Templates from Repository" if you have not yet retrieved
       the templates. 
     * U5.03 How can a Mac user close one universe and open another
       universe, short of quitting and restarting BusOb?
       
       The problem in changing universes in the Mac is that the old
       universe stays selected when it is closed, so the menu pick
       remains "Open Universe". If you click in the Universe window on a
       blank area to deselect the old universe, then you will be able to
       choose "Open Universe..." (note the dots now) to open another
       universe, perhaps one you have not yet received from the
       repository. 
     * U5.04 How can I get labels to print 3-up (in three columns)?
       
       Create a default report and use the "Report Editor" (accessed from
       the "Modify Document" icon or the "Modify Report" command from the
       Document menu) for most of this.
       
       First, stack the lines of the label. Delete the column labels,
       then stack the lines by dragging and dropping name, then street1,
       then street2, etc. Create a variable ("Tools" menu) which
       concatenates city, state, zip and country with blanks and commas
       as needed into one string, and insert that variable *instead of*
       the individual components. If street2 is often blank, you might
       create two other variables: one which returns street2 is
       non-blank, otherwise cityStateZip; and another which returns
       cityStateZip if street2 is non-blank, otherwise blank.
       
       Then, make each cell narrow enough so that 3 columns will be
       accommodated.
       
       Remove all headers, footers and other non-essential cells. Click
       on the 'G' symbol, and uncheck the "Break footers" box. This will
       make the report contents and the Global contents the same height.
       
       Close the Report Editor with the File->Generate Total Report menu
       selection. Then use page setup to choose number of columns (3 in
       this case). The columns will only appear side-by-side in Page
       Preview. 
     * U5.05 When creating conditions based on queries (rather than
       Constant, Variable or Object), which queries does BusOb display as
       candidate subqueries? For example, if the condition is on SSN, are
       queries displayed in the dialog box only if their result object is
       SSN?
       
       BusOb is none too intelligent here. If there is only a single
       result object in a query, that query is displayed as a candidate,
       even if the objects are of different data types.
       
       For instance, if you've started a condition such as "Employee SSN
       is in list", a query BIGDEPT might be listed as a possible
       subquery since it has only one result object, say "Department of
       Manager" even though that comparison doesn't make sense based on
       the data. 
     * U5.06 How can I query for records based on lists of id's that I
       have from other data sources? Say I have a file of SSN's to look
       up?
       
       The idea is to create an "in list" condition, then coerce your
       file to show up when you click the "List of Values" button instead
       of querying the database. (A disaster for something like SSN!)
       
       This approach works because the normal behavior is for BusOb to
       query the database only the 'first time', then to use those
       results again until the "Refresh" button is pressed. The results
       are stored in an .ASC file (as for normal query raw results), with
       a name prefaced by an ampersand, such as "&SSN__3.ASC". If you put
       your data in that file instead, then when you create the "in list"
       condition and click the "List of Values" button your data will be
       displayed and may be highlighted to select as usual.
       
       The two gotchas are knowing what .ASC file to manipulate and using
       the correct field delimeter. Identifying the .ASC file name is
       easy when the BusOb manager has given all users access to the
       MANAGERx universe. This universe holds data *about* the other
       universes, listing class names, Select SQL strings, object names,
       and, helpful in the current situation, the List of Values Name.
       (Care should be taken when exporting this universe, since it
       contains an object for "User Password". Rather than exporting the
       generic MANAGERO unverse for Oracle, at Penn we have duplicated
       that universe and then removed the password object (and named it
       UNIVRSES). Then it's usable by all, and a query for Class Name,
       Object Name and List of Value Name for the universe in question
       will show you the .ASC file to use. The delimiter, which can be
       difficult to create, is best copied from an existing query and
       pasted into the new file.
       
       Each line of the .ASC file will look like this (for SSN's):
       

123456789|
   
       
       (The final character is the 'pipe' or OR-bar character.)
       
       Make all lines the same line length; crashes have been seen when
       variable-length lines are not padded prior to the pipe character.
       A few lines for a variable-length object might appear like this:
       

POTATO   |
CARROT   |
ONION    |
RUTABAGA |
   
       
       
     * U5.07 How can I get better control of how my headers and footers
       appear? I want top-of-page headers related to some objects,
       beginning-of-break footers related to others, and sometimes text
       that accompanies each occurrence of an object.
       
       There are two kinds of headers and footers. We'll call them
       document headers/footers and break headers/footers. (These are my
       terms.)
       
       Document headers/footers are akin to those in Excel; default ones
       are created for you with basic info about the current document and
       page, you can edit them more or less by hand, and what you see of
       the header or footer is basically what you'll see in the finished
       document. They are only visible in formatted form using
       "File->Print Preview" (or use the toolbar button -- look for the
       magnifying glass). Edit them by using "Document->Modify Report"
       (hint text labels it "Modify Document", since it's also used for
       modifying charts). By default (when using QuickReport or
       ReportAssistant) you'll find the variables QueryName, QueryDate
       and QueryTime in the document header, and Page centered in the
       document footer. These may be replaced with anything that you
       would like.
       
       Break headers/footers are printed every time the value of the
       break variable(s) change. For example, if a "Month" result object
       were in a document and there was a break header on it, then a new
       header would appear when a previous row was "November" and the
       current row is "December".
       
       Break headers/footers are visible from the regular document
       viewing window, EXCEPT THAT using "Repeat Header on New Page"
       (from the "Tools->Breaks" window) is only visible on the FIRST
       page. Use PagePreview to see these headers on following pages.
       Note that though there are several places to get this dialog box,
       clicking the break icon in BusinessAnalyzer gives you a break
       editor which leaves out certain options that you'll want
       sometimes.
       
       But first you need to be sure you have these headers and footers
       populated with text or variables, or else nothing will show up
       because there was nothing TO show up! (Did you follow that?)
       
       From "ModifyDocument", you'll see something like this (pardon poor
       text-based illustration):
       

+---------
|      hg
| +-------
| |    h1
| | +-----
| | |  h2
| | |
G 1 2  Object names appear here
| | |
| | |  f2
| | +-----
| |    f1
| +-------
|      fg
+---------

   
       
       The areas in which you place headers at the global (document),
       first break and second break levels are labeled hg, h1 and h2
       respectively. Likewise, fg, f1 and f2 label where labels for
       global, first level and second level breaks are placed. If there
       are not empty cells ready to be filled in, use "Edit->Insert..."
       (or tool bar buttons with arrows) to add new cells or rows above
       (for headers) or below (for footers) the appropriate break-level
       cell.
       
       Then, when leaving the ModifyDocument window, use "File->Generate
       Total Report" (or Partial). 
     * U5.08 Why do some help screens describe features I can't locate,
       such as the "complex query" button mentioned under "outer joins"?
       
       SADLY, the help for the User version of BusOb is the same help as
       for the Manager version, and it doesn't indicate which help is for
       which version. The "complex query" button that is mentioned is
       only available to Managers, for use when creating automatic joins
       between tables, not to users, unfortunately. (Already called in as
       an enhancement request.) 
     * U5.09 How can I have a query use an outer join?
       
       You have to modify the SQL (with "Generate SQL" and "View SQL"
       from the File menu). There is no way to do so from the "Modify
       Query" screen.
       
       To explain this more, imagine a universe with several joined
       tables and another table used to lookup values. For instance, to
       find department names that match department codes. Say there are a
       number of objects which contain department codes. If you wanted to
       create a Condition "ManagingDepartmentCode equals LookupDeptCode",
       it is not presently possible to have that Condition be an outer
       join. (Already called in as an enhancement request.) 
     * U5.10 How do I input the pipe or or-bar character?
       
       The delimiter looks like a solid pipe (|), or perhaps a broken
       pipe (either is OK), but *do not* use the pipe key on the
       keyboard, regardless of whether you're using a DOS platform or a
       Mac.
       
       On DOS platforms, use the DOS editor to edit the .SQL or .ASC
       file. Go to the spot where you want the delimiter. Press and hold
       down the Alt key while using the *numeric key pad* to type 179 and
       then release the Alt key. *Do not* use the number keys that are
       above the letter keys.
       
       On a Mac, use cut and paste to copy the delimiter from an existing
       LoV file. 
     * U6.01 How is the training provided by Business Objects?
       
       The only reports I am aware of currently are for the 1-day user
       training. Based on two reports only, this training has not been
       praised. Ours, for instance, had complaints of quick movement thru
       slides despite students not having understood the material and
       inexperienced teachers.
       
       Dennis Broderick, dbroderi@goliath.brauntech.com, reports that
       "the Business Objects training enrollment coordinator is Darla at
       408-864-2084."
       
       
     * U6.02 How is the training provided by others?
       
       According to mail from Dennis Broderick
       (dbroderi@goliath.brauntech.com), "Business Objects has a
       certification/authorization process that 'authorized' training
       facilities must complete. The process involves learning and
       'student teaching' activities under BusObj supervision plus an
       audit by BusObj. Contact Carla Parone, the BusObj training
       manager, at 408 864-2010."
       
       Some of these authorized trainers are:
          + Braun Technology Group (BTG) (Chicago, 312-443-1317). Dennis
            Broderick, dbroderi@goliath.brauntech.com, reports that
            "Braun Technology Group (BTG) is the authorized training
            center for Business Objects in the Midwest. BTG teaches both
            the 1-day user course and the 3-day Universe Manager course.
            Both courses are offered monthly in Chicago. BTG also
            customizes and teaches Business Objects courses at client
            sites. Also, BTG provides implementation consulting and
            assistance for the Business Objects products. For enrollment
            information contact Allen Rice, 312 443-1317x168 or
            krice@brauntech.com."
          + Context Integration (New York City, 212-344-9055). Regan
            Coleman reports:
            
            "Yes, we are certified training partners, and we have three
            facilities: one in New York, one in Austin, TX, and one in
            South San Francicso,CA."
            
            I took the manager training from them and found it excellent,
            and two other people have given me strong reviews for them
            for both the 3-day manager training and the user training.
            
            They were expecting to have Advanced Users training beginning
            the summer of 1995, and at that time were developing an
            Advanced Managers training.
          + Recon Corp. Saratoga(San Jose) CA., 408-866-8676,
            recon@netcom.com. "Based in the Silicon Valley, Recon
            provides database development, consulting and training
            solutions. As a certified training and consulting partner to
            Business Objects we conduct the standard user and manager
            training. Additionally we prepare customized user training
            which has been very well received by our clients."
   
       
       (Standard disclaimer here. I have no connection other than as a
       customer with any organization other than my employer. As
       additional information is offered for this FAQ, it will be added
       without prejudice.) 
     * U7.01 What can we expect from BubOb v4.0 (codenamed Mercury)?
       
       Concerning the weakened security of storing the manager password
       on the desktop where it may be copied to other machines, a
       contributor reports: "I've seen the Alpha Version of BO Version
       4.0 and it seemed to me that they replaced the OBJECTS.USE through
       a role concept which is stored somewhere in the repository. I
       think they know at BO why they do that."
       
       Carol Rice < carol.rice@octel.com> reports:
       
       "I called Business Objects tech support relative to Business Query
       1.1 and its ability to run on Excel 7, and the official word is
       that BizQuery 1.1 does not support Excel 7. The support guy I
       spoke to was very vague as to when it WILL be supported, and I'm
       expecting a call back from a more senior manager regarding timing
       on this issue. Perhaps if someone other than me called them about
       getting Business Query updated for Excel 7 (it's only an add-in,
       for heaven's sake), they might push development forward."
       
       Tech Support reported in a phone call in early March that Mercury
       is "on schedule" for the end of Q196 or early April, but that it
       will be a "controlled release" only. For more information about
       what that means, I was referred to my salesperson. Mercury's beta
       version was out December 1995, and is currently at the beta-2
       level.
       
       Does anyone know anything else that we are able to publicize? 
     * U7.02 What are new features that we BusOb users and managers wish
       would be added to the tool?
       
       I am aware that Business Objects staff are aware of this FAQ.
       Lacking a mail list or a newsgroup to communicate with them, here
       are some features that have been frequently requested:
       
          + Allow objects of the same name in one universe, as long as
            object names are unique within the class.
   Please contact the maintainer of this list with additions.
       
Manager Issues

        
          + M7.01 What are some approaches to resolving loops in the
            joins?
            
            A loop is at least two tables which have two or more sets of
            joins between them, so an entity relationship diagram of the
            tables would have an enclosed area composed of the tables and
            their joins. An example from my subject area might involve
            the tables STUDENT and INSTRUCTOR. A STUDENT is taught by an
            INSTRUCTOR and is advised by an INSTRUCTOR. The tables can be
            joined from STUDENT.INSTRUCTOR_ID to INSTRUCTOR.ID and also
            from STUDENT.ADVISOR_ID to INSTRUCTOR.ID. Rarely will the
            teacher be the same person as the advisor, so applying both
            joins at the same time is rarely desired.
            
            One approach is to use contexts, always at least two. A
            context is a set of joins that should be applied at one time.
            If objects from classes are selected which involve tables
            from a loop, the user is asked to decide which of the
            contexts to use. Present experience, both within and not
            within BusOb, suggests that creating and naming contexts so
            as to give the user a clear idea of which to pick is hard.
            
            Another approach is to use aliases (available starting with
            version 3.1, I believe). Aliases are alternate names for
            tables. Joins and objects are then based on the alias for a
            table instead of the table itself, and thus only the joins
            which correspond to the alias are in effect for a join. This
            sounds clearer, but it still requires decision on the part of
            the user. Ought they select this object, or that object? It
            may also require creating duplicate classes, one for each
            table or alias name. 
          + M1.02 How can I have a context with no joins?
            
            Create a join from one table to the same table, specify
            complex join, then type in "1=1". This places a harmless
            condition on a table. Then, create a new context for which
            only that 1=1 join is selected. The only joins, then, will be
            user-created joins by means of conditions. We have found some
            situations where experienced users needed a clean slate
            environment to experiment with new joins. 
          + M1.03 Why can't I add new objects?
            
            Three possibilities come to mind: you've exceeded the value
            for NBOBJ in OBJECTS.INI (which defaults to 2000 for ver.
            3.0.1E); you've exceeded the maximum for the individual
            "hashing file" that your intended object would belong to; or
            your _OBJECTS.ASC isn't a subset of your _STRUCT.ASC.
              1. NBOBJ exceeded. Entries in memory are reserved for the
                 number of objects specified by NBOBJ in OBJECTS.INI, and
                 you are trying to add yet another object. You may need
                 to divide the objects between two or more universes, or
                 increase NBOBJ. Note that increasing NBOBJ on one
                 manager's machine means increasing NBOBJ on every
                 machine (user and manager) that will need to use that
                 universe, and BusOb will be using more RAM while running
                 on each of those machines.
              2. Filled hashing file. BusOb divides a universe's objects
                 between 8 files in the DEF directory, each of which is
                 assigned to store a portion of all of the objects. For
                 instance, for a universe XYZZY, the file XYZZY.ID2
                 stores all objects beginning with 'D' up to 'F'
                 (inclusive), and XYZZY.ID8 has objects starting with
                 W-Z, plus all numbers and symbols. Each of these files
                 has a maximum number of objects, which may be ( NBOBJ /
                 8 ). If all of your objects are named starting, say,
                 with "Data containing ...", then XYZZY.ID2 may be full
                 even though the other hashing files are empty.
              3. _OBJECTS not subset of _STRUCT. The .PRM files allow
                 different 'strategy files', with SQL other than the
                 default SQL to create different sets of candidate
                 objects from your data dictionary or other source. This
                 may be useful, for example, if you use Oracle, since the
                 default SQL requires that each user have private
                 SYNONYMs created for each table that will be accessed. A
                 different strategy file will vary the contents of
                 _OBJECTS.ASC which represents the candidate objects.
                 Unfortunately, _OBJECTS.ASC must be the same or a subset
                 of _STRUCT.ASC, and _STRUCT.ASC is not affected by the
                 strategy files. You also, then, must modify your ST*.SQL
                 file (for Oracle 7, it's STORA7.SQL) to include tables
                 for all possible objects in the _STRUCT.ASC.
        
          + M1.04 Are there any "gotchas" with using the Advanced Login
            Strategy for managing security?
            
            The Advanced Login Strategy allows the BusOb user to use
            their RDBMS userid and password to login to BusOb. The BusOb
            userid must match the RDBMS userid. The password, however,
            may be any value, since the strategy ignores the BusOb
            password entirely. All security restrictions are imposed by
            the RDBMS itself. Advanced Login is activated by installing a
            replacement .BUR for LIBRARY/DEFAULT.BUR, available from
            BusOb.
            
            Therefore, the user doesn't need to keep their BusOb password
            synchronized with their RDBMS password (as for Same Login),
            and all users don't access the RDBMS using only one
            userid/password with only one set of security privileges (as
            for Separate Login).
            
            At least one site (U. Penn.) has successfully tested .BUR
            files both for Windows 3.1 and Macintosh platforms. 
          + M1.05 What do I do if I lose my manager password?
            
            Two options: Reinstall BusOb from the original disks, so that
            the defaults of USER/PASS are restored, or get another copy
            of OBJECTS.USE (*not* DICT.KEY as was previously stated
            here!) for which you *do* know the userid/password (from a
            co-manager?). Either way, change the userid/password to be
            the desired new password (that you can remember :-).
            
            A contributer to this FAQ rightly points out that publicizing
            this use of OBJECTS.USE may be a potential security hole. The
            contributor's policy is to require reinstallation of the
            Manager option. While I agree that public knowledge of it
            gives the potential cracker a key piece of information, they
            still do not have the password. We can hope that the
            encryption that BusOb uses for the password in this file is
            strong. To leave out the use of OBJECTS.USE to improve
            security, however, makes life harder for those who might
            benefit from knowing about it, and I assume a cracker could
            learn of it from other sources. Additional input on this
            choice is welcome. (See also the question on BusOb v4.0.) 
          + M1.06 How can I programmatically modify object names?
            
            While the details of this task will vary based on your RDBMS,
            modifying several features of a universe consists of UPDATE
            sql commands sent to the RDBMS. First, Export the universe to
            be sure the "freshest" version is reflected in the
            repository. The repository tables are nicely normalized, so
            changing OBJ_NAME, for instance, from the OBJECTS table
            changes the object in the particular table while keeping
            integrity.
            
            For example, SQL might appear as follows:

    prompt MY_CLASS, MY_OBJ
    update objects
      set obj_name = 'New Object Name'
      where uni_id = 3
        and cla_id = 12
        and obj_id = 74  ;

        assuming, of course, that one had already determined that the
            object was in universe number 3 and class number 12 and
            object number is 74. Use joins in MANAGERx (exact name
            depends on your RDBMS) universe to determine these values
            correctly to correspond to the names of universe, class and
            object you wish to modify. Perl and SQL scripts already exist
            to help automate some of these steps; contact Steve Thompson
            at thompson@pobox.upenn.edu. 
          + M1.07 How can I modify the MANAGERx universe to allow
            reporting on aliases?
            
            Evidently when BusOb released v. 3.1.1E, they did not update
            the MANAGERx universe (x is 'O' for Oracle, 'S' for Sybase,
            others might exist) to reflect that aliases were now possible
            in universes. To modify MANAGERx, add the following classes
            and joins:
            
               o BO_ALIAS (table)
               o TABLES2 (alias for TABLES table)
               o TABLES.UNI_ID = BO_ALIAS.UNI_ID (+) AND TABLES.TAB_ID =
                 BO_ALIAS.ALI_ID (+)
               o BO_ALIAS.UNI_ID = TABLES2.UNI_ID (+) AND BO_ALIAS.TAB_ID
                 = TABLES2.TAB_ID (+)
        
            
            These joins assume Oracle, with Oracle outer joins indicated
            by "(+)" where nulls are permitted. 
          + M1.08 How can I find the metamodel for the repository files?
            
            See the URL http://pobox.upenn.edu/~thompson/busob-model.gif
            for a reverse-engineered version. (Caveat! Caveat! No
            warrantees!)
   
         _____________________________________________________________
       
       Thanks to contributors: Tad Davis <davist@isc.upenn.edu>; Adam B.
       Greenfield <agreenfield@epsilon.com>; Andy Mannhart
       <100751.1012@compuserve.com>; Susan Quant <squant@sas.upenn.edu>;
       Lorraine Ratajczak <ratajcza@pobox.upenn.edu>; Carol Rice
       <carol.rice@octel.com>; Ann Stockton
       <Ann.Stockton@wharton.upenn.edu>.
         _____________________________________________________________
       
    This FAQ is maintained by thompson@pobox.upenn.edu
