Monday, September 10, 2012

Oracle ADF BI Integration

This blog post will guide through the process of embedding OBIEE analytics (reports/dashboards) on an ADF application. Also hoping that this resource will act as a reference material for future.

There are multiple ways in which we can achieve BI integration with ADF. The illustrated version on this post is one that I found very sophisticated.

The reasons for OBIEE integration could be manifold. The default DVT features available within ADF can be used to build reports however not as sophisticated as BI does. In such cases, it would be a great time-saver plus a great way to show analytics to the user on a jspx page.

In a more interesting use case, I have used this feature within a BPM process user task - where the reviewer/approver can see the BI analytics on the UI along with process parameters before taking an action.

Products/Versions:

JDeveloper/ADF: 11.1.1.6
OBIEE: 11.1.1.5

Step 1: Download the following JDev extensions

1
bi-adf_bundle
Provides the ability to browse the BI Catalog through the JDeveloper resource catalog and add BI objects to an ADF page.
2
bi-adf-taskflow-extension_bundle
Provides the ability to browse the BI Catalog through the WebCenter resource catalog and add BI objects to a webCenter page.
3
bi-soap-cn_bundle
Provides the ability to create a BI Soap Connection.
4
bi-vo_bundle
Provides the ability to create a View Object that can query Oracle BI using logical SQL.
5
oracle.webcenter.customization_bundle
Provides design time capabilities for the WebCenter Customization Framework.
6
oracle.webcenter.framework_bundle
Provides design time capabilities for the WebCenter Framework and Services.

Links for download:

http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/131167.xml
http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/156082.xml

I know it is a quite a list - but can't get away from this :)

Step 2: Install these extensions to your JDeveloper

Help -> Check for Updates... -> Choose "Install From Local File" option, select the extensions one-by-one and let JDeveloper install them. JDeveloper will prompt for restarts for every extension install.

Step 3: After installing all the BI extensions, under the "Application Resources" panel of the ADF application (where you want to integrate the OBIEE reports), right click on the "Connections" -> "New Connection" -> "BI Presentation Services..."

Step 4: Provide the OBIEE analytics environment information in the wizard and proceed to complete connection creation. If you have not enable 'impersonation' in BI, change this option to 'false' in the following screen. Ensure that the connection is successfully established to the BI server.
Step 5: Now, this connection should appear automatically in the "IDE Connections" panel under the "Resource Pallete". This can be used to browse through the BI analytics for available dashboards/reports.
Now that the BI presentation services is available, all that remains is integrating the available BI reports into the ADF page

Step 6: First step towards ensuring that the ADF project is BI technology enabled. To do this, right click on the ADF project -> Project Properties

Under "Technology Scope" option ensure that the "Business Intelligence ADF View Components" is selected.
Step 7: We are almost there! Browse through the BI presentation services catalog from under the "Resource Pallete", drag & drop the required reports on to the ADF page.

Common Impediments & Resolutions:

I1: Unable to drag & drop the reports to ADF page

Resolution: Initially I was not able to drag and drop the BI reports on to the ADF page successfully. I had to manually include the following element to my ADF page source to force ADF to recognize the BI reports;

<adfbi:content id="content1" value="#{bindings.biExecBinding1}"/>

After doing this the BI technology binding was enabled on my ADF project. Then I removed the element which I added manually.

I2: At runtime, OBIEE reports were not displayed. The following error was reported on the ADF page;

Unable to connect to the BI Presentation Server. Please ensure that it is running, configured properly, and that the connection details within this application are correct.Please check the log file for more details.

The server logs reported the following error;

Cannot lookup the connection, BI using fallbacks[[
oracle.bi.presentation.soap.connection.BISoapException: No credentials found for this connection - please check that your connection credentials were deployed properly.
at oracle.bi.presentation.soap.connection.impl.BaseBISoapConnection.setReference(BaseBISoapConnection.java:216)
at oracle.bi.presentation.soap.connection.impl.RTBISoapConnection.(RTBISoapConnection.java:58)
at oracle.bi.presentation.soap.connection.BISoapConnectionFactory.getObjectInstance(BISoapConnectionFactory.java:715)
at oracle.adf.share.jndi.ReferenceStoreHelper.getObjectForReference(ReferenceStoreHelper.java:295)

................................................................................................
................................................................................................
................................................................................................
................................................................................................
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

Resolution: To resolve this error, ensure that the "Credentials" option is unchecked under the "Security Deployment Options" of the "Application Properties".
This config ensured that the credentials are not overwritten and are picked up from the cwallet.sso file under the EAR package. The issue was resolved and the BI reports were displayed on the ADF page as expected.

Write back if you have any thoughts/suggestions/clarifications :)

23 comments:

  1. Hi Sathyam,

    I followed the steps mentioned in the post to embed obiee reports in a ADF page, data is displaying fine but the style sheets are not getting displayed.My email address is reddysiebel@gmail.com, can you please send me an email so i can send the screen shots.

    Thanks,
    Sukumar

    ReplyDelete
  2. Hi Sathyam,

    Great post!

    But after disabling the credentials option I still get the same error: Cannot lookup the connection,BI Extension Services using fallbacks....

    What shoult it be?

    I really struggling with this since 1 week!

    Would be great to hear from you

    ReplyDelete
    Replies
    1. Are you able to establish connection successfully from your JDeveloper otherwise? ie., from Resource Palette?

      When I encountered this error, disabling 'Credentials' option worked just fine.

      Delete
  3. Hi Sathya,
    I have a new requirement to build an application which contains mostly OBIEE reports/dashboards and few ADF pages . The question is how to integrate these 2 technologies into 1 application with common security enabled.Please let me know the best way to proceed.
    Your response is highly appreciated.

    Thanks,
    Vishnu.

    ReplyDelete
    Replies
    1. Vishnu,

      Absolutely. You can follow the steps on the post to integrate ADF & BI technologies. If you want to have a secured communication, you must configure Oracle BI Presentation Services to communicate over SSL. You can refer to documentation for more details on how to do this. After integraion, your ADF application as such can be secured by ADF security. After all ADF security is built on top of OPSS. Hope this helps.

      Delete
  4. Hi Sathya, This is a great post. While developing Mobile App for OBIEE with Oracle ADF Mobile do what is the function of Oracle ADF, Do we still have to integrate ORACLE ADF and OBIEE and then use oracle ADF mobile to build the mobile app.

    REgards,
    Mainak
    mainakmitra.officemail@gmail.com

    ReplyDelete
  5. Hi Sathya,
    How to display Obiee reports in html/jsp with out using jdeveloper.


    Thanks,
    Aj

    ReplyDelete
    Replies
    1. Hi Lokesh,

      Absolutely. That is the beauty of open, standards-based, best-of-breed Oracle technology. Just ensure that your OBIEE reports are webservice enabled (through action link framwork) and consume it as any other normal webservice from your application.

      You will have to tackle the single-sign on using identity management software - like Oracle Adaptive Access Manager.

      Delete
    2. Hi Sathya ,

      I have created an analysis/dashborad in obiee and saved it.Can i see this analysis on my adf page by calling a webservice as you said.If yes can you guide me with the steps.I have seen that BI publisher has been exposed as webservice but in case of bi analytics i havent seen any webservice call which would fetch the analysis/dashboard created in BI Analytics

      Delete
  6. Really good piece of knowledge, I had come back to understand regarding your website from my friend Sumit, Hyderabad And it is very useful for who is looking for ORACLE ADF.

    ReplyDelete
  7. Hi I am getting this error on my page.
    Please help me with this.I have a sample adf application without any security .The same connection shows results on my adf page but when i try to show the analysis on other adf application where security is enabled, the following exception occurs.

    I am struggling since last week .Please guide me ...

    Cannot lookup the connection,BIPresentattion using fallbacks
    oracle.bi.presentation.soap.connection.BISoapException: javax.xml.ws.soap.SOAPFaultException: Authentication error. An invalid User Name or Password was entered.

    ReplyDelete
  8. Hi Sathya,
    Thank you for posting an article I'm struggling to find over the web!
    I'm trying to create a jsf page(jspx/jsp any page) which can display an OBIEE report.

    I have jdev v 12c.
    First I followed the steps to " Embedding Business Intelligence Objects in ADF Applications"
    as in Oracle link -
    http://docs.oracle.com/cd/E28271_01/bi.1111/e10545/embedding_adf.htm
    http://oraclebisolutions.blogspot.com/2013/02/obiee-11g-adf-integration.html

    I was able to connect to OBIEE presentation catalog and was able to drag the report into the jspx page.
    However the table does not have any formatting. No borders for the analysis etc. Plus I was not able to see any graphs in the analysis.

    I was hoping you knew of any steps or instructions I might be missing potentially.

    2. Then I followed the link - http://docs.oracle.com/cd/E28271_01/bi.1111/e10545/sql_bi_view_object.htm
    for - Using the Oracle BI EE Logical SQL View Object

    The website gave me the hint that this would help me display Analysis in table/graph format.

    However after following all the steps- I keep getting the error-

    <Failure occurred in the execution of deployment request with ID "1398699897845" for task "25". Error is: "weblogic.application.ModuleException: weblogic.common.resourcepool.ResourceSystemException: Cannot load driver class: oracle.bi.jdbc.AnaJdbcDriver"
    weblogic.application.ModuleException: weblogic.common.resourcepool.ResourceSystemException: Cannot load driver class: oracle.bi.jdbc.AnaJdbcDriver
    at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:338)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
    at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:172)
    at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:167)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
    Truncated. see log file for complete stacktrace

    I do not see any help anywhere for this error. Hope you have some insights-

    OBIEE - 11.1.1.7
    WebLogic Server Version: 10.3.6.0
    JDEV 12c
    Studio Edition Version 12.1.2.0.0
    Build JDEVADF_12.1.2.0.0_GENERIC_130608.2330.6668
    Added all the extensions required/ described

    I tried with JDEV 11g as well to get same errors.
    Studio Edition Version 11.1.1.7.0
    Build JDEVADF_11.1.1.7.0_GENERIC_130226.1400.6493

    Any help is highly appreciated.

    ReplyDelete
    Replies
    1. Amit,

      First observation is that you are using JDev 12c and this post clearly defines the version of each product and extension used. Also all your documentation references are for 11g. Please use the recommended product versions as stated in the documentation and follow this post for any guideline/help. Hope that helps.

      Delete
  9. Hi Sathya,

    I am getting same error what Amit has mentioned in previous post when security is configured. Can you please help me out. Thanks in advance.

    ReplyDelete
    Replies
    1. I haven't tried this on secured ADF applications. Can you please post this on forums.oracle.com to seek resolution. I would also appreciate if you could post resolution (if any) on this post so it would be helpful for others. Thanks!

      Delete
  10. Hi Satya,

    I am also getting same issue for secured application what Amit has mentioned above. Can you please help. I am getting below issue.

    Unable to connect to the BI Presentation Server. Please ensure that it is running, configured properly, and that the connection details within this application are correct.javax.xml.ws.soap.SOAPFaultException: Authentication error. An invalid User Name or Password was entered.

    ReplyDelete
  11. Hi,

    I have integrated OBIEE contents into my ADF page and deployed it on server. when i open the page through HTTP URL it works fine and get me proper data.

    But when i use HTTPS URL to open my ADF page, my browsers block the OBIEE contents and then i have to click on "Load Unsafe scripts" to open the OBIEE contents. This has to be done each time i open the page.

    ReplyDelete
  12. I am trying to integrate ADF and OBIEE in jdeveloper using BI Presentation Service. But it show the following error :

    Dec 29, 2014 2:57:38 PM oracle.bi.presentation.soap.connection.impl.LogonTokenImpl
    SEVERE: Perform impersonation was enabled for the BI Presentation Services SOAP connection, but there was no logged in user!

    And in Test Connection it shows the following Error:
    Connection attempt failed.
    com.sun.xml.ws.client.ClientTransportException: The server sent HTTP status code 404: Not Found: http://dev2.corp.ecubein:9704/analytics-ws/saw.dll?SoapImpl=nQSessionServic

    ReplyDelete
  13. Hi Satyam,

    I was able to integrate OBIEE with WC-Portal successfully and also showing the dashboard with grids/tables/Charts.
    But Maps are not getting shown, instead seeing the below message :
    "Unable to download resource files from Oracle Fusion Middleware MapViewer. Please contact your administrator if this problem persists".

    Can you help me please.

    ReplyDelete
  14. Sathyam :(

    WebCenter extension is not available for my J Dev Version 11.1.2.2.0.

    ReplyDelete
  15. Hi Lakshmi Vara Prasad Hari,

    Did you got any solution for your problem, I am still facing the same problem.

    ReplyDelete
  16. Hi,

    I did exactly as mentioned and was able to pull dashnoards and individual analysis, however if i want to build a complete dashboard that is pull prompts and analysis i was not able to do that. In the folder i can see only dashboards and analysis, no prompts. Is there something that can be done fof the same.

    ReplyDelete
  17. Hi Sathya,

    I am currently using oracle ADF 12c, in which I was not able to perform the step 6 mentioned by you(The problem is Technology Scope is not there in project properties). I am able to add new BI connection under Application Resources.But the reports created under the BI publisher are not getting displayed. Can someone help me to resolve this.

    ReplyDelete