Software Technology FAQs and Books

Here you can find information on information technology, software techology related faqs and books, documentation

3.10.05

business objects-2

How can I calculate the number of hours between two dates?

The best way to do it (and the fastest) is to do it in the database. If you simply subtract the two days, you will get a number in the format D.T, where "D" is the number of days, and "T" is the fraction of days in decimal form. In other words, day 2 and noon minus day 1 at midnight will yield 1.5 as the result.

Take this number and multiply by 24, that gives you the number of hours. Take the decimal portion of that and divide by 60 and you get the number of minutes. So if you have 1.5 (earlier example) and multiply by 24 you get 36 hours and 0 minutes

--------------------------------------------------------------------------------

What is the limit on the number of objects I can pick from a list of values and can I increase the limit?

BusinessObjects restricts the number of objects that can be picked from a list of values to '99'. It is possible to increase this limit by adding a MAX_INLIST_VALUES value to your database prm file. This parameter is not in any driveren.prm file by default. To use it, you must enter it in the [RDBMS] section under the (GENERAL) subsection. If you do not enter this parameter, the default value is 99.

Your database has a constraint on the number of values that can be present in an inlist condition. Oracle for example, allows thousands of values.

Picking values from a list is different than pasting or typing values into a prompt box. If values are pasted or typed in, the constraint does not apply.

One of our listserv users did some testing with regard to inlist values and had the following to report...


--------------------------------------------------------------------------------

What is an isolated join and how do I fix it?

An isolated join is one that has not been included in any context in your universe. Once you start using contexts in a universe, every single join must belong to at least one context. A join can belong to more than one context, but if it doesn't belong to any it is considered by BusinessObjects to be isolated from the rest of the universe structure.

To understand this add a new table to an existing universe that uses contexts. Create a join between that table and an appropriate existing table. Now create a new object based upon your new table. Now create a simple query with one object from your new table and one object from the table you joined to. The result is two bits of synchronised SQL. Why? Because we left our join isolated, as we forgot to add it into an appropriate context. Go back to the universe and add the join to a suitable context. Now try your report again

--------------------------------------------------------------------------------

Is there any way to set up a prompt that will allow a user to select one value, many values, or type 'ALL' for all values in a list?

Yes. Below is a sample of the syntax required to allow a user to select one, many, or all values from a prompt.

Code:
(@Select(Sales Geography\Country Group) IN @Prompt('Select Country Group or
enter * for all groups','a','Sales Geography\Country Group',multi,free) ) OR
('*' in @Prompt('Select Country Group or enter * for all groups','a','Sales
Geography\Country Group',multi,free))

In the sample, the asterisk is used as the wildcard. The first part of the formula...

Code:
(@Select(Sales Geography\Country) IN @Prompt('Select Country or
enter * for all countries','a','Sales Geography\Country',multi,free) )


works when a user picks one or more values from the list. The second part...

Code:
OR
('*' in @Prompt('Select Country or enter * for all countries','a','Sales
Geography\Country',multi,free))


works when the user selects the asterisk.

If a user selects 'USA', the following statement results...

COUNTRY IN 'USA' OR 'USA' IN '*'

If the user selects the asterisk, the following statement results...

COUNTRY IN '*' OR '*' IN '*'

The IN, combined with 'multi' are the keys to allowing the selection of multiple values from the list.

Here is another example which demonstrates how a prompt of this type can accept multiple wildcards and handle case sensitivity...

Code:
(PER_JOBS.ATTRIBUTE3 IN @Prompt('Enter Employee Survey Code(s) ("ALL" for
all)','A','Job Information\Add. Job Details Survey Code',multi,free) OR
'ALL' IN @Prompt('Enter Employee Survey Code(s) ("ALL" for all)','A','Job
Information\Add. Job Details Survey Code',multi,free) OR
'All' IN @Prompt('Enter Employee Survey Code(s) ("ALL" for all)','A','Job
Information\Add. Job Details Survey Code',multi,free) OR
'all' IN @Prompt('Enter Employee Survey Code(s) ("ALL" for all)','A','Job
Information\Add. Job Details Survey Code',multi,free) OR
'*' IN @Prompt('Enter Employee Survey Code(s) ("ALL" for all)','A','Job
Information\Add. Job Details Survey Code',multi,free) OR
'%' IN @Prompt('Enter Employee Survey Code(s) ("ALL" for all)','A','Job
Information\Add. Job Details Survey Code',multi,free))
________________________________________________________________
How can I use an Oracle Stored Procedure as a data provider?

To use an Oracle Stored Procedure as a data provider you are required to have a REF CURSOR and a SELECT statement. It must be stand alone and not part of a Package.

It cannot do any kind of writing to a table (as Business Objects is a query tool...) so populating temporary tables does not work.

Using the General Supervisor, permission must be granted for access to the Stored Procedures in order to be able to run them.

There is a default Command Restriction in Supervisor that prevents the use of anything but SELECT. It is "Restrict SQL to 'SELECT' Only" under the Query Technique folder for the BusinessObjects module. It would be on Inherit for a user or group and prevents the editing of SQL to be anything other than SELECT. You must set this option to be Disabled, for the Stored Procedure to run as a data provider.

The user who creates the Stored Procedure must be the same user that is used when creating the BOMain.key, universe connections, and personal connection used with Free Hand SQL. There is a known issue when accessing a stored procedure in both Free Hand SQL and Business Objects Stored Procedures with a database user that has privileges to access and run the stored procedure but did not create it


Yes, you can have a single BCA server run jobs from multiple repositories Once BCA can monitor multiple repositories. You will have to have connectivity (a .KEY file) for each of them available


This means that Business Objects cannot determine a unique value for the field that displays #MULTIVALUE. There are a few different solutions, depending on where you are seeing the error