The neo-MUD tunnel for OBIEE 11g RPD deployment

Ok call me a geek for writing it on new year's eve, I dont care :-P. I can tell you that this blog is totally worth it. Let's get right into it.
We know that EM can be used for deployment but we had a requirement to maintain a log every time a deployment is done so that we can keep a track of the changes been done to the RPD.
I developed the  Multi (more...)

OBIEE 11g: Outer join in the Physical Layer now possible

We know that we can perform outer joins in OBIEE in the Logical Layer. The problem with this mechanism is that it is not possible for one logical table sources (LTS) to join to a fact by an inner join and the other to join to the fact by an outer join. Let us (more...)

Issue in using EJB Actions in OBIEE

This blog is less about a solution and more about an information.

If you have written an EJB that uses a obiee report saved in the catalog as an arguement and you are trying to invoke this EJB using Actions in OBIEE then you might get the following error.

Assertion failure: false at line 1320 of project/webhttp/httpstream.cpp[[ 
saw.rpc. (more...)

Migrating application roles in OBIEE 11g

My last article talked about a maintenance and hassle free mechanism to implement security. The article moved the security architecture to roles created in EM. The next logical step is to move the roles from one environment to another because lets face it, manually creating roles is a lot of effort.

Oracle has a process to migrate the policy store from one environment to another and is described @

This (more...)

Maintenance free security implementation in OBIEE 11g

This blog talks about a hassle free mechanism of OBIEE security implementation with almost zero overhead.
We will first look at the data level security implementation and then extend it to object level security.

Data Level Security:
Data level security is usually implemented using database tables. These tables store the users and the filter (more...)

Toggling the database in OBIEE 11g at runtime

We have a replication and the primary database server. Replicating the data takes some time so the replication server is usually a few mins behind the primary server. The requirement for one of the report was to get the data from the primary server if the replication is lagging by over 1 min. This blog talks about a method to implement this business use case.

In my project, we have a table that tells us (more...)

Oracle VM file sharing with Windows host

This article talks about the process to share files between Oracle VM and windows host.

Open the VM and navigate to System -> Preferences -> Personal File Sharing as shown below.

Check the Share public files on network check box as shown below.

Open the Network as shown below.

Navigate to the following path

Using Internet Explorer to customize OBIEE 11g UI

We recently had a requirement that the button sizes in OBIEE had to be increased. The reasoning was that the users of some of these reports are old and they hate smaller sized buttons. Now we know the properties of buttons such as the size are set in the css files which together form (more...)

OBIEE Hack: Putting prompts in file names

Users often have the requirement to have the selected prompt values suffixed to the name of the exported file.
This blog talks about a hack to achieve this in OBIEE. 
Note that I am on OBIEE version I haven't tested it on higher or lower versions. I also wish (more...)

Understanding OBIEE RPD – Chapter 1

The most skilled task in the world of Oracle Business Intelligence is to design and code the RPD. While we are all aware of the general concepts of Business models, logical tables, joins and hierarchies, the RPD is essentially a query generating tool. The query generated by the tool depends on a sound understanding (more...)

Making OBIEE 11g Evaluate function dynamic

We know that we can use the evaluate function to call any function stored on the database and pass arguments to it. What if we have a requirement to use different database functions for the same column based on different selections made by the user.
This article talks about a method to handle this (more...)

OBIEE 11g query tracking mechanism

We had a requirement of tracking a query fired from OBIEE. This was to help us find out the Analysis that consume the most database resources.
It is possible that some user might be selecting a huge date range resulting in the problem at the database. So the trouble in this case might be (more...)

Installing OBIEE 11g Client tool on Windows 8

OBIEE 11g client tool is not certified with Windows 8. 
The certification matrix for OBIEE version is in the following location and it does not include Windows 8.

This blog talks about a way to to install admin tool on Windows 8 machine.

We can download both the 64 bit and 32 bit windows installer for client tool from OBIEE portal.

The problem statement:


OBIEE 11g dashboard pages outside of a dashboard

We had a strange requirement. The user did not want the dashboard to be published and he hated the fact that he had to expand the dashboard to see the pages in it.

Since the requirement is strange so will be the solution.

One option is to create the shortcut of each page and then hide the dashboard.  This option is recommended but will lead to creation of a shortcut for each page.

The (more...)

3 way switch in OBIEE 11g

While we all know about using conditions on sections in a dashboard, and while we all have used presentation variables to show or hide a report using these conditions, this blog talks about a process to use conditions on sections to implement a 3 way decision rather than just a boolean (true/false) decision.

Lets say that we have to show one section based on one value of a presentation variable, another based on another value (more...)

Seperating numbers from characters in OBIEE 11g

We had a requirement in which the a column had either pure numbers such as 123 or pure alphabets such as QWED. The requirement was to display 'Y' in a column if the value was a number and display 'N' if it was a character string.

While we can anyways have a case statement for each of the numbers i.e. 1,2,3,4,5,6,7,8,9,0, I found an easy way out by using the ASCII function.

ASCII function (more...)

Easy method to create BIP 11g reports on top of OBIEE dashboards

This blog talks about a quick way to create BIP reports on top of OBIEE dashboards.

I have used 2 graphs from Sample Sales catalog for the purpose of this demo.

Edit the dashboard

Select the Print Options link

Select Custom Print Layouts -> Create Layouts

Thats it, OBIEE will do all the work of creating a layout and a data model for you.

Hit the View Report button to see your report.

You will (more...)

Active directory configuration in OBIEE

We will learn about configuring Active Directory (AD) for OBIEE today.

We will create a new security realm and configure the default authenticator as well as the AD authenticator. Configuring 2 authentication providers will ensure that users such as weblogic continue to function (since they will be authenticated by the default authenticator) and users from the AD are also able to login (authenticated by the AD authentication provider). We will mark (more...)

Non Standard SQL in BIP 11g – Dynamic query implementation

SQL query is often used as a data source in BIP and often we have a requirement in which we have to use one table when the user selects a certain value in a parameter and select a totally different table when the user selects another value in the parameter. While we have discussed a method to do this using pipelined functions in, this blog post talks about a (more...)

Increasing width of Multiselect in OBIEE 10g

I was recently involved in a project implementation on OBIEE 10g. The dashboard had a multiselect and the values in the prompt were huge. The standard width of the multiselect was making the user uncomfortable since a large part of the value was hidden due to the small size of the multiselect. This blog talks about a method to fix this problem.

Let me first show you how the multiselect looked.

I added a text (more...)