For example - Report is having 3 invoices, 2 for one supplier and 1 for second. concurrent program will generate one file as output having all 3 invoice detail.
Project need is to split output either on 3 files (one for each invoice) or 2 files ( for 2 supplier).
XML bursting concept help us to cut down the generated output in multiple pieces based on requirement.
Also we can send output through email using this service.
Assumption - SMTP configuration should be available
Steps for XML bursting -
1) Create and set temp folder
- Create one folder in unix box ( application server) and set the temp path in application
- Go to XML administrator responsibility
- Administrator Function
- Give the folder path for TEMP directory
2)Create the bursting control file
Create the control file. control file contains split logic and delivery method, which will be used by bursting engine. Sample file as below-
-
<xapi:request select="/XXXXX/LIST_G_SUPPLIER_NO/G_SUPPLIER_NO">
<xapi:delivery>
<xapi:email id="123" server="smtp.host.com" port="25" from="${EMAILFROM}" reply-to="${EMAILFROM}">
<xapi:message id="123" to="${SUPPLIERSITEEMAIL}" cc="${EMAILCC}" attachment="true" subject="XML Bursting">This program is for xml bursting check
</xapi:message> </xapi:email> </xapi:delivery>
<xapi:document output="AttachmentName" output-type="pdf" delivery="123">
<xapi:template type="rtf" location="xdo://APPSHORTNAME.TEMPLATECODE.en.00/?getSource=true" />
</xapi:document>
</xapi:request></xapi:requestset>
*${XML_TAG_NAME}
Request – Describe group level, on which bursting is required. In above example bursting will be on G_SUPPLIER_NO level
Delivery – How to send the split data ( Email, Fax, Printer etc).
Document output – Subject and format of output
Template Type – Related template information. Location can have temp directory path ( make sure your rtf file is placed at temp directory too) too or use the above syntax only.
***en is the territory code.Either use the correct territory code or upload rtf file without territory name.
3)Place the control file –
XML publisher responsibility >> Data Definition >> Search for your Data Definition >> Bursting Control file >> Add File
4)Invoke Bursting Concurrent Program – XDOBURSTREP is oracle provided standard concurrent program for bursting. Invoke this concurrent program in your program at the last.
This will read the instructions given in control file and perform bursting.
l_request_id := FND_REQUEST.SUBMIT_REQUEST (
'XDO',
'XDOBURSTREP',
'XML Publisher Report Bursting Program',
'',
FALSE,
'N',
fnd_global.conc_request_id, 'Y',
chr(0), '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '');