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
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;
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)
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 :)
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.
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;
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.
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)
Write back if you have any thoughts/suggestions/clarifications :)