Thursday, July 05, 2007

Catching up

As I have been in hiding on a secret client site (with no access to the internet) for a while, I thought that I would go for a large blog today.

To start with, there is some new functionality in 10.1 that you should know about. One feature is called a Presentation Variable. Like repository based variables but it is created in the BI Presentation system.

Bascially you set it up from a prompt. Once set it can be used all over the place, but my favorite is the Title of a prompted report, or column of a prompted report.

Try this

On the prompt, set a variable, which can then be accessed in the Title of the report.
For example, if you select a County of 'Wiltshire in a prompt, you set a variable name called VAR_COUNTY,
then in the Title you can display 'Details for Wiltshire' by changing the title to: Details for @{VAR_COUNTY}{All Counties}.

Neat eh?

In the good old days (last year!) we had to rely heavily on False Titles to perform the above. These may still be useful today. These use Narratives in reports to create what loks like a title. The report uses the same dashboard prompt as the report it is presented with. Using the @1 syntax you can present the value in the column, the there have a title which says something like 'Sheep in Wiltshire'. Formatted properly it will look like a title. Place it above the query in the same section. Viola.
Now I just tend to use the Section names as the titles.

I started using some Oracle dev tools this week, and I'm actually beginning to like them. Call me fickle but I have to say that I may be throwing out TOAD and starting to use Oracle SQL Developer instead. The main reason is that it is free!!

Having a quick look through my emails the other day I came across this message.

Someone asked the following question

We have a requirement to switch between the DBs based on the user login. We have two identical/similar dbs. But based on the users, the connection should switch.
Ex: user1 should see the data fram DB1 and user2 should see the data from DB2. Our plan is to keep a single stream of Physical, BMM ,Presentation catalogs and Webcat. Is this possible through Session variables. If yes, how?

Puna replied with this excellent answer

1) Create a table "db_details" in any db with the following details:
Login_Name dbname dblogin dbpassword

2) Populate this table as per your requirements. Create a connection pool in Physical layer which connects to this table (via database)

3) Create three Non-System Session Variables: dbname,dblogin,dbpassword. Create an initialization block with the following SQL Query:
select dbname,dbuser,dbpassword from db_details where Login_Name=':User' and polplute the the above created variables.
Set the connection pool of the initialization block which was created in step 2.

4) Now for the connection pool for which dynamicity is required as per the logged in user, in connection pool of that database in physical layer set the the following properties to:
Data Source Name: VALUEOF(NQ_SESSION.dbname)
User Name: VALUEOF(NQ_SESSION.dbuser)

Make sure if you are using ODBC or DSN's then DSN's with the name "VALUEOF(NQ_SESSION.dbname)" already exist in the system.
So now you will be able to switch DB's based on the Login_Name.
Hope this helps.

Nice one Puna.

If you read this (or know them) please send me your details and I'll invite you to our OBI Developers Forum.


Katlynn said...


I found your site by searching for information on how I can place the current date in the Headline of an IBot. To date I have found nothing that works.

Also, where/how do I obtain technical training for OBI? Are you aware of courses or on-line training that you would recommend?

Thanks so much for your help!!

Anonymous said...


I am new to OBIEE. It becomes a challenge for me to pass variables from dashboard prompts and to catch their value in Answer's Request.

I would like to illustrate it with an example.
Request based on the following SQL statement

From emp
Where DOB = ‘@{p_date}’

Now DOB is in TIMESTAMP format,
it looks like ‘11/1/2009 12:00:00 AM’.

Dash board Prompt also depends upon the same column and have also same TIMESTAMP format.

In next step
I create a dashboard page
Place prompt and report there
Saved the dashboard
Now I select a date from prompt list and press go button
It shows no result.

I tried several combinations in @1 syntax e.g.

Where DOB = ‘@{p_date}’
Where DOB = ‘@{p_date}{1-nov-2009} ’
Where DOB = cast(to_char(@{p_date}, ‘dd-mmm-yyyy’) as date)
And many other combinations

I am looking for any help/tips in this regard

Thanking in anticipation

The Cowes

The Cowes
Cowes Racing