XML Publisher R5.6.2
Bursting Engine Implementation with E-Business Suite 11.5.10
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.
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">
<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-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: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
This comment has been removed by the author.
ReplyDelete