Pages

Monday, May 17, 2010

Realtime access to OBIEE analysis over iPhone

Oracle Business Indicator is a business application designed to provide mobile business users realtime access to pre-defined OBIEE analytics from the iPhone device.

Business user can browse folders on OBIEE server and view any pre-created reports stored under it.





The client for iPhone device is available for download from http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284793704&mt=8

There's only one configuration change needed on server side. Since the iPhone device does not support Flash components, we need to configure the BI Server to render charts in the PNG format. To make this change just add following configuration under section of the instanceconfig.xml file:

<charts>
<defaultimagetype>PNG</defaultimagetype>
</charts>

iPhone Client will require setting server URL, user and password etc. For more details about configuring Oralce Business Indicator client, refer configuration guide.

Monday, May 10, 2010

Creating custom styles for OBIEE Dashboard

The default look and feel of OBIEE dashboard can be modified by creating custom style. To create custom style, one should know Casecading Style Sheets (CSS) and have basic knowledge of graphic design.

Here are steps to apply custom style to OBIEE dashboard.

1. Stop OC4J

2. Go to folder Drive:\OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res and make copy of folder s_oracle10 with some different name. For instance, s_mycompany.

3. Modify CSS and images in the subfolder b_mozilla_4 under s_mycompany, as per the requirement.

4. Copy s_mycompany folder to Drive:\OracleBI\web\app\res

5. Start OC4j and Log on to analytics web application.

6. Go to dashboard properties and select newly created style "mycompany" in the style dropdown.


The screen below shows default OBIEE banner area.


Here I made changes to banner images and styles to change the looks.


You can write to me if you want files for above style.

Friday, April 23, 2010

OBIEE Aggregate Navigation (not hitting?)

Often you will find people complaining that they have setup aggregate navigation, but when they run report, OBIEE is not hitting the right fact table.

Common suggestions you will find to resolve this are:
  • Go to Content tab of the Logical Table Source and check if Logical Level are set correctly set.
  • Go to General tab of Dimension Level and check the value in textbox "Number of elements at this level"
In this post, I am just going to show that even after following above, the query may not hit aggregate table if you are not following modeling practice right.

Let's take following data as example. There are two sales fact tables and a time dimension. DAILY_SALES has day level sales data. WEEKLY_SALES has sales data pre-aggregated at week level.

Here's repository created on top of above physical data. The Logical Level is set correctly for WEEKLY_SALES.


Even the number of elements are set correctly for Week and Day level of Time dimension.




Let's execute following query which fetches sales by week. Since we have setup aggregate navigation, it is expected that the query should fetch data from WEEKLY_SALES table.

SELECT "Time"."WEEK_DESC", "Sales"."SALES_AMT" FROM SALESCATALOG

Now have a look at NQQuery.log. The query didn't hit WEEKLY_SALES table, in fact it is grouping data form DAILY_SALES table instead.


So what went wrong?
Our query has two columns WEEK_DESC and SALES_AMT. If you see the earlier repository screen carefully, you will see that WEEK_DESC attribute is not associated with any level of the Time dimension, so OBIEE assumes it to be most granular level attribute i.e. day level. When we query data by WEEK_DESC, OBIEE goes to fact table with day level granularity (i.e. DAILY_SALES) and fetches the data.

Let's add WEEK_DESC to Week level of the time dimension as shown below and execute the query again.


Now let's see NQQuery.log again. Bingo! it just hit the table we wanted it to.



Alternative approach with Snow-flake:
In the example I have given, the Time dimension is snow-flake, so it is also possible to set the logical level for invidual source table to make aggregate navigation work. Setting logical level "Time Week" for source table TIME_WEEK and "Time Detail" for source table TIME_DAY will do the work.

I hope this post will give a different perspective to your troubleshooting effort when you face that aggregate navigation problem again.