Skip to main content

Digital Transformation

Integrating OBIEE with Portal

We are going to be spending some time focusing on integration.  Inevitably people ask, “But can you integrate with product x, y, or z?”  Our answers is almost always yes with a lot of qualification.  Everyone wants out of the box integration that just works but no vendor ever really has a good answer.  Because of that, portal guys usually spend a lot of time researching what kind of hooks exist in the software or data you want to surface in your portal.  Today, I want to focus on Oracle Business Intelligence Enterprise Edition (OBIEE). It’s also known by it’s old name, Siebel Analytics.

Note: Dan Wellborn has gone into much more detail in a later blog post with a variety of samples.  If you want a deeper diver, you probably want to hit his post.

The Problem

When you surface reports in a portal, it’s not the same problem as just surfacing data from an app.  Most data are transactional but only in two dimensions.  Today’s BI packages give you incredible power with multiple capabilities that include:

  • Charts and graphs. In other words, a really rich interface
  • Ability to drill into a chart or graph
  • Ability to display multiple charts in one dashboard report
  • Ability to download to excel or pdf
  • Ability to print

A smart portal developer could do all the following but it would take time to pull the data from the BI system and then display it using the normal method of calling a service, getting data, and displaying it.  But given the large amount of functionality that comes from the BI web tool, why would you want a developer to recreate the wheel?  If you did have a developer recreate the wheel, he or she would have to do it over again for every single report type.  It’s simply not a scalable solution.

What you want is an interactive report that’s surfaced as is from OBIEE.  OBIEE will give you pre-formatted content and allow you to interact with it.  There exist a couple options.

The General Solution for Most Portals

As it turns out, OBIEE has a really strong set of web services.  These web services provide not only authentication and data but one service in particular gives you the exact experience you want.  It’s the HtmlViewService.   This service along with a bridge to allow that two way interactivity, allow you to surface the report or dashboard in a seamless manner.    Here’s some screenshots from the OBIEE Web Services Guide.

At one of our projects, we found the service to be easy to call and stable.  However, our chief architect Dan Wellborn on the project said the documentation was terrible and for the most part non-existent.   He also found that you need to set a proxy bridge.  The proxy bridge allows you to get past browser cross-scripting errors that occur when you stream it directly from the OBIEE server.  They had to create a their own bridge that removed certain headers before sending the stream to the requester.

In other words, OBIEE provides you the right service but you have a few hoops to jump through before you can make it work.  Dan said coding the proxybridge wasn’t all that strenuous.

That said, if you want to create a reusable portlet, you need to put more into your portlet design than just a call to the service with some hardcoded parameters.  You will want to create an admin view that lets you define what report to call and what parameters you wish to add.  Configuration for the end user is always better than hard coding by the developer.

Oracle’s Extra Hooks

With Oracle WebCenter you can use the exact process described above.  However, Oracle seems to be putting a lot of effort to more fully integrate their products.   Accordingly, they have a more configuration based approach that involves the following steps:

  1. Go into the WebCenter Spaces admin console under System MBean Browser
  2. Under the operations tab, choose the createConnection
  3. Supply all the parameters including the username and password
  4. Still in the WebCenter Spaces Administration, go to the Resources tab
  5. Copy the default space catalog
  6. Edit your new space catalog
  7. Add a folder to hold the BI content. You can also choose to put the BI content in an existing folder
  8. Choose “Add from library” for that folder
  9. Add a resource catalog item
  10. Choose Connections
  11. Choose BI presentation services
  12. choose whether you want biserver or shared folders
  13. Create the page or space you want to display your report
  14. Edit the page and add BI content from the catalog and folder you just created.

In the example I saw, you could surface a report or a dashboard using this method. What isn’t apparent is how interactive these reports are.  Since it’s straigt configuration, it won’t be that hard to experiment and find what works.

Microsoft’s Specific

Microsoft Sharepoint supports web services so there should be no problem with calling the HtmlViewerService to get your interactive report in Sharepoint.  You will still need to create a custom coded proxy bridge to get past your cross scripting errors though.

Java Portal Specific

The experience Perficient has is with a Java based portal.  After we were able to get the BI team on the same page as us, we were able to hard code an example pretty quickly.  That includes the proxy bridge code that Dan Wellborn mentioned.  So on a Java portal, this is a known factor.

Thoughts on “Integrating OBIEE with Portal”

  1. Rockfiller, I’m getting Dan Wellborn to create a more in depth post with code samples on this. The documentation is a little bit opaque from the OBIEE side so the code samples should help.

  2. thank you very much.

    I can get the catalog of biee report through webservice,but can’t display them, the page alway display a rotating clock with imformation access denied. I spend two weeks to solve this problem,but failed.

    the indexBase.jsp runs well. its code displays as following:

    <%
    String sessionID=request.getParameter("sessId");
    ItemInfo[] items=null;
    try
    {
    SAWSessionServiceSoapProxy myPort = new SAWSessionServiceSoapProxy();
    WebCatalogServiceSoapProxy catalog=new WebCatalogServiceSoapProxy();
    if(sessionID==null || sessionID.length()

    >>>>>>>多维报表共有:>>>>>>>>” + items.length);
    for(int i=0; i”+item.getType());
    System.out.println(“ItemInfoType.Object—>”+ItemInfoType.Object);
    if(item.getType().equals(ItemInfoType.Object)){
    // if(item.getType().equals(“Folder”)){
    //String linkPath = “mainBase.jsp?sessId=”+sessionID+”&path=” + item.getPath();
    String linkPath=”mainBase.jsp?sessId=” + sessionID + “&path=” + item.getPath();
    System.out.println(“>>>>>>>>linkPath>>>>>>>>” + linkPath);
    if(linkPath != null && linkPath.endsWith(“query”))
    continue;
    %>
    <a href="”>

    userResult 返回XML

    the mainBase.jsp can’t run , it always a rotating clock with imformation”row:2,char:16342,code:0,url:http://localhost:8080/BIEETest/mainBase.jsp?sessID=9241****n312&path=/shared/carefxolap/purereport

    mainBase.jsp code is :

    <a href="indexBase.jsp?sessId=”>返回

    Thanks.
    my mail is rockfiller@126.com

  3. Hello Mr. Porter,

    Your site provided great information. Which version of OBIEE where you using? Was a more extensive guide ever posted by Dan Wellborn?

    Thanks!

    Ricky

  4. Hey Guys

    PLease send me an example of how to integrate OBIEE by java through web services


    Thanks
    Awdesh

  5. Awdesh, in this article, we point to Dan Wellborn’s sample integration that goes into that detail and more. Hit that link. You’ll like it.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Michael Porter

Mike Porter leads the Strategic Advisors team for Perficient. He has more than 21 years of experience helping organizations with technology and digital transformation, specifically around solving business problems related to CRM and data.

More from this Author

Follow Us
TwitterLinkedinFacebookYoutubeInstagram