BIP - Bursting

Card Puncher Data Processing

About

To burst in BIP, you just need to fill the Bursting Properties.

Bip Bursting Properties

The SQL Query of the Bursting property defines the bursting properties.

When you schedule a bursting, You can use a parameter:

  • in the SQL Query of the data set
  • but also in the SQL Query of the Bursting properties.

Properties

Query

For each key (Deliver by) in the original report, you must have a key in the SQL Query of the Bursting properties.

If you want to filter and not burst on every key, you need to burst to a bin (directory, mail, …).

Syntax:

select
KEY,
TEMPLATE,
TEMPLATE_FORMAT,
LOCALE,
OUTPUT_FORMAT,
DEL_CHANNEL,
PARAMETER1,
PARAMETER2,
PARAMETER3,
PARAMETER4,
PARAMETER5,
PARAMETER6,
PARAMETER7
from 
myTable

where:

  • Key is the “delivered by” Key
  • TEMPLATE is the name of the template used (Lowercase and Uppercase are important
  • TEMPLATE_FORMAT is the template format. (RTF, …)
  • LOCALE is the locale ('en-US', …)
  • OUTPUT_FORMAT is the report format (PDF, HTML, …)
  • DEL_CHANNEL is one of the following channel with the list of parameters attached:
Channel Email Printer Fax WEBDAV File FTP
Parameter1 Email address Printer Group Fax server Name Server Name Directory Server Name
Parameter2 cc Printer Fax Number Username File Name Username
Parameter3 From Number of copies Password Password
Parameter4 Subject Sides Remote Directory Remote Directory
Parameter5 Message Body Tray Remote File Name Remote File Name
Parameter6 Attachment (true/false)
Pdf = true
Parameter7 Reply-To

For the email channel in case of a list of email, they must be separated by a comma.

Support

java.lang.NullPointerException

If you schedule a bursting rapportage that failed and that you checked the application server (OC4j) log file and that you get the following error:

[061512_041107407][][EXCEPTION] java.lang.NullPointerException
	at oracle.apps.xdo.batch.bursting.ProcessEnterpriseDocument.processLayout(Unknown Source)
	at oracle.apps.xdo.batch.BurstingProcessorEngine.addDocument2Queue(Unknown Source)
	at oracle.apps.xdo.batch.BurstingProcessorEngine.createBurstingDocument(Unknown Source)
	at oracle.apps.xdo.batch.BurstingProcessorEngine.endDocument(Unknown Source)
	at oracle.xml.parser.v2.XMLContentHandler.endDocument(XMLContentHandler.java:119)
	at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:311)
	at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:263)
	at oracle.apps.xdo.batch.BurstingProcessorEngine.burstingRequest(Unknown Source)
	at oracle.apps.xdo.batch.BurstingProcessorEngine.process(Unknown Source)
	at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:2008)
	at oracle.apps.xdo.servlet.scheduler.XDOJob.execute(XDOJob.java:358)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)

Pay attention to the name of the template in your bursting SQL Query property.

SELECT 
     myKey KEY,
     'standard' TEMPLATE
FROM 
     myTable

is not the same than

SELECT 
     myKey KEY,
     'Standard' TEMPLATE
FROM 
     myTable

Can not find the delivery details

Obviously, you can filter the content but not the delivery details. One solution is to send the bursted report to a bin directory.

Delivery Key   : Nico Gerard
Delivery Type  : 		
Status	       : Failed
System Message : Error!! Can not find the delivery details for the delivery Id :Nico Gerard

oracle.apps.xdo.XDOException: ORA-00911: invalid character

If you get this:

oracle.apps.xdo.servlet.scheduler.ProcessingException: oracle.apps.xdo.XDOException: ORA-00911: invalid character

	at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:2116)
	at oracle.apps.xdo.servlet.scheduler.XDOJob.execute(XDOJob.java:358)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: oracle.apps.xdo.XDOException: ORA-00911: invalid character

	at oracle.apps.xdo.servlet.ReportException.fillInStackTrace(ReportException.java:124)
	at oracle.apps.xdo.servlet.data.DataException.fillInStackTrace(DataException.java:127)
	at java.lang.Throwable.<init>(Throwable.java:181)
	at java.lang.Exception.<init>(Exception.java:29)
	at oracle.apps.xdo.servlet.ReportException.<init>(ReportException.java:40)
	at oracle.apps.xdo.servlet.data.DataException.<init>(DataException.java:44)
	at oracle.apps.xdo.servlet.BurstingDefinitionImpl.getControlXML(BurstingDefinitionImpl.java:83)
	at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:1886)
	... 3 more

verify first that you don't have a semicolon at the end of the Bursting SQL.

java.util.NoSuchElementException

oracle.apps.xdo.servlet.scheduler.ProcessingException: java.util.NoSuchElementException
	at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:2116)
	at oracle.apps.xdo.servlet.scheduler.XDOJob.execute(XDOJob.java:358)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: java.util.NoSuchElementException
	at java.util.Vector.lastElement(Vector.java:456)
	at oracle.apps.xdo.batch.BurstingProcessorEngine.removeEndPath(Unknown Source)
	at oracle.apps.xdo.batch.BurstingProcessorEngine.globalDataEndElement(Unknown Source)
	at oracle.apps.xdo.batch.BurstingProcessorEngine.endElement(Unknown Source)
	at oracle.xml.parser.v2.XMLContentHandler.endElement(XMLContentHandler.java:210)
	at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1318)
	at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:336)
	at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
	at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:263)
	at oracle.apps.xdo.batch.BurstingProcessorEngine.burstingRequest(Unknown Source)
	at oracle.apps.xdo.batch.BurstingProcessorEngine.process(Unknown Source)
	at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:2008)
	... 3 more

Verify the bursting key.

Missing or invalid Template

Delivery 1 :
Delivery Key 		6154
Delivery Type 		
Status		Failed
System Message	MyTemplateName: Missing or invalid Template ....

The name of the template in the bursting query is not found in the report.

Job execution failed because the user who scheduled this job has no more permission or priviledge to run the job

oracle.apps.xdo.servlet.scheduler.ProcessingException: Job execution failed because the user who scheduled this job has no more permission or priviledge to run the job. [REPORT_URL]=[/Team Barometer/Bursting/Team Barometer Bursting Non-respons/Team Barometer Bursting Non-respons.xdo], [USERNAME]=[gerar600]
	at oracle.apps.xdo.servlet.scheduler.XDOJob.execute(XDOJob.java:356)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)

With the BI Server security model, BIP uses a proxy authentication then be sure that the proxy user (often the administrator) has also the right to access the report (ie the Admin right, ie that he is a member of the XMLP_ADMIN group).

Invalid parameters requested

If you script the burst, you may get this error:

oracle.apps.xdo.servlet.scheduler.ProcessingException: oracle.apps.xdo.servlet.data.DataException: Invalid parameters requested.
	at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:2169)
	at oracle.apps.xdo.servlet.scheduler.XDOJob.execute(XDOJob.java:372)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: oracle.apps.xdo.servlet.data.DataException: Invalid parameters requested.
	at oracle.apps.xdo.servlet.ReportException.fillInStackTrace(ReportException.java:124)
	at oracle.apps.xdo.servlet.data.DataException.fillInStackTrace(DataException.java:127)
	at java.lang.Throwable.<init>(Throwable.java:196)
	at java.lang.Exception.<init>(Exception.java:41)
	at oracle.apps.xdo.servlet.ReportException.<init>(ReportException.java:36)
	at oracle.apps.xdo.servlet.data.DataException.<init>(DataException.java:39)
	at oracle.apps.xdo.servlet.ReportImpl.renderReportXML(ReportImpl.java:287)
	at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:1929)
	... 3 more

It just means that the parameter is not in the available list of value (for a menu).

Documentation / Reference





Discover More
Card Puncher Data Processing
Business Intelligence Publisher

BIP is a highly scalable reporting engine capable of generating pixel perfect reports from multiple data sources in multiple formats via multiple delivery channels. Bi Publisher is based on the Apache...



Share this page:
Follow us:
Task Runner