Friday, January 11, 2013

OBIEE 11g Hide/Show Sections based on Dashboard Prompt


allow a user’s interaction to hide/show certain sections of a dashboard. In this particular case the user wanted to choose either ‘Quarterly’ or ‘Monthly’ and the appropriate sections of a dashboard would be shown.
To achieve this I used a number of techniques, some of which are different in OBIEE 11gR1 compared with the previous version. In summary a few elements are required:
1. A Dashboard Prompt which sets a Presentation Varaiable.
2. An interim Analysis which returns a single row for one of the possible user choices.
3. A Condition which evaluates to true when the Analysis in (2) returns a row.
4. A Dashboard with the Condition applied to the Sections which will be shown / hidden.
Firstly, the dashboard prompt. I used a Variable Prompt based on radio buttons with the settings as per the screenshot below.

Secondly the interim, dummy Analysis. I added a single column to a new request and changed its formula to be simply ‘Monthly’ (including the single quotes). I then added a filter to this column, selected presentation variable and entered the name ‘timescale’ as per the prompt created earlier. The default text for the variable can be any value.

Next I created a new dashboard page and set up the desired layout – 2 columns with the right hand side containing 2 sections. To the left column I added the dashboard prompt created earlier. The sections on the right just contain dummy, static text objects for now.

The final piece of the jigsaw is to add Conditions to the right hand sections. I clicked the section properties, chose ‘Condition…’ and then clicked the icon to select a new one. After browsing to the dummy report I set the “True if Row Count” property accordingly. For the Quarterly section I used “is equal to” 0.

For the Monthly section “is equal to” 1.

I saved the dashboard, crossed my fingers, and tried it out. As expected the report defaults to showing the Quarterly section

Clicking Monthly in the prompt sets the presentation variable which causes the dummy report to return a single row. This in turn causes the condition on the dashboard section to evaluate to true and the Monthly section appears.

I hope this helps someone out there.