What Is Bi Publisher
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.
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.
<?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?>
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’?>
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')?>
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)?>
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