Sunteți pe pagina 1din 43

OAF Interview Questions

1. What is an EO?
a. Map to a database table or other data source
b. Each entity object instance represents a single row
c. Contains attributes representing database columns
d. Fundamental BC4J object through which all inserts/updates/deletes
interact with the database
e. Central point for business logic and validation related to a table
f. Encapsulates attribute-level and entity-level validation logic
g. Can contain custom business methods

2. What is a VO?
a. Represent a query result
b. Are used for joining, filtering, projecting, and sorting your business data
c. Can be based on any number of entity objects
d. Can also be constructed from a SQL statement

3. What are the methods in controller?


ProcessRequest and processformrequest

4. What is a Controller?
Controller is the java file and can be associated to a complete OAF page or to
a specific region.
There are several tasks you will do routinely in your code.
? Handle button press and other events
? Automatic queries

? Dynamic WHERE clauses


? Commits
? JSP Forwards
The logic for accomplishing all these tasks is written in controller

5. When is the processRequest method called?


PR method is called when the page is getting rendered onto the screen

6. When is processFormRequest method called?


PFR method is called when we perform some action on the screen like click
of submit button or click on lov

7. What is extension?
Extension is when you take an already existing component ex an OAF page
or a region and then add some more functionality to it without disturbing the
original functionality.

8. What is personalization?
Oracle Apps Framework has an OA Personalization Framework associated
with it so that you can personalize any OAF page in an Oracle E-business
Suite application without changing the basic or underlying code of that OA
Framework page, Oracle Application Framework makes it very easy to
personalize the appearance of the page or even the personalization of data
displayed on to an OA Framework page.

9. What are levels of personalization?


1. Function Level

2. Localization Level
3. Site Level
4. Organization Level
5. Responsibility Level
6. Admin-Seeded User Level
7. Portlet Level
8. User Level
1) What is BC4J?

Business Components for Java is JDeveloper's programming framework for


building multitier database applications from reusable business components.
These applications typically consist of:

A client-side user interface written in Java and/or HTML.


One or more business logic tier components that provide business logic
and views of business objects.
Tables on the database server that store the underlying data.

2.What are all the components of BC4J?


Following are the components of BC4J:

Entity Object - EO encapsulates the business logic and rules. EOs are used
for Inserting, Updating and Deleting data from the database table. E0 is also
used for validating the records across the applications.

View Object - View object encapsulates the database query. It is used for
selecting data. It provides iteration over a query result set. VOs are primarily
based on EOs. It can be used on multiple EOs if the UI is for update.

Application Module - Application Modules serve as containers for related


BC4J components. The pages are related by participating in the same task. It
also defines the logical data model and business methods needed.

2) What is an EO?
EO encapsulates the business logic and rules.EOs are used for Inserting,
Updating and Deleting data. This is used for validating across the
applications. We can also link to other EOs and create a Association object.

3) What is an VO?
View object encapsulates the database query. It is used for selecting data. It
provides iteration over a query result set.VOs are primarily based on Eos. It
can be used on multiple EOs if the UI is for update. It provides a single point
of contact for getting and setting entity object values. It can be linked
together to form View Links.

4) What is an AO?
An association object is created where we link EOs. For example take the
search page where we link the same EO to form a association between the
manager and employee. Every employee should have a manager associated.
But if it President then no there is no manager associated. This is a perfect
example to understand the AO.

5) What is an VL?
A view link is an active link between view links. A view link can be created by
providing the source and destination views and source and destination
attributes. There are two modes of View link operation that can be
performed. A document and Master/Detail operation.

6). What is UIX?


UIX is an extensible, J2EE-based framework for building web applications. It is
based on the Model-View-Controller (MVC) design pattern, which provides the
foundation for building scalable enterprise web applications.

7). Where the VO is located in the MVC architecture?


VO is located in the View Layer in MVC which is responsible for presenting
the data to the user.

9) Which package should include EO and AO.


The EO and AO will be present in the schema.server package.

10) What is the difference between inline lov and external lov.
Inline lov is a lov which is used only for that particular page for which it was
created and cannot be used by any other page.

External lov is a common lov which can be used by any page. It is a common
component for any page to use it. It can be used by giving the full path of
the lov in the properties section External LOV of the item.

1) what is a Javabean?
JavaBeans is an object-oriented programming interface that lets you build reuseable applications or program building blocks called components that can
be deployed in a network on any major operating system platform.

2) What is query Bean?


QueryBean is used to execute and return the results of a query on behalf of
the QueryPortlet application.

3) what is the difference between autocustomization criteria and result based


search?
Results based search generates search items automatically based on the
columns on the results table.
In Autocustomization search we need to set what all fields are required to
display as a search criteria.

4) what is MDS?
MDS is MetaData Service. When a web page is broken into small units like
buttons, fields etc they are stored in a database. These are not stored as
binary files but as data in tables. The data are present in JDR tables. MDS
provides service to store & return page definitions. MDS collects those
definitions in components/fields in a meaningful manner to build a page.

5) What is XML?
XML is a markup language for documents containing structured information.
Structured information contains both content (words, pictures, etc.) and
some indication of what role that content plays (for example, content in a
section heading has a different meaning from content in a footnote, which
means something different than content in a figure caption or content in a
database table, etc.).

6) What is the difference between customization and extension?


Customization is under direct user control. The user explicitly selects
between certain options. Using customization a user can:
Altering the functionality of an application
Altering existing UI
Altering existing business logic

Extension is about extending the functionality of an application beyond what


can be done through personalization. Using extension we can:

Add new functional flows


Extend or override existing business logic
Create New application/module
Create New page
Create New attribute
Extend/Override defaults & validations

7) What is Personalization?
Personalization enables you to declaratively tailor the UI look-and-feel, layout
or visibility of page content to suit a business need or a user preference.
Using Personalization we can:

Tailor the order in which table columns are displayed.


Tailor a query result.
Tailor the color scheme of the UI.
Folder Forms
Do Forms Personalization

8)Can you extend every possible Application Module?


Answer: No..Root AM cannot be extended.

9) What is rootAM?
The application module which is associated with the top-level page region
(the pageLayout region) is root application module.

10) Why cant Root AM be extended?

The root AM is loaded first and after that the MDS Substitutions are parsed.
Hence ROOT AM gets loaded even before the time the substitutions
definition from MDS layer get worked out.
http://posamoracleapps.blogspot.com/2012/02/oaf-interview-questions.html
More and more jobs demand OA Framework skillsets these days.
In fact it is safe to say that you would need OA Framework development
experience to have an edge as an Oracle Applications Consultant.
Indeed OA Framework will become a thing of past with Fusion, however
OA Framework will be used for next at least 5 to maximum 10 years
The concepts of OAF, specifically BC4J, can be carried forward to ADF.

I am listing hereby the questions that I would ask for an OA Framework


Interview.
As a thumb rule, interview questions should always be based on basic &
practical concepts.
Please remember that, as an Oracle Apps Consultant, more often that not,
you will be required to do extensions rather than pure development.
Indeed, some component of extensions will call for development of new
pages.
These questions will lay more emphasis on OA Extensions, which is what OAF
Consultants will most likely be working on.
One last piece of advice, the purpose of these questions is not only to help
you with interviews, but in reality it is to help you clear your practical
concepts on OA Framework.
Question 1
You wish to hide a bean/field programmatically, where will you do that?
a. In controller
b. In Application Module
c. In Entity Object
d. In View Object
Answer:- In controller[Although SPEL with limited usage can also be
considered]
The remainder questions are best left interactive.
Please quote the Question Number in comments when putting your
thoughts on any individual question.
Question 2
Within which method of Controller will you hide that bean/field/button/region
programmatically?
1.
processRequest
2.
processFormRequest
3.
Both processRequest and processFormRequest

Question 3
Tell me the practical steps for extension of a view object, starting from
$JAVA_TOP to jDeveloper

Question 4

Please tell me the scenario in which extension to View Object is not upgrade
safe?

Question 5
In Oracle Forms, we have WHEN-VALIDATE-RECORD? What will be the
equivalent to that in OAFramework?

Question 6
How do you disable all the OA Framework personalizations in eBusiness Suite

Question 7
How do you disable all the OA Framework extensions in eBusiness Suite

Question 8
You are working on two projects, both involve OA Framework.
One instance is on 11.5.10-Rollup2
Other instance is on R12-Rollup4
Can you setup up development environment for both these instances on your
PC/Laptop? If yes, then please explain how.

Question 9
How do you enable a pop-up screen in OA Framework [without using
javaScript]?

Question 10
Can you add new columns to an Advanced Table region/section using
personalization?

Question 11
Tell me one scenario in which you would have to extend Application Module?

Question 12
Can you extend every possible Application Module?

Question 13
A slightly advanced question will beWhy cant Root AM be extended?

Question 14
How would you know whether the AM that you are trying to extend is the
RootAM?

Question 15
Which two types of extension are the most common ?

Question 16
Why do you think multiple AMs are required in a Transaction/Transactions?
Give me an example where this is applicable.

Question 17
On any given OA Framework page, what is the sequence in which these
methods will fire in a Controller?
processFormData
processRequest
processFormRequest

Question 18
A user clicks on a Submit button on a page. The fields on this page are
attached to View Object attributes, which in turn are attached to Entity
Object attributes. An exception is raised from validation EO due to data
validation errors.
Tell me, which methods in controller will be fired when a Submit button is
clicked on that page [assuming validations in EO throw an exception]

Question 18
What are the steps to embed a custom region into a standard OA Framework
page?

Question 19
You have two OA Framework pages, page A and page B. Depending upon the
value of a department selected in PageA, you wish to restrict the LOV of
Approvers in page B.
How will you do this? Why would would not prefer to extend the viewObject
of LOV?

Question 20
What are different methodologies that you can consider to default value into
a field?

Question 21
What are different mechanisms of debugging in OA Framework.

Question 22
From one controller, I wish to execute the code in other controller. Is it
possible, and if yes, then how?

Question 23
I wish to know the SQL statement of a View Object being used by a page.
What is the quickest way to find out?

Question 24
How would you deploy the BC4J extensions to the server?

Question 25
I have extended the View Object and now I wish to locally test that extension
in jDeveloper? Is that possible without loading the jpx file into the database?

Question 26
When you run SQL Trace for an OA Framework session[using diagnostics],
why are multiple *.trc files created on the database server?

Question 27
How do you load XML page developed using jDeveloper?

Question 28
Tell me two different methods you can use to get the XML Files of standard
OA Framework pages.

Question 29
Tell me two different methods you can use to get the XML definitions for
standard OA Framework pages?

Question 30

Please explain the different types of tasks you can do using Functional
Administrator responsibility

Question 31
Lets say a PageA has been personalized in Development and UAT
environments. Is it possible to merge the personalizations done to same
page in two different environments, using Functional Administrator?
Question 32
What is the sequence of Personalizations override?
Responsibility Level
Site Level
Function Level
Organization Level
User Level

Question 33
Where is dbc file located on the server? Is dbc file used by jDeveloper at
RunTime or DesignTime?

Question 34
By setting profile option Disable Self Service Person%, not only the
personalization, but also
the OA Framework extensions get disabled. Please explain why?

Question 35
How do you create User Level Personalizations?
Please explain the steps

Question 36
Off the following levels in Personalizations, i.e. Responsibility Level, Site Level
and Function level, which level has highest and least priority?

Oracle OA Framework Interview Questions


What is the pattern used in developing any OAF component?
MVC (Model, View, Controller)
Lists the components in the MVC architecture
Model: Application Module, View Objects, View Links, Entity Objects, Entity
Associations etc.
View: Page, Region, Attributesets etc.
Controller : Controller class files
Which is the component responsible for user actions?
Controller is the object. The code present in ProcessFormRequest gets
executed up on the user action.
If we have to initialize something during the page loading, which is the
right place?
A.
ProcessRequest() method of the Controller file is the right place.
What is the significance of ProcessFormData()?
For a POST request the data on the page is binded to the view object in
this method
Does GET request result in calling ProcessFormData()?
No, only POST request calls that.
What is the main Controller component in OAF?
OAController is the main class and our controller will become subclass of
it.
How does page structure get created at runtime?
OAPageBean is responsible for creating the bean hierarchy structure at
runtime after calling ProcessRequest() of each of the beans in the hierarchy.
Where does the client BC4J objects get placed in the server?
A. They are located in the oracle.apps.<product>.<application>.server
Where does the server BC4J objects get placed in the server?
They are located in the
oracle.apps.<product>.<application>.schema.server
Where does the Page and Controller related files get placed?
They are located in oracle.apps.<product>.<application>.webui
What are Validation View Objects?

They are the VVOs used in validation of attributes, they are the BC4J
components and have their AM ie VAM Validation Application Module
What is the version of Jdeveloper to be used in 11i or R12?
For 11i, Jdeveloper 9i will be used and for R12 Jdeveloper 10g will be used.
What is a Database Connectivity File?
It is a .dbc file which is specified in the project properties. The location of
this file on the server is $FND_TOP/secure
What is a View Object?
It is a BC4J(Business Component for Java) object which encapsulates the
query results. View objects will support the display of the content to user in
the Page.
How do you create a view object?
View objects can be created in the Business components package, can be
based on entity objects or an sql query. View objects based on sql query are
read only view objects
What is an entity object?
Entity object is created based on a database table, it is responsible for
insertion/updation/validation of the table data. They are stored in the
oracle.apps.<prod>.<application>.schema.server package directory
What is an Application Module(AM)?
Application module holds the related objects pertaining to an application
ie. View objects, Entity Objects etc. The application module helps in getting
the required database connection, maintains the page session or transaction
context
What is the object passed to every page request?
OAPageContext object is passed to every request, using this object the
controller initializes the application module object and will call the required
methods.
Where is the view object(VO) initialization or query filtering done?
It is done with view object implementation class Ex. EmpVOImpl.java
What is the property to set for an AM so that the transaction state is
maintained across pages?
RETENTION_LEVEL property is set to value MANAGE_STATE for an AM.

What is the Personalization?

Personalization means changes to the existing Page according to the


customer requirement
Give some examples of Page Personalization?
Addition of new columns to a table results, adding of fields, changing the
order of regions, columns etc. Apart from this validation of certain fields,
display of Descriptive flex fields etc can also be achieved
What is extension?
Extension is the changing of the existing components for adding more
features or customer required features. View Objects, Controller, Application
Module can be extended.
What is substitution?
When view objects are extended, we need to tell the applications that our
extended view object should be used or substituted during runtime,
substitution will serve this purpose
How to do register a new OA Framework page in Oracle Applications?
oracle.jrad.tools.XMLImporter utility will be used. After successfully
importing the page data will be stored in metadata repository tables of the
database
How do you move personalization from one machine to another?
Using the functional administrator responsibility the xml file can be
downloaded, this file contains the required personalization done on a
particular page. The same can be used to upload in a different instance. Here
XMLImporter utility can be also used.
How is the applications security maintained during the OA Framework
components development or how is the required security obtained?
The Database connectivity file ( .dbc file) has the applications username
and password along with the responsibility to be used for connecting to the
applications at page run time.
What are the different layers of onion reuse object model in OAF?
The hierarchy is as :
Controller (XXCO.java)
|__
Application Module (XXAMImpl.java, XXAM.xml)
|__
View Objects(XXVOImpl.java, XXVORowImpl.java,
XXVO.xml)
|__
Entity Objects(XXEOImpl.java, XXEO.xml)
|_ Database

What is Partial Page Rendering PPR?


A.
PPR is a mechanism where in only the required part of the page is
refreshed as against the whole page. The page objects fire the events and
accordingly the request is handled in the controller file
What are the search region options available?
Simple Search ResultBasedSearch is the construction mode for the
region
Advanced or autocustomization search Autocustomization is the mode here
None User has the develop the page, regions, controller etc here
What is the bean used for supporting transactions across pages visually to
the user?
OATrainBean is used to link the pages across the transaction. AM supports
the transaction context or state here across the pages.
How does personalization takes its effect at runtime?
After the page structure or bean hierarchy is formed with, the
personalization layers get applied on top of it to come up with the final
structure. Remember that is the reason why personalization is upgrade safe.
Name some components requiring extension?
View Objects, Controller, Application Module. Yes nested application
module concept is allowed.
After you modify a class file and move it to the server what is the
immediate step that will be followed?
The services of the instance ie. Apache server etc. have to be bounced so
that the new code in the class file takes effect.
Where does the two categories of files in OAF be placed in the server?
All the xml files of the page/region will be placed in the respective TOPs
mds directory. All the class files irrespective of TOP will be placed under
$JAVA_TOP which can be $COMMON_TOP/java
When do you create additional business components package?
Apart from B4CJ client business components package and B4CJ server
business components package we create additional business components
package when we develop any sharable thing such as LOV (List of Values),
Poplist etc which will be used in multiple pages
How do you map the LOV created to your base page?

One of the items in the page has to be MessageLOVInput which extends


the new LOV region, apart from this LOV mappings between base page and
LOV region have to be created.
What is the default top region of any new page that you create?
PageLayout is the top level default region
At what level region controller for a page can be set?
It can be under a Main region under PageLayoutRegion or any region as
per the business need. Provision of defining multiple controllers for a page
also exist.
PPR follows GET or POST flow?
POST flow
What is the extension to the tool for developing OA F components?
A. Jdeveloper OA Extension class support the OA F development
1) What is BC4J and what are all the components of BC4J?
Business Components for Java is JDeveloper's programming framework
for building multitier database applications from reusable business
components. Such applications typically consist of:
A client-side user interface written in Java and/or HTML.
One or more business logic tier components that provide business
logic and views of business objects.
Tables on the database server that store the underlying data.
Components of BC4J:
Entity Object - EO encapsulates the business logic and rules. EOs are
used for Inserting, Updating and Deleting data. This is used for
validating across the applications.
View Object - View object encapsulates the database query. It is used
for selecting data. It provides iteration over a query result set. VOs are
primarily based on EOs. It can be used on multiple EOs if the UI is for
update.
Application Module - Application Modules serve as containers for
related BC4J components. The pages are related by participating in the
same task. It also defines the logical data model and business methods
needed.
2) What is an EO?
EO encapsulates the business logic and rules.EOs are used for
Inserting, Updating and Deleting data. This is used for validating across
the applications. We can also link to other EOs and create a
Association object.
3) What is an VO?
View object encapsulates the database query. It is used for selecting
data. It provides iteration over a query result set.VOs are primarily

based on Eos. It can be used on multiple EOs if the UI is for update. It


provides a single point of contact for getting and setting entity object
values. It can be linked together to form View Links.
4) What is an AO?
An association object is created where we link EOs. For example take
the search page where we link the same EO to form a association
between the manager and employee. Every employee should have a
manager associated. But if it President then no there is no manager
associated. This is a perfect example to understand the AO.
5) What is an VL?
A view link is an active link between view links. A view link can be
created by providing the source and destination views and source and
destination attributes. There are two modes of View link operation that
can be performed. A document and Master/Detail operation.
6). What is UIX?
UIX is an extensible, J2EE-based framework for building web
applications. It is based on the Model-View-Controller (MVC) design
pattern, which provides the foundation for building scalable enterprise
web applications.
7). VO is located in the View Layer in MVC which is responsible for
presenting the data to the user.
9) Which package should include EO and AO.
The EO and AO will be present in the schema.server package.
10) What is the difference between inline lov and external lov.
Inline lov is a lov which is used only for that particular page for which it
was created and cannot be used by any other page.
External lov is a common lov which can be used by any page. It is a
common component for any page to use it. It can be used by giving the
full path of the lov in the properties section External LOV of the item.
11) what is a Javabean?
JavaBeans is an object-oriented programming interface that lets you
build re-useable applications or program building blocks called
components that can be deployed in a network on any major operating
system platform.
12) What is query Bean?
QueryBean is used to execute and return the results of a query on
behalf of the QueryPortlet application.
13) what is the difference between autocustomization criteria and
result based search?
Results based search generates search items automatically based on
the columns on the results table.
In Autocustomization search we need to set what all fields are required
to display as a search criteria.
14) what is MDS?
MDS is MetaData Service. When a web page is broken into small units
like buttons,fields etc they are stored in a database. These are not

stored as binary files but as data in tables. The data are present in JDR
tables. MDS provides service to store & return page definitions. MDS
collects those definitions in components/fields in a meaningful manner
to build a page.
15) What is XML?
XML is a markup language for documents containing structured
information.
Structured information contains both content (words, pictures, etc.)
and some indication of what role that content plays (for example,
content in a section heading has a different meaning from content in a
footnote, which means something different than content in a figure
caption or content in a database table, etc.).
16) What is the difference between customization and extension?
Customization is under direct user control. The user explicitly selects
between certain options. Some customization examples include:
Altering the functionality of an application
Altering existing UI
Altering existing business logic
Extension is about extending the functionality of an application beyond
what can be done through personalization. Some extensibility
examples include:
Add new functional flows
Extend or override existing business logic
New application/module
New page
New attribute
Extend/Override defaults & validations
17) What is Personalization?
Personalization enables you to declaratively tailor the UI look-and-feel,
layout or visibility of page content to suit a business need or a user
preference. Some personalization examples include:
Tailor the order in which table columns are displayed.
Tailor a query result.
Tailor the color scheme of the UI.
Folder Forms
Forms Personalization
Oracle Application Framework (OAF)
20) What is rootAM?
The application module which is associated with the top-level page
region (the pageLayout region) is root application module.

21) Why Should we give retainAM=Y?


The AM should be retained whenever you are navigating away from a
page and when you know that there is a possibility to come back to the
page again and data is to be retained. Example : Any navigation link
that opens in a new page or any navigation which has a back button to
come back to the initial page.
The AM should not be retained for two independent pages, especially if
they have common VOs which fetch different result sets. In such cases,
retaining the AM may not remove the cache of VOs and so the result
may not be as expected.
22) What is the significance of addBreadCrumb=Y
The basic intention of the breadcrumb is to let the user know of the
navigation path he took to reach the current page.
23) How do you find right jdev patch for your oracle application
version.
Search in oracle.metalink.com as Jdev with OA Extension.
24) What are the tools you had used for decompiling java class?
Jad is one of the tool for decompiling the java class.
OAF Interview Questions

1. How do u implement LOV? What is dependent LOV?


2. I am not able to see about this page link, how do i get it?
3. I am not able to see personalize this page link?
4. How do u migrate ur customization form one environment(instance)
to other?
5. About MVC Acchitecture.
6. Where you do validation?
7. What is passivation?
8. What is Validation VO (VVO) & PPR?
9. How do you extend a VO? How do u substitute a VO and why?
10. How to do personalization? When do you go for personalization and
when for extension.
11. How to print current date in OAF page?
1. What do you mean by extending a View Object? Extending a Controller
Object? what are the practical cases in which I am required to do that?
2. what is bean area and in which practical cases am I requierd to
extend the Bean Area?
3. If I am required to add a checkbox (say for e.g,) on an OAF page, Is

extending the Controller Object mandatory? where do I extend the


Controller Object, in Jdeveloper?
If I need to see whether my changes have taken effect, where should I
deploy the changed OAF page? (Here I am not talking about deploying
a new custom application developed in OAF. I am just asking what are
the steps to see my changes take effect).
4. If I am required to add a checkbox on an OAF page, what are the
steps to do that and what are the steps to see my changes take effect?
(like in forms customization whenI deploy the fmx file on the top like ap
or po top then I can see the changes)
2. how can i make attachment field as mandatory
3. Changing a profile value at the controller level
4. copy personalization from one responsibility to another
5. How to post changes of EO backed VO to DB without commit?
6. How to cancel the newly created record
7. Retain transient attribute value attached to Radio button
8. Currency Formattin in Oaf
9. Dynamic VO

Beginners
1. What is BC4J and what are all the components of BC4J?
Ans:
2) What is an EO?

Ans: EO encapsulates the business logic and rules.EOs are used for
Inserting,Updating and Deleting data. This is used for validating across the
applications. We can also link to other EOs and create a Association object.
2. What is an VO?
Ans; View object encapsulates the database query. It is used for selecting
data. It provides iteration over a query result set.VOs are primarily based on
Eos. It can be used on multiple EOs if the UI is for update. It provides a
single point of contact for getting and setting entity object values. It can be
linked together to form View Links.
3. What is an AO?
Ans: An association object is created where we link EOs. For example take
the search page where we link the same EO to form a association between
the manager and employee. Every employee should have a manager
associated. But if it President then no there is no manager associated. This is
a perfect example to understand the AO.
4. What is an VL?
Ans: A view link is an active link between view links. A view link can be
created by providing the source and destination views and source and
destination attributes. There are two modes of View link operation that can
be performed. A document and Master/Detail operation.
5. What is UIX?
Ans: UIX is an extensible, J2EE-based framework for building web
applications. It is based on the Model-View-Controller (MVC) design pattern,
which provides the foundation for building scalable enterprise web
applications.
6. what is MVC Architecture?
Ans: MVC Architecture is a Model View Controller Architecture. The controller
responds to user actions and directs application flow. The model
encapsulates underlying data and business logic of the application. The view
formats and presents data from a model to the user.
7. which is the MVC layer VO located?
Ans: O is located in the View Layer which is responsible for presenting the
data to the user.
8. Which package should include EO and AO.
Ans: The EO and AO will be present in the schema.server package.

9. What is the difference between inline lov and external lov.


Ans: Inline lov is a lov which is used only for that particular page for which it
was created and cannot be used by any other page.External lov is a common
lov which can be used by any page. It is a common component for any page
to use it. It can be used by giving the full path of the lov in the properties
section External LOV of the item.
10.

what is a Javabean?

Ans: JavaBeans is an object-oriented programming interface that lets you


build re-useable applications or program building blocks called components
that can be deployed in a network on any major operating system platform.
11.

What is query Bean?

Ans: QueryBean is used to execute and return the results of a query on


behalf of the QueryPortlet application.
12.
what is the difference between autocustomization criteria and
result based search?
Ans: Results based search generates search items automatically based on
the columns on the results table.
In Autocustomization search we need to set what all fields are required to
display as a search criteria.
13.

what is MDS?

Ans: MDS is MetaData Service. When a web page is broken into small units
like buttons,fields etc they are stored in a database. These are not stored as
binary files but as data in tables. The data are present in JDR tables. MDS
provides service to store & return page definitions. MDS collects those
definitions in components/fields in a meaningful manner to build a page.
14.

What is XML?

Ans: XML is a markup language for documents containing structured


information.
Structured information contains both content (words, pictures, etc.) and
some indication of what role that content plays (for example, content in a
section heading has a different meaning from content in a footnote, which
means something different than content in a figure caption or content in a
database table, etc.).
15.

What is the difference between customization and extension?

Ans: Customization is under direct user control. The user explicitly selects
between certain options. Some customization examples include:
Altering the functionality of an application

Altering existing UI
Altering existing business logic
Extension is about extending the functionality of an application beyond what
can be done through personalization. Some extensibility examples include:
Add new functional flows
Extend or override existing business logic
New application/module
New page
New attribute
Extend/Override defaults & validations
16.

What is Personalization?

Ans: Personalization enables you to declaratively tailor the UI look-and-feel,


layout or visibility of page content to suit a business need or a user
preference. Some personalization examples include:
Tailor the order in which table columns are displayed.
Tailor a query result.
Tailor the color scheme of the UI.
Folder Forms
Forms Personalization
Oracle Application Framework (OAF)
17) What is rootAM?
Ans: The application module which is associated with the top-level page
region (the pageLayout region) is root application module.
18) Why Should we give retainAM=Y?
Ans: The AM should be retained whenever you are navigating away from a
page and when you know that there is a possibility to come back to the page
again and data is to be retained. Example : Any navigation link that opens in
a new page or any navigation which has a back button to come back to the
initial page.
The AM should not be retained for two independent pages, especially if they
have common VOs which fetch different result sets. In such cases, retaining
the AM may not remove the cache of VOs and so the result may not be as
expected.
19) What is the significance of addBreadCrumb=Y
Ans: The basic intention of the breadcrumb is to let the user know of the
navigation path he took to reach the current page.
20) How do you find right jdev patch for your oracle application version.
Ans: Search in oracle.metalink.com as Jdev with OA Extension.

21) What are the tools you had used for decompiling java class?
Ans:
Jad is one of the tool for decompiling the java class.

EXPERT
1. What will setmaxFetchSize(0) will do?
Ans: setmaxFetchSize just determines how much data to be sent at a time.
2. Can we use dynamically created VO in OAF?What is the pros and cons?
Ans: Want to answer this section? use the comment section.
3. What is advanced table in table?
Ans: Want to answer this section? use the comment section.
4. What is a HGrid?
Ans: A HGrid, otherwise known as a hierarchy grid, allows users to browse
through complex sets of hierarchical data.
5. Tell me the OAF components required for a simple search page?
Ans: VO,AM,Page
6. What is a switcher in oAF and when it is used?
Ans: A switcher is a control, that allows the selective display of
information.For example if you want to display a image for update enabled
and update disabled you can use switcher.
7. What are all the methods in CO?
Ans: processForRequest
processRequest
8. When a page renders which method in CO fires?
Ans: processRequest
9. How do you handle back button navigation in OAF based application?
Ans: Want to answer this section? use the comment section.
10.

Where will you write your business logic?

Ans: EO.
11.

What will vo.createRow() do?

Ans: createRow creates a row in the VO.


12.
How do you catch the button event on ProcessFormRequest
Method?
Ans: if
("update1".equals(pageContext.getParameter(OAWebBeanConstants.EVENT_
PARAM)))
Here update1 is the event.
13.

What is pageButton bar?

Ans: When you want to display buttons on top and bottom of the page then
you create a region as pageButtonbar and create buttons within this region.
14.

How do you add a link to OAF Page?

Ans: Create a new item with style as link and give its destination uri property
which is the url where you want to navigate to.
15.

Which is the top most region in OAF page?

Ans: PageLayoutRN
16.

How do you enable custom footer in OAF page?

Ans: Want to answer this section? use the comment section.


17.
What are all the several ways to debug an OAF based
application?
Ans: We can use the debugger option .Set breakpoints and run the page in
debug mode.
18.

How do you call an pl/sql api from OAF page.

Ans: To call a PL/SQL API from OAF, we use OracleCallableStatement or


CallableStatement
19.

Should a search page have an EO?

Ans: Not necessary. If you are creating a record then we need a EO.
20.

How do you get the current url for forward?

Ans: Want to answer this section? use the comment section.

21.
What will happen when you set DisableClientSideValidation
property to True?
Ans: If you set the property to True it shows that there will no validation that
will occur on the web tier as part of the form submit.
22.

What is SPEL?

Ans: It is an expression that will either return TRUE or FALSE.


23.

Where is a SPEL used?

Ans: SPEL is used in places where you want to show or hide an item
programatically.
24.

What is PPR?

Ans: PPR is Partial Page rendering. Which means that only a particular part of
the page is refreshed and not the entire page.
25.

Examples of PPR scenarios?

Ans: [*]Hiding/Showing Objects[/*]


[*]Required/Optional[/*]
[*]Disabled/Enabled[/*]
[*]Read only/Updatable[/*]
26.
VO?

What is the procedure to add new viewattribute in a sql based

Ans: Want to answer this section? use the comment section.


27.

How do you raise an exception in OAF?

Ans: Want to answer this section? use the comment section.


28.
How do you generate stack of exception and display the list of
error messages in OAF page?
Ans: Create an arrayList of exceptions then do a raiseBundledException.
29.

What is the significance of ProcessFormData method?

Ans: Fires when page submit happens..


30.

Describe the steps for VO Extension?

Ans: 1.Identify VO to be extended.And Copy to your machine from server.


2.Create new Vo in xx.oracle.apps package and extend parent VO.
3.Create substitution in jdev.
4.Deploy extended VO to $JAVA_TOP.
5.Load jpx file to database using jpximporter..
31.

Describe the steps to Extend an AM?

Ans: Want to answer this section? use the comment section.


32.

How do we set the context in AM?

Ans: Want to answer this section? use the comment section.


33.

How do we implement a popup page in OAF?

Ans: Want to answer this section? use the comment section.


34.

How do we set design time hint to a VO?

Ans: Want to answer this section? use the comment section.


35.

How to enable personlization?

Ans: 1.Login to the application.


2.Click on Functional Administrator responsibility.
3.Click on Core Services Tab.
4.Click on Profiles.
5.Enter Pers%Self% in Name and click Go.
6.In the results you will see Personalise Self-Service Defn.Update it and enter
Yes in the Site Value
36.

When we should bounce the page?

Ans: Want to answer this section? use the comment section.


37.

How do we set an OAF Home page?

Ans: Want to answer this section? use the comment section.


38.

How do we add Custom region to existing OAF page?

Ans: Want to answer this section? use the comment section.

39.

How do we compile a java files under subdirectories at once?

Ans: Want to answer this section? use the comment section.


40.

What is the command used to import an oaf page and region?

Ans: java oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/ -username


<>-password <>-dbconnection "(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)
(HOST=[LINK=http://cpa51d.cpa.bdoutsource.com/][/LINK])(PORT=1558))
(CONNECT_DATA= (SID=<>) ) )" -rootdir . ;
41.
Where to locate the definition of standard OAF Pages and
regions?
Ans: : $APPL_TOP/icx/11.5.0/mds/por/ -- for purchasing
42.

How to automate the deployment process of OAF application?

Ans: Want to answer this section? use the comment section.


43.

How to add dff to a custom oaf page?

Ans: Want to answer this section? use the comment section.


44.

How do you upload an file to OAF page?

Ans: Want to answer this section? use the comment section.


45.

How do you display thimbnail images in OAF?

Ans: Want to answer this section? use the comment section.


46.

What is the use of rawText bean?

Ans: Want to answer this section? use the comment section.


48? How to set the CSS class property of an item programatically?
Ans: Want to answer this section? use the comment section.
49) Can a page have multiple COs and AMs?
Ans: Want to answer this section? use the comment section.
50) How to change the lovvo dynamically for an LOV?
Ans: Want to answer this section? use the comment section.
Extraordinary
1. What is Passivation?

Ans: passivation is the process of saving application state to a secondary


medium (the database) at specific event
points so it can be restored (activated) when needed.
2. How do you iterate throw the VO rows?
Ans: Want to answer this section? use the comment section.
3. How do you get the value from the database sequence?
Ans: OADBTransaction transaction = getOADBTransaction();
Number employeeId = transaction.getSequenceValue("SEQ Name");
setEmployeeId(employeeId);
4. How do you perform your validation in OAF?
Ans: All OAF validations are done in the Entity Object.
5. How do you copy rows from one vo to another?
Ans: To copy multiple rows you can add the multipleSelection item for the
table.Check which row is selected and write code for implementing this.
6. What is a transaction unit in OAF?
Ans: With the transaction unit identifier, you can indicate when a specific UI
task begins and ends, and if the user navigates in an unexpected manner
such as using the browser Back button. You can check the transaction unit
status and react to ensure that inappropriate actions are not performed and
unwanted data in the BC4J cache is not committed.

7. How to implement a dependent poplist?


Ans: Dependent poplist can be implemented by enabling firePartialAction and
capturing the event for the source poplist and passing the value selected in
the source to the method where we set the where clause and execute the
query for the destination poplist.
8. How do you implement dependent LOV?
Ans:
9. How to add attachment functionality to the standard OAF page?

Ans: Want to answer this section? use the comment section.


10.
How do you set a default value for an item programatically in a
standard OAF page?
Ans: Want to answer this section? use the comment section.
11.
How do you migrate personalization from one instance to
another?
Ans: Want to answer this section? use the comment section.
12.
what is the diff between setforwardurl and
setforwardimmediately?
Ans: Want to answer this section? use the comment section.
13.

can we extend rootAM?

Ans: Want to answer this section? use the comment section.


14.

How do we pass parameters between pages?

Ans: pageContext.forwardImmediately("OA.jsp?
page=/xxch/oracle/apps/fnd/test/webui/DetailsPG&fname="+fname.
Here fname is the variable we are passing to the DetailsPG.
15.

How do you import csv file into a OAF table region?

Ans: Want to answer this section? use the comment section.


16.

Steps to implement Export button?

Ans: Want to answer this section? use the comment section.


17.

How do we display XML Publisher report from OAF page?

Ans: Want to answer this section? use the comment section.


18.

How do we perform bC4J substitution?

Ans: Want to answer this section? use the comment section.


19.

Will patching erase custom extensions?

Ans: Want to answer this section? use the comment section.


20.

How do you do onscreen debugging of an OAF page?

Ans: Want to answer this section? use the comment section.


21.

What are all the know issues in OAF?

Ans: Want to answer this section? use the comment section.


22.
How do I pass different kinds of parameters together to AM
method from CO(Like Boolean,String,NUmber)?
Ans: Want to answer this section? use the comment section.
23.

What is serializable?

Ans: Want to answer this section? use the comment section.


24.

In which layer of BC4J,VAM and VVO's are included?

Ans: Want to answer this section? use the comment section.


25.

How do we synchronize a EO and Table in the database?

Ans: Right click on the EO and click Synchronise.


26.

Steps for implementing a three frame JSP?

Ans: Want to answer this section? use the comment section.


27.

How to set currency formatting in an OAF advance table region?

Ans: pageContext.getOANLSServcies().formatCurrency(num,"USD");
28.

How to display total values in OAF table?

Ans: Want to answer this section? use the comment section


OAF Interview Question and Answers

Question 1
You wish to hide a bean/field programmatically, where will you do that?
a. In controller
b. In Application Module
c. In Entity Object
d. In View Object
Answer In controller[Although SPEL with limited usage can also be
considered]
Question 2
Within which method of Controller will you hide that bean/field/button/region
programmatically?
1.
processRequest
2.
processFormRequest
3.
Both processRequest and processFormRequest
Answer is 1. - processRequest

OA Framework give error if you change bean property in processformrequest


Question 3
Tell me the practical steps for extension of a view object, starting from
$JAVA_TOP to jDeveloper
Answer

Question 4
Please tell me the scenario in which extension to View Object is not upgrade
safe?
Answer- If the original view object was created in expert mode, then you will
have to copy the Original VO Query and then you will paste that SQL
Stmt/Query into the extended View Object.
Now, if Oracle were to change the original SQL Statement [against original
VO], then those changes will not be reflected in extended View Object.
Is there any solution?
Well, yes, depends on what you wish to achieve via personalization.
If you simply wish to alter the where clause dynamically, then you might as
well do that by extending the controller.
Note:- When extending the CO, we are assuming that at least the selected
table aliases from the Original SQL Statement will not be removed by
Oracle's patches.
Question 5
In Oracle Forms, we have WHEN-VALIDATE-RECORD? What will be the
equivalent to that in OAFramework?
Answer - Use a method named validateEntity() within the Entity Object.
Question 6
How do you disable all the OA Framework personalizations in eBusiness Suite
Answer- All the personalizations done to the system can be disabled by
simply setting a profile option to Yes at site level.
Name of this profile option is something like Disable%Self%Service%Personal
%
Note:- You can de-activate personalizations against individual pages
selectively, by clicking on button "Manage Personalizations". You may need
to give yourself access to responsibility named "Functional Administrator", so
that you can disable personalizations selectively.
Question 7
How do you disable all the OA Framework extensions in eBusiness Suite
Answer - The answer to this question is same as that for Question 6.

Extensions are stored in the MDS Layer. Hence if you disble all
personalizations, then all the OA Framework extensions will also be removed
temporarily, while that profile remains set to Yes.
This is very handy in case you wish to bring your product back to Vanilla
state.
Question 8
You are working on two projects, both involve OA Framework.
One instance is on 11.5.10-Rollup2
Other instance is on R12-Rollup4
Can you setup up development environment for both these instances on your
PC/Laptop? If yes, then please explain how.
Answer

Question 9
How do you enable a pop-up screen in OA Framework [without using
javaScript]?
Answer

Question 10
Can you add new columns to an Advanced Table region/section using
personalization?
Answer We can add columns using personalization.
Question 11
Tell me one scenario in which you would have to extend Application Module?
Answer

Question 12
Can you extend every possible Application Module?
Answer

Question 13
A slightly advanced question will beWhy cant Root AM be extended?
Answer

Question 14
How would you know whether the AM that you are trying to extend is the
RootAM?
Answer

Question 15
Which two types of extension are the most common ?
Answer

Question 16
Why do you think multiple AMs are required in a Transaction/Transactions?
Give me an example where this is applicable.
Answer

Question 17
On any given OA Framework page, what is the sequence in which these
methods will fire in a Controller?
processFormData
processRequest
processFormRequest
Answer
Question 18
A user clicks on a Submit button on a page. The fields on this page are
attached to View Object attributes, which in turn are attached to Entity
Object attributes. An exception is raised from validation EO due to data
validation errors.
Tell me, which methods in controller will be fired when a Submit button is
clicked on that page [assuming validations in EO throw an exception]
Answer

Question 18
What are the steps to embed a custom region into a standard OA Framework

page?
Answer

Question 19
You have two OA Framework pages, page A and page B. Depending upon the
value of a department selected in PageA, you wish to restrict the LOV of
Approvers in page B.
How will you do this? Why would would not prefer to extend the viewObject
of LOV?
Answer
Question 20
What are different methodologies that you can consider to default value into
a field?
Answer
Question 21
What are different mechanisms of debugging in OA Framework.
Answer
Question 22
From one controller, I wish to execute the code in other controller. Is it
possible, and if yes, then how?
Answer

Question 23
I wish to know the SQL statement of a View Object being used by a page.
What is the quickest way to find out?
Answer

Question 24
How would you deploy the BC4J extensions to the server?
Answer
Question 25
I have extended the View Object and now I wish to locally test that extension

in jDeveloper? Is that possible without loading the jpx file into the database?
Answer

Question 26
When you run SQL Trace for an OA Framework session[using diagnostics],
why are multiple *.trc files created on the database server?
Answer

Question 27
How do you load XML page developed using jDeveloper?
Answer
Question 28
Tell me two different methods you can use to get the XML Files of standard
OA Framework pages.
Answer
Question 29
Tell me two different methods you can use to get the XML definitions for
standard OA Framework pages?
Answer
Question 30
Please explain the different types of tasks you can do using Functional
Administrator responsibility
Answer
Question 31
Lets say a PageA has been personalized in Development and UAT
environments. Is it possible to merge the personalizations done to same
page in two different environments, using Functional Administrator?
Answer
Question 32
What is the sequence of Personalizations override?
Responsibility Level
Site Level
Function Level

Organization Level
User Level
Answer
Question 33
Where is dbc file located on the server? Is dbc file used by jDeveloper at
RunTime or DesignTime?
Answer
Question 34
By setting profile option Disable Self Service Person%, not only the
personalization, but also
the OA Framework extensions get disabled. Please explain why?
Answer
Question 35
How do you create User Level Personalizations?
Please explain the steps
Answer
Question 36
Off the following levels in Personalizations, i.e. Responsibility Level, Site Level
and Function level, which level has highest and least priority?
Answer
Question 37
How to set responsibility context in OAF like fnd_global.APPS_INITIALIZE is
used in database.
Answer: Achived the results of switching the responsibility context by using
pageContext.changeResponsibility

Question 38
Which responsibility do you need to extract Self Service Personalizations?
Answer:Functional Administrator

Question 39
How will you open a bc4j package in jdeveloper?

Answer Oracle ships a file named server.xml with each bc4j package. You
will need to ftp that file alongside other bc4j objects(VOs, EOs, AM, Classes
etc).
Opening the server.xml will load the complete package starting from
AM(application module). This is a mandatory step when building Extensions
to framework.
Question40
In OA Framework Self-Service screen, you wish to disable a tab. How will you
do it?
Answer: Generally speaking, the tabs on a OA Framework page are nothing
but the SubMenus. By entering menu exclusion against the responsibility,
you can remove the tab from self service page.
Question41
In self service, you wish to change the background color and the foreground
text of the OA Framework screens to meet your corporate standards. How
will you do it?
Answer You will need to do the below steps
a.Go to Mid Tier, and open $OA_HTML/cabo/styles/custom.xss
bEnter below text( change colours as needed)
<style name="DarkBackground">
<property name="background-color">#000066</property>
</style>
<style name="TextForeground">
<property name="color">#0000FF</property>
</style>
c cd $OA_HTML/cabo/styles/cache
dTake a backup of all the css files.
eDelete all the files of following pattern oracle-desktop*.css
The idea here is to delete the cache. Next time when you logon to Oracle
Apps Self Service, the Framework will rebuild the css file if found missing for
your browser.
Question 42
Can you extend and substitue a root AM ( Application Module) in OA
Framework using JDeveloper.
Answer: You can extend the AM in jDeveloper, but it doesnt work( at least it
didnt work in 11.5.9). I am hopeful that Oracle will deliver a solution to this
in the future.
Question43
How will you add a new column to a List Of Values ( LOV ) in Oracle

Applications Framework? Can this be done without customization?


Answer Yes, this can be done without customization, i.e. by using OA
Framework Extension coupled with Personalization. Implement the following
Steps :a) Extend the VO ( View Object ), to implement the new SQL required to
support the LOV.
b) Substitute the base VO, by using jpximport [ similar to as explained
in Link ]
c) Personalize the LOV Region, by clicking on Add New Item. While adding the
new Item, you will cross reference the newly added column to VO.

Question 44
In Oracle OA Framework, is the MDS page/document definition stored in
database or in the file system?
Answer The MDS document details are loaded into database, in the
following sets of tables.
JDR_ATTRIBUTES
JDR_ATTRIBUTES_TRANS
JDR_COMPONENTS
JDR_PATHS
The Document is loaded via XMLImporter, as detailed in XMLImporter Article

Question 45
How does substitution work in OA Framework?
What are the benefits of using Substitution in OA Framework?
Answer Based on the user that has logged into OA Framework, MDS defines
the context of the logged in user. Based upon this logged in context, all
applicable personalization are applied by MDS. Given that substitutions are
loaded as site level personalizations, MDS applies the substituted BC4J
objects along with the personalizations. The above listed steps occur as soon
as Root Application module has been loaded.
The benefit of using Substitution is to extend the OA Framework without
customization of the underlying code. This is of great help during Upgrades.
Entity Objects and Validation Objects can be substituted. I think Root AMs
cant be substituted given that substitution kicks off after Root AM gets
loaded.
Question 46
In OA Framework, once your application has been extended by substitutions,
is it possible to revert back to remove those substitutions?

Answer yes, by setting profile option Disable Self-Service Personal% to


Yes, keeping in mind that all your personalizations will get disabled by this
profile option. This profile is also very useful when debugging your OA
Framework based application in the event of some error. By disabling the
personalization via profile, you can isolate the error, i.e. is being caused by
your extension/substitution code or by Oracles standard functionality.
1) What is BC4J?
Business Components for Java is JDeveloper's programming framework for
building multitier database applications from reusable business components.
These applications typically consist of:
A client-side user interface written in Java and/or HTML.
One or more business logic tier components that provide business logic
and views of business objects.
Tables on the database server that store the underlying data.
2.What are all the components of BC4J?
Following are the components of BC4J:
Entity Object - EO encapsulates the business logic and rules. EOs are
used for Inserting, Updating and Deleting data from the database table. E0 is
also used for validating the records across the applications.
View Object - View object encapsulates the database query. It is used for
selecting data. It provides iteration over a query result set. VOs are primarily
based on EOs. It can be used on multiple EOs if the UI is for update.
Application Module - Application Modules serve as containers for related
BC4J components. The pages are related by participating in the same task. It
also defines the logical data model and business methods needed.
2) What is an EO?
EO encapsulates the business logic and rules.EOs are used for Inserting,
Updating and Deleting data. This is used for validating across the
applications. We can also link to other EOs and create a Association object.
3) What is an VO?
View object encapsulates the database query. It is used for selecting data. It
provides iteration over a query result set.VOs are primarily based on Eos. It
can be used on multiple EOs if the UI is for update. It provides a single point
of contact for getting and setting entity object values. It can be linked

together to form View Links.


4) What is an AO?
An association object is created where we link EOs. For example take the
search page where we link the same EO to form a association between the
manager and employee. Every employee should have a manager associated.
But if it President then no there is no manager associated. This is a perfect
example to understand the AO.
5) What is an VL?
A view link is an active link between view links. A view link can be created by
providing the source and destination views and source and destination
attributes. There are two modes of View link operation that can be
performed. A document and Master/Detail operation.
6). What is UIX?
UIX is an extensible, J2EE-based framework for building web applications. It is
based on the Model-View-Controller (MVC) design pattern, which provides the
foundation for building scalable enterprise web applications.
7). Where the VO is located in the MVC architecture?
VO is located in the View Layer in MVC which is responsible for presenting
the data to the user.
9) Which package should include EO and AO.
The EO and AO will be present in the schema.server package.
10) What is the difference between inline lov and external lov.
Inline lov is a lov which is used only for that particular page for which it was
created and cannot be used by any other page.
External lov is a common lov which can be used by any page. It is a common
component for any page to use it. It can be used by giving the full path of
the lov in the properties section External LOV of the item.

S-ar putea să vă placă și