Oracle Application Framework

Last updated

Oracle Application Framework (OA Framework or OAF) is a proprietary framework developed by Oracle Corporation for application development within the Oracle E-Business Suite (EBS). [1] The framework is also available to customers for personalizations, customizations and custom-application development.

Contents

The OA Framework is a Model-view-controller (MVC) framework built using Java EE technologies.

Self Service Purpose

This Framework helps to create Self Service pages in Oracle EBS.

These pages are designed to be familiar to web-based users, and easy to deploy within a web browser (requiring no plugin or download, unlike Oracle Forms). As such, they are often expected to require no support or training [2] for users, are more user friendly, and result in better performance over the internet and a faster transaction rate.

The OA Framework helps in building the presentation layer, adding the business logic and controlling the flow of the application.

Architecture

Oracle Application Framework (OAF) is an architecture for creating web based front end pages and J2EE type of applications within the Oracle EBS ERP platform. In order to develop and maintain OAF functionality, Oracle's JDeveloper tool is used. OAF is based on J2EE technology called BC4J (Business Components for Java). As per the MVC architecture, in OAF, the XML Page forms the View, the JAVA based controller class forms the controller and the Application Module along with View Objects (VO) and Schema Objects (EO) forms the Model

Framework Structure

OA Framework works on basic Java EE principles, and the mainstay is the MVC architecture,

Model View Controller

The Model is the place containing the business logic. The View is the presentation layer. The Controller manages the flow between pages. Most web-based applications work on these principles. Similar architecture is replicated in OA framework.

Every application has a package some location on the Application Server where all the code is held, there are basically three types of location within a given package path:

  1. Server (The BC4J Components, R12 uses ADFbc)
  2. Webui (Web user interface components)
  3. Schema (Entity objects)

Server files

  1. Application Module (AM)
  2. AM Impl (Java file)
  3. AM XML

2. View objects (VO)
a.) VO Impl (Java file)
b.) VO Row Impl (Java file)
c.) VO xml

3. Server.xml

Webui files


1. Page
2. Regions
3. Controllers (CO)

Schema Server files


1. Entity object files.

If a package is created at the path oracle/fnd/pa/projects then

All the server files will be under: oracle/fnd/pa/projects/server

All the Webui files will be under: oracle/fnd/pa/projects/webui

All the EO will be under: oracle/fnd/pa/projects/schema/server

Page and Region (PG and RN)

It represents the View layer of the MVC architecture, it is the creation of the page that is rendered on front end, every component on that page like input text box, Lov’s, submit buttons and all other components are part of a bean that is defined in the system, each of these page is stored in the file system tables in the database, whenever any page is called the components are called from the database and rendered.

Application Module (AM)

It is a very important component for the package, it is the one which governs the entire session pool, access to database and the business logic components, every page should be attached to some AM.

View Object (VO)

In cases where one just want some data just for view purpose and want to show it on the page or use the values for some other purpose then one uses View objects, these view objects have a Query within them which fetches the record, the implementation files are the logic which is used to manipulate or use the data fetched by the VO query.

Controller (CO)

The navigational flow and caller role is served by the controller objects, it guides the page rendering for the first time and also guides it based on user interaction on the page. They represents the Controller part of MVC.

Entity Object (EO)

The entity objects are used if one wishes to do some insert/update operations.

The standard seeded code that oracle provides as part of their ERP package may require some changes for adopting to a certain business scenario there are two ways in which a certain change can be done;

  1. Personalization

There are certain changes, which are in fact small changes on a page that can be done without any code changes is a feature that oracle provides to its users, this is called personalization. Personalization can be done at user level, responsibility level, org level and site level.

To enable the personalization link on every page use the Profile option, "Personalize Self-Service Defn".

After setting this profile, on every page the Personalize link will appear. One can personalize certain attributes like rendering items, making fields read only creating items at required level (User/Responsibility/Site) etc.

After personalization the personalized page needs to be imported to the file system as mentioned earlier each of the pages resides in the file system and stored in tables within the database, for doing this there is a standard xml importer script.

  1. Customization

In case some new customized codes needs to be created and added to the custom level which will extend to existing codes.(We will discuss this later)

  1. Debugging

Debugging and code analysis is a very major aspect of tracking and finding the required changes in an OAF code. Set the profile “FND: Diagnostics” this will create a Diagnostics link on the top as well as a “About this page” link at every page bottom. These are very important utility for tracking the components on a page, like AM’s /VO’s and CO’s on a page and helps in finding the various view objects that are attached on a page and their respective queries. This is also helpful in tracking the components that needs to be modified or extended during development.

Related Research Articles

Jakarta Server Pages is a collection of technologies that helps software developers create dynamically generated web pages based on HTML, XML, SOAP, or other document types. Released in 1999 by Sun Microsystems, JSP is similar to PHP and ASP, but uses the Java programming language.

Jakarta Faces, formerly Jakarta Server Faces and JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It was formalized as a standard through the Java Community Process as part of the Java Platform, Enterprise Edition. It is an MVC web framework that simplifies the construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.

<span class="mw-page-title-main">Apache Struts 1</span> Open-source web application framework

Apache Struts 1 is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture. It was originally created by Craig McClanahan and donated to the Apache Foundation in May 2000. Formerly located under the Apache Jakarta Project and known as Jakarta Struts, it became a top-level Apache project in 2005.

A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.

In computing, Oracle Application Development Framework, usually called Oracle ADF, provides a Java framework for building enterprise applications. It provides visual and declarative approaches to Java EE development. It supports rapid application development based on ready-to-use design patterns, metadata-driven and visual tools.

Apache Wicket, commonly referred to as Wicket, is a component-based web application framework for the Java programming language conceptually similar to JavaServer Faces and Tapestry. It was originally written by Jonathan Locke in April 2004. Version 1.0 was released in June 2005. It graduated into an Apache top-level project in June 2007.

<span class="mw-page-title-main">Apache Tapestry</span> Open-source web application framework

Apache Tapestry is an open-source component-oriented Java web application framework conceptually similar to JavaServer Faces and Apache Wicket. Tapestry was created by Howard Lewis Ship, and was adopted by the Apache Software Foundation as a top-level project in 2006.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

Core Data is an object graph and persistence framework provided by Apple in the macOS and iOS operating systems. It was introduced in Mac OS X 10.4 Tiger and iOS with iPhone SDK 3.0. It allows data organized by the relational entity–attribute model to be serialized into XML, binary, or SQLite stores. The data can be manipulated using higher level objects representing entities and their relationships. Core Data manages the serialized version, providing object lifecycle and object graph management, including persistence. Core Data interfaces directly with SQLite, insulating the developer from the underlying SQL.

Laminas Project is an open source, object-oriented web application framework implemented in PHP 7 and licensed under the New BSD License. The framework is basically a collection of professional PHP-based packages. The framework uses various packages by the use of Composer as part of its package dependency managers; some of them are PHPUnit for testing all packages, Travis CI for continuous Integration Services. Laminas provides to users a support of the model–view–controller (MVC) in combination with Front Controller solution. MVC implementation in Laminas has five main areas. The router and dispatcher functions to decide which controller to run based on data from URL, and controller functions in combination with the model and view to develop and create the final web page.

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software.

Grails is an open source web application framework that uses the Apache Groovy programming language. It is intended to be a high-productivity framework by following the "coding by convention" paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the developer.

<span class="mw-page-title-main">Apache MyFaces</span> Open-source implementation of JavaServer Faces

Apache MyFaces is an Apache Software Foundation project that creates and maintains an open-source JavaServer Faces implementation, along with several libraries of JSF components that can be deployed on the core implementation. The project is divided into several sub-projects:

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

Java view technologies and frameworks are web-based software libraries that provide the user interface, or "view-layer", of Java web applications. Such application frameworks are used for defining web pages and handling the HTTP requests (clicks) generated by those web pages. As a sub-category of web frameworks, view-layer frameworks often overlap to varying degrees with web frameworks that provide other functionality for Java web applications.

ZK is an open-source Ajax Web application framework, written in Java, that enables creation of graphical user interfaces for Web applications with little required programming knowledge.

Effi is C++ application development framework.

<span class="mw-page-title-main">ColdBox Platform</span> Web application framework

ColdBox is a free, open-source, conventions-based, modular web application framework intended for building enterprise applications with ColdFusion (CFML) using a Hierarchical MVC approach.

Mojito is an environment agnostic, Model-View-Controller (MVC) web application framework. It was designed by Ric Allinson.

Oracle TopLink is a mapping and persistence framework for Java developers. TopLink is produced by Oracle and is a part of Oracle's OracleAS, WebLogic, and OC4J servers. It is an object-persistence and object-transformation framework. TopLink provides development tools and run-time functionalities that ease the development process and help increase functionality. Persistent object-oriented data is stored in relational databases which helps build high-performance applications. Storing data in either XML or relational databases is made possible by transforming it from object-oriented data.

References

  1. http://www.oracle.com/technetwork/tutorials/ebs-sdk-adf-1887167.pdf [ bare URL PDF ]
  2. "Oracle OAF Training | Oracle OAF Classes | Oracle OAF Online Classes". www.itstacklearn.com. Retrieved 2020-04-18.

Oracle Application Framework Blog: Oracle OAF Training Website: