You are on page 1of 14

BI Publisher

1) How do you create sub reports in BI Publisher?


eg I have a report in OBIEE Answers with five columns - Year, Region, District, Product Type, Brand, Revenue
How do you create a BI Publisher report with two sub reports
a) Year, Brand, Revenue
b) Region, District , Revenue
OBIEE Report is as follows

Create the BI Publisher Report

Login into bi publisher through word and open the BIP report

Insert the table wizard


Add the columns Year, Brand and Revenue
In the Group by select Year and Brand
click the radio button of Group left

click on finish.
delete the ones indicated in circles

create a table with 2 rows and 3 columns


Give the column headings in the first row
copy paste the following indicated by the arrow mark

apply the necessary formating and delete the first table

give the necessary aggregation as shown below

create the other sub report similarly

publish the template


view it in bi publisher

Thus we can create sub reports in BI Publisher


2)How do we create subtotals and Grand Total in BI Publisher?
eg I have a report in OBIEE Answers with three columns - Brand,Type , Revenue.
How do I create a BI Publisher report with subtotals and Grand Total?
OBIEE Report is as follows

Create the BI Publisher Report


Login into bi publisher through word and open the BIP report
Insert the table wizard and Add the columns Brand, Type and Revenue
In the Group by - select Brand
click the radio button of Group left
click on finish.
For the above steps refer the screenshots provided in the above question.
create a table with 4 rows and 3 columns
Give the column headings in the first row
copy paste the following indicated by the arrow mark

Insert the following Fields


Addins- Insert - Field-

Type Total beside inserted field


Type Grand Total in the place shown
Insert the field Revenue and double click on it

specify the aggregation as sum and the number format

delete the first table


apply the necessary formating in the second table through word.
publish the template

view it in bi publisher

Thus we can create subtotals in BI Publisher


What is BI Publisher?
A. 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.
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
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

What are the various components required for developing a BI publisher report?
Data Template, Layout template and the integration with Concurrent Manager.
How does the concurrent program submitted by the user knows about the datatemplate 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.
What is a datatemplate?
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
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.
What are the output formats supported by layout template?
xls, html, pdf, eText etc are supported based on the business need.
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
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
Can you have multiple layout templates for a singe 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

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
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
What is the required installation for using BI Pub report?
BI Publisher deskop tool has be installed. Using this tool you can preview or test the report before deploying the same on to
the instance.
How do you move your layout or data template across instances?
xdoloader is the utility that will be used.
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.

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
Can BI publisher reports be used in OAF pages?
XDO template utility helper java classes are provided for the same.
Name some business use cases for BI reports?
Bank EFT, customer documents, shipping documents, internal analysis documents or any transactional documents
How 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
What are the various sections in the data template?
Parameter section
Trigger Section
Sql stmt section
Data Structure section
Lexical Section
What does lexical section contain?
The required lexical clause of Key Flex field or Descriptive FF are created under this section
What triggers are supported in Data template?
Before report and After report are supported
Where is the trigger code written?
The code is written in the plsql package which is given under defaultpackage tag of data template.
what is the file supporting the translation for a layout template?
A. xliff is the file that supports the translation, you can modify the same as required.
Q. How do you display the company logo on the report output?
A. Copy and paste the logo (.gif. or any format) on the header section of .rtf file . Ensure you resize per the company standards.
Question 1: How many types of security model is possible in BI Publisher?
Answer: There are 5 types of security model in BI Publisher
1.

Oracle BI Server

2.

BI Publisher Security

3.

LDAP

4.

Oracle Database

5.

Oracle E-Business suite

Question 2: Which type of Security model are you using in your Project?
Answer: That depends on your project. Generally first 2 types are used.
For Oracle BI server security model, users are defined in repository.
For BI Publisher Security, users are defined in BI Publisher Application Admin tab>Security Center
Question 3: What is super user and where do you create it?
Answer: Super User is independent of security model. He can login to the BI Publisher application with any type of security model.
We can create super user from BI Publisher application Admin tab>Security Center>Security Configuration
Question: OBIEE scenario

We have a requirement to trigger a mail to all the above employees with the employee specific data.
We can not use Organization based data level security as everyone belongs to the same org. We cannot use position based data
level security as everyone has the same position.
How would you do that?
Solution:
Create the above report and save it.
Create an iBot with the following features.
Data visibility : Not personalized. Run as Administrator
Conditional Request: Browse and Select the above report
Schedule: Your choice
Recipients: Select Determine recipients from the conditional request. Select Column containing Recipients as Emp Login. You
can select it from the dropdown list.
And select Show Relevant rows only. For this option to work, the delivery content must be set to the conditional requests result.
i.e. Same report as conditional request report.

Save the ibot. Thats it..


If you have your SA System Subject Area implemented, then it will take the delivery profile of each employee from SA System and
deliver the report accordingly.
So Akash Jain would receive only the following content in the mail.

Similary the other two employee would receive their own data.
This is actually called report bursting. So the interviewer would expect you to use this term.
This can also be done with BIP Report bursting feature.

Question: How do we model the rpd when there are some dimensional attributes in the fact table.?
Very frequently you will come across the situation wherein you will have dimensional attributes in Fact table and you can not create
a new dimension table for those attributes.
e.g. We do not have any dimension table for activity related attributes in the vanilla rpd. We use the same table i.e W_ACTIVITY_F
fact table for storing the attributes such as Activity Id, Activity Created Date etc. Now the problem here is we can not put those
columns in the Fact Activity logical table of Activity as we do not want to put aggregation on them.
Reason: If you add those dimensional attributes in the Fact Logical Table, it will work fine as long as you have your reports based
out of only one fact table or you are using those columns only for calculation in the logical layer.
But the moment your report needs data from multiple fact tables (i.e for conformed dimensional modelling) and you have a
dimensional attribute present in your Facts logical table, it basically ignores join of Conformed Dimension with one of the fact table
and in your query you will find cast(NULL as INTEGER ) which signifies OBIEE ignored the join.

So in the above case it will ignore join between (C and B) if you have a
dimensional attribute in Facts A, or (C and A) if you have dimensional attribute in Facts B
So here comes the concept of Degenerated Dimensional Modelling. And the interviewer will expect you to use this term.
A degenerate dimension is data that is dimensional in nature but stored in a fact table.
Solution: Use the same alias of Fact Table and create a Logical table in BMM layer treating it as Dimension and place all the
dimensional attributes in the Dim Logical Table(Degenerated Dim for Facts A).

Create a BMM join between Dim and Fact logical table.


Create dimensional hierarchy for the Degenerated Dim for Facts A.

In the above screenshot, Logical table Degenerated Dim for Facts A is still not related to Facts B, so this does not become
conformed dimension to both the facts.
To enable this, we need to set Total level of Degenerated Dim for Facts A in the metrics of Facts B

With this we can have reporting on degenerate dimension even on non conforming facts.
So that is how rpd modelling for Degenerated dimension is done and this solves our problem of cast(NULL as INTEGER ).
Scenario: There is a dashboard which contains some reports and it takes around 15-20 minutes to get the result. Lets say user of
this dashboard is a Manager who do not want to wait for 15-20 minutes to see the result. What steps would you take to improve the
performance considering you can not change anything in the repository and report side.
Solution: Schedule an iBot to run this dashboard just after your ETL load finishes (assuming you have purged the cache after the
data refresh) and in the destination tab select Oracle BI Server for seeding cache option. When you use cache seeding option, the
physical query of the dashboard is cached and whenever any user runs that dashboard after that, it will fetch the result from cache
and hence performance would be improved drastically.
So basically the interviewer expects to hear the Cache Seeding concept.

There are couple of ways to seed the cache which you can get it from google or probably in my further posts.
Scenario: If you are given a Presentation column name and you have to find all the reports/Prompts present in catalog which
contains this presentation column. How would you do that?
Solution: There can be two possibilities for finding this.
1.

Open all the reports present in catalog and see whether the report contains that Presentation column. You can do this if
you have very less number of reports. But if the number of reports are more, then it is not the best way to find.

2.

From the catalog manager, click on File > Search. Type the name of Presentation column and click on search. On the
right hand side it will display the list of all the reports and prompts which uses that column.

The second method is more efficient if the number of reports are more.
Now I will tell you where this scenario can be used.
Say in the repository you have modified a particular presentation column (can be definition change or label name change or
anything) and you have to find all the impacted reports then this can be very useful.
If you have mentioned Oracle Delivers as one of the skills in your resume then you may expect these basic question:
Question 1: How do you debug if an iBot does not deliver the result successfully?
Answer:
Open Job Manager from Start>Oracle Business Intelligence>Job Manager
Click on File>Open Scheduler Configuration
For each user, you can find the list of iBots and status of each iBots
If you double click the status, you will get the error code and the description of error.

Based on the description of error you can debug it.


Question 2: If you want to capture the status of each iBots in UI, how will you do that?
Answer: We will create a subject area based on 4 iBot tables and then create a report to capture the status of each iBots.
Question 3: By default OBIEE captures the status of last 7 days iBots in database level. If you want to see the status of entire year
then what would you do?
Answer: From Job Manager> Configuration Options> General tab, modify the Purge Old Instances After X days to 365

Note: You need to restart you Scheduler services. And it will not show old records but going forward it will capture the status for
365 days.
Question 4: Can you save the iBot result in a shared drive rather than sending emails to users?
Answer: Yes, we can save the result in a shared drive by using custom JavaScript code in the Advanced tab of Oracle Delivers.
Question 5: What is Personalized and Non personalized Data visibility in General tab of Oracle Delivers?
Answer:
Personalized(Individual data visibility) : Uses the data visibility of each recipient to customize iBot delivery content of each
recipient.
Not Personalized(iBot owners data visibility) : Sends the iBots delivery content to the specified recipient and all recipient receive
the same content.
How to Replace the Null Value in Prompt on OBIEE 11g

I have seen several posts in OTN for how to replace null values in prompt.
There are four options to resolve this issue:
1.- Validate if NULL values are relevant for the business analysis (for some reason in the data warehouse NULL values were
stored). If they are not, you have to delete them in Dimensions and Fact tables.
2.- Change the physical table type in your rpd in all tables you have NULL values and use a SELECT like this:
SELECT LOGIN, RESP
FROM NQ_LOGIN_GROUP
WHERE NOT LOGIN IS NULL
Doing this, you only have NON-NULL values in your Multi-select prompt.
3.- Replace the NULL value with a new name like UNSPECIFIED in ALL tables you which are related.
4.- Log an enhancement request to review that multi-select prompts works with NULL values.
5. This is a knows issue. Check to see if your prompt list has a 'Null' value at the bottom. If Null value is selected in the prompt, it
will wipe out the selection.
Instead of using "<<", try selecting all products using control + select and use "<" icon.
Exceeded configured maximum number of allowed output prompts in OBIEE 11g
Error : Exceeded configured maximum number of allowed output prompts, sections, rows in OBIEE 11g.
When we are drilling from main report to detail report we are getting an error like Exceeded configured maximum number of allowed output
prompts, sections, rows this is because of huge data in the report.
So in order to resolve this issue we need to add the below mentioned tags in instanceconfig.xml file which is located under
\Middleware\instances\instance1\config\OracleBIPresentationServicesComponent\coreapplication_obips1
The tags which needs to be added are

How do selection steps differ from filters?


Filters and selection steps are applied on a column-level basis and provide two methods for limiting the data in
an analysis. A filter is always applied to a column before any selection steps are applied. Steps are applied in
their specified order. Filters and selection steps differ in various ways. Filters can be applied directly to attribute
columns and measure columns. Selection steps are applied after the query is aggregated and affect only the
members displayed, not the resulting aggregate values.

You might also like