Monday, November 26, 2012

Frequently Asked Questions In Oracle Application Framework [OAF]



Through this post I am starting a new series of interview questions and answers for oracle application framework. There are very few interiview resources available in the internet for OAF. Please suggest more interview resources if you know. Your name and contribution will be published here.

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. EO’s 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. VO’s are primarily based on EO’s. It can be used on multiple EO’s 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.EO’s are used for Inserting, Updating and Deleting data. This is used for validating across the applications. We can also link to other EO’s 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.VO’s are primarily based on Eo’s. It can be used on multiple EO’s 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 EO’s. 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 re-useable 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 can’t 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.

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

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

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

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

5). What is an EO?
EO serves the following purpose: 
   It is used to map to a database table or other data source
   Each entity object instance represents a single row of a table
   It is fundamental BC4J object through which all DML operations i.e. inserts/updates/deletes interact with the database
   It contains attributes representing database columns
   It is a central point for business logic and validation related to a table
   It encapsulates attribute-level and entity-level validation logic
   It can contain custom business methods

6). What is a VO?
   VO represents a query result
   VOs Are used for joining, filtering, projecting, and sorting your business data
   VOs can be based on any number of entity objects
   VOs can also be constructed from a SQL statement
7. What are the methods in controller?

ProcessRequest,
processFormRequest
and processFormData

8. 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 controller 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

9. When is the processRequest method called?
PR method is called when the page is getting rendered onto the screen and a region is displayed.

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

No comments:

Post a Comment

Best Blogger TipsGet Flower Effect