You are on page 1of 88

<Insert Picture Here>

Oracle Applications Framework (OAF)


23/02/07

Suneeta Kowtharapu*

* Collated from PPT of Andreas Stellatos, Anthony Go, Jody Clayton, George Kellner, Helen Moses
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 JDeveloper Demo
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 JDeveloper Demo
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
Definition

 The Oracle Applications Framework (OA


Framework) is the Oracle Applications
development and deployment platform for HTML-
based business applications.
 100% Java & XML J2EE based, middle-tier
application framework and services for the rapid
development & deployment of HTML based
applications
OA Framework Objectives
 Enable significant application development productivity
gains
 Enable durable application extensibility & personalization
 Support compelling consistent UIs
 Support enterprise-grade reliability, performance &
scalability
OA Framework - Philosophy
 Declarative application development
 “Protects developers from technology”
 Built-in durable personalizations
 Extensible UI and business logic
 J2EE Based, Java & XML on Oracle platform
 Commitment to MVC architecture
 OA Framework - option of choice
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 JDeveloper Demo
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
Key Web App Components
Key Web App Components
•The browser communicates with the middle tier using
HTTP (Hyper Text Transfer Protocol) which involves
sending a request message to which the middle tier
replies with a response message.
•A JSP is a file with some HTML and Java code that
executes top to bottom. At runtime, it is compiled into a
Java class which is actually a servlet.
•A servlet is a Java-based web application server
extension program that implement’s the functionality in
the page either by itself of by calling other objects
Key Web App Components
• A servlet session is a mechanism for maintaining state
between HTTP requests.It usually corresponds to an
application login/logout cycle

• A JavaBean (or "bean" for short) is a reusable


component that implements specific design patterns

• Any objects in the middle tier that communicate with the


database use a JDBC (Java Database Connectivity)
driver.
Get/Post

• Get
• User clicks on a link/image associated with an URL
• Parameters are sent as part of the URL
• Max size of the URL is restricted to 256 chars
• Post
• User clicks on a link that does a form Submit
• Parameters sent are not visible on the URL
• Any amount of data can be sent
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 JDeveloper Demo
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
Architecture - Oracle Form
Splitting UI from Business Information
Architecture Overview
Declarative, MVC architecture

A component-based design with clean interfaces among model,


view, and controller objects
The controller responds to
The model encapsulates user actions and directs
Controller
the underlying data and application flow
business logic of the
application Model View

Meta-data The view formats and


Flows
UI Objects
presents data from a
DB Objects model to the user
Model / View / Controller
Design Pattern
Architecture Components
• BC4J - Java business components for representing business
logic
• UIX - Java components for representing UI
• OA Extension – Declarative data for UI
Extension to Jdeveloper
• AOL/J - Applications authentication, authorization and java
services
• OA Framework - Programmatic ‘glue’ which integrates these
technologies
A Stranger Is a Friend You Have Yet to
Meet
Business Components
Business Components-Example
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 JDeveloper Demo
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
Physiology of an Application
Physiology of an Application
The View – under the surface
Physiology of an Application
The View – under the surface
Physiology of an Application
The View – technology beneath
OA Framework Design time OA Framework Runtime
Page Hierarchy
UIX UIX
Bean Hierarchy Renderers
JSP/HTML

Browser
Cache

Meta Data .XML


Physiology of an Application
The Controller – user interaction
User takes an action 1. Controller delegates data
Browser processing to Model
sends 2. Determines next page
request Controller 3. Invokes View to present
to the next page to user
Controller

Meta Data Model


Workflow
Apply
G

View
Physiology of an Application
The Model – data processing
BC4J OBJECTS
Entity Objects (EO)
View Objects (EO)
UIX
Bean Hierarchy
Application Module
(AM)

DML
Validations Application Module
Defaulting (AM)

.XML

Database
Tables,Views
PL/SQL
Page Hierarchy & Model

Page Root AM

Region/Header AM

Default Renderer Table VO

Text Field Poplist Radio Button Attr Text Field Attr

MDS
Items BC4J References
Model: Application Modules

• Application Modules serve as containers for


related BC4J objects
• The objects are related by participating in the
same task (for example, a multi-page UI for
creating purchase orders)
• Application Modules provide transaction context
• Application Modules establish database
connections
Model: View Objects

• View Objects
• Encapsulate a database query
• Provide iteration over the query result set
• Can be based on
• Plain SQL
• Multiple entity objects
• Provide single point of contact for getting and setting entity
object values
• May be linked together by view links
Model: Entity Objects

Entity objects
• Encapsulate business rules and logic
• Are used by any program that inserts, updates, or
deletes data
• Provide consistent data validation across all
applications
• May be linked to other entity objects by entity
association objects
Event Flow in OA Framework

• Two main events in OAController


• processRequest - used for HTTP GET (URL)
• processFormRequest - used for HTTP POST (Form
Submit)
• Form submits (button presses) are directed back to the
original OAController
• Several other events are available for overriding default
Framework behavior
HTTP GET Event Flow – Overview

1. Get info and validate user


2. Fetch metadata
3. Validate Root AM
4. Instantiate BC4J and UIX objects
5. Walk UIX tree and call processRequest() on controllers
6. Perform post processing for complex beans
7. UIX renders page
HTTP GET Event Flow
Get info and validate user
• Get valid ICX session cookie (from SSO)
• DBC (database) information passed in on URL from portal
• Cached on the session after first URL
• URL also provides root region / page:
• Validate user through AOL/J
• Fetch the metadata
HTTP GET Event Flow
Validate Root AM
• Instantiate the root BC4J Application Module (AM)
• AM associated with page is the root AM – holds the
connection
• Application Modules are pulled from AM pool if available or may
be new objects
• AM uses DBC info to create database connection (or reuse
existing connection)
• Validate session on root AM
• Validate function associated with page
HTTP GET Event Flow
Instantiate BC4J and UIX Classes
• Convert metadata to OA bean hierarchy
• OA beans are extensions of UIX beans
• Instantiate associated BC4J objects
• Place bound values on beans that require binding
• Cache bean hierarchy on root AM
HTTP GET Event Flow
processRequest()
• Walk UIX tree and instantiate controller classes
• Call processRequest() on controllers
• Developers can query data for the UI (vo.executeQuery)
and set programmatic properties
• Perform post-processing on complex beans
• OAPageLayoutBean and OATableBean for example
• This post-processing can be initiated from
processRequest() by calling prepareForRendering()
• Places data binding objects on rendering context
HTTP Post Event Flow – Overview

1. Validate user
2. Retrieve AM and bean hierarchy if saved
3. Walk UIX tree and call processFormData() on controllers
• Apply form data back to underlying objects
4. Walk UIX tree and call processFormRequest() on controllers
5. If no redirect then refresh the page
HTTP Post Event Flow
Validate User and Retrieve State
• Validate the user as in GET
• Retrieve AM and cached copy of bean hierarchy
• If not available or out of synch go through
processRequest logic again to recreate bean hierarchy
• Validate session and function as in GET
• Call ProcessFormRequest() on controller.
Model : Code

• Model source code is stored as Java and XML files


• The properties of the objects are stored in XML and the
actual Business logic (validations) are stored in Java
files
• Available in
$JAVA_TOP/oracle/apps/<prod>/<subcomp1>/../server
• Named as *EO.xml, *VO.xml, *AM.xml, *EOImpl.class,
*VOImpl.class, *VORowImpl.class, *AMImpl.class
Layered Reusability

• Each layer only “knows” about the layers


below it.
• This allows reuse at any of the layer
boundaries.
OA
Controllers
Application
Modules
View
Objects
dataflow up stack (pull) Entity
Objects
dataflow down stack (push) DB
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 JDeveloper Demo
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
OAF Components

Desktop Web Server Data Server

Java

Servlet Engine
Web Listener UI
Controller
Meta Data UI
Programmatic
Browser UI Definition Definition Meta Data
Repository
UIX
HTML UI Generator

BC4J Applications
AOL/J
Application Schema
Menus,Security,
Business
Messages, etc
Logic

Portal SSO LDAP

J2EE Oracle 9iAS


Using JDeveloper OA Extn
About This page
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 JDeveloper Demo
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
Invoking JDeveloper From Unix
Invoking JDeveloper From Unix
Invoking JDeveloper From Unix
Invoking JDeveloper From Unix
Invoking JDeveloper From Unix
Invoking JDeveloper From Unix
JDeveloper Demo
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Demo on DFF
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 JDeveloper Demo
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
Dir Structure : JAVA_TOP

$JAVA_TOP/oracle/apps/ar

creditmgt bpa irec <other


comp>

lov util <Subcomp1> <subcomp2> poplist

webui server
<name>EO.xml server
server webui
<name>CO.class
<name>VO.xml
<name>AM.xml
<name>EOImpl.class
<name>VOImpl.class
<name>VORowImpl.class
<name>AMImpl.class
Dir Structure : PROD_TOP

$AR_TOP/mds

creditmgt bpa irec <other


comp>

poplist lov <subcomp1> <subcomp2>

webui webui webui


<name>PG.xml <name>PG.xml <name>PG.xml
<mae>PAGE.xml <mae>PAGE.xml <mae>PAGE.xml
How to find the relevant code

• Start from URL


• http://celalnx7.us.oracle.com:10103/OA_HTML/OA.jsp?_rc=A
RCMANALYSISVIEWACCTDPAGE&_ri=222&.....&OAHP=A
RCMMENUAPPLICATION...

• ARCMANALYSISVIEWACCTDPAGE.xml would be in
$AR_TOP/mds directory.
How to find the relevant code

• ARCMANALYSISVIEWACCTDPAGE.xml
<content>
<oa:pageLayout id="ARCMANALYSISVIEWACCTDPAGE"
akRegionCode="ARCMANALYSISVIEWACCTDPAGE"
regionName="AR CM Analaysis View Account Detail Page"
amDefName="oracle.apps.ar.creditmgt.analysis.server.
CreditAnalysisAM"
controllerClass="oracle.apps.ar.creditmgt.analysis.webui.ArCmA
nalysisAcctDetailPageCO" windowTitle="Oracle Credit
Management" helpTarget="cf_crdata">
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
Menus in OAF

• Navigation menus
• Controls how a user moves from one page to another
• Use with responsibilities
• Use Functions form and Menus form
Register Functions

• Use the Functions form to associate a page URL with


a function name
• System Administrator or Application Developer responsibility
• Function Type is SSWA JSP Function
Menu UI: Global Menu

• The global menu provides application-wide


functionality.
• The appearance of the icons, as well as whether certain
choices appear at all, is controlled by profile options.
• Developers can add application-specific global buttons.
Menu UI: HTML Tabs

• The highest level of menus (Level 1 menus) usually


correspond to main business flows within an
application.
Menu UI: Subtabs

• Subtabs (Level 2 menus) provide further content


divisions underneath particular tabs. Subtabs are
optional.
DEPLOYMENT STEPS
Create a new OA Workspace & Project in JDeveloper
Create a new Page XML Files & BC4J components using
JDeveloper Wizard as per your requirement
Compile the work & create Class Files
Copy Class files to JAVA_TOP on server
Use “import” utility OR “ java
oracle.jrad.tools.xml.importer.XMLImporter” to put Page XML
file in server
Register the Page XML file as an SSWA function
Add this function to a Menu & Responsibility
Bounce Apache
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
New in Oracle Applications Framework
5.10
• Performance improvements
• less images, graphics
• partial page rendering using iFrames
• Fast enough for Cellular Data Network use
• Documentation and Tutorials rewritten
• Available for Consulting and Customers to use
• Limited Early Adopter programme running
• Could support hand held devices
Agenda
 Introduction
 Pre-Req Concepts
 Architecture Overview
 Physiology of an Application
 Components
 Files & Directory Structure
 Menus & Functions
 New Features in OAF 11.5.10
 Help
Help

• http://www-
apps.us.oracle.com/servlet/uix/fwk/fwksite/releases

• oactech_us@oracle.com
Summary

• OAF is the Oracle Applications self-service


development and deployment platform
• 100% Java based, architected unified platform with
durable extensibility and personalization features
• Leverages best architecture and technologies that
slashes implementation and operating costs,
maximizes business performance while insuring a
differentiated deployment

You might also like