BI Publisher Best Practices
BI Publisher Best Practices
BI Publisher Best Practices
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 decision. The development, release, and timing of any features or functionality described for oracle's products remains at the sole discretion of oracle.
Program Agenda
Oracle BI Publisher Enterprise Overview
Report Design Best Practices
Data Modeling Guidelines Template Design Guidelines Reporting Guidelines
Q&A
Checks
One Environment
Author Generate Deliver
Benefits
Eliminate complexity Simplify report
Destinations
Reports
Labels
Printer
XSL
Layout Template Types Layout Editor MS Word MS Excel Adobe Flex XSL
OLAP
Web Services
EFT
e-Commerce
Data Sources
6 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
Output Formats
Destinations
Architecture
BI Publisher
Web server
BI Publisher
Web server
BI Publisher
Fax
Printer Q.
Printer
Job Q
Report Q BIP System Topic
JMS Resources
Email Q.
Email
FTP Q. WebDav Q.
Repository
File Q.
File system
Scheduler database
Program Agenda
Oracle BI Publisher Enterprise Overview
Report Design Best Practices
Data Modeling Guidelines Template Design Guidelines
Q&A
10
Data Generation
Data Sources
Data Source Types
File (XML) SQL Query MDX Query
LDAP Query
Excel Spreadsheet HTTP (XML Feed) Web Service Oracle BI Analysis
11
Data Generation
Connection Types
JDBC Vs JNDI (SQL Type)
Both types of connection use
1
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
BI Publisher
WebLogic Server
with SQL type LOVs attached to them Better RDBMS resource management
12
Data Generation
Scalable Mode
Enable for large reports
Slower performance, but
reports
13
14
(when possible)
Join data Filter & group data Perform expensive calculations & data
of extracting data directly from the source systems Use BI Server Logical SQL instead of Answers/Analysis
20 Vs 20,000 records
15
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)
16 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
17
displayed in the report Use short XML tag names they reduce the size of XML data file Use display names to simplify template design Create global & group-level aggregate functions for best performance, create them in data model instead of report layout Pre-sort data Note: Grouping data in data model automatically sorts data by the grouping element Bursting It also requires that data in the XML is sorted (or grouped) by the split-by key.
18
Program Agenda
Oracle BI Publisher Enterprise Overview
System Configuration Guidelines
Q&A
19 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
Easy to create w/ BI Publisher Template Builder Add-in to Word Greatest flexibility and functionality for highly formatted reports RTF marked up with XSL code or BI Publisher simplified XSL Wide range of output (PDF, HTML, Excel, PPT, RTF, MHTML)
Web based Layout Editor no client installation required Best for Management Report WYSIWIG experience Support Interactive Output Wide range of output (PDF, HTML, Excel, PPT, RTF, MHTML)
Excel Templates
Excel w/ data mapped to named cells & Excel and XSL formatting Great for formatted, true Excel output and burst over sheets Excel XLS output only
20
e-Text Templates
SWF files with BI Publisher data for sophisticated interactivity Create in Adobe Flex Builder
Allows for third party tools and legacy solutions
Not recommended (deprecated) Excel output only. Can refresh data w/ parameters.
21
can be fixed
Do NOT put large tables (Perform.)
22
23
report
24
Field Browser Can be colored or hidden to help understand the structure Caveat: Word header & footer dont allow form fields
25
between templates In 11g use Style Templates to control the template styles
26
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
27
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
28
(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
29
<?DEPARTMENT_NAME?>
<?DEPARTMENT_NAME?> is translated to the XPATH
.//DEPARTMENT_NAME
.//DEPARTMENT_NAME searches for
30
use <?for-each:/DEPT_SALS/DEPT?>
Instead of <?DEPARTMENT_NAME?>
use <?./DEPARTMENT_NAME?>
For large documents that dont fit into memory
the search requires disk access For small documents the search time is negligible
31 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
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.
32
33
http://www.oracle.com/technetwork/middleware/bi-publisher/overview/index.html
35
Q&A
36
37
38
APPENDIX
39
Resources
http://www.oracle.com/technetwork/middleware/bi-enterprise-edition/bi-11gr1certmatrix-166168.xls
High availability white paper
http://www.oracle.com/technetwork/middleware/bi-publisher/bip-cluster-deployment-366859.pdf
Sizing Spreadsheet for BI Publisher Enterprise 10g
http://wiki.opensymphony.com/display/QRTZ1/ConfigJDBCJobStoreClustering
CPU Ratings
http://www.spec.org/cpu2006/results/cpu2006.html#SPECint_rate
40
41
FO processing
42
Report-level Properties
Edit Report > Properties > Formatting
43
Report-level Properties
Viewing Reports Online
Report Editor Report Viewer
44
Report-level Properties
Viewing Reports Online
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 (11g only) Disable for better performance if data can be shared across users Cache Duration (11g only)
45
But in many cases you are better off using different names e.g. S_CITY and B_CITY
46
number exception
Missing fields do not cause an issue with XSL for example a print
layer of complexity; they are not supported in the BI Publisher Layout Editor
47
Answers Request and paste into the Query Builder text area
48
49
50