You are on page 1of 8

Introduction

XML Publisher Integration with E-Business Suite

As default with E-Business Suite 11.5.10 CU1 or later, XML Publisher is fully integrated with
the E-Business Suite. Once you register your RTF/PDF templates through XML Publisher
Template Manager for the report requests you want to run you can generate PDF file output
report based on the original Oracle Reports report query definition and you can save the PDF
output files on local file system or send them to printer to print through PASTA driver. See
PASTA User’s Guide for the detail of PASTA.

However, all the XML Publisher’s functionalities are not available with the out of box of the E-
Business Suite installation. Especially the Delivery Manager functionality that delivers the
output documents with the different delivery options such as Email, IPP Printer, Fax, FTP,
HTTP, WebDAV.

You might have the situations where you want to generate documents based on your existing
Oracle Reports Concurrent Request and deliver the documents to multiple users by Email or
directly send them to IPP Printers to print them out. You even might want to generate different
contents of the documents among different recipients or based on the values in the data, and send
such documents to multiple delivery destinations like Email and Printers, and different Email
recipients.
What and Why Bursting Engine?

XML Publisher has introduced a Bursting Engine feature since R5.6.1 and it accepts a data
stream and splits it based on multiple criteria, generates multiple outputs based on RTF or PDF
templates, then delivers the individual documents through the delivery channel of choice. The
engine provides a flexible range of possibilities for document generation and delivery.

The following is a sample list of popular usage.

 Invoice generation and delivery based on customer-specific layouts and delivery


preference
 Financial reporting to generate a master report of all cost centers, bursting out individual
cost center reports to the appropriate manager
 Generation of payslips to all employees based on one extract and delivered via e-mail

You can implement the Bursting Engine feature as a customized delivery solution into E-
Business Suite instance to achieve the above requirements. This document describes the required
process of the Bursting Engine implementation for E-Business Suite R11.5.10 CU1 or later
environment.
Implementation of Bursting Engine with E-
Business Suite
The following is a brief process of the Bursting Engine implementation with E-Business Suite.
You need to go through all this process step by step for the implementation.

PROCESS OVERVIEW

1. Apply all the required XML Publisher related patches.


2. Create a Bursting Engine control file.
3. Develop RTF templates for a Report request
4. Develop a Bursting Engine program for a local testing (Optional)
5. Develop a Java Concurrent Program to implement Bursting Engine
6. Create a new Java Concurrent Program Request in EBS
7. Modify Oracle Reports Definition File to call the Java Concurrent Program in After
Trigger
8. Create a new Oracle Reports Concurrent Program in EBS (Optional)
9. Assign the Oracle Reports Concurrent Program to a Request Group. (Optional)
10. Change an output option to XML for the Oracle Reports Concurrent Program

Once you have implemented the Bursting Engine you don’t need to go through all the steps again
for another report requirement. The one Bursting Engine Java Concurrent Program
implementation that is described in this document can serve multiple Oracle Report Concurrent
Program requests, so if you need to support more reports with the Bursting Engine
implementation you can skip the step 4, 5, 6 for such additional Reports requests.
APPLY ALL THE REQUIRED XML PUBLISHER
PATCHES

The following is a list of XML Publisher related patches for E-Business Suite that need to be
applied prior to starting implementing the Bursting Engine functionalities. Ask DBA or System
Administrator to make sure that they have all been applied.

 XML Publisher Integration with Concurrent Program 3435480


 XML Publisher R5.6.1 (OA+Core) 4905678
 XML Publisher R5.6.2 (Only Core, no plan for OA) 5097966
 Online Help for XML Publisher Release 5.6.1 5021800 (Optional)

CREATE A BURSTING ENGINE CONTROL FILE

With Bursting Engine Control file set up, you can control what level of document node in a
XML input file you want to process document generation on, what delivery method you want to
use, such as Email, Printer, Fax, etc, and which template you want to apply to the report. This is
a XML text file so you can modify whenever you need and the change will be immediately
picked up by the next Bursting Engine process. The below is an example of the Bursting Engine
Control file

<?xml version=”1.0″ encoding=”UTF-8″?>


<xapi:requestset xmlns:xapi=”http://xmlns.oracle.com/oxp/xapi”&gt;
<xapi:request
select=”/RAXINV/LIST_G_ORDER_BY/G_ORDER_BY/LIST_G_INVOICE/G_INVOICE”>
<xapi:delivery>
<xapi:email server=”smtp.itron.com” port=”25″ from=”narendra.poflee@itron.com” reply-to
=”npoflee@itron.com”>
<xapi:message id=”123″ to=”{$EMAIL}” cc=”npoflee@itron.com” attachment=”true”
subject=”Itron – Invoice for {$CURRENT_PERIOD}”>Hi, Please find an attachment that
includes a list of invoices and a check attached

Sincerely,
Narendra Poflee
</xapi:message>
</xapi:email>
</xapi:delivery>
<xapi:document output-type=”pdf” delivery=”123″>
<xapi:template type=”rtf” location=”/oragold/app/traincomn/itron/XML-invoice-USA.rtf”>
</xapi:template>
</xapi:document>
</xapi:request>
</xapi:requestset>
You can find more detail in XML Publisher’s User’s Guide. But there are a couple of things you
need be aware and set correctly to make your Bursting Engine work correctly, and those are
described below.

Request

You can specify a XML node that you want to burst on, which means that Bursting engine will
do a for-loop at the node(level) you specified here. The above example shows that the Bursting
Engine will do a for-loop at the level of
/RAXINV/LIST_G_ORDER_BY/G_ORDER_BY/LIST_G_INVOICE/G_INVOICE , which
mean that it will generate a document output at every G_INVOICE occurrence. If there are 5
G_INVOICE elements appear in the input XML data file, then Bursting Engine will generate 5
different document outputs and deliver to SMTP server (in this case) per each document.

Deliver

You can define which delivery method you want to use here. The following is a list of the
delivery methods that can be used. Some of them are supported by XML Publisher R5.6.2
Bursting Engine, but some are not supported though they are supported by XML Publisher
Delivery Manager. If you need to support such delivery methods that are not supported by the
Bursting Engine today you need to implement that by yourself by calling Delivery Manager
directly as a part of Bursting Engine process. You can find a sample code of the customized
implementation of FTP at Appendix A.

Supported Delivery Methods

· Email
· Fax
· Printer
· File System

Unsupported Delivery Methods

· FTP
· HTTP
· WebDAV

You can set multiple Delivery methods as much as you want in a same request. For example you
might want to generate document to be sent by Email and also to be sent to a printer, then you
can have both entries here and set a unique id for each delivery option.
Document

You can specify the document output format you want to generate the document with and the
template you want to apply to the document processing. RTF and PDF templates are both
supported. You can specify all the output formats that are supported by XML Publisher R5.6.2.

Also, you can specify multiple templates as much as you want. You might want to apply
different templates based on the value in the input XML file, in such case you can use a Filter
function of Bursting Engine and have XPATH expression to do such condition, and have
Bursting Engine to pick an appropriate template based on the condition result.

Example
<xapi:template type=”rtf” location=”=”/oragold/app/traincomn/itron/XML-invoice-USA.rtf “>
<xapi:template type=”rtf” location=”=”/oragold/app/traincomn/itron/XML-invoice-CAD.rtf ”
filter=”.//G_INVOICE[COUNTRY=’CANADA’]”/>
This will apply the XML-invoice-CAD.rtf template only to G_INVOICE which has a
COUNTRY element value that is “CANADA”. All other Invoices will have the XML-invoice-
USA template applied. This filter can use any XPATH expression to determine the rules for the
template application.

(Recommendation)
Addition to the above, while the above example is referencing the templates that are located on
file system, the Bursting Engine also supports the templates that have been stored in a XML
Publisher repository through Template Manager. When you go to Template Manager and register
your templates you can reference them from the Bursting Engine control file like the following
example.

xdo://<APPSCODE>.<TEMPLATE_CODE>.<Lang_Code>.<Territory_Code>

Syntax
APPSCODE : Application short code, e.g. AR
TEMPLATE_CODE : Template code name, e.g. XMLINVOICEUS
Lang_Code : ISO 2 letters language code, e.g. en (for English)
Territory_Code : ISO 2 letters territory code, e.g. US (for United States)

Example
<xapi:document output-type=”pdf” delivery=”123″>
<xapi:template type=”xsl-fo” location=”xdo://AR.XMLINVOICEUSA.en.US“>
</xapi:template>
</xapi:document>

Note that template type is ‘xsl-fo’ not rtf, this is because the templates you uploaded through
Template Manager are converted to xsl-fo format and stored in the repository, so you need to
specify ‘xsl-fo’ as the template type, otherwise XML Publisher doesn’t understand.

See XML Publisher User’s Guide for ‘how to register the template through Template Manager.’
CREATE RTF TEMPLATES FOR A REPORT REQUEST

Download a XML input data

This file is generated by a Report Concurrent Request and exported under Application Home file
system. In order to have the concurrent report request to generate XML output instead of default
text format you need to go to the concurrent report request definition page and set its output
format to XML.

You can find this XML output file under $APPLCSF/out/<APPS_INSTANCE_NAME>.


e.g. /oragold/app/traincomn/admin/out/train_ocn-erp-tdb-1

Create a RTF template

You can use a Template Builder (Microsoft Office Word Plug-in) to develop a RTF template in
any way you want to publish a report with.

1. Install Template Builder Desktop (if has not been installed yet)
2. Load the downloaded XML data
3. Create a layout
4. Save

Sample XML Bursting Control file Code

<xapi:requestset xmlns:xapi=”http://xmlns.oracle.com/oxp/xapi&#8221; type=”bursting”>


<xapi:request select=”/”>
<xapi:delivery>
<xapi:email id=”123″ server=”localhost” port=”25″ from=”donotreply@integra-ls.com” reply-
to=”donotreply@integra-ls.com”>
<xapi:message id=”123″ to=”viral.thakker@integra-ls.com” attachment=”true” subject=”ITGR
PO REPORT”>DAILY SALES BOOKING REPORT Report output</xapi:message>
</xapi:email>
</xapi:delivery>
<xapi:document output=”GRPOREPORT” output-type=”excel” delivery=”123″>
<xapi:template type=”rtf” location=”xdo://XBOL.ITGROPORDREP.en.00/?getSource=true”
filter=”” />
</xapi:document>
</xapi:request>
<xapi:request select=”/”>
<xapi:delivery>
<xapi:ftp id=”123″ server=”ftp01.oracle.com” user=”infitgri” password=”0wMoz%tt” remote-
directory=”/DITG1I” remote-file=”test1.xls” />
</xapi:delivery>
<xapi:document output-type=”excel” delivery=”123″>
<xapi:template type=”rtf” location=”xdo://XBOL.ITGROPORDREP.en.00/?getSource=true”
filter=”” />
</xapi:document>
</xapi:request>
</xapi:requestset>

You might also like