Learn how Oracle BI Publisher bursting works step by step. Understand Split By, Deliver By, bursting SQL, KEY, TEMPLATE, OUTPUT_FORMAT, DEL_CHANNEL, email parameters, runtime flow, examples, and common mistakes.
Oracle BI Publisher bursting can look confusing when you see it for the first time.
You create a report, add a bursting query, configure Split By and Deliver By, return columns such as KEY, TEMPLATE, OUTPUT_FORMAT, and DEL_CHANNEL—and somehow BI Publisher creates multiple files and sends each one to the correct person.
The good news is that the basic idea is much simpler than it looks.
BI Publisher bursting means running the report data query once, splitting the generated data into multiple sections, creating a separate output for each section, and delivering each output according to its own delivery rules.
A common example is a monthly payslip report.
Instead of running the report separately for 1,000 employees, BI Publisher can:
Run the report query once.
Generate data for all employees.
Split the data by employee.
Create one PDF per employee.
Email each PDF to the correct employee automatically.
This guide explains the complete process from a beginner's point of view.
What Is BI Publisher Bursting?
Bursting is a feature in Oracle BI Publisher that allows one report execution to produce multiple personalized outputs.
Imagine that a report returns this data:
| Employee ID | Employee Name | Net Salary | |
|---|---|---|---|
| 1001 | Rahul | rahul@company.com | 75,000 |
| 1002 | Priya | priya@company.com | 82,000 |
| 1003 | Arjun | arjun@company.com | 68,000 |
Without bursting, you might generate one report containing all three employees.
With bursting, BI Publisher can create:
Employee_1001.pdf → rahul@company.com
Employee_1002.pdf → priya@company.com
Employee_1003.pdf → arjun@company.comThe same concept can be used for:
employee payslips
customer invoices
purchase orders
supplier statements
department reports
cost center reports
manager-wise reports
country-wise reports
legal entity reports
The key benefit is that you do not need a separate report execution for every recipient.
Why Do We Use Bursting?
Bursting is useful when the same report structure must be generated for many groups or recipients.
For example, suppose an organization has 5,000 employees.
Running the payslip report 5,000 times would be inefficient.
Instead, BI Publisher can execute the report data query once and then split the resulting data into employee-wise sections.
Each section can have its own:
template
locale
output format
file name
delivery channel
recipient
email subject
email body
destination
This makes bursting useful for high-volume automated report distribution.
The Three Main Parts of Bursting
For a beginner, it is easiest to think of bursting as three components.
1. Report Data
This is the normal BI Publisher data model query.
It fetches the actual business data that will appear in the report.
For a payslip report, it may return:
Employee
Salary
Allowances
Deductions
Tax
Net Pay
Email AddressThe data should be sorted or grouped by the element that you want to use for splitting.
For example:
EMPLOYEE_ID2. Bursting Definition
The bursting definition tells BI Publisher:
where to split the report
how to identify the delivery rule
which SQL query contains the formatting and delivery information
The most important settings are:
Split By
Deliver By
Delivery SQL3. Bursting Query / Delivery SQL
The bursting query does not normally return the report's business data.
Instead, it returns instructions telling BI Publisher how each section should be generated and delivered.
Typical columns include:
KEY
TEMPLATE
LOCALE
OUTPUT_FORMAT
DEL_CHANNEL
OUTPUT_NAME
SAVE_OUTPUT
PARAMETER1
PARAMETER2
...
PARAMETER10Think of this query as the delivery instruction table for the bursting engine.
Split By vs Deliver By
This is one of the most common areas of confusion.
Split By
Split By tells BI Publisher:
Which element should be used to divide the report data into separate sections?
For an employee payslip report:
Split By = EMPLOYEE_IDIf the XML contains 1,000 different employee IDs, BI Publisher can create 1,000 logical sections.
Deliver By
Deliver By tells BI Publisher:
Which element should be used to find the formatting and delivery rule for each section?
For a simple payslip report:
Deliver By = EMPLOYEE_IDIn many implementations, Split By and Deliver By use the same element.
But conceptually they have different responsibilities.
Split By → controls data splitting
Deliver By → controls delivery-rule matchingWhy Does KEY Matter?
The bursting query returns a column named:
"KEY"Oracle BI Publisher uses this value to match the bursting delivery rule to the corresponding Deliver By value.
For example:
Report section Deliver By = 1001
Bursting SQL KEY = 1001That is how BI Publisher knows which delivery instructions belong to employee 1001.
A very important rule is:
The value returned in
KEYmust match the Deliver By value for the corresponding report section.
How BI Publisher Bursting Works at Runtime
Now let us look at the complete runtime flow.
Step 1: The User Runs or Schedules the Report
The report can be executed manually or through a scheduled BI Publisher job.
Step 2: BI Publisher Runs the Report Data Query
The report query generates the XML data.
For example:
<EMPLOYEE>
<EMPLOYEE_ID>1001</EMPLOYEE_ID>
<EMPLOYEE_NAME>Rahul</EMPLOYEE_NAME>
<NET_PAY>75000</NET_PAY>
</EMPLOYEE>
<EMPLOYEE>
<EMPLOYEE_ID>1002</EMPLOYEE_ID>
<EMPLOYEE_NAME>Priya</EMPLOYEE_NAME>
<NET_PAY>82000</NET_PAY>
</EMPLOYEE>Oracle documentation describes bursting as generating the report data by executing the query once and then splitting that data based on a key.
Step 3: BI Publisher Splits the Data
Suppose:
Split By = EMPLOYEE_IDBI Publisher identifies separate sections:
1001
1002
1003
...Each section can become an individual document.
Step 4: BI Publisher Runs the Bursting Query
The bursting query returns one or more rows containing the formatting and delivery instructions.
Example:
| KEY | TEMPLATE | OUTPUT_FORMAT | DEL_CHANNEL | PARAMETER1 |
| 1001 | Payslip Layout | rahul@company.com | ||
| 1002 | Payslip Layout | priya@company.com |
BI Publisher matches:
Deliver By value ↔ KEYStep 5: BI Publisher Generates the Output
For every matched section, BI Publisher applies the requested:
layout
locale
output format
file name
For example:
1001 → Payslip Layout → PDF
1002 → Payslip Layout → PDFStep 6: BI Publisher Delivers the Output
Finally, the document is sent using the configured delivery channel.
Depending on configuration and BI Publisher version, common delivery methods include:
EMAIL
FILE
FTP
PRINT
WEBDAV
FAXSFTP is typically handled through the FTP delivery configuration with secure FTP settings.
The final result may look like:
EMP 1001 → PDF → rahul@company.com
EMP 1002 → PDF → priya@company.com
EMP 1003 → PDF → arjun@company.comWhat Is the Bursting Query?
The bursting query is a SQL query defined inside the bursting definition.
Its purpose is to provide BI Publisher with the information required to format and deliver each burst section.
A simplified structure looks like this:
SELECT
employee_id AS "KEY",
'Payslip Layout' AS TEMPLATE,
'en-US' AS LOCALE,
'PDF' AS OUTPUT_FORMAT,
'EMAIL' AS DEL_CHANNEL,
employee_email AS PARAMETER1
FROM employee_delivery_dataThis query tells BI Publisher:
For this KEY
→ use this layout
→ generate this format
→ use this delivery channel
→ send it to this destinationImportant Bursting Query Columns
Here are the most important columns a beginner should understand.
| Column | Purpose |
KEY | Delivery key. Must match the corresponding Deliver By value. |
TEMPLATE | Name of the BI Publisher layout to apply. |
LOCALE | Template locale, such as en-US. |
OUTPUT_FORMAT | Output format such as PDF, EXCEL, CSV, HTML, XML, or RTF. |
DEL_CHANNEL | Delivery method such as EMAIL, FILE, FTP, PRINT, or WEBDAV. |
OUTPUT_NAME | Optional name for the generated output. |
SAVE_OUTPUT | Controls whether the output is saved in report job history. |
PARAMETER1 to PARAMETER10 | Delivery-channel-specific values. |
Important: TEMPLATE Means Layout Name
This is a very common mistake.
If your uploaded RTF file is:
Payslip_Template.rtfbut the layout name inside BI Publisher is:
Employee Payslipthen the bursting query should use:
'Employee Payslip' AS TEMPLATEnot:
'Payslip_Template.rtf' AS TEMPLATETEMPLATE refers to the layout name, not the physical RTF filename.
Simple Bursting SQL Example
Assume we have a payslip report where:
Split By = EMPLOYEE_ID
Deliver By = EMPLOYEE_IDA beginner-friendly bursting query could look like this:
SELECT DISTINCT
employee_id AS "KEY",
'Payslip Layout' AS TEMPLATE,
'en-US' AS LOCALE,
'PDF' AS OUTPUT_FORMAT,
'EMAIL' AS DEL_CHANNEL,
employee_email AS PARAMETER1,
NULL AS PARAMETER2,
'payroll@company.com' AS PARAMETER3,
'Your Monthly Payslip' AS PARAMETER4,
'Please find your payslip attached.' AS PARAMETER5,
'true' AS PARAMETER6
FROM employee_payslip_data
WHERE employee_email IS NOT NULL;Let us understand it line by line.
KEY
employee_id AS "KEY"This must match the Deliver By value.
TEMPLATE
'Payslip Layout' AS TEMPLATEThis is the BI Publisher layout name.
LOCALE
'en-US' AS LOCALEThis tells BI Publisher which locale to use.
OUTPUT_FORMAT
'PDF' AS OUTPUT_FORMATEach employee receives a PDF.
DEL_CHANNEL
'EMAIL' AS DEL_CHANNELThe document will be delivered by email.
PARAMETER1
employee_email AS PARAMETER1For email delivery, PARAMETER1 is the primary recipient email address.
Email Delivery Parameters
When DEL_CHANNEL = 'EMAIL', the parameter columns have specific meanings.
A commonly used mapping is:
| Parameter | Email Meaning |
PARAMETER1 | To email address |
PARAMETER2 | CC |
PARAMETER3 | From |
PARAMETER4 | Subject |
PARAMETER5 | Message body |
PARAMETER6 | Attach output: true or false |
PARAMETER7 | Reply-To |
PARAMETER8 | BCC |
For example:
SELECT
employee_id AS "KEY",
'Payslip Layout' AS TEMPLATE,
'en-US' AS LOCALE,
'PDF' AS OUTPUT_FORMAT,
'EMAIL' AS DEL_CHANNEL,
employee_email AS PARAMETER1,
NULL AS PARAMETER2,
'payroll@company.com' AS PARAMETER3,
'Payslip - July 2026' AS PARAMETER4,
'Please find attached payslip' AS PARAMETER5,
'true' AS PARAMETER6
FROM employee_payslip_data;For PDF email delivery, setting:
PARAMETER6 = trueinstructs BI Publisher to attach the generated output to the email.
Real Payslip Bursting Example
Let us put everything together.
Suppose the requirement is:
Generate a monthly payslip for every employee and email the PDF to the employee's work email address.
Report Setup
Report = Monthly Payslip Report
Split By = EMPLOYEE_ID
Deliver By = EMPLOYEE_ID
TEMPLATE = Payslip Layout
OUTPUT_FORMAT = PDF
DEL_CHANNEL = EMAIL
PARAMETER1 = Employee work email
PARAMETER4 = Email subject
PARAMETER6 = trueReport Data
The report query returns:
Employee 1001
Employee 1002
Employee 1003Bursting Query
The bursting query returns:
KEY 1001 → rahul@company.com
KEY 1002 → priya@company.com
KEY 1003 → arjun@company.comRuntime Result
BI Publisher creates:
Employee_1001.pdf
Employee_1002.pdf
Employee_1003.pdfand delivers:
Employee_1001.pdf → rahul@company.com
Employee_1002.pdf → priya@company.com
Employee_1003.pdf → arjun@company.comThat is BI Publisher bursting in its simplest form.
How to Configure Bursting Step by Step
The exact screen names can vary slightly depending on the BI Publisher version and whether you are using BI Publisher inside Oracle Fusion Applications, but the overall configuration is the same.
Step 1: Create the Data Model
Create the normal report data set first.
Make sure the report XML contains the element that will be used as the split key.
Example:
EMPLOYEE_IDStep 2: Sort or Group the Data
The report data should be sorted or grouped by the element selected as Split By.
For example:
ORDER BY employee_idor design the XML grouping so employee records are grouped correctly.
Step 3: Create a Bursting Definition
Inside the data model, create the bursting definition.
Configure:
Name
Data Source
Split By
Deliver By
SQL QueryThe bursting definition uses a SQL query for the delivery information.
Step 4: Select Split By
Choose the XML element that divides the report into separate sections.
Example:
EMPLOYEE_IDStep 5: Select Deliver By
Choose the XML element that BI Publisher will use to match the delivery rules.
Example:
EMPLOYEE_IDStep 6: Write the Bursting SQL
Return the required columns.
At minimum, most practical bursting queries contain fields such as:
KEY
TEMPLATE
LOCALE
OUTPUT_FORMAT
DEL_CHANNEL
PARAMETER1...Step 7: Configure the Report to Use Bursting
Once the bursting definition is created, configure the report properties or scheduled report job to use the bursting definition.
Oracle documentation notes that a data model can contain multiple bursting definitions, but only one bursting definition can be enabled for a report at a time.
Step 8: Schedule or Run the Report
When you submit the report with bursting enabled, BI Publisher:
Runs data query
→ creates XML
→ splits XML
→ matches delivery rules
→ generates outputs
→ delivers outputsHow to Test Bursting
Do not test a new bursting setup with thousands of records immediately.
Start with two or three keys.
For example:
WHERE employee_id IN (1001, 1002)Then validate:
Does the data model generate correct XML?
Is the
Split Byelement present?Is the data correctly grouped?
Does the bursting query return the expected
KEYvalues?Does
KEYexactly matchDeliver By?Is
TEMPLATEthe correct layout name?Is
OUTPUT_FORMATvalid?Is
DEL_CHANNELvalid?Are email addresses correct?
Is the generated attachment readable?
Is the correct document going to the correct recipient?
This small test can prevent accidental distribution of incorrect reports.
Common Bursting Mistakes
1. KEY Does Not Match Deliver By
This is one of the most common reasons bursting does not work correctly.
Example:
Deliver By = EMPLOYEE_ID = 1001
KEY = PERSON_NUMBER = E1001Those values do not match.
Use a key that corresponds to the actual Deliver By value.
2. Using the RTF Filename in TEMPLATE
Wrong:
'Payslip_Template.rtf' AS TEMPLATECorrect when the layout is named Payslip Layout:
'Payslip Layout' AS TEMPLATE3. Data Is Not Sorted or Grouped by Split By
If the data is not structured correctly around the split element, the bursting engine may not create the expected sections.
Make sure your data model and XML grouping align with the selected Split By.
4. Duplicate Rows in the Bursting Query
If the delivery SQL returns unexpected duplicate rows for the same key, you may create duplicate outputs or deliveries.
Review joins carefully and use DISTINCT only when it is logically appropriate.
5. Wrong Delivery Channel
For example:
DEL_CHANNEL = MAILis not the same as:
DEL_CHANNEL = EMAILUse supported BI Publisher delivery values.
6. Invalid Email Parameters
If using email bursting, verify:
PARAMETER1 = recipient
PARAMETER3 = from address
PARAMETER4 = subject
PARAMETER6 = attachment flagThe exact values must also comply with your BI Publisher email-server configuration.
7. Testing with Real Recipients Too Early
Always test with controlled email addresses first.
A bursting mistake can potentially send the wrong report to the wrong recipient.
This is especially important for:
payslips
invoices
tax documents
financial statements
confidential HR reports
Interview Questions
Here are some common BI Publisher bursting interview questions.
What is bursting in BI Publisher?
Bursting is the process of splitting report data into multiple sections, generating separate outputs for those sections, and delivering each output according to defined formatting and delivery rules.
What is the difference between Split By and Deliver By?
Split By controls how the report data is divided.
Deliver By controls how each divided section is matched to the delivery and formatting instructions.
What is KEY in a bursting query?
KEY is the delivery key returned by the bursting SQL.
It must match the corresponding Deliver By value so BI Publisher can map the correct delivery rule to each report section.
What does TEMPLATE contain?
TEMPLATE contains the BI Publisher layout name, not the physical .rtf filename.
What is DEL_CHANNEL?
DEL_CHANNEL tells BI Publisher how to deliver the generated output.
Examples include:
EMAIL
FILE
FTP
PRINT
WEBDAVCan one report create different output formats?
Yes.
The bursting query can return different OUTPUT_FORMAT values for different delivery keys.
For example:
Customer A → PDF
Customer B → Excel
Customer C → PDFCan one report use different templates?
Yes.
Because the bursting query can return a different TEMPLATE value for each delivery key, different sections can use different layouts.
Can Split By and Deliver By be different?
Yes.
They represent different concepts.
However, in many simple implementations such as employee payslips, both are set to the same value such as EMPLOYEE_ID.
Frequently Asked Questions
Is bursting available only for email?
No.
Email is one of the most common use cases, but BI Publisher also supports other delivery methods such as file, FTP, printing, WebDAV, and fax depending on the environment and configuration.
Does bursting execute the main report query for every recipient?
No.
The main benefit of bursting is that the report data can be generated from one execution and then divided into multiple blocks.
Where is the bursting query created?
The delivery or bursting SQL is defined as part of the bursting definition in the BI Publisher data model.
Can delivery information come from a table?
Yes.
The delivery information can be dynamic—for example, recipient email addresses and preferences stored in a database table.
It can also be statically coded in the bursting SQL when appropriate.
Can different recipients receive different layouts?
Yes.
The TEMPLATE value can vary by key.
Can different recipients receive different formats?
Yes.
The OUTPUT_FORMAT value can vary by key.
Can I rename the generated file?
BI Publisher supports an OUTPUT_NAME field that can be used to control the generated output name.
Should beginners use bursting for every report?
No.
Use bursting when one report execution needs to produce multiple personalized outputs or deliveries.
If you only need one normal report output, bursting adds unnecessary complexity.
Final Summary
The easiest way to understand BI Publisher bursting is to remember this flow:
Run the report query once
↓
Generate XML data
↓
Split the data using Split By
↓
Match each section using Deliver By ↔ KEY
↓
Apply TEMPLATE + LOCALE + OUTPUT_FORMAT
↓
Use DEL_CHANNEL + PARAMETER values
↓
Generate and deliver individual outputsThe most important concepts for a beginner are:
Split By = How the data is divided
Deliver By = How delivery rules are matched
KEY = Must match the Deliver By value
TEMPLATE = BI Publisher layout name
OUTPUT_FORMAT = PDF / EXCEL / CSV / etc.
DEL_CHANNEL = EMAIL / FILE / FTP / PRINT / etc.
PARAMETER1..10 = Delivery-specific informationOnce these pieces are clear, BI Publisher bursting becomes much easier to understand and troubleshoot.
For Oracle Fusion Technical Consultants, bursting is an important topic because it appears frequently in real implementations involving payslips, invoices, supplier documents, financial reports, and scheduled enterprise reporting.