Our Blog
OBIEE and BI Publisher

The purpose of this document is to outline the process to build/create BI publisher reports using OBIEE as data source that has been set up at my client place to deliver the reports in the form of PDF and CSV. Assuming readers of this document are familiar with integrating OBIEE with BI Publisher. Oracle BI Publisher Integration offers easy and flexible reports development for highly formatted reports, Scheduling and delivery , generating report outputs in a wide range of formats. After configuring Oracle BI Server Security Model under Security Configuration in BI Publisher by login as Admin user the next step would be adding Data Source. In order to add data source here are the steps as follows

 

1. Login as Admin user in Oracle BI Publisher, go to Admin -> Data Sources -> JDBC Connection - > Add Data Source and configure settings

 

 

Where Database Driver Class is BI_SERVER_SECURITY_DRIVER value in xmlp-server-config.xml file(OracleBI\xmlp\XMLP\Admin\Configuration).

 

And Connection String is BI_SERVER_SECURITY_URL value in xmlp-server-config.xml file. Here the value is jdbc:oraclebi://hostname:port number/

 

Create/Develop BI Publisher Report:

1: Data Template:- Data Template is simply the sql Query with XML tags included, which is one of the best functionality to generate simple to complex XML in very proficient and scalable manner. Sample Data Template shown below

 

 

2: Parameters:- Used parameters within Data template query to limit the output.

 

3: Layouts:- There are various out put formats available to view the data. Ex: PDF, CSV, HTML etc.

 

4: RTF & eText Templates:- Build RTF template using BI Publisher’s MS-Word ad-in feature and feed the XML data generated by Data template and upload to BI Publisher’s Report to get PDF output and the same way build the eText Template and upload to the report to get CSV format output as shown below screens.

 

 

 

Bursting: We used bursting feature at our client place to burst multiple plans using Bursting Query. With this feature we can split a single report based on a key in the report data and deliver the report based on a second key in the report data. For each and individual plans there are number of reports associated, data will be spitted by using two result sets SPLIT BY and DELIVER BY.

 

Where Split By element is the data element from the report file that you wish to split the report by

The Deliver By element is the data element from the report file by which to determine the delivery method. Example here is based on Plan_Dates, where Plan_Dates is data base column

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


There are few things which are considered for better performance:
  • Try to use JDBC/JNDI connection to go directly against BI Server to use OBIEE data source instead of using Answers Request as a data source. If Answers as data source needed then copy the code generated by answers request and paste it into query builder in BI Publisher
  • Include most of the simple to Complex logic within Data Template query only and try to limit logic in RTF templates
  • Advisable to set scalable mode property to ON while developing Data template to prevent exceptions due to high volume of data or out of memory.

  • <properties>
    <property name="scalable_mode" value="on" />
    </properties>

  • Use short element names to reduce XML file size that would be useful for large data sets. And Avoid empty tags in the XML as summations over fields that contain empty tags may fail with a ‘not a number’ errors.
  • Take advantage of scheduling to run reports simultaneously and disable AUTO RUN and RUN REPORT ONLINE options under BI Publisher report properties