Blog | Jan 9, 2014

Leveraging OAFramework Technology in EBS

This blog will help the non-developers understand how OAF (Oracle Application Framework) is implemented in an EBS (E-Business Suite) environment and to leverage Extention and Personalization features in the HTML pages. An Oracle EBS development and deployment platform, OA Framework consists of a set of middle-tier runtime services and a design-time extension using the Oracle JDeveloper named as the Oracle E-Business Suite Extension (OA Extension).

OAF configuration provides many regular applications form features like Profile Options, Flexfield, Function Security Setup, Personalization and Customization. In an OAF based application, an average application user having admin responsibilities can tailor a screen for basic requirements such as hidinig or creating new fields on the HTML screens, without requiring any special setup.

Understanding OAF Architecture for maximum Customization and Personalization

Based on a J2EE Model-View-Controller (MVC) pattern, this architecture of OAF provides data encapsulation, secured user interaction with the applications and an ability to perform different levels of customization and personalization without impacting corresponding layers.

The OAF architecture includes:

• Model: Encapsulates processes of session management and database interaction activity of the web pages.
• View: Provides an interface for user activity like navigation of screens, data feeds and the insertion of new records/information.
• Controller: Acts like an interface between a Model and a View.

Every user activity performed on a View is sensed and detected by the Controller which makes a subsequent call to the multiple processes designed and developed in a Model tier to perform the corresponding activity, for instance, clicking of the next button or save button on the View. The Controller triggers a communication for the event from the View and associates it with the appropriate process from the Model. These series of events update/save records in the database or lead to next relevant screen for next clickable event.

(Image Source: Oracle Application Framework Developer’s Guide)


As in a series of layers, MVC architecture is likened to the onion skin. Each layer having access to the layer above ensures strong security and absolute data hiding. In an OA framework the below three are a combination of XML and Java file which is created using an Oracle provided JDeveloper tool specifically designed for the EBS.

1) Application Module (AM): Resides in the model layer and is responsible for session management.
2) View Object (VO): Contains sql queries to perform operations on the database.
3) Entity Object (EO): Is a java representation of database tables.

During the application development the responsibilities of BC4J (AM, VO, EO) objects, Controller and View can be divided as follows, User interaction raises an event -> Controller senses the event -> AM calls the methods on VO -> VO calls method in EO -> eventually EO interact with the database and vice versa.

When talking of OAF it is important to understand the difference between Personalization and Customization/Extension to get the best out of these features.

1) Personalization: Does not require any JDeveloper set up and can be done by admin user enbaling couple of profile options. Can be done conveniently at oraganizational level, site level, function level and responsibility level. Choice of selection of level of personalization is one of the strong features of OAF based HTML pages.

Some of the scenarios are given below:
• Reordering the columns of a table.
• Renaming the field name.
• Hiding any particular column or field.
• Restricting the data for user access.
• Creating new fields on a web page like buttons, links, input fields as well as read only fields among others.

2) Extension/Customization: Unlike the former, this requires a JDeveloper Setup having knowledge about JDeveloper features, Java and core OAF architecture. OAF Extension suggest Controller extension, AM extension, VO extension and EO extension. The capability leverages the basics of JAVA inheritance concept.

The extensions are required in the following scenarios when:

• Any underlying query result has to be modified.
• Adding the new functional flows.
• Developing new applications for EBS.
• Changing the layout of screens based on particular conditions etc.

Controller extension uses a personalization feature to provide a user with the options to select a level of controller extension to be applied on a view, however, BC4J extension does not do so and is automatically applied at a site level whenever extended.

OAF now allows faster turnaround time in comparison to regular Oracle 6i forms. It allows testing and debugging of modifications and development of screens in local machine itself without deploying every change on the server. This way one can run the XML pages using JDeveloper and perform multiple rounds of testing. Once the testing stage is complete the final changes can be deployed to the middle tier. Another notable feature of OAF is its seamless support for iPhone and Android applications.

To read about the Emerging Mobile Technologies Click Here