Sei sulla pagina 1di 11

OAF(Oracle Application Framework)

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,ProcessformData and processformrequest
ProcessRequest : is called when the page is requested for the first time from the server.
ProcessFormRequest : is called when some event occurs on the page
ProcessformData(not visible). : Used to capture Data from the form fields which the user has entered
and post it into Model Layer.

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

10) 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.

11)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.
12) 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.

13) 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.

14) 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.

15) 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.

16). 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.

17). 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.

18) Which package should include EO and AO.


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

19) 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.

20) 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.

21) What is query Bean?


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

22) 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.

23) 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.

24) 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.).

25) 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

26) 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

27)Can you extend every possible Application Module?


Answer: No..Root AM cannot be extended.

28) What is rootAM?


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

29) 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.

Obviously, the root am cant substitute itself, hence it can't be extended

30)What are the various profile options in OAF?

FND Diagnostics: required for ABOUT THIS PAGE and Diagnostic link on page.
Personalize Self Service Definitions: To enable Personalize page link on the page.
FND Personalization Region Link Enabled: used to enable Region Personalization links at every region.
FND Migrate to JRAD: By default set to Yes. Page would run from MDS if Yes, else it will run from AK.
FND Document root path: required for personalization migration. It is set to path of the MDS folder on
the respective servers.
FND Branding image:
FND Banding Size: these profiles options are used for changing standard image (Oracle) on the page.

31)Steps for VO substitution?

1. About this Page-> VO, AM, EO, Path of Page


2. Export Commad (in cmd Prompt)
3. New .jpr =Open page
4. Look for AM and VO or EO.
5. Copy the class files of VO,AM or EO
6. Decompile into Java and store it into MyProjects (with respective directory structure)
7. Open VO.xml in a new jpr
8. Create a new BC4J based on your Original VO.
9. Create a new VO and extends original VO
10. Change the query
11. Rebuild the project
12. Go to .jpx(double click)
13. Go to Substitutions
14. Substitute Vo
15. Rebuild your Project .jpr
16. Transfer New VO class and xml to respective directory structure
17. FTP .jpx into $JAVA _TOP
18. unix command promrt CD$ JAVA_TOP
19. jpx importer command
20. Bounce Apache Server

32)What are different methods for passing paramaters?

1. Tokens
eg. vname={@AttributeName}

2. Hash Maps
eg. HashMap variablename=nre HashMap();
variablename.add(ParameterName,ParameterValue);

3.ThroughSession
eg. pageContext.putSessionvalue(ParamterName,ParameterValue)

33) setForwardURL list

There are many parameters, here is the complete list of it:-

public void setForwardURL(String functionName,


byte menuContextAction,
String menuName,
com.sun.java.util.collections.HashMap parameters,
boolean retainAM,
String addBreadCrumb,
byte messagingLevel)

Parameters:

functionName - This is the function name representing the page you want to forward to. If its null, an
IllegalArgumentException will be thrown.
Also if the function is not under the current HOMEPAGE a OAException will be thrown.

menuContextAction - Determines the behavior of the MenuContext after forwarding to the new page. It
accepts the following values:

OAWebBeanConstants.KEEP_MENU_CONTEXT: Keeps the menu context as is.


OAWebBeanConstants.KEEP_NO_DISPLAY_MENU_CONTEXT: Keeps the menu context as is, but will not
display all menus including global buttons.
OAWebBeanConstants.KEEP_NO_DISPLAY_MENU_CONTEXT_RETAIN_GLOBAL_BUTTONS: Keeps the
menu context as is, but will not display all menus excluding global buttons.
OAWebBeanConstants.REMOVE_MENU_CONTEXT: Removes the menu context
OAWebBeanConstants.GUESS_MENU_CONTEXT: Selects the given functionName function if it exists in
the current menu.
If not it will try to make a guess by moving up the menu tree until it finds it. An exception will be
thrown if the function could not be located.
OAWebBeanConstants.RESET_MENU_CONTEXT: Reset the menu context to the given functionName and
menuName.

menuName - The name of the HOMEPAGE menu to reset the Menu context to when the
menuContextAction is OAWebBeanConstants.RESET_MENU_CONTEXT.
If the menuName is not of type HOMEPAGE a OAException will be thrown. You can pass null otherwise.

parameters -

HashMap of parameter name/value pairs to append to the forward URL. The final forward URL
parameters are in the following sequence:
It will first get the function's corresponding URL call by querying the function information from the
database. If the user is not authorized to execute this function, a security OAException will be thrown.
It will then append all parameters passed in the parameters HashMap. First parameter added to the
HashMap will be first added to the URL. Also the framework will encode all parameter values before
appending them to the URL.
It will remove all parameters if they have null values in the passed parameters HashMap. This provides
an easy way for developers to set a certain parameter's value to null if they want to remove it.
It will remove any OA Framework internal URL parameters such as bcrumb, retainAM, and so on..

retainAM - If true, all the cached application modules will be retained. If false, all the cached application
modules will be released.
Developers must use this parameter to control the release behavior of the cached appplication modules.

This method will ignore any retainAM=true or retainAM=false as a URL parameter or as part of
parameters

34)Code to copy rows in VO

public void copy()


{
SuppliersVOImpl pervo = getSuppliersVO1();
Row row[] = pervo.getFilteredRows("SelectFlag","Y");
for (int i=0;i<row.length;i++)
{
SuppliersVORowImpl rowi = (SuppliersVORowImpl)row;
OADBTransaction trx = (OADBTransaction)getTransaction();
Number b = trx.getSequenceValue("FWK_TBX_SUPPLIERS_S");
AttributeList a = (AttributeList)rowi;
SuppliersVORowImpl r =(SuppliersVORowImpl)pervo.createAndInitRow(a);
//Set here your unique attribute values, I'm setting here Supplier Id as for every new row it should be
different.
r.setSupplierId(b);
pervo.insertRow(r);
}
}

35)what for isPreparedForExecution() and executeQuery() methods used?


isPreparedForExecution function will check whether all parameters are assigned properly and query is
ready for execution.
On multiple navigations to the page this query will not be executed multiple times.

While executeQuery function is used for executing the VO query so that it can fetch the data from
database into VO cache.

36)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.

37) 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.

38) How do you find right jdev patch for your oracle application version.
Search in oracle.metalink.com as Jdev with OA Extension.

39) What are the tools you had used for decompiling java class?
Jad is one of the tool for decompiling the java class.
40) 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.

41) What is query Bean?


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

42) 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.

43) 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.
45) 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.).

46) 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

47) 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

48)Can you extend every possible Application Module?


Answer: No..Root AM cannot be extended.

49) What is rootAM?


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

50) 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.
Obviously, the root am cant substitute itself, hence it can't be extended.

51)we have WHEN-VALIDATE-RECORD? What will be the equivalent to that in OAFramework?

Answer - Use a method named validateEntity() within the Entity Object.

52)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.

53)How do you disable all the OA Framework personalizations in eBusiness Suite ?


Ans- 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.

54)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
55) 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

56) 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

57)Can you extend every possible Application Module?


Answer: No..Root AM cannot be extended.

58) What is rootAM?


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