Oracle EPM 11.1.1.3 - Deploying EPM reporting Portlets in Weblogic Portal 10g
There are multiple ways of integrating reporting tools(oracle or non-oracle) to external portals. The most commonly used ones are the URL based integration, Web Service calls and calling native portlets directly from the portals. I have covered the details of the techniques some time back here. Out of these 3, URL based integration is the easiest and the widely used method. Web Service integrations are commonly used by various product development teams when an acquisition happens (for example, BI EE - BI Publisher integration, EPM Workspace - BI EE Integration, BOBJ & XCelcius Integration etc) though these can be leveraged by us as well. Portlet based integration is not that widely used due to the lack of extensibility/customization of the portlets exposed. Though the portlet based integration is not widely used, it can actually be put into very good use when the requirement is to have an efficient method of integration without compromising on security (URL based integrations can sometimes be insecure as some tools require the username/passwords to be passed in the URL. But these days most tools support POST method which is a secure method and hence this is not applicable anymore). Today i will be covering the EPM Portlet integration with an External Portal (in my case Weblogic Portal).
To demonstrate how the integration works, i will be using a simple report built in Web Analysis and expose that in Weblogic Portal. The procedure remains the same for HFR & IR as well. I chose Web Analysis for a couple of reasons
-
Its one of the most under-rated tools in the Hyperion Stack. Its one of the best tools in Oracle that provides excellent multi-dimensional analysis even on relational data. There are so many features that makes BI EE 10g look like a very simple analysis tool in comparison, atleast from a multi-dimensional analysis standpoint. Its major downside though is it does not scale very well & lacks a slick UI like BI EE.
-
HFR & IR both require windows clients. In my case, both my VM's (one running EPM Workspace and the other running Weblogic portal) were on Oracle Enterprise Linux.
From a portal standpoint, i believe Weblogic Portal 10.3 is now superseded by the Webcenter Suite portal framework. I had to choose Weblogic to reduce the memory footprint on my VM's. Somehow the SOA Suite 11g portal along with JDeveloper on OEL seemed to bring my VM's to a grinding halt. The procedure for portlet integration with Webcenter Suite is a bit different from Weblogic Portal which i do hope to cover in future(after sorting out the memory issue). One point to note is, while installing Weblogic Portal ensure that you are installing the Portal Samples as well. These samples contain a sample DVT application which provides a login portlet for the portal.
Having used Weblogic Portal, i can surely say that it is much better than the Oracle Portal 10g. Portlet development/deployment is a lot easier in Weblogic as it is purely java based. I still remember i had to get 2/3 patches applied on Oracle Portal 10.2.0.x to 10.2.0.4 just to make the Oracle Portal WSRP compliant so that it can consume JSR-168 compliant BI EE portlets. In the case of Weblogic, it supports WSRP by default. One downside though is Weblogic Portal 10.3 does not provide login portlets out of the box. This is essential to render EPM 11 portlets. I will demonstrate how we can enable a login portlet in the Weblogic Portal later here. One other good thing about Weblogic portal is it supports Portal deployment directly from the Eclipse IDE. This is so essential during the development cycles and i thought that is the biggest differentiating factor between Oracle portal 10g and Weblogic Portal 10g. Oracle Portal 10g supported only web based development and lacked a true IDE integration.
When you install EPM Workspace or Web Analysis, the Workspace portlets get installed automatically. There is nothing extra that we will have to do to use the portlets.
We will start with creating a very simple report in Web Analysis as shown below. This a report based on the SH schema.
Once the report is created, login to the machine where the portlets are installed. Navigate to the directory {HYPERION_HOME}\products\Foundation\workspace\InstallableApps\portlets
In this directory, you would find all the portlet files for various portals. In our case, since we are using Weblogic Portal, we will have to copy the bea-avaproxy.zip to a temporary directory and decompress it.
The next step is to navigate to the Weblogic Portal and open up the eclipse IDE (workshop). If you are new to Weblogic Portal, the following steps will basically highlight what you need to do to quickly create a portal. Start with creating a simple Portal EAR Project directly from the Eclipse IDE.
Once you have created the EAR Project created, associate the project with a Weblogic domain. If you do not have a domain, you can create it as part of the EAR creation process.
Once the EARProject is created, we will have to create the Portal Web Project. While creating the Portal Web Project ensure that you are assigning the Samples DVT application as part of the project facets. This is very important for the portlet integration to work. This DVT application provides a login portlet that we can use within the portal. Remember that EPM portlets cannot be used by autonomous(non-authenticated) users.
Once the Portal Web Project is created, we need to deploy the portlets that we decompressed before. Portlet deployment in weblogic is done by copying the portlet.xml from the decompressed portlets folder to {BEA_HOME}{Workspace_Home}{PortalWebDirectory}\WEB-INF folder. In my case i had to copy the portlet.xml from /home/oracle/portlets/WEB-INF to /u01/app/bea/user_projects/workspaces/default/EPMPortalWebProject/WebContent/WEB-INF. Remember while copying on linux, the portlet.xml will contain Ctrl characters like ^M. Ensure that you do a dos2unix on this file before copying.
After copying the portlet.xml, merge the contents web.xml in /home/oracle/portlets/WEB-INF with web.xml in /u01/app/bea/user_projects/workspaces/default/EPMPortalWebProject/WebContent/WEB-INF folder. For reference i have attached the web.xml and portlet.xml files here and here. Then ensure that every other file/folder (from decompressed portlet directory) is copied within the Portal Web applications portlets directory as is. This will enable us to use the EPM portlets within the workshop framework. After the deployment, the eclipse IDE will recognize the portlets and will list it in the Design Palette as shown below
To use the portlets, lets create a page in the Workshop portal and include the following portlets
- DVT Enabler - Login portlet
- Hyperion Reporting and Analysis Portlet
- Hyperion Reporting and Analysis credentials Manger Portlet
Now run this portal directly from Workshop. Remember to alter the name of the portal to remove the .portal extension. Else deploy the portal from Portal Web Admin console. If you deploy it with the portal extension, the portlets will not render properly.
As you see, since we have not logged in, both the portlets will throw an error. Lets login as the admin user. After logging in, we customize the portlets by entering the EPM username/password. The report portlet basically has 2 options. One is to specify the path of the report. And the other is any parameters that we would like to pass. When i tried this, the portlet seemed to be very fast, much faster than workspace itself.
Not all the functionality available in the EPM workspace will be available in the portlets like Drill up, Keep/Remove etc. Basic drill functionality will work though.