BusinessObjects Board

Prompts Questions

Hello,

I am using BO 6.1b and Oracle 9.2

  1. I have a prompt that asks for street name. If the user mistyped the street name an error message will be displayed saying “No Data To Fetch” for each data provider that uses that street name. Can I supperss those error messages somehow?

  2. Same as above, the promt seems to be case sensitive. How can I make the prompt case insensitive?

Thanks In Advance.


AbuShreek (BOB member since 2006-05-23)

This has been asked a lot. Click here for the Reporter FAQ entry


BO_Chief :us: (BOB member since 2004-06-06)

You can make use of LOWER() or UPPER() database functions in Oracle, while creating your object and prompt in Designer…

your object can be, :

=upper(table1.street_name)    <------- which makes all the values in upper case from the database

and your predefined condition can be,:

=upper(@prompt('Enter the street name','A',<streetName>,mono,free)

User entered value in the prompt will be converted to uppercase.

Hope that helps


BO_Chief :us: (BOB member since 2004-06-06)

First of all, THANK YOU.

For the first question, I am looking at the options that I have and will so what to do.

For the second question, I have many reports that include this prompt. It wont do me good if I use UPPER() in the original object itself becuase it will be UPPER(object) = PROMPT. How can I implement a solution that will be automatically available throught out the reports that have a prompt on that object?
thanks again


AbuShreek (BOB member since 2006-05-23)

Hi,

I think you can alter the oracle session
using
ALTER SESSION SET NLS_COMP=ANSI;
ALTER SESSION SET NLS_SORT=GENERIC_BASELETTER;

BUT
-I’m not sure but I think it doesn’t work with LIKE operator (available with REGEXP_LIKE in 10g)

  • Note that all others character fields will be affected (can cause pb with the selection of PK fields or joins where unique key can be “violated”)
    ie A.PK =B.FK and PK could take both value “A” and “a”

The other (or proper) way is to use UPPER as clearly described by BO_chief


4TearsLux :luxembourg: (BOB member since 2006-06-23)

Hi,

I always try to define my prompts as a predefined condition in the universe. When you change something for this prompt, there is no need to change the reports that prompt was used in.

HenkK


HenkK :netherlands: (BOB member since 2004-03-02)

Thanks alot. That worked fine for me.


AbuShreek (BOB member since 2006-05-23)

@AbuShreek:

What worked for you ? How did you resolve it , Let us know?


BO_Chief :us: (BOB member since 2004-06-06)

Sorry should have been clearer…

I used PRE-DEFINED CONDITIONS and UPPER() Oracle functions…


However, I am still not sure about how to change the No Data To Fetch to a more user friendly message or suppressing it. The FAQ presented code:

Private Sub Document_BeforeRefresh(Cancel As Boolean) 
    Application.Interactive = False 
End Sub 

Private Sub Document_AfterRefresh() 
    Application.Interactive = True 
End Sub

will suppress even the prompts. This is not useful for me. Still not sure about the mistyping handling.


AbuShreek (BOB member since 2006-05-23)

Ok,…

You can try this one, you can create a variable in the report locally, say, v_Rows_Retrieved:

= NumberOfRows(DataProvider(<object>))

Now create two tables in the report instead of one, display them conditionally using the above created variable… like below, one when atleast 1 or more rows retrieved, the second one when ZERO rows are retrieved, using HIDE block option:

=v_Rows_Retried > 0

or

=v_Rows_Retried <=0

Note: the in the above variable formula must be a Universe or a User Object… :yesnod:

With the above technique, you can’t avoid a message but you display a friendly message like “There is no data retrieved, please check if you entered it correctly, if there is a typo then re-enter the value and refresh the report again”.

In the second table you can put the above message in a cell, So when No data is retrieved a freindly message is displayed… :smiley:

Hope this helps.


BO_Chief :us: (BOB member since 2004-06-06)

Still not sure about the mistyping handling

May be for this, you can provide list of values and let users select from there


BOLearner (BOB member since 2005-01-20)

Hello Again,

One more thing that I just faced when creating my Pre-Defined Condition. If I use UPPER when Object = Mono Prompt everything is ok. However, If I use UPPER with MULTI Prompt it wont work and it will give an error from Oracle database. Any workaround in such a case? That is, to use UPPER with Multi – Free Prompt .

Thanks in Advance.


AbuShreek (BOB member since 2006-05-23)

UPPER function cannot be used for more one single value.

So you cannot have UPPER with multi in BO


BOLearner (BOB member since 2005-01-20)

@AbuShreek:

I haven’t tried Upper, @Prompt and MULTI together. But one thing to remind you, Try with operator ‘InList’ instead of ‘=’ (equal to).

If you already tried that, then BOLearner is correct.


BO_Chief :us: (BOB member since 2004-06-06)