Oracle Business Intelligence Publisher Overview & Best Practices Pradeep Sharma Senior Principal Product Manager Business Intelligence Kevin McDermott Senior Principal Technical Support Engineer Oracle Oct 02, 2014
Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle.
Program Agenda 1 2 3 4 5 Oracle BI Publisher Overview Easier, Better Managed & Faster BI Publisher Best Practices Data Model Design Best Practices Layout Design Best Practices
Program Agenda 1 2 3 4 5 Oracle BI Publisher Overview Easier, Better Managed & Faster BI Publisher Best Practices Data Model Design Best Practices Layout Design Best Practices
Oracle BI Publisher Overview
Oracle BI Publisher Enterprise Single Solution Environment One Environment Author Generate Deliver Benefits Eliminate complexity Simplify report development & maintenance Reduce costs Delivery Invoices Labels Checks XML/EFT/EDI Reports
BI Publisher For All Your Reports Invoices
BI Publisher For All Your Reports Invoices Correspondence
BI Publisher For All Your Reports Invoices Correspondence Purchase Orders
BI Publisher For All Your Reports Invoices Correspondence Purchase Orders Shipping Labels
BI Publisher For All Your Reports Invoices Correspondence Purchase Orders Shipping Labels Govt. Forms
BI Publisher For All Your Reports Invoices Correspondence Purchase Orders Shipping Labels Govt. Forms EFT & EDI
BI Publisher For All Your Reports Invoices Correspondence Purchase Orders Shipping Labels Govt. Forms EFT & EDI Checks
BI Publisher For All Your Reports Invoices Correspondence Purchase Orders Shipping Labels Govt. Forms EFT & EDI Checks Operational Reports
BI Publisher For All Your Reports Invoices Correspondence Purchase Orders Shipping Labels Govt. Forms EFT & EDI Checks Operational Reports Financial Statements
BI Publisher For All Your Reports Invoices Correspondence Purchase Orders Shipping Labels Govt. Forms EFT & EDI Checks Operational Reports Financial Statements Interactive Reports
Oracle BI Publisher Enterprise Interactive Oracle, Oracle BI EE, Oracle BI Apps SQL Server E-Business Suite, PeopleSoft, Siebel, JDE, Primavera Layout Template Types XSL PDF HTML Excel PPT Flash RTF Email Printer Fax OLAP Web Services Layout Editor MS Word MS Excel Adobe Flex XSL Layout Design Tools CSV XML EDI EFT Repository e-commerce Data Sources Output Formats Destinations
Oracle BI Publisher Enterprise BI Publisher
Program Agenda 1 2 3 4 5 Oracle BI Publisher Overview Easier, Better Managed & Faster BI Publisher Best Practices Data Model Design Best Practices Layout Design Best Practices
Easier, Better Managed & Faster
BI Publisher: Easier to Implement Easier Challenge Purchase Orders for 50 Operating Units across the globe Vendor Country Terms & Conditions 90 days and 3 people (incl. 3 rd party vendor) to implement POs Solution BI Publisher ease of development 3 days and 1 person to implement POs Benefits 12x faster implementation w/ 1/3 fewer people Over 90% reduction in turn around time End-to-End process using out of the box functionality Oracle Confidential Internal 22
BI Publisher: Better Managed Better Managed Challenge Over 200 Crystal Reports Cumbersome report repository frustrated users and IT staff Duplicate reports with minor layout changes and to support multilanguage Solution BI Publisher s separation of 3 Layers (Data, Layout & Translation) 3 days and 1 person to implement POs Benefits Now only 30 Publisher reports (85% reduction) 3 months w/ one f/t report developer End Users and IT staff very happy Oracle Confidential Internal 23
BI Publisher: Faster Faster Challenge Generates 100,000 Enrollment Forms in 48 hours.net server taking 24 hrs to generate 4,000 Forms 24.NET servers & 15 people to monitor and resubmit failures Solution High performance of BI Publisher reports Scalable Enterprise Server Architecture Benefits Now generates 100,000 Forms in 3 hours 1 BI Publisher Server, 2.NET 8 X Faster 1 / 8 Fewer no. of Servers Oracle Confidential Internal 24
Program Agenda 1 2 3 4 5 Oracle BI Publisher Overview Easier, Better Managed & Faster BI Publisher Best Practices Data Model Design Best Practices Layout Design Best Practices
BI Publisher Best Practices
BI Publisher Best Practices Separate data logic, layout & translation benefits Benefits Greater flexibility and reuse Fewer reports and better report maintenance Optimize data extraction and document generation process Data Logic Layout Translation BI Publisher Report output
BI Publisher Best Practices BI Publisher Sizing Sizing Questionnaire Portal Log on to Sizing Questionnaire Portal using URL: https://apex.oracle.com/pls/apex/f?p=oraclesizingtool_ww:upd Follow the steps: STEP 1:Request one or more sizing questionnaires using the form. STEP 2:When you receive our email(s) with your questionnaire, follow the included instructions to complete the sizing exercise. STEP 3:An Oracle representative will contact you to discuss the results.
BI Publisher Best Practices BI Publisher Sizing Sizing Email with Attachment STEP 1:Save the attachment to your hard drive and rename the extension from ".zippy" to ".zip". STEP 2:Unzip the file. It will create a new directory with the questionnaire. STEP 3:Run the flash client executable (.exe for Windows or.app for Mac) to open up the sizing questionnaire client. STEP 4:Fill out this questionnaire as completely as possible.
BI Publisher Best Practices BI Publisher Sizing Send Email STEP 5:Fill in your Oracle Sales representative (with correct email address) and click the Email button. A completed email will be created in your default email client, simply send the email as created. STEP 6:Your Oracle representative will contact you to discuss the results.
BI Publisher Best Practices BI Publisher Sizing 1 Description Concurrent Usage 1 Description Bursting Usage Users viewing reports online Scheduled Jobs running at the same time Bursting reports 2 Factors to Consider 2 Factors to Consider Number of users viewing Small, Medium, Large, XLarge reports Number of CPUs /server Total Number of reports Time window % of Small, Medium, Large reports Number of CPUs/Server
BI Publisher Best Practices BI Publisher Sizing My Oracle Support Note 948841.1
BI Publisher Best Practices High Availability Architecture When BI Publisher Enterprise is Deployed as Standalone Oracle BI Publisher supports an active-active high availability configuration. Each node acts as an independent server that shares a common repository and the scheduler database with the other Oracle BI Publisher nodes. Refer to Oracle Fusion Middleware High Availability Guide 11g Release 1 (11.1.1)
BI Publisher Best Practices High Availability Architecture When BI Publisher is deployed along with OBIEE and other products in BI Suite. Refer to Oracle Fusion Middleware High Availability Guide 11g Release 1 (11.1.1)
BI Publisher Best Practices Scheduler Architecture Client Client Web server/jms Provider (Web Logic, Active MQ) FAX Q. Fax Web server BI Publisher Web server BI Publisher Job Q Report Q Printer Q. Email Q. FTP Q. Printer Email BIP System Topic WebDav Q. Repository JMS Resources File Q. File system BI Publisher Reports Repository Scheduler database
Program Agenda 1 2 3 4 5 Oracle BI Publisher Overview Easier, Better Managed & Faster BI Publisher Best Practices Data Model Design Best Practices Layout Design Best Practices
Data Model Design Best Practices
Data Model Design Best Practices Data Source Types SQL Query MDX Query Oracle BI Analysis View Object Web Service LDAP Query XML File Microsoft Excel File CSV File HTTP (XML Feed) Oracle Endeca Query
Data Model Design Best Practices JDBC vs JNDI to Connect to Database Both types of connection use the same JDBC driver With JNDI you can take advantage of connection pooling Better performance Connection already established to the source Best practice for reports with many parameters with SQL type LOVs attached to them Better RDBMS resource management 2 1 WebLogic Server
Data Model Design Best Practices Enable Scalable Mode Enable for large reports Slower performance, but prevents out-ofmemory errors Use with scheduled reports
Data Model Design Best Practices Leverage Database Capabilities Leverage back-end system resources (whenever possible) Join data Filter & group data Perform expensive calculations & data transformations Sort data Select t."office_dsc" as "Office" sum(f."revenue") as Sales Sum" From "BISAMPLE"."SAMP_REVENUE_F f "BISAMPLE"."SAMP_OFFICES_D t Where t."office_key"=f."office_key" group by t."office_dsc" 20 Vs 20,000 records
Data Model Design Best Practices Report Data & LOV Caching Report Data Cache LOV Parameter Cache
Data Model Design Best Practices Pass Null Value when User selects All in LOV For large LOVs, pass NULL to the parameter when users select All & modify WHERE clause in Data Set query to use the NVL function. For example: Where order_id=nvl(:p_ordid, order_id)
Data Model Design Best Practices Data Triggers Before Data Triggers Generate dynamic SQL Populate TEMP tables Set user context After Data Triggers Insert rows to a target table Send notifications Clean or delete TEMP tables Select EMPLOYEE_ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY from employees where &p_where_clause
Data Model Design Best Practices Schedule Trigger Data Model Designer creates Data Model with schedule trigger Triggers can be created and shared from a single data model Users create scheduled jobs and determine window of time to check for condition Reports execute when condition is true or are skipped VALUE: Users can schedule reports to execute based on an event or condition over a window of time.
Data Model Design Best Practices Data Structure Structure data for the report Use short XML tag names Use display names Create global & group-level aggregate functions Pre-sort data (preferably at the source)
Program Agenda 1 2 3 4 5 Oracle BI Publisher Overview Easier, Better Managed & Faster BI Publisher Best Practices Data Model Design Best Practices Layout Design Best Practices
Layout Design Best Practices
Layout Design Best Practices Choose the right Template Type BI Publisher Template RTF Templates Excel Templates Web based Layout Editor no client installation required Best for Management Report WYSIWIG experience Interactive Output Wide range of output (PDF, HTML, Excel, PPT, RTF, MHTML) Easy to create using Template Builder MS Word Add-in Extensible to use XSL code syntax within BI Publisher Code Syntax Wide range of output (PDF, HTML, Excel, PPT, RTF, MHTML) Excel w/ data mapped to named cells & Excel and XSL formatting Great for formatted, true Excel output and burst over sheets Only XLS output
Layout Design Best Practices Choose the right Template Type PDF Templates e-text Templates Flash Templates XSL Style Sheets PDF forms with XML elements mapped to form fields. Directly use Government Forms as Template PDF output only Use Acrobat Professional to Create/Edit Template Text output only for electronic communication Great for character delimited or fixed position docs (EFT & EDI) RTF with table of statements to place fields and separators SWF files with BI Publisher data for sophisticated interactivity Create in Adobe Flex Builder Allows for third party tools and legacy solutions
Layout Design Best Practices BI Publisher Template Use Layout Grids to position components similar to tables in RTF Templates Layout Grids can be nested Layout Grid Cell can be joined The minimum height of rows can be fixed DO NOT put LARGE tables or pivot tables into Layout Grids (Performance!)
Layout Design Best Practices BI Publisher Template The Interactive Viewer is one of BI Publisher s most promising new features Interactivity works best for flat tables or simple nested masterdetail data sets Unrelated queries or groups can not interact Disable interactions for unrelated queries in the Configure Events Dialog BAD: Country on two branches Data G1 Country Revenue G2 Country Cost GOOD: Country in common parent Data G1 Country G2 Revenue G3 Cost
Layout Design Best Practices RTF Template Use tables to control precisely where field data will be placed in the report
Layout Design Best Practices RTF Template Use Form Fields Keep the template clean Supported by the Template Builder Field Browser Can be colored or hidden to help understand the structure Caveat: Word header & footer don t allow form fields
Layout Design Best Practices RTF Template Use Style Templates Achieve consistency in the template and between templates In 11g use Style Templates to control the template styles
Layout Design Best Practices RTF Template Do Not Over Complicate your Layout Template Design Keep it easy to understand, debug and maintain In general better to have different business documents in different templates Try to limit the logic in templates to simple if or loop statements Use sub templates to simplify documents if necessary Many calculations are better performed in the data model
Layout Design Best Practices RTF Template Use XPATH BI Publisher uses XPATH to access data elements DEPARTMENT_NAME is inserted in the template as <?DEPARTMENT_NAME?> <?DEPARTMENT_NAME?> is translated to the XPATH.//DEPARTMENT_NAME.//DEPARTMENT_NAME searches for DEPARTMENT_NAME in the complete sub-tree starting from current context
Layout Design Best Practices RTF Template Use XPATH Use the full relative path for large datasets Instead of <?for-each: DEPT?> use <?for-each:/dept_sals/dept?> Instead of <?DEPARTMENT_NAME?> use <?./DEPARTMENT_NAME?> For large documents that don t fit into memory the search requires disk access For small documents the search time is negligible
Layout Design Best Practices RTF Template XPATH Tuning Start with the outer loops and outer most data access Reducing full tree searches will provide bigger improvements than optimizing access in a small subset of the data Fixing the XPATH in a single for-each loop may be all the performance tuning you need to do Tables LARGE tables that span hundreds of pages consume considerable server resources. If possible group the data and create a table inside each grouping. Do not nest LARGE tables into tables.
Layout Design Best Practices RTF Template Sorting & Grouping Better to Sort data in the data model Group By <?for-each-group?> will force the XSL engine to sort data Checking Data already sorted option in the Table Wizard will not re-sort data (good thing)
Layout Design Best Practices RTF Template Handling Large Outputs Make use of Reuse Static Content for reports with alternate page with fine prints Zipped Output format
Relationship: Benefits vs. Risk Analysis Benefits Risks 1 Benefit here 1 Risk here Details here Details here Details here Details here 2 Benefit here 2 Risk here Details here Details here Details here Details here 3 Benefit here 3 Risk here Details here Details here Details here Details here Oracle Confidential Internal 64
Q&A 65
Stay Connected with BI Publisher http://www.oracle.com/technetwork/middleware/bi-publisher/overview/index.html 66
Appendix
Resources Certification matrix (11.1.1.x) System Requirements and Supported Platforms for Oracle Business Intelligence Suite Enterprise Edition 11gR1 (11.1.1.3.0-11.1.1.6.0) http://www.oracle.com/technetwork/middleware/bi-enterprise-edition/bi-11gr1certmatrix-166168.html System Requirements and Supported Platforms for Oracle Business Intelligence Suite Enterprise Edition 11gR1 (11.1.1.7.0) http://www.oracle.com/technetwork/middleware/bi/bi-11gr1certmatrix-ps6-1928219.xls High availability white paper http://www.oracle.com/technetwork/middleware/bi-publisher/bip-cluster-deployment-366859.pdf QUARTZ Scheduling (clustering) wiki page http://wiki.opensymphony.com/display/qrtz1/configjdbcjobstoreclustering
BI Publisher Best Practices Installation Requirements System Requirements Disk Space: 20GB or more Available Memory (RAM): 4GB or more Temp Space: 950MB or more Swap Space: 3GB or more CPU: dual-core Pentium, 1.5GHz or greater Oracle Fusion Middleware Installation Guide for Oracle Business Intelligence 11g Release 1 (11.1.1) Part Number E10539-02 Database Requirements Disk space requirements for the database containing the Oracle Business Intelligence Scheduler database tables. 500MB on Oracle and Microsoft SQL Server databases for standalone and Business Intelligence applications and deployments. 500MB on IBM DB2 databases for standalone deployments.
BI Publisher Best Practices Recommended Configuration JVM settings & JDK version 64 bit JVM/JDK (on a 64 bit OS) JDK version 1.6 (update 2) or higher Memory (RAM for the JVM) 8 GB on 64 bit JVM is recommended for large, high volume use 2 GB on 32 bit OS suitable for small to mid volume deployments (2gb limitation for JDK on win OS) Storage Repository: Varies. 30 GB Hard disk space (must be shared for cluster) Temp Space: 20 GB (for document processing) not shared
BI Publisher Best Practices Server Configuration Scalable threshold (in bytes) Cache expiration (in min) Cache size limit (# of datasets) Maximum cached reports Database Fetch Size Default values
BI Publisher Best Practices Runtime Configuration Properties Bursting (10g only) Enable multithreading Default: False* Thread count Default: 2* FO processing Use BI Publisher s XSLT processor Default: True Enable scalable feature of XSLT processor Default: False* Pages cached during processing Default: 50 Enable multithreading Default: False* FO Parsing Buffer Size Default: 1000000* Enable XSLT runtime optimization Default: True
BI Publisher Best Practices Report Properties
BI Publisher Best Practices Report Properties For long running reports Take advantage of scheduling and disable Run Report Online. Report Editor Report Viewer
BI Publisher Best Practices Caching Report Editor Enable Data Caching Saves XML data for reuse up to the Cache Expiration threshold Improved performance with different template/output format Not recommended for real-time data Enable Document Caching Better performance Consumes more Temp storage space User Level Disable for better performance if data can be shared across users Cache Duration
Data Model Design Best Practices Element Naming Avoid re-using the same name for element names; it can cause confusion in template design. For example, CITY under SHIPPING_ADDRESS and BILLING_ADDRESS. But in many cases you are better off using different names e.g. S_CITY and B_CITY For reports that generate large data sets using 2 or 3 character names for elements can have a large impact on performance and size. Ex: a1, a2,
Data Model Design Best Practices Null Elements & XML Attributes Avoid generating empty tags in the XML Aggregation over fields that contain empty tags will fail with a not a number exception Missing fields do not cause an issue with XSL for example a print statement will just return an empty string Avoid XML attributes They are supported in both RTF & Excel templates but they add an extra layer of complexity; they are not supported in the BI Publisher Layout Editor
Data Model Design Best Practices OBIEE Data Source If possible use SQL/JDBC against BI Server instead of using an Answers Request as a data source Tip: Copy the SQL in an Answers Request and paste into the Query Builder text area
Layout Design Best Practices Sub Templates What is a sub template? A document that contains layout and or code that can be defined once and used multiple times Multiple functions (called templates in XSL) or text segments can be defined in a single sub template file Sub template types XSL sub templates for code re-use or separation RTF sub templates for layout re-use Caveat: Use of RTF sub templates makes it harder to understand the template structure
Layout Design Best Practices Sub Templates RTF sub templates Re-use common layouts such as terms and conditions Internationalized address block XSL sub templates Transformations for complex chart requirements Dynamically apply formatting to a portion of data (e.g. sub scripting / super scripting / chemical formula) Print formatted XHTML data convert to FO using sub template (as used in Oracle Contracts) (11.1.1.6 supports HTML in data) Starting w/ 11.1.1.3 we recommend using Style Templates for Header / Footer instead of RTF Sub Template