Monday, July 29, 2013

How-to: Image Referencing with OBIEE 11g

In a typical OBIEE engagement, the client may want to utilize out of the box or custom images within various dashboards and reports. This requirement leads to many open questions, including:

  1. Where are these images located?
  2. How do I embed the image into a dashboard or report?
  3. How do I maintain the integrity of the image URL across multiple environments?
Let's break down each question one by one:

Where are these images located?

All images are stored in the 'browser look and feel plus' folder of the BI Server, you've probably seen this notated as 's_bflap'. This folder exists in two locations and it is critical that any image you upload be housed in both:
  • Oracle_BI1\bifoundation\web\app\res\s_blafp\images
  • user_projects\domains\bifoundation_domain\servers\bi_server1\tmp\_WL_user\analytics_11.1.1\7dezjl\war\res\s_blafp\images

How do I embed the image into a dashboard or report?

OBIEE 11g has a little known feature called 'fmap' which can be used to display an image based on the relative URL of the image. Little documentation exists on it other than a few notes released by Oracle which include:
  • How To Display Custom Images Using Fmap In OBIEE 11g (Doc ID 1352485.1)
  • Image FMAP on Linux (Doc ID 491154.1)

How do I maintain the intregrity of the image URL across multiple environments?

Here is where things get tricky due to the lack of documentation that exists.  Let's say you want to use the image 'report_good_percentage.jpg' located in the s_blafp folder:


So as outlined in Oracle's documentation you use 'fmap:report_good_percentage.jpg' or even 'fmap:images/report_good_percentage.jpg', but to your dismay all you see is a broken image link:

Why?

It is important to remember that fmap displays the image of the relative URL. So what does relative mean? What is 'it' relative to? In regards to fmap, the relative URL is the root directory of the analytics web server, which in OBIEE 11g is:

/export/obiee/11g/user_projects/domains/bifoundation_domain/servers/bi_server1/tmp/_WL_user/analytics_11.1.1/7dezjl/war
Which makes sense if you understand how applications are deployed in weblogic. The presence of the WEB-INF directory in the aforementioned folder is how Weblogic determines if a folder if a deployable application directory.

So - if we work under the assumption that the above folder is indeed the root directory, then it we now know why the image returns a broken link, report_good_percentange.jpg is not stored in the 'root' directory of the analytics web server, it is actually stored in:
/export/obiee/11g/user_projects/domains/bifoundation_domain/servers/bi_server1/tmp/_WL_user/analytics_11.1.1/7dezjl/war/res/s_blafp/images
Let's update the fmap relative url to correctly reference report_good_percentage.jpg by modifying it to:
fmap:res/s_blafp/images/report_good_percentage.jpg
Unfortunately..

Why does fmap STILL not work?

Let's take a look at the URL that's actually being generated:

Notice anything funny? Why is OBIEE 11g adding a 'Missing_' folder to the URL directory? Countless bloggers have theorized this as a bug in OBIEE and some even suggest making a 'Missing_' folder in the root directory of the analytics web server. I don't think that is the best approach because as you deploy this application across multiple servers, you'll have to make sure all environments have that same folder. Keep it simple right?

We can resolve this by modifying the fmap url to revert one directory closer to its root by using '/..':
fmap:/../res/s_blafp/images/report_good_percentage.jpg
Let's check the URL being generated just to make sure:

The image displays, and the 'Missing_' folder is no where to be found.  If your requirements have extensive image customizations, perhaps changing the entire look and feel, I recommend deploying an entirely new skin as outlined in Oracle Note: How to Use Custom Images in OBIEE (Doc ID 1484623.1)


keywords: fmap, answers, OBIEE 11g, image customization

9 comments:

  1. Hi John,

    I have one requirement to add custom image symbol in line chart( in style and conditinal formatting) instead of defaults like triangle,diamond,circle etc..
    Can you please let me know how to do this

    ReplyDelete
  2. Hi John,

    I have followed your steps. I want to be able to display custom images on a dashboard. If I use the FusionFx style the images are not displayed. But on choosing another style, th eimage gets displayed. Could you please point out what I could be missing? Appreciate your help.

    Thanks.
    Jeby

    ReplyDelete
  3. I want this logo to be displayed in all the reports , rather than to show in a single or two reports. Meaning that when i create any report, My title view should include this logo as a default. Can you please help me with this requirement?

    ReplyDelete
  4. This works perfectly but only thing its not working when I try to expor t the dashboard to PDF (the image is disappread).. how do I get it on PDF too

    ReplyDelete
  5. My Arcus offer java training with 100% placement. Our java training course that includes fundamentals and advance java training program with high priority jobs. java j2ee training with placement having more exposure in most of the industry nowadays in depth manner of java .

    java training in chennai

    ReplyDelete
  6. I feel really happy to have seen your webpage and look forward to so
    many more entertaining times reading here. Thanks once more for all
    the details.
    unix course in chennai
    top software training institute in Chennai

    ReplyDelete
  7. I wish to show thanks to you just for bailing me out of this particular
    trouble.As a result of checking through the net and meeting
    techniques that were not productive, I thought my life was done.
    dot net training in chennai
    core java training in chennai
    manual testing training in Chennai

    ReplyDelete