Check box “data is dense”

When viewing the properties of a fact column in OBIEE, there is a check box “data is dense” when aggregating by dimension is chosen. What does this check box do? I’m not sure if this only applies to multi-dimensional sources or not.

Solution

This is generally used for FIRST/LAST aggregation rules where data is dense across the time dimension, e.g. inventory values for every period. SQL generation is optimized in this case.

Cache persistence

There’re a few well-written articles on about OBIEE caching configuration and strategies already. However, I’m posting a solution that I’ve found while investigating an unexpected behavior with tpl cache files disappearing for no reason (no updates in polling table, no manual purge, no BI services restart). Here’s the solution from Oracle:

The behavior was resolved when customer modified the refresh interval for the Repository variables that exist in their Repository.
When a dynamic repository variable is updated, cache is automatically purged. This is designed behavior. Cache will be invalidated (i.e. purged) whenever the initialization block that populates dynamic repository variable is refreshed. The reason that refreshing a variable purges cache is that if a variable was used in a calculation, and the variable changed, then cache would have invalid data. By purging cache when a variable changes, this problem is eliminated.

Since this is the designed functionality, Change Request 12-EOHPZ3 titled ‘Repository variable refresh purges cache’ exists on our database to address a product enhancement request. The workaround is to go through the dynamic repository variables and verify that the variables are being refreshed at the correct interval. If a variable needs to be refreshed daily, there may be a need to set up a cache seeding .bat file that runs after the dynamic variable has been updated. If the cache seeding .bat file runs prior to the refresh of the dynamic variable refresh, then the cache will be lost.

I think they should try to cover similar thing in OBIEE documentation.

OBIEE book

As far as I’m aware there’re no any OBIEE books published on paper (I know about one book in production by Mark Rittman, that got delayed to arrive along with OBIEE 11g release). As I wrote about it, I found one it’s “Oracle BI Enterprise Edition Dashboard & Report Best Practices” from BI consulting group (a respectable company to my opinion). Has anyone read it by any chance? It seems from table of contents and preview that it’s primarily targeted towards dashboard designers, report users and super users.

How to force a user to filter on a column A every time column B is in the request

Something interesting I found while browsing OBIEE docs. This should be incredibly useful to force users select enough columns for the report.

How to not allow the execution of the request and show an appropriate error message to the user If request contains any of the following columns: (Sales Amount, Sales Amount With Tax, Ticket Count), and if request does not contain at least one of the columns (Date, Month, Year, Day of Week)

This is possible via the Blocking Requests Based on Formula functionality using a custom js file

This is explained in Oracle Business Intelligence Presentation Services Administration Guide > Administering Oracle BI Answers > Blocking Requests in Answers

To locate the documentation please navigate to OTN: http://www.oracle.com/technology/documentation/bi_doc.html
Then drill on “Oracle Business Intelligence Enterprise Edition Documentation”
> View Library (for the required version) > Documentation tab > Oracle Business Intelligence Presentation Services Administration Guide

The documentation does not state where to place the js file.
*Using oc4j as the web server, you need to put the custom .js in “OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res\b_mozilla” in order for the fmap: reference in the CustomMessages xml file to find it (also need to bounce both OBIPS & oc4j).

*Using IIS, you need to put the .js file in “OracleBI\web\app\res\b_mozilla”, not “OracleBIData/web/res” as the doc states (and bounce OBIPS & WWW Pub Service).

Also, you can use a full network path reference for the src argument in the custom xml file – e.g.:

<script language=”javascript” src=”\\mylabmachine\OracleBIData\web\res\myblocking.js” />

That way, you can place the .js file anywhere – in this example in the “OracleBIData\web\res” folder, not “OracleBI\web\app\res\b_mozilla”.