0% found this document useful (0 votes)
355 views11 pages

What Is Bi Publisher

Bi Publisher is a reporting tool integrated with Oracle Apps for generating reports. It was initially called XML Publisher but was later renamed to Business Intelligence Publisher. The main components required for developing a BI Publisher report are a data template, which contains queries to retrieve data from the database, and a layout template, which defines the presentation of the output. Layout templates can be created using Microsoft Word or Adobe PDF and support output formats like PDF, HTML, Excel.

Uploaded by

redro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
355 views11 pages

What Is Bi Publisher

Bi Publisher is a reporting tool integrated with Oracle Apps for generating reports. It was initially called XML Publisher but was later renamed to Business Intelligence Publisher. The main components required for developing a BI Publisher report are a data template, which contains queries to retrieve data from the database, and a layout template, which defines the presentation of the output. Layout templates can be created using Microsoft Word or Adobe PDF and support output formats like PDF, HTML, Excel.

Uploaded by

redro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 11

1. What Is Bi Publisher?

It is a reporting tool for generating the reports. More than tool it is an engine that can be integrated with
systems supporting the business.
2. Is Bi Publisher Integrated With Oracle Apps?
Yes, it is tightly integrated with Oracle Apps for reporting needs. In 11.5.10 instances xml publisher was used,
in R12 we can it BI Publisher.
3. What Is The Difference Between Xml Publisher And Bi Publisher?
Name is the difference, initially it was released on the name of xml publisher( the initial patchset), later on they
have added more features and called it Business Intelligence Publisher. In BI by default we have integration
with Datadefinitions in R12 instance. Both these names can be used interchangeably.
4. What Are The Various Components Required For Developing A Bi Publisher Report?
Data Template, Layout template and the integration with Concurrent Manager.
5. How Does The Concurrent Program Submitted By The User Knows About The Data
Template Or Layout Template It Should Be Using For Generating The Output?
The concurrent program ‘shortname’ will be mapped to the ‘code’ of the Datatemplate. Layout template is
attached to the datatemplate, this forms the mapping between all the three.
6. What Is A Data Template?
Datatemplate is an xml structure which contains the queries to be run against the database so that desired
output in xml format is generated, this generated xml output is then applied on to the layout template for the
final output.
7. What Is A Layout Template?
Layout template defines how the user views the output, basically it can be developed using Microsoft word
document in rft (rich text format) or Adobe pdf format. The data output in xml format (from Data template) will
be loaded in layout template at run time and the required final output file is generated.
8. What Are The Output Formats Supported By Layout Template?
xls, html, pdf, eText etc are supported based on the business need.
9. Do You Need To Write Multiple Layout Templates For Each Output Type Like Html/pdf?
No, only layout template will be created, BI Publisher generates desired output format when the request is run.
10. What Is The Default Output Format Of The Report?
The default output format defined during the layout template creation will be used to generate the output, the
same can be modified during the request submission and it will overwrite the one defined at layout template.
1. Can You Have Multiple Layout Templates For A Single Data Template?
Yes, multiple layouts can be defined, user has a choice here to use one among them at run time during conc
request submission.
2. Where Do You Register Data And Layout Templates?
Layout template will be registered under xml publisher administrator responsibility>Templates tab.
Data template will be registered under xml publisher admininstrator responsibility> Data Definitions.
3. I Want To Create A Report Output In 10 Languages, Do I Have To Create 10 Layout
Templates?
No, BI Publisher provides the required translation for your templates, based on the number of languages
installed in your oracle apps environment requires outputs are provided.
4. What Is The Required Installation For Using Bi Pub Report?
BI Publisher desktop tool has be installed. Using this tool you can preview or test the report before deploying
the same on to the instance.
5. How Do You Move Your Layout Or Data Template Across Instances?
xdoloader is the utility that will be used.
6. What Is The Tool To Map Required Data Output And Layout Templates So That They Can
Be Tested In Local Machine?
Template viewer will be used for the same.
7. Which Component Is Responsible For Generating The Output In Xml Format Before
Applying It To Layout Template?
DataEngine will take DataTemplate as the input and the output will be generated in xml format which will then
be applied on layout template.
8. Can Bi Publisher Reports Be Used In Oaf Pages?
XDO template utility helper java classes are provided for the same.
9. Name Some Business Use Cases For Bi Reports?
Bank EFT, customer documents, shipping documents, internal analysis documents or any transactional
documents.
1. ow Do You Pass Parameters To Your Report?
Concurrent program parameters should be passed, ensure that the parameter name/token are same as in the
conc prog defn and the data template.
2. What Are The Various Sections In The Data Template?
o Parameter section
o Trigger Section
o Sql statement section
o Data Structure section
o Lexical Section
3. What Does Lexical Section Contain?
The required lexical clause of Key Flex field or Descriptive FF are created under this section.

4. What Triggers Are Supported In Data Template?


Before report and After report are supported.

5. Where Is The Trigger Code Written?


The code is written in the plsql package which is given under ‘defaultpackage’ tag of data template.

6. What Is The File Supporting The Translation For A Layout Template?


xliff is the file that supports the translation, you can modify the same as required.

7. How Do You Display The Company Logo On The Report Output?


Copy and paste the logo (.gif. or any format) on the header section of .rtf file. Ensure you resize per the
company standards.

8. How To Upload Rtf Template From Backend?


Using XDO Loader, we can upload an RTF from Backend.

9. How To Map Rtf Template Via Backend?


Using FND_PROGRAM.ADD_TEMPLATE api we can map.

10. What Are The Executable And Concurrent Program Used To Develop A Report Without
Rdf?
XDODTEXE is used as Executable, Java Concurrent Program is used Concurrent Program for developing a
report without RDF.
11. How To Repeat The Header Of The Template On Each And Every Page Of The Output?
Use <?@section: ?> in order to repeat that specific section in each page of the output.also to reset the page
number.

12. How Many Ways We Can Display Images In A Bi Publisher Report?


It can be done in 5 ways:

o Direct Insertion into RTF Template


o URL Reference
o OA_MEDIA directory reference
o Image from BLOB datatype from database
o Using UI Beans
13. What Are The Xml Publisher Tables?
PER_GB_XDO_TEMPLATES
XDO_DS_DEFINITIONS_B
XDO_DS_DEFINITIONS_TL
XDO_DS_DEFINITIONS_VL
XDO_LOBS
XDO_TEMPLATES_B
XDO_TEMPLATES_TL
XDO_TEMPLATES_VL
XDO_TEMPLATE_FIELDS
XDO_TRANS_UNITS
XDO_TRANS_UNIT_PROPS
XDO_TRANS_UNIT_VALUES

How to do Looping in XMLP?


<?for-each:looping_node_name?>

<?end for-each?>
1) ‘IF ELSE’ condition in XML publisher
XML Publisher supports the common programming construct “if-then-else”. This is extremely useful when you
need to test a condition and conditionally show a result. For example:
IF X=0 THEN
Y=2

ELSE
Y=3

END IF
You can also nest these statements as follows:
IF X=0 THEN
Y=2

ELSE
IF X=1 THEN

Y=10
ELSE Y=100

END IF
Use the following syntax to construct an if-then-else statement in your RTF template:
<?xdofx:if element_condition then result1 else result2 end if?>
For example, the following statement tests the AMOUNT element value. If the value is greater than 1000, show
the word “Higher”; if it is less than 1000, show the word “Lower”; if it is equal to 1000, show “Equal”:
<?xdofx:if AMOUNT > 1000 then 'Higher'
if AMOUNT < 1000 then 'Lower'
Else
'Equal'
end if?>

2) How to get SYSDATE in the header section dynamically when we run the report
You cannot insert form fields in the Header section, but you can just insert the code to achieve this. For example:
insert this in the header section to view the sysdate: You could format the date as you would like..
<?xdofx: sysdate(‘YYYY-MM-DD’)?>
How to design sub templates in rtf layout?
Using following tags..
<? Template: template_name?>
This is Last Page
<? End template?>
How to call a header or footer?
Using this tag
<?call:header?> and <?call:footer?>
We have to use header section and footer section of the page.
7) How to break the page in specific condition?
<?split-by-page-break:?>
8) How to use section break?
<?for-each@section:G_CUSTOMER(This is group name)?>
9) How to create multi layouts in XMLP?
<?choose:?>
<?when:CF_CHOICE=’VENDOR’?>
Your template….
<?end when?>
<?when:CF_CHOICE=’INVOICE’?>
Your template….
<?end when?>
<?when:CF_CHOICE=’RECEIPT’?>
Your template….
<?end when?>
<?end choose?>

10) How to submit a layout in the backend?


we have to write a procedure for this using the below code
FND_REQUEST.ADD_LAYOUT ( TEMPLATE_APPL_NAME => 'application name',
TEMPLATE_CODE => 'your template code',
TEMPLATE_LANGUAGE => 'En',
TEMPLATE_TERRITORY => 'US',
OUTPUT_FORMAT => 'PDF'
);

11) How to display the images in XMLP?


url:{'http://image location'}
For example, enter:
url:{'http://www.oracle.com/images/ora_log.gif'}
url:{'${OA_MEDIA}/image name'}

12) How to pass the page numbers in rtf layout?


<REPORT>
<PAGESTART>200<\PAGESTART>
....
</REPORT>
13) How to display last page is differently in XML Publisher Reports.
<?start@last-page-first:body?> <?end body?>

14)Hide a Field in Oracle XML Publisher

If You Want to Hide a Field:

<?if@column:FIELD!=' '?><?FIELD?><?end if?>


How do I get a grand total in BI publisher or RTF template?
By using below function you can get grand total
<?sum(//CF_AMT_CHILD[.!=''])?>
15) Displaying Page Totals in XML Publisher
Add the below tag in the loop (with in for-each)
<?add-page-total:’INV_AMT’;’INVOICE_AMT_PT’?>

Here INV_AMT is a field name and INVOICE_AMT_PT is a varable which stores the page total.

To show the page total , add the below tag in the footer or Header
<?show-page-total: INVOICE_AMT_PT;’999G999D99’?>

XML Publisher Report Syntax


Sub Templates:
<?template:header?>
This is Last Page
<?end template?>

After that you can type in header or footer section,


<?call:header?>

Last Page:
Take the any one of the insert field type in the following syntax,
Suppose,
Field name : Last page body
Status bar: <?start@last-page-first:body?><?end body?>
This is last page

Page Break:
<?split-by-page-break:?>

Section Break:
<?for-each@section:G_CUSTOMER(This is group name)?>

Properties:
<?PASSWORD?>
In XML we have to write in,
<PASSWORD>welcome</PASSWORD>

Bar Code:
<?register-barcode-vendor:'oracle.apps.xdo.template.rtf.util.barcoder.BarcodeUtil';'XMLPBarVendor'?>

<?format-barcode:JOB;'code128a';'XMLPBarVendor'?>

Conditional Formating:
<?if:ACCTD_AMT(This is column name)<1000?><xsl:attribute xdofo:ctx="block" or “incontext” name="font-
weight">bold</xsl:attribute><?end if?>
Incontext means: column level
Block means: row level
Multi Layout:
<?choose:?>

<?when:CF_CHOICE=’VENDOR’?>

<?end when?>

<?when:CF_CHOICE=’INVOICE’?>

<?end when?>

<?when:CF_CHOICE=’PO’?>

<?end when?>

<?end choose?>

Running Total:
<?xdoxslt:set_variable($_XDOCTX, 'RTotVar', xdoxslt:get_variable($_XDOCTX, 'RTotVar') + ACCTD_AMT(This is
column name) )?><?xdoxslt:get_variable($_XDOCTX, 'RTotVar')?>

RTotVar means declare variable=0

Brought forward and carried Forward:

<xdofo:inline-total display-condition="exceptlast" name="InvAmt"><xdofo:show-carry-forward name="InvAmt"


format="99G999G999D00" number-separators=",."/></xdofo:inline-total>

Carried Forward:
<xdofo:inline-total display-condition="exceptfirst" name="InvAmt"><xdofo:show-brought-forward name="InvAmt"
format="99G999G999D00" number-separators=",."/></xdofo:inline-total>

Page Total:
<?add-page-total:’INV_AMT’;’INVOICE_AMT_PT’?>
<?show-page-total: INVOICE_AMT_PT;’999G999D99’?>

Repeating Headre:

For loop
<?for-each:G_CUSTOMER?>
<?end for-each?>

WATERMARK
PAGE LAYOUTàWATERMARK (Word 2007)
Format à Backgroundà Printed Watermark (Word 2003)

TEXT FIELD
Developeràcontrolsàlegacy toolsàtext field

CONDITIONAL FORMATTING
The XSL code you need is:
<?if:TRANS_AMOUNT_REMAINING >1000?>
<xsl:attribute xdofo:ctx="block" name="background-color">red</xsl:attribute>
<?end if?>

BARCODE
Select File à Properties à Custom Tab
In the Name field enter: xdo-font.Free 3 of 9.normal.normal – notice the name of the font must match the name of
the font in the MSWord font drop down
In the Value field enter: truetype.c:\windows\fonts \FREE3OF9.ttf
SORTING:
<?sort:TRANS_AMOUNT;'ascending';data-type='text'?>

DIFFERENT LAST PAGE:To utilize this feature, you must create a section break in your template to ensure the
content of the final page is separated from the rest of the report and Insert the following syntax on the final page:
<?start@last-page:body?>
<?end body?>
What is Bursting in XML Publisher?
Lets say we have information of 100 different Customer Invoices in a single report. In case of bursting, XMLP
engine upon a predefined criteria (Bursting criteria), helps generates single output file for each customer invoice
i.e. 100 report files for 100 Customer Invoices and emails each report output file individually. We can even fax the
output.
Bursting Criteria is nothing but a grouping criteria upon which report output gets splitted.
How to use Variables in XMLP
Declaring the Variable R and Assigning the Values 4 to R
<?xdoxslt:set_variable($_XDOCTX, ‘R’, 4)?>

Get the Variable value


<?xdoxslt:get_variable($_XDOCTX, ‘R’)?>

This adds 5 to variable R and displays it


<?xdoxslt:set_variable($_XDOCTX, ‘R’, xdoxslt:get_variable($_XDOCTX, ‘R’)+5)?>

This subtracting 2 to varaible R and displays it

<?xdoxslt:set_variable($_XDOCTX, ‘R’, xdoxslt:get_variable($_XDOCTX, ‘R’)-2)?>

Setting the Password for PDF File sent through XML Publisher

Open the rtf for which you want to set password and do the following things
1) Open the .rtf
2) Go to File – > Properties
Create a new custom property
a) Name :xdo-pdf-security
Type : text
Value :true
b) Name : xdo-pdf-open-password
Type : text
Value : password
<PASSWORD>welcome</PASSWORD>
Oracle BI Publisher Enterprise and Multi-sheet Excel Output
1) Create new report in Oracle BI Publisher Enterprise
Home -> My Folders -> Click on "Create a new folder" link on left side -> add a name for folder (for example: first_sample) ->
Click on the "Create" button -> click on new folder which was created by you
-> Click on "Create a new report" on left side -> add a name for report (for example: multisheet_excel) -> click on "Create"
button
-> click on "Edit" link

select EMP.JOB as JOB,


EMP.SAL as SAL,
EMP.HIREDATE as HIREDATE,
EMP.EMPNO as EMPNO,
EMP.ENAME as ENAME,
EMP.COMM as COMM,
-> click on "Data Model" -> New ->
EMP.MGR as MGR,
Name: first_query
Type: Sql Query EMP.DEPTNO as DEPTNO
Data Source: choose you data schema from ZSUZSI.EMP EMP
SQL Query:

-> Click on "Save" on left side and top of page

-> Click on "View" on right side and top of page


-> Click on "View" button
If you see the XML data then you can start multi-sheet Excel template.
2) Create multi-sheet Excel template
->Start MS Excel -> create new excel file like the following pictures:

3) Convert Excel file to XSL file


-> Save As your excel file and change your file type to XML Spreadsheet type -> use the XLS Processor Engine for
Oracle program for convert the xml file to xsl file
4)Upload excel template
In Oracle BI Publisher Enterprise edit your report ->Click on "Layout" -> Manage Template Files ->Upload Template: browse
your xsl file and click on Upload button -> click on "New" on top of side bar (create a new layout)->
Name: first_layout
Template: your uploaded XSL file
Template Type: XSL Stylesheet(XML)
Output Format: All Formats
-> Click on "Save"
-> Click on "View" link on right side and top of page
-> select "first_layout" and "XML" for template and click on View
button, after that click on Export button and save the XML file. ->
change this file's extension (XML) to XLS and open it.

You might also like