Sharing Prompts Between OBIEE Dashboards

April 10th, 2009 by

Occasionally I lurk over at the OTN Discussion Forums, and the Business Intelligence Suite Enterprise Edition one in particular.

Today I saw a question on passing a dashboard prompt value between dashboards and not knowing the answer I decided to spend an while (I have a day off to day) on coming up with a solution (or two) and at the same time improve my OBIEE skills.

When you create a dashboard prompt you are given the option to specify the scope of the prompt as “page” or “dashboard” , but nowhere can you define a larger scope, even setting the prompt to populate a presentation variable is not much help as they too share the same scope.
In the end I came up with two ideas. The first is not very elegant, but does work, the second much more elegant, needs some work in the RPD, but getting to do what exactly I want has eluded me for now – so if I have missed a trick on this just post a response

Idea 1. Create a navigation link to the target dashboard and use the link to pass the parameter.

One of the common tasks in OBI reporting is to create navigation links from request to another, or from a request to a dashboard. We can define links to OBI objects by browsing them from the GUI or by typing in the URL directly. As well as accessing external websites (like linking to Google.com from a navigation link) we can also enter the URL of a OBI request or a dashboard, but here the excellent news is that we can also pass parameters to the object – and in the case of a dashboard we can supply the default value for a dashboard prompt. So on our second dashboard we need a dashboard prompt to accept the value and the reports to act on it. The first dashboard needs the prompt to populate a presentation variable and a narrative request to generate the link URL. This need only be a simple request that ideally returns very quickly, the key thing is to have dummy columns to report the value of each of the presentation variables to be passed. In the narrative editor we check the HTML Mark-Up check box and it the text edit window the URL of the dashboard and the parameters to pass – we need to specify both the target column and the value to pass; something like this:

href="saw.dll?Dashboard&PortalPath=/shared/Paint Demo/_portal/D2&Action=Navigate&col1=Customers.%22Customer%20Name%22&val1=%22@2%22">Link to Dashboard 2

Where @2 refers to be result of the second column of my request, in this case the presentation variable as displayed in the report.  Of course you will need to wrap the code with correct tags <a tags and watch out to escape the double quotes and spaces in the url.

Idea 2 I could not get to work; the idea here is to use a session variable to pass the parameter. I created an updateable session variable in the repository and created a simple report to display the presentation variable from the prompt, but in this case I went to the advanced tab of Answers report and added some pre-query code to update the session variable with the contents of the presentation variable – this seemed to work – but the second dash board did not see the the change in variable even though it was in the same session… oh well it almost worked.

Comments

  1. Greg Says:

    I tried a variation of Idea 2…. I created a session variable that I can update from a Request Variable, not a Presentation Variable. This allows you to avoid having to go to the Advanced Tab and adding the pre-query code. However, on my second dashboard the value was not updated….

  2. Goran Ocko Says:

    Hi.

    I had a similar problem how to forward value from the column on the first report (db page one) to a second report (db page two). So what I did? I use Dashboard URL option for calling a second dashboard page and parse column value from the first report (db page one) to a dummy prompt of the second db page. The trick is that this dummy prompt is hidden so every time when we call second db page GO button of hidden prompt is activated and we can load parsed value of the field into new presentation variable on the second db page. I think that this will work also on a dashboard level. I didn’t try it.

    I published it long time ago on my blog (I’ll translate it on English):

    http://108obiee.blogspot.com/2008/07/go-url-navigacija-na-novi-dashboard.html

    I also try before the second solution with session variable, but without success.

    Regards,

    Goran

    http://108obiee.blogspot.com

  3. Apurv B. Says:

    Hi,

    Thanks for the reply. I raised that question on the oracle forums.

    We can go ahead with the first option but it is not what we are looking for. We don’t want the value to passed by clicking on any link. It is like once user select one prompt value it is saved somewhere and we display it on the other dashboard. Considering the second option the scope is very limited to that particular request.

    I have already raised the SR with ORACLE but it will be part of enhancement. So is there any solution in this version.

    Your help will be really helpful.

    Thanks:
    Apurv.

  4. Ian M Says:

    I’m fairly new to BIEE and interested in sharing prompts between Dashboards. However, I’m struggling with “The first dashboard needs the prompt to populate a presentation variable and a narrative request to generate the link URL.”. What do you mean by “narrative request”?

  5. Peter Scott Says:

    @Ian
    By sharing prompts between dashboards I mean sharing the value selected by the prompt on one dashboard with other dashboards. Not the same thing as having the same prompt appear on multiple dashboards! Sharing values between pages of the same dashboard is fairly straight forward – just set the prompt scope to be dashboard.

    But when you need to share a value selected on one dashboard with others you need to cheat – my cheat is to create a simple dummy report (using Answers) and in the Answers results tab select “add other view” and pick the “narrative” option. In the edit box insert the appropriate HTML commands to navigate to the target dashboard and ensure the Presentation Server knows it is HTML by checking the box. From the compound view of the results tab delete all of the report bits you don’t want – just leave the narrative. Save the report and publish it to the dashboard

  6. Raja Says:

    Hi,
    Nice and usefull site for all OBIEE learners.

    I have a requirement in answers,
    We need to have a checkbox in the report against each product.If users selects throught the check box,the particular selcted product should pass as a variable to the second report.

    how we can acive this?.

    Appreciate your response.

    Regards,
    Raja

  7. pravee Says:

    I have a requirement in dashboard as :

    ” populate Different Graph views , when selecting corresponding value ”

    for ex: There are 5 values as “a,b,c,d,e,f” , populate Graph1 and Graph2 when selecting Value a
    Populate Graph3 and Graph4 when selecting Value b……

    How can we achieve this?

  8. Srini Says:

    Goran,

    You have mentioned “…and parse column value from the first report (db page one) to a dummy prompt of the second db page…”

    Can you please elaborate how exactly you parsed the column value to a prompt? Did you default the value of the column in the prompt to a variable expression? If yes, to what expression?

    Please help. Thank you.

  9. BMW Says:

    Hi All,

    In the above requirement, we can use the GoNavEx function provided by OBIEE. We can write a very simple JavaScript in our report narrative and simply navigate to other report using this function. This fuction allows us to pass as many values as there are in our report. Provided that the other report has that column prompted.

Website Design & Build: tymedia.co.uk