Introduction
1) OAF
Earlier HTML pages, JTF, Selfservice pages, Started with JSP(performance).
Springlets, J2EE and the other all frameworks(Partially built in application).
OAF are web based application. OAF pages can support to the Mobile applications
Oracle Applications Framework is the Oracle Applications development and deployment platform for
HTML-based business applications
OA Framework consists of a set of middle-tier runtime services and a design-time extension to Oracle10G
JDeveloper called Oracle Applications Extension (OA Extension).
2)Advantages of OAF
End User Productivity
Enterprise-Grade Performance and Scalability
Developer Productivity
Application Customizability
Open Standards
3)Necessary to USe OAF in Oracle apps
a) Integration
b) Security
c) Customizations
4) Diff b/w OAF and Forms
OAF Forms
1)OAF pages followed with MVC Architecture As 1) Forms followed only Client /server
well as Client /server Architecture Architecture
2)OAF pages are web application 2)Forms are not web application
3)OAF pages can interact mobile devices 3)Forms cannot interact mobile devices
4)OAF pages are light weight components 4)Forms are are light wiegh componenents
compare to OAF.
5)OAF pages are look and feel is good 5)N/A
6)OAF page start with Region->Items 6)Forms start with window->canvas->blocks-
>fields
7)OAF pages will be there in JAVA_TOP 7)FOrms will be there in AU_TOP
5) Diff b/w OAF and ADF.
OAF ADF
1)OAF Follows MVC Architecture 1)ADF follows MVC1 and MVC2 Architecture
2)OAF can integrate only Oracle EBS. 2)ADF can integrate any other ERPS
3)OAF Does not support Drag and Drop 3)ADF does support Drag and Drop Options
Option
4)OAF page can not see the lay out at design 4)ADF can see the lay out at design time
time
Prerequisites for LEARNING OAF:
You need to have an Oracle Apps 11i or higher environment to play around with.
Basic knowledge of java is needed. Rather I would say basic knowledge of OOP [Object Oriented
Programming] is needed. I mean just the concepts.
Understand MVC concept
Roles and responsibilities in OAF:
1)Development of OAF pages from scratch (Custom Modules)
2)Customization of OAF pages from existing custom application(only Custom Modules)
3)Personalization of OAF pages from existing standard OR CUSTOM oracle Pages(Standard module and custom
module)
(With out touching of oracle std code)
4)Extension of OAF pages from existing standard oracle Pages(only oracle Std pages)
(With touching of oracle std code)
5)Upgradation of OAF pages from LOWE VERSION of apps to higher version of apps(11i to R12)
MVC Architecture:
M V C
Model View Controller
Front End
Table,View,Synonym Etc(Entity Object EO) Http Get(ProcessRequest)
HttpPost(ProcessForm Request)
Queries (ViewObjec VO)
Primary and foreign key(Entity Association(AO))
All the joins from tables, ViewLinks(VL)
Packages,Proc,func,triggers,sequences, commit, rollback(OADB Transactions)
Empno 101
GO
EmpNO Ename Salary
MVC Architecture In Details:
1)OAF Follows J2ee Architecture , J2EE follows MVC Architecture Ultimately OAF also follows MVC
Achitecture.
2)MVC is clean design interface b/w model /view /Controller
OverView of Model:
1)Model will interact all the DB Objects and DB Transactions
2)Model will implement all the BC4J Components
BC4J: Represents the Directory Structure of All your Objects
3)BC4J Consist of 3 types
a) Entity Object and associations
b) ViewObjects and ViewLinks
c) Application Module
EntityObject:
1)Entity Object represents DB table,Views,Synonym and snap shots
2)All the EntitytObjects End with EO
EmployeeEO
3)Performing the DML operations on OAF page , must have to create an EntityObject
4)When you create an EntityoBject Framework will create one java file
EmployeeEOImpl.java
Two types of EntityObjects:
I. Java Based Entity Object -- Performing the DML Operations on Oracle Custom Tables , will go for Java
Based Entity Object
II. PL/SQL Based EntityObject -- Performing the DML Operations on Oracle Standard Tables , will go for
PL/SQL Based Entity Object
EnityAssociations:
1)Association is relationship b/w two two entityObejcts having one common column
2)to perfom DML operations on Master details data
3)All the EntityAssociation objects end with AO.
eX: DeptEmpAO
A)ON Delete Cascade
B)ON Update Keys
c)ON Update History Columns
ViewObjects and ViewLinks(VO and VL):
1)ViewObjects will be access all Sql Queries
2)All the ViewObjects end with VO
SuppliersVO
3)When you create the VO TWO JAVA FILES will be create.
SuppliersVOImpl.java (Single record Level Validation)
SuppliersVORowImpl.java(Multiple rows validation)
Example Heder and lines
Types of viewObjects:
a)Automatic VO -- Automatically Query stmt will generate
Automatic VOS are linking with EnityObjects (to perform the DML operations and as well as fetch)
b)ManualVO-- Manually write SQL Query
(to display the data on the page and search operations)
ViewLinks:
1)Relatship b/w two vos, having one common column
2)All the VIewLink Objects End with VL
DeptEmpVL
3)TO Display Master details data on the page through ViewLink.
ApplicationModule:
1)Interface b/w All the DB Objects with OAF page
(All the EO,VOS routed to the page via AM)
2)All the Application Module Objects End with AM
SupplierInfoAM
3)When you create an AM , one java file will create
SupplierInfoAMImpl.java
TWO Types of AM
1)Root Application Module : Attaching AM to the Root Region of the pagecalled as Root Application Module
Ex:Accessing VOS to all of the sub regions
2)Nested Application Module:
Attaching AM to the Sub Region of the pagecalled as Nested Application Module.
Ex:Accessing VOS to with specific to sub region.
OAF page Output process in Jdeveloper:
Jdeveloper
EmployeePG -> UIX -> Page will be rendered
a)Empno
c)Sal
b)ename
E)JOB
<Empno prmopt -emp no, size -40, -------- Empno -TextINPUT/>
OAF page Output Process in Oralce apps Server:
1)EmployeePG ->Move the file respective top :
2)Run the XML importer script for the page:
import D:\OAF\jdevhome\jdev\myprojects\vamshi\oracle\apps\po\department\webui\ EmployeePG.xml -
rootdir D:\OAF\jdevhome\jdev\myprojects -username apps -password apps -dbconnection
"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=apps.ora.com)(PORT=1521)))(CONNECT_
DATA=(SERVICE_NAME=VIS)))"
MDS Table -
JDR_PATHS --all the paths
JDR_COMPONENETS
JDR_ATTRIBUTES
Controller :
1)Controller Interacts Web browser activities.
2)Controller will taken care Http Get/Http Post
3)All the Controller Objects End with CO.
SupplierCO.java
In Controller we have 3 methods:
ProcessRequest -HttpGet -- on the page load display any default data will go for Process Request.
ProcessFormRequest-HttpPost -- after web page opens , perform any actions on the webpge will go for
Process Form Request
Ex: Button Press,Link Press,TabOuts
ProcessFormData-HttpGet/HttpPost -- optional Method in controller .
Two parameters in Controller:
1)OAPageContext (in built class which oracle already developed)
2)OAWebBean(in built class which oracle already developed)
public void abc()
{
}
public int abc()
{
}
public void ProcessRequest(OAPageConText opc, OAWebBean owb)
{
1)to get the Apps Context Values
opc.getUserName();
int vuid=opc.getUserId();
opc.getMessage("Message Name from AOL");
opc.getStructureCode("KFF Title");
opc.getFunctionId();
....
....
.....
....
2)to get the value from page
String vsname=null;
SupplierName
Dell
vsname=opc.getParemeter("SupplierName");
System.Out.PrintLn("Print suppliername"+vsname);
3) navigating to another page
Page 1 Page2
Next
opc.setforwrdurl("page2 path");
4)
page1 code
vsname=opc.getParemeter("SupplierName");
opc.putsessionvalue("abc", vsname);
page5 code
String ssname=pageContext.getSessionvalue("abc ");
OAWebBean:
OAWebBean Represents the Item Proeperties:
}
Onion Structure in OAF:
BC4J(Business Components for java) FileStructure:
AM AND VO -> BC4J
XXAAM.oracle.apps.po.xxname.server
[CLIENT NAME].Oracle.apps.[application short name].[component name].server
Entity Object(EO) -> BC4J
XXAAM.oracle.apps.po.xxname.schema.server
LOV ->BC4J
XXAAM.oracle.apps.po.xxname.LOV.server
Poplist ->BC4J
XXAAM.oracle.apps.po.xxname.poplist.server
Controller & Page
XXAAM.oracle.apps.po.xxname.webui