01.09
Most of my projects involve users who are in a hurry. They need information quickly and they don’t want to linger around, drilling down on reports for 30 minutes at a time. They usually have a small window of opportunity to get the information they need and get back to their main tasks. When presented with a typical set of dashboards they have over 10 links, menu items, high level reports to drill down on, chart… information overload.
This blog post will demonstrate how to setup a simple Search Page to guide the users to the relevant dashboard quickly, and to improve the overall user experience.
This example is based on the 10g sample sales repository. (Normally I would recommend a high performing database solution (ETL/Materialised Views, indexed and optimised for the search criteria) but in this case the samplesales data is an XML dataset and good enough for a demo. I will use a clustered UNION statement to show the various search results in one report). We will let the users “Search” through the various dimensional data and return exact or partial matches. The returned result will include a href link so the user can select the search result they wish to inspect, google-ized. On click, they are navigated to the most relevant dashboard for immediate results.
1. Create a “Search” Dashboard Page.
I have already constructed this in the find a prompt post where I setup the search page with a custom search prompt.
2. Setup your banner with home and search icons (optional).
This is a modification of a previous post where I demonstrated how to create a floating toolbar.
By adding a special home icon and a search icon the users won’t get lost in the dashboards. It’s important to create a user experience that is consistent between pages/dashboards, flows and hides the nonsense that typically litters a OBIEE dashboard page.
In this example I’ve added a home icon and a search icon.
<div id="my_banner" style="top:0px; left:0px; position: absolute; z-index=11; visibility=show; right=0px;">
<table cellspacing="0" style="text-align: left; vertical-align: middle; background-color: rgb(24, 24, 24); height: 70px; width:expression((width1 = window.innerWidth?document.body.clientWidth:document.documentElement.clientWidth) + 'px'); padding: 0px; white-space: nowrap;" class="SectionTable"><tr><td> </td></tr></table>
</div>
<div id="my_banner_title"><font color="#FFFFFF"; style="top:20px; position:absolute; font-size:26px; text-align:center; margin-left:auto; margin-right:auto; left:0px; right:0px; width:expression((width1 = window.innerWidth?document.body.clientWidth:document.documentElement.clientWidth) + 'px');">Main Menu</font>
</div>
<div id="my_logo" style="top:1px; left:1px; position: absolute; z-index=14; visibility=show;">
<img src="http://www.wilson-is.com/blog/wp-content/uploads/2011/07/logo.png" height=68 border=0></div>
<div id="my_toolbar" style="top:20px; right:10px; position: absolute; z-index=14; visibility=show;">
<a href="/analytics/saw.dll?Dashboard&PortalPath=/shared/Sample%20Sales/_portal/00%20Overview&Page=Content%20Index&Action=Navigate">
<img src="http://www.wilson-is.com/blog/wp-content/uploads/2012/01/house-icon.png" border=0></a>
<a href="mailto:noreply@wilson-is.com"><img src="http://www.wilson-is.com/blog/wp-content/uploads/2011/07/email.png" border=0></a>
<a href="/analytics/saw.dll?Dashboard&PortalPath=/shared/Sample%20Sales/_portal/Search%20Page&Page=Search&Action=Navigate"><img src="http://www.wilson-is.com/blog/wp-content/uploads/2012/01/Search-2-icon.png" border=0 alt="search dashboards"></a>
</div>
3. Construct your “Search Results” report and configure for the search page.
In the sample sales repository we have various dimensional data that the users could potentially search for. I have slapped together a quick example of some search results based on the Customer, Product, Orders, Employee and Market Dimension. On click of a result, the user will be navigated to the appropriate dashboard showing the appropriate result.
Make sure you set the result column to HTML type
The result column is now HTML format (see previous pic)… so we need to piece together a HTML HREF string using the results and the href navigation path. In this example we are going to setup the Customers Details navigation so if a customer record is clicked on, they are navigated over to that customer dashboard. Note: this string is passing the customer name as a parameter to the dashboard…
….
'<a href="/analytics/saw.dll?Dashboard&PortalPath=/shared/Sample%20Sales/_portal/00%20Overview&Page=02%20Customers%20Details&Action=Navigate&col1=%22D1%20Customer%22.%22C1%20%20Cust%20Name%22&val1=%22' || "D1 Customer"."C1 Cust Name" || '%22">' || 'Customer: ' || ucase("D1 Customer"."C1 Cust Name" || ', ' || "D1 Customer"."C2 Cust Status"|| ', ' || "D1 Customer"."C3 Cust Type"|| ', ' || "D1 Customer"."C5 Segment"|| ', ' || "D1 Customer"."C6 Cust Industry"|| ', ' || "D1 Customer"."C7 Credit Rate"|| ', ' || cast("D1 Customer"."C8 First Contact Date" as char)|| ', ' || cast("D1 Customer"."C0 Cust Key" as char) || ', ' || cast("D1 Customer"."C-00 Cust Key (Segmentation)" as char)) || '</a>'
Save your work!! 😉
..
…
4. Test your Search Results page.
5. On Click, the browser navigates to the appropriate dashboard displaying the appropriate result
If you look closely, the dashboard is automaticlally filtering for the customer “Andrew Jones”.
I know many OBIEE practitioners will *sigh* at this post but all too often we’re forgetting our target audience. Just a small amount of usability polishing can really improve the user experience, and the overall result of the project.
I hope this helps someone out – My project(s) have benefited from this approach.
My next post will consolidate all of my previous posts into a full package main menu, breadcrumbs etc. It redefines the OBIEE user experience altogether…
L out.
p.s. leave a comment.
p.p.s. please add my blog to your blogroll if you’re an OBIEE blogger, thanks.
No Comment.
Add Your Comment