Framework is a process in which software providing generic functionality can be selectively
changed by user code, thus providing application specific software. The Framework is collection
of templates or classes or software libraries providing a defined application programming
intertace (API)... The designers of software frameworks aim to facilitate software development
by allowing designers and programmers to devote their time to mecting software requirements
rather than dealing with the more standard low-level details of providing a working system,
thereby reducing overall development time. For example, a team using a web application
framework to develop a banking web-site can focus on the operations of account withdrawals
rather than the mechanics of request handling and state management.
Frameworks contain key distinguishing features that separate them from normal libraries:
> Framework makes it easier to work with complex technologies.
> Ina framework, unlike in libraries or normal user applications, the overall program's flow
of control is not dictated by the caller, but by the framework
> A framework has a default behavior. This default behavior must actually be some useful
behavior and not a series of no-ops.
> The framework code, in general, is not allowed to be modified. Users can extend the
framework, but not modify its code.
However, once a framework is learned, future projects can be faster and easier to complete;
the concept of a framework is to make a one-size-fits-all solution set, and with familiarity, code
production should logically rise.
Oracle application framework-(OAF) is mainly come into the picture to replace d2k forms. It
came because to meet some new requirements from oracle corporation.
Till now we have three kinds of applications.
> Form based.
> Self web applications based
> Mobile devices applications.
Form based applications mainly based on the client/server technology
‘As wo know wo were using the tool Form Builder 61/91 and database as oracle
> In case of self service web based applications we should use oracle database only and
not any one. This is mainly based on MVC architecture
> In turn it is inherited trom j2ee architecture. Here we can use the terminology like pages
instead of forms. Here we use the tool J-Developer Si
vv
What is OAFramework?
(OA Framework or OAF is a framework developed by Oracle Corporation for application development within
the Oracle E-Business Suite (EBS)
The Oracle Applications Framework (OA Framework) is a development and
deployment platform used for Oracle Applications (Apps) HTML-based screens. In other words,
OA Framework is the standard approach for building and launching Apps web pages. This
includes the "i" modules, such as i-Receivables, i-Procurement, etc. The framework contains
the design rules and components that include the look-and-feel tor web pages, so any custom-
built pagos will havo a prosontation idontical to Oraclo-developed pages.Why should we use OAF?
Advantages
> Open through web browser.
> Light weight component compares’ to forms,
> Look and feel is very good compares’ to forms,
Disadvantages
> Only oracle database should use.
> No drag & drop option
Let us discuss some difference in OAF pages and Oracle Forms. The below table lists out the
difforences between OAF and Oracle Forms.
OAF
Oracle FORMS
OAF pages are light weight components
Forms are not light weight
OAF Pages can send through mobile devices
Cannot send to mobile devices
‘OAF Pages can connect in Oracle Apps Local
Machine
Cannot (NOT APPLICABLE)
Look and Feel is good
Not better when comparing to OAF
OAF pages are integrated with the Java Top
Forms are integrated with Application Top
Commit always takes piace in the Application
Module’s (AM) Java code. When a commit
takes place, the data from OA Framework
Cache is transferred to the databaso.
A page is divided into regions. Regions contain
fields, buttons, tables, and other components.
‘The COMMIT_FORM or
DO_KEY(‘COMMIT_FORM') commands can
be invoked from any trigger that allows
restricted procedures.
A form is divided into blocks; blocks
contain the fields, buttons, and other
components.
How to find correct version of JDev?
> Refer Note 416708.1 into metal ink
1) When you log in oracle applications type in
http:///OA_HTML/OAInfo.jsp
2) Then you get the Oracle Apps version you working on like below:
OA Framework Version Information:
Version
(OA Framework Version
17.5.10.2CU.
MDS Version 9.0.5.4.81 (build 481)
UIX Version 2.2.18
BC4J Version 9.0.3.13.513) So my version of apps (OAF) is 11.5.10.2CU
4) Go to METALINK and search for Doc ID: Note: 416708.1
‘There you find the below in form of a TABLE.
Here you can select the PATCH as per your version of OAF in u r Oracle Apps.
‘The work comes in terms of
> Development of new pages
> Customization of oxisting pages (extensions)
> Pages personalization (Some limitations).
Personalization - What is possible?
‘Add extra field in a region or LOV. Can be done only at Site level.
Display / Hide a field/region in a page.
Make a fiold read-only.
Display / Hide DFF in a region. You can also specify default editable/viewable DFF
contexts.
> Conditionally display/hide fields. Need to know SPEL (expression language) for this
viv
Personalization Levels
> Site: Usually set for adding field/region item which can be done only at site level
> Organization: refers to operating unit
> Responsibility: refers to Responsibility
> Function: If you define same OA page as two different menu functions then you can
personalize both differently
Extension - When?
> Add a new region to existing standard oracle page
> Add a field that belongs to custom table column or a column that is not part of existing
VO (query) associated with region
> Add custom validation for fields on page
> Modify LOV on a field. Change search criteria, display fields in LOV page
What are the pre-requisites for learning OA Framework?
> You need to have an Oracle Apps 11/ or higher environment to play around with
> Basic knowledge of java is needed. Rather | would say basic knowledge of OOP [Object
Oriented Programming] is needed. | mean just the concepts.
> Basics of XML, which can be learnt within an hour from w3schools link
> Understand MVC as a concept [not in depths as you are just getting started]
Installations Steps
1) First we receive the patch file from client
2) Unzip the zip file.
3) Throo folders got croatod
¥ Jdevbin: Includes an extended version of the Oracle JDeveloper 10g executable
and OA Framework class libraries.
¥ Jdevdoe: Contains documentation.
¥ ddevhome: Includes the OA Framework Toolbox Tutorial source and developer
working area4) Greate the environment variable:
21x
Petomance
Visual elects, processor scheduling, memo
‘User Peles
Deskiopsetinge ested to your gon
Slap and Recovery
System satu sptem fae, end cebuscing |
ea
Conspec CCAWINDOWSI5ystemszomd.exe
FP_NO_HOST_C.. NO
HOWE CCfDocuments and Setrigs/adninktretor
NUMEER_OF P... 1 A
te |__ ee | _ootte_|
ok Cancel
5) MyComputer>
a. Properties»
i. Advanced>
ii, EnvironmentVairable>
a. Now
Y Variable Name : JDEV_USER_HOME
¥ Variable Value : F:/OAF/jdevhomo/jdov
6) Get the DBC file
a. DBC file contains the details of Host, Port & SID. Which helps in validating the
sossion? We can get the DBC file from server in FND top
¥ D:\oracie\visappl\tnd\ 11.5.0\secure\VIS_apps\vis.dbe
7) Paste in below path
Y F:\OAF\jdevhome\jdev\dbe_files\secure\vis.dbc
8) Create Short Cut
¥ You can find in below location:
¥ FAOAF\jdevbin\ jdov\bin\jdovW
9) To Desktop.Tool Box
The Toolbox Tutorial application is a sample application accompanied by extensive examples
with step-by-step instructions that demonstrate the usage of business objects and Ul
components to build OA Framework based application pages, against a simple Purchase Order
type application schema, installed on your 11i instance, The Toolbox includes a specific tutorial
lab on Extending OA Framework Applications.
By default it comes with patch file, whenever we unzip the file we can soe 8 folders
¥ Jdevbin: Includes an extended version of the Oracle JDeveloper 10g executable
and OA Framework class libraries.
Y Jdevdoc: Contains documentation.
Y Jdevhome: Includes the OA Framework Toolbox Tutorial source and developer
working area.
Under JdevHome folder you can find My Projects folder where source code will be saved.
Here you can see ToolBox.jws, open the file from JDeveloper.
Note
To Create a page or open any Existing code in Oracle Apps Framework (OAF) we need to follow
basic steps listed as, if already there no need of creation
i) Create Data base connection
li) Create .JWS (Java Work Space)
iil) Create .JPR (Java Project)
i) Create Data base connection:
Open JDeveloper, after opening we will find Application Navigator if not then select it from View
>> Connection Navigator (ctr! + shift + 0). Right click on Database and then select New
Data Base Connection
Weleoneto be Cente Database Conreton Wizard
everson nean sacri wae ep
Sedeieatans ie orvcaryiay ye wend
Export Connections...
Inport Connections...Tapplcations Navig, ‘onpectons C
x ay
28 Connections
lS Aeplation Server
You ve canted tg he crreten
{Ga ovt Registry
|
|
[=1-GiB Rule Engines
[=
[3 Ga webvav server
Open the existing ToolBox.jws file, here we are not creating new project our aim to
see the existing project. i.e ToolboxReplace with
Page Setup...
eo © Dole
Apeications
>
[B] Labsolttions
1B) sonplettrary
a faopkceion Sources
(2-9 Web content
=) CteOAF is designed by the simple MVC-(Model-View-Controller) architecture design pattern
The MVC paradigm is way of breaking an application into three parts:
> Model
> View
> Controller
MODEL
EO: Entity Object
VO: View object
|AM: Application Module
(CO : Controller
UL: User Interface Page
1-Model
> The Model is where the application Implements its business logic. All the BC4J
components in OAF comes under Model like AM (Application Module), VO (View Object),
EO (Entity Object), VL (View Link) & AO (Association Object).
> In order to develop any OAF Application you need to know few concepts before doing
any kind of development. The concepts are basically the Business Components for Java
(8C4J) compononts.
> Model component is Implemented using BC4J where 8C4J is Business
Component for Java
> Model will Implement all the Data Base transactions.
As wo already know To Croato a page or open any Existing code in Oracle Apps Framework
(OAF) we need to follow basic steps listed as, it already there no need of creation
i) Create Data base connection
10li) Create .JWS (Java Work Space)
iil) Croate .JPR (Java Project)
i) Create Data base connection:
Refer page no: 7
) Create .JWS (Java Work Space) & iii) Create .JPR (Java Project):
Open JDeveloper, after opening we will find Application Navigator if not then select it trom View
>> Application Navigator (ctr! + shift + A). Right click on Applications and then solect Now
OA Workspace... the same scenario is shown in the below figure:
(iDeviievtometderimeprjects | [_Bronse.
[adds new oaPrcject —C]Oneninniew Navigator
| Adc to Applications...
‘Make ‘cues FO)
Rebuild Anshun
kone be Oace Arlt Foft Wise
acetone —
Teneo
Gap
* descr Lolcapreb ye
Sn cars ans wiperesoanrreseg
‘pata nee Se @
scevolakemeainte
"1E © ———
aa) nD al eal
‘ee (men i
"tities
sete
|
tr
eae j
ae
o~ —
Entity Object (EO)
View Object (VO)
Association Object (AO)
>
>
> Application Module (AM)
>
> View Link (VL)
Now let us see the description of each component
Entity Object (EO)
Entity Objects represents a row in a database table.
EO object based on Table or View or Synonym or snapshot.
EO encapsulates the business logic and rules, EO's are used for Inserting, Updating and
Deleting data
> Also this is usod for validating across the applications.
> Developer automatically creates methods for insert, update and delete of records
whenever an EO is created
Each entity objects represents a single row.
Contains altributes representing data base column
Central point tor business logic and validation related to a table
vvv
viv
12> Can contain custom business methods.
Standards
> Base your Eos on the ALL tables rather than on organization level -restricted views
> Always generate assessors (setters/getters to VGTrove performance}
Features
> Validation, locking and posting order of children
> Handled by composite associations
>» Who columns (Record history)
> Set automatically during EO create () or doDML ()
EO should have following attributes (Who columns’)
Creationdate
Createdby
LastUpdatedDate
LastUpdatedBy
LastUpdateLogin
<
KAR 8
ity objects files
> Each Eo should have
>
EO.xmi
Y Declarative information about EO
> EOImpl.java(optional)
¥ Add create (), remove (), validateEntity (), setter and getter methods
Y Entity objects that you create subclass of the
> oracle.apps.ind.framework.server.OAEntitylmpl class
¥ BC4J package: xx.oraclo.apps.gl.comp.schoma.sorver
format
Orga Impors
Reactor
eter fom Loca Hate,
13ie Csvronvre ——C]Materisized views
To populate the databace object IEi, sect the appropriate schoma cbjoct type
rrboves
het nn itn avant oe
tycoon
14View Object (VO)
vVvVVVYY
v
View
>
>
>
Note:
Represents a query result.
It can be either based on the Entity object or plain SQL query (Read only VO)
Can also construct from a SQL statement
Can be based on any number of entity objects
It is used for selecting data.
Contains attributes representing data base column
View Objects can be created declaratively or prgrammatically.Which ever way you create
it, you need an application module contain it
View objects are not an appropriate home for business logic: we should not be writing
validation rules in our view objects.
objects java files
Create VO java class (Volmpl) it needed
VO's should not contain business or validation logic, expect transient attribute logic
Always create View Row java class (ViewRowImpl) and accessory (setters/getters)
The ViewRow! mpl class should always be created for 2 reasons
Qne: It is the iterator that allows you step through the individual rows of the VO.
Two:
It generates the get/set methods for the VO.Morely creating the set/get methods doesn't
gain anything, but it does allow othors to extend those methods should the need rise.
View
>
v
objects files
VO.xm!
Declarative information about VO
VOlmpl.java(optional)
Add initQuery() method if needed
VORow! mpl.java( Required)
Contains assessors (setters & getters) for vo attributes
Behind the scenes, these accessors call corresponding methods in your Eolmpl.java
View objects that you create subclass the
oracle.apps.{nd. tram ework.server.OAViewObject! mpl class
BC4JPackage: xx.cracle.apps.gl.comp.server
15Screen Shots: EO Based VO:
aac ee wo se
se
8 stm
8 sew
CB Newt obec,
“BE vow ounsn
5 Newco
1 ew ven tink.
New pen Mee,
BD ow eee View De.
Ncw seve Aepcin Mot
New Suir Corgan Fon Ti
NewotOau Mo Conponet
Ssuttsnbininiterdentmvencte Ut
antenna.
Breestcwrasa
E Banus
16aad, testcase casa attedynrines a
etch ok eet ie
emamtssenea
om
eee
ey
odes trade ae ein eon Set
a ;
techni
Tlemest ner
eae es
Caper ieaddcrati
Ce
a> Bae
al
3)
1 potnesal
231 potnesavo
‘yatstudentAo
‘YotstudeniHeaders
nse nee et ad
uso arte ldnese
icra Bl
same
(rece stig Sere
pete
Firssumtes
genes
esse :
erik oan ace
an]
7Screen Shots: Read-only VO:
BB apleatinsay
| | arated
Mile owen
il anova
GG}osnto = bee ___ansare_
picatinsog eat coi
BG owes Opraebmpts cotaeo
1B BRecuces fe
GB Webctet | pets fm Lec eo
Welore te Crete View Objet Waar
There tcl nro
Pe cies asiasrn tars nt attra ea
Negetemad pe ypaar
wrest teen
Tever ti weeny
Tole dsc ert ap,
anlage
bali eal lod ob en re ca
oir
"er itty tds
“overt ate
eaten
Lisette te
an @
(Sipe Sh ace
OavPauethopentih atta,
cident rede vrebetiraon?
Grappa ot oy
Sree
18
Phone No: +91-8801873267= 6 —
Jomasqaradry isan ioyatieaeskca re
Femdets oboe mae acome.
vert nb rt im anemones ek
(tu spoons neers BRAS map Sle
te pid iB Applications 4
Timers
iret:
[ceo nara oc
ene | BBB Application Sources
ete 1B vot.cracle.epps
myApplication Module (AM)
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. They provide the transaction context and also used for establishing database
connection.
> Application module a logical container that manages and provides access to related BC4J
module objects.
> Container of the view objects and view links.
> An application module may be a root application module or a nested application module.
> Aroot application module is not contained in another application module.
> It provides transaction context for all objects it contains.
> Root application module also maintains the database connection
> Handles transactions,
> view objects are identified by view instance names which names referenced by Ul
framework
> AM communicate with controller's and VO's
> While the AM holds all the EOs, the EO and EO related objects are not explicitly declared
as belonging to the AM, unlike VOs that explicitly declared.
Application modules fi
Each AM should have
> AM.xm!
¥ Declarative information about AM
> AMImpl.java
¥ Add methods to invoke assign VOs initQuery methods if needed.
Application modules that you create subclass of the
Oracle.apps. fnd. framework. server.OAApplicationModule! mpl class
BC4JPackage: xx.oracie.apps.gl.comp.server
Beserenctoe
a
— Some
Make cuesnasa |
ebuild avin =
Porat cor
Orgerie Ingots rie
Refactor
Beste femLac try.{ih eT PI nc Sse ken ecbbe eis ere
ad Sar wocietsmtntesumae 50s
Treen nee terme (pe)
Ss
toe | Tee)
ese eee nese wet one ‘io ei nena i pen
dates teseribaedarene,
eee
‘Gentiosel
Ce oe
fers]
te eK] (es)
‘You have finished the Create Application Module Wizard.
Med hare deters dew onto
reat oka
wr Name
ud AHIR Nae: vot.oracle.epps.po.std.server.VgtMainaM
{ig bata Model
(Gd View Object Instances:
—& None
2B Viow Uk tnstances:
$B Mone
E-LEa Application Modules
Bp none
When you cick Finch, the application module wll be created,
2Association (AQ)
‘An association is created where we need to link 2 Entity Object's. A Association can be
created by providing the source and destination Eo and source and destination attributes.
> Define relationship between entity objects
> Consist of a source (master) and destination (detail) entity
Ex:
Mastor/Detail create page
Berteamcoge
fon
Beene
Bowe
ble cera
fel sno a
a = =
Orgeizelnorts cura
fear ,
estore om Loca isto.
wena he Cc fmt Wea
22<2 —|— a]
leetadiinae
1 Poieadersal
PeteaderavoWiew Link (VL)
‘A view link is created where we need to
link 2 view objects. A view link can be created
by providing the source and destination views and source and destination attributes.
Ex:
Master/Detall view page
vvvy
View link is an active link between view objects
you can create view links providing the following:
source and destination views
source and destination attributes
it (open
on
1B toot oe
i tertyon,
53 Newco,
{8 tin De.
[steel
Ceres
{8 te aniceven oie.
to ance
Beate Secs
‘kone ne enn ed
eee yietnattnns
a |)
24Sao a8
lations
Bi oaworkspacez
tect he p
ee E03 Aoplcaton Sources
Pie © BB vot orade.sops
=. @ “es,
© 68) potines¥o
{iy Resources
Bi Web content
2-View
View means output of the xmi page. It is responsible for the output of the model. When you
design a page, you store page definition in XML format on local machine.
> The View is where the application Implements its user interface
> View means the Ul (User Interface) that is visible to the Users,
> When deploying to our system/server, we load this XML file into MDS repository using
XML Import.statements. When the user run the page in the browser, the page definition
is fetched from the MDS repository and is converted into the XML file by the MDS engine.
> BC4JPackage:xx.oracle.apps.gl.comp.webul
25ee a
TB voteny 0H
1 ewdaron,
Nea tsocieon,
Cire
8B New iewLi.
0 new aptsn ge
8 vewseuie ewe,
Hse Service Applicaton Module,
see sie
tusme: aTicudenttieaders= 9
Pee or ace. apps po std water
[Baccactene incomes)
Ba 088 aap Be
B® votorecl.epps
3-Controller
‘The Controller is where the application handles user interaction and directs business flow
Controller is a simple java class file that contains methods for initial page request and post back
request.
Controller that you create subclass of the:
26Oracie.apps.ind.framework.webui.OAControllerImp! class
BC4JPackage: xx.cracle. apps.gl.comp.webui
> Process Request
> ProcessFrom Request
> ProcessFormData
ProcessRequest,
‘This phase is invoked on page load (when page is rendered)
By dofault it contains OAPageContext and OAWeb8ean class,
super processRequest (pageContext, webBean); method
Ex:
(On page load if you want display the data .will write the code in process Request
ProcessFormRequest
‘This phase is invoked after page load or Event based actions performed in this.
By default it contains OAPageContext and OAWebBean classes and
super.processForm Request (pageContext, webBean); method
Ex: After page opens if you want to handle any event like submit or next button will write the
code in processForm Request.
ProcessFormData
Fires by the system, when form submits happen
Rarely will write custom code in this phase. If exceptions are thrown during this phase, the
process form request phase Is skipped and the page re-displayed.
Ex:
EO level exceptions
orBROOR wo ot
2 @ server
i varaineer
Lad vatananingt ove
BB votPotteadersvo
Usages (OAPageContext and OAWebBean)
OAPageContext
>
>
To got and set values of the fields.
¥ pageContext.getParameter and pageContext.putParameter
Navigate from one page to another page
¥ pagoContoxt. set ForwardURL
Got handle of Application module in CO
¥ pageContoxt.gotApplicationModula()
‘To write debug messages
¥ pageContoxt.writeDiagnostics
We can got the profile value
OawebBean
>
>
To get the handle of the webbean
¥ wobBoan.tindChildRecursive ();
To sot wobBean (item) properties at run time.
¥ webBean.setReadonly ();
BC4J Naming standards (Business components for java)
BC4J packages also corresponds to directory paths
>
E0-related (business logic)_java and xml files in
¥ .oracle.apps. . .schema.server
AM and VO java and .xml files in
¥ .oracle.apps.< application short name>. .server
Poplist .java and .xml files in
¥ .oracle.apps.. poplist.server
lov java and .xm| files in
¥ .oracle.apps. < application short namo> . .lov.server
28Note: Naming standards are not enforced on customers.These standards are simply what
oracle uses. Like any standards, they evolve over time.if you encounter objects that don't
adhere to any given naming standard, chances are those are older objects adhering to an older
naming standard, chances are those are older abjects to an older naming standard that is no
longer used.
We know it means Mota Data Servico, We also know that it has something
to do with web page displayed in OA Framework. Let's try to understand the basics of MDS.
> Meta: - In technical world, Meta work symbolizes dictionary. Think of a web page broken
into small units which are fields, buttons, and list boxes. These small individual units
[ficlds, buttons ete] are stored in a dictionary, in the databaso, Thoso units whon
combined together, they become a webpage that gets renderad on the browser.
> Data: - Those Meta pieces are not stored as binary files, but as data in tables. Those
tables bogin with JDR, for oxamplo JDR_ATTRIBUTES, JOR_ATTRIBUTES TRANS, and
JDR_COMPONENTS & JDR_PATHS. Tho dofinition and relationship of cach
field/region/component is stored in these JDR tables. OA framework reads that data
when you request a page. The page structure is then built based on Metadata
> Service: - Mota Data is available as a sorvico (plain sorvice not web service). The data is
there in JDR tables, but all such data has to be co-rolated, all fields, regions, buttons ote
have to be clubbed into a meaningful manner to make a web page. You can say that
MDS provides service to store & return page definitions. MDS collates those definitions in
components/tields in a meaningful manner to build a page.
‘The View formats the data and presents the data to the user. In OAF View is Implemented using
the UIX. UIX uses XML to describe the components and hierarchy that make up an application
ago. UIX also provides runtime capabilities to translate that metadata into HTML output so that
it can be shown on a Browser or a mobile device. The metadata used to describe the UI is
loaded into a database repository, called Meta Data Services (MDS), at deployment time and
optionally at design time as well. Pages are developed declaratively using the Oracle $i J-
Developer OA Extension. Pages are made up of hierarchy of regions and items. Each UI widget
corresponds to one or more Java objects (beans). And these java beans are used to create the
HTML at runtime. When you design a page, you store “page definition” in XML format on your
local machine. When deploying to our system/server, we load this XML file into MDS repository
using the xml Import.statements. When the user run the page in the browser, the page
definition is fetched from the MDS repository and is converted into the XML file by the MDS
engine, Each component in XML is translated into the Java web bean abject. And this web bean
is rendered by the OA Framework. Page definition is cached in to the memory, and if it is there,
framework will not go to MDS repository to got the page dotinition
29ooooood
HTML Page-
HTML Response
View Controlled By
Data
IL Request
Controller
Actions
ee ee
Interaction between model, view and controller
Model
“AN-Application Module
*VO-View Object
*EO-Entity Object
30Controller class (CO)
User takes an action
oe
Browser
sends
request to
Controller
MVC Architecture
fF‘Onion Architecture of OAF
> OAF can be extracted into a series of concentric layers, like as onion
> Each layers only ‘knows’ about the layers below it.
dataflow up stack (pull)
dataflow down stack (push)
Rogion is a part of an Oracle Apps Framework page which acts as a container for the items
‘or components, By default the top most level of an OA Framework page has to be of the “page
Layout" region type
In OA Framework or OAF tho regions can be nested so as to provide tho
desired layout to the OAF page. Each region is a java bean which acts as a container for the
sub-regions or items in any Oracle Application Framework page.
Regions which are parallel in the bean hierarchy, in an OAF page, are called as Siblings and the
regions inside a region in an OAF page are called Child regions. The same nomenclature Is also
applied for Items in OAF. Hence, by default all the regions that you create become the child
regions of the page Layaut region as mentioned earlier that the page Layout region is the top
most region in any OA Framework page.
Also every region in OAF has specific properties which can be given some
values while creation of the OA Framework page e.g. rendered property which allows the region
to be displayed onto the OAF page, as per Oracle Application Framework guidelines (called as
OAF standards) this rendered property can have 2 values namely true(visible) or talse(hidden)
If tho region in an OAF page is sot to be hidden then all the childron rogions/items will by
dofault be rendered false once that OAF page is rendered on to screen. Even these proportios
can be changed at runtime using a Java controller, but that needs an understanding on how to
Import.the region beans and then how to create handle of the bean and then how to set
properties. However this is not so much ifficult to do but still some Java concept and Java
32programming knowledge is needed to achieve this. This is callod as runtime control of the bean
in OAF and is explained in detail for every region in the corresponding region type.
Every region has a specific way of representing the data onto the screen once the
oA
Framework page is rendered. Hence while creation of a OAF page we have to very cautious in
choosing the type of regions. E.g. a defaultDoubleColumn type of region will create two columns
and will automatically render all the components created inside it in these two columns once the
‘OAF page is rendered to screen. There aro various types of regions available in OA Framework.
‘The below figure shows what is Main region and what are child regions in OAF page.
‘vec Da
sen Ss 7
=
~
‘The complete list of all the regions provided by Oracle Application Framework is given below
advancedTable
bulletedList
cellFormat
contentContainer
contentFooter
detauitDoubleColumn
detaultFormStack
detaultSingleColumn
dotaultStack
tlexibleGontent
tloxibloLayout
tlowLayout
footer
Gantt
graphTable
header
vvvvVv VY VV Y
33HGrid
hideShow
hideShowHeader
labeledFieldLayout
listOtValues
messageComponentLayout
navigationBar
pagoButtonBar
pageLayout
query
rowLayout
shuttle
stackLayout
subTabLayout
switcher
table
tableLayout
train
treo
vvvvvvvVVV YY
> advancedTable:
It was earlier that OA Framework used OATableBean to render tables but now things have
changed and OAAdvancodTableBoan extends OATableBean. The best part of this is that with
advancedtable provides declarative support for the functionalities which required programming
with simple table.
‘The magic doesn’t ends here, OAAdvancedTableBean also provides declarative support to many
of the new features that were not available with OATableBean, just for an example features like
column span in a table column header were not available with OATableBean but is now
declaratively supported by OAAdvancodTabloBean,
Advanced table has many rich features, some of which can be like a table can now have an
Instruction text and even a tip, also table can have a navigation bar, selection column, add rows
button, control bar, recalculate and many mare.
Advanced table even allows you to brand the table so that it looks more beautiful once it's
displayed.
The branding options include:
+. RowBranding
2. ColumnBranding
3. NoBranding
By default? NoBranding? Option will be active.
Row Branding: Once you sot the branding style in the property palette of advancedTable
region and run the page, you will note that the alternative rows of the table are in grey bands of
color. Even you have the option to choose the branding interval, by default the branding
interval is 1 and hence alternative row is displayed in grey brand color, if you choose 2 as
branding intorval thon tho groy band row will appear after ovory 2 rows.
Column Branding: This is similar to row banding except that now rather that rows the columns
of your advanced table will be in the grey band branding style.
34No Branding: This is the default branding style that's selected if you don't choose other styles,
in this style neither rows nor columns will be branded and all the rows and tables of the
advanced table will be displayed as mentioned in Oracle BLAF.
‘Some more features of advanced table are:
Text: This is the text that will be displayed on the top of the table once the OA Framework page
is rendered,
Records Displayed: This proporty can limit the number of records that can be displayed on the
screen once the advanced table is rendered. Be default the number of records displayed is 10
Width: this is another VGTortant property of advancedtable. Here as the name suggests you
can enter the width of the table once the table is rendered. You can either enter the width in
pixels or in percentage. In order to enter the width of the table in pixel enter 500 or 800 in the
proporty palotte. In ordor to entor the width of the table in porcontago enter 70% or 80% in the
palette. Once you enter the width of table to be 100% the navigation links (Next and Previous)
will be displayed on top of the table. These links allow you to navigate to the other rows, apart
from those being displayed on the OA Framework page currently
Controller Class: This is an optional property. If you want to perform some runtime action
then only you need to create a controller class where you will be handling the events and
navigations performed on the advancedTable.
Admin Personalization: Set to true if you want the admin to be able to personalize the
advancedTabie region else false
User Personalization: Set to true if you want the user to be able to personalize the
advancedTable region else false.
Corresponding web bean: OAAdvancedTableBean
> bulletedList:
In oracle application framework page the OAF BulletedList appears with a bullet prefixed to any
item present in this region
For example - Suppose you have 3 items placed inside the BulletedList region type in an
Oracle Application Framework page, then all the 3 items will have a bullet attached as profix
when the OA Framework page renders. But the only condition that OAF applies for making the
bullet as prefix is that each of the items should have its Rendered property set as true.
Hence, if bullet region is having 4 items in an Oracle Application Framework page and out of
these 4 items, 2 items have the rendered property as false then you will find only 2 items with
bullet attached to it once the Oracle Apps Framework page renders on the browser,
Gonerally, Oracle Application Framework uses BulletedList to hold plain texts or links, but this
doosn't mean that it cannot hold other regions or itoms. Oracle Apps Framowork gives you tho
freedom to add any other regions or items inside the BulletedList region style.
Oracle Application Framework allows you to specity the whether you want to show all the items
in columns or in the apps framework you can also set the number of rows that you expect to be
displayed at runtime.
To achieve tho above montioned functionality Oracle Application Framowork provides you the
Height attribute property of the BulletedList. Let's consider one more example -
35‘Suppose you have 10 items that have to be displayed in 2 columns when the Oracle Apps
Framework page is rendered. To make this happen all you need to do is to just set the height
property value as 2 in the Developer Tool property palette. This makes the items 1-5 to come
in one column and the items 6-10 to be displayed in the second column. But there is a
restriction to the number of columns that you can create with the above approach. AS per
Oracle Application Framework you cannot exceed the number of columns by 3, this means that
you cannot have more than three columns for a BulletedList region in an OAF page.
Corresponding web bean: OABulletedlistBean
How to create BulletedList Item in OAF page?’
Creating a BulletedList on an Oracle Apps Framework page is sImple. Just follow the steps given
below
1. Create a rogion on an OAF page using JDoveloper
2. Set the style property to BulletedList
3. Sot the properties of the newly created BulletedList region according to the requirement and
the standards of Oracle Apps Framework,
4, Greate items of any item style as children in this region
> gellFormat:
In oracle application framework page the OAF CellFormat region is used inside RowLayout
region. CeliFormat region is a container of regions or items.
It VGTarts the properties like columnSpan, rowSpan, vAlign, hAlign, otc.
Suppose you have rows and 2 columns in a table. Now you want to merge 2 columns of first
row.
For this you can use rowSpan property of cell and will get the first of resulting in only one
column, i.e. now when you run OAF page, table will have total of 5 cells in It
CollFormat allows you to control the vertical and horizontal alignment of item present in it. You
can achieve tho same using vAlign and hAlign:
Suppose there is cell consisting of messageTextInput in it, messageTextInput should be top
justified and at the end of the cell in the Oracle application framework page. For this, set the
valign (Vertical alignment) property of cellFormat as top and hAlign (Horizontal Alignment)
property of cellFormat as right
Note - It will not take care the alignment of the text of the webbean present in it. Like, in a
mossageToxtInput there is @ toxt of VARCHAR data type, it will be only loft aligned.
Corresponding web bean: OACellFormatBean
How to create cell Format Region in OAF page?
Creating a cellFormat region on an Oracle Apps Framework page is simple. Just follow the steps
givon bolow
1. Create a region on an OAF page using JDeveloper
2, Sot the style property to celiFormat
3. Set the properties of the newly created celiFormat region according to the requirement and
the standards of Oracle Apps Framework.
4. Create items or regions of any stylo as childron in this rogion
36> gontentContainer:
In oracle application framework page the OAF ContentContainer region is used to display
additional information of the OAF page in Oracle BLAF (Browsor Look and Feo!)
ContentContainer is having special features which will help it to differentiate fram other content
of the OAF page.
Example: It can have different background color which can be different from the standard
background color of oracle apps framework page. This can be done by using Background Shade
property of the ContentGontainer
It can have border to it to identify it as a separate region.
Content Container can have items and regions of any style in it.
To add this into oracle application framework page, create a shared region in the OAF page for
ontentContainer.
Generally, BulletList region is placed in it, as we use ContentContainer to display additional
information, and that will be displayed pointwise. In the BulletList we can add further items or
regions in it as per the requirement
GontentContainer will be generally displayed at the end (right side) of the Oracle Apps
Framework page.
Corresponding web bean: OAContentContainerBean
How to create contentContainer Region in OAF page?
Creating a contentContainer region on an Oracle Apps Framework page is simple. Just follow
tho steps given below.
1. Create a shared region for the contentContainer
2. Create a region on an OAF page using JDeveloper
3. Sot the style property to contontContainor
4, Set the properties of the newly created contentContainer region according to the requirement
and the standards of Oracle Apps Framework.
5. Create items or regions of any style as children in this region
> ContentFooter:
In oracle application framework page the OAF ContentFooter region was used to hold buttons
(links) at the bottom level of the Oracle Apps Framework page. It displays as a bottom line
which is separated from the page footer with the content of the oracle application framework
page and also known as "ski"
It Is deprecated style.
Page buttons should be used instead of ContentFooter to hold buttons in it
Corresponding web bean: OAContentFooterBean (deprecated)
> defaultDoubleColumn:
In oracle application framework page the OAF DetaultDoubleColumn region was used to hold
items in two columns.
Prompt of items will be right justified and the input fields will be left justified. But it was not
fulfilling the Oracle BLAF (Browser Look and Feel) U! requirement/ guidelines
Hence, it is deprecated and messageComponentLayout should be used for better serving the
purpose of placing items in OAF page along with header region which is called before
messageComponentLayout in the OAF page.
37Along with DefaultDoubleColumn layout, there was one more region known as
DefaultSingleColumn layout was present
DefaultSingleColumn severs the requirement of placing items in one column; it is also
deprecated due to the same reason of not serving the purpose of Oracle BLAF Ul
Gorresponding web bean: OADefaultDoubleGolumnBean (deprecated)
> defaultFormStack:
In oracle application framework page the OAF DefaultFormStack region was used to hold
regions or items in a stack format i.e. it was used when each region or items needs to come in
Oracle apps framework page one under another (stacked) either to the loft side of the page or
right or center as per the requirement.
It is a deprecated region style.
‘StackLayout should be used instead of DefaultFormStack in current scenarios.
Corresponding web hean: OADefaultFormStackLayautBean (deprecated)
> defaultSingleColumn:
In oracle application framework page the OAF DefaultSingleColumn region was used to hold
items in a single column. Prompt of items will be right justified and the input fields will be left
justified. But it was not fulfilling the Oracle BLAF (Browser Look and Feel) Ul
requirement/ guidelines.
Hence, it is deprecated and messageComponentLayout should be used for better serving the
Purpose of placing items in OAF page along with header region which is called before
messageComponentLayout in the OAF page.
Along with DefaultSingieColumn layout, there was one more region known as
DofaultDoubleColumn layout was present.
DefaultDoubleColumn severs the requirement of placing items in two columns; it is also
deprecated dus to the same reason of not serving the purpose of Oracle BLAF UI
Corresponding web bean: OADotaultSingleColumnBean (deprecated)
» defaultStack:
In oracle application framework page the OAF DefaultStack region was used to hold regions or
items in a stack format i.e. it was used when each region or item needs to come in Oracle apps
framework page one under another (stacked) either to the left side of the page or right or
center as per the requirement.
It is a deprecated region style. StackLayout should be used instead of DefaultStack in current
scenarios,
Corresponding web bean: OADefaultStackLayoutBean (deprecated)
> flexibleContent
FlexibleContent region is used to identify content that can be placed in a flexibleLayout region.
‘The content can also be specified by referring to it. It represents available content which may or
may not be made use of; and thus acts as a resource to the page designer.
Corresponding web bean: OAFlexibleContentBean
38> flexibleLayout:
‘The tlexibleLayout region can be used to define a customizable layout, as flexibleLayout regions
can be nested to form a customizable layout and can be positioned anywhere in the page.
A page can have a number of ‘top-level’ flexibleLayauts; they de not have to be nested.
Corresponding web bean: OAFlexibleLayoutBean
> flowLavout:
In oracle application framework page the OAF DefaultStack region is used to hold buttons or
images in a horizontal line.
‘Suppose you have a table or advancedTable in oracle application framework page and you want
to define table actions to the table region, as soon as you create table action by default
flowLayout gets created as a child of tableActions.
Region style can be changed to rowLayout or can have the same flowLayout attached to it.
In case you want table actions to be performed only by using buttons then it's better to use
flowLayout instead of rowLayout. If table action involves other item style i.e.
OAMessageCheiceBean or OAMassageTextBean then use rowLayout, because if you use
flowLayout Is used then Oracle BLAF (Browser Look and Feel) of UI will get hampered, i.e
alignment won't be proper.
Whenever you create page Status region in pageLayout region flowLayout will also be get
created automatically in it as a child,
In flowLayout region there can be any region or item attached to it as child of it
Corresponding web bean: OAFiowLayoutBean
How to create flow Layout Region in OAF page?
Creating a flowLayout region on an Oracle Apps Framework page is slmple. Just follow the stops.
given below.
1, Create a region on an OAF page using JDeveloper
2. Set the style property to flowLayout
3. Sot tho properties of the newly created flowLayout region according to the requirement and
the standards of Oracle Apps Framework,
4. Greate items or regions of any style as children in this region
> footer:
In oracle application framework page the OAF Footer region is used to hold links which are for
top-level applications, buttons (global), copyright information, privacy information (optional)
and About this page link (optional) components in It.
It is a child of pageLayout region
It Is shown at the end of the OA Framework page in the BLAF Ul.
If we want to attach a "Return to?" link i.e. a back navigation it will also get added in the footer
region.
Corresponding web bean: OAFooterBean
> Gantt:
In oracle application framework page the OAF Gantt region is used to hold create Gantt charis.
It retrieves the data from the BC4J objects.
39It is mostly used for the project planning and scheduling information
It is like a matrix Le. it is having a vertical axis and a horizontal axis.
‘Suppose you want to use Gantt for project planning then Project will be at the vertical axis and
the time period will be placed in an horizontal axis.
It inherits the properties of the HGrid region by extending it, only the width property of HGrid
we cannot change thru the Gantt region,
Corresponding web bean: OAGanttBean
> graphTable:
In oracle application framowork page, through OAF GraphTable region you can draw graphs.
GraphTable may not use all the columns present in the GraphTable to plot the graph. It there
are multiple graphs depending on one GraphTable then each graph may use different set of
columns to plot in the OAF page.
GraphTable is based on the tableLayout region and inherits all their property.
We need to set a property of GraphTable named as Graph Render Style property as either graph
or both,
When we set the value as graph that time we can view one or more graph elements. And when
we sot the property as both then we can view both the table data and the corresponding graph
below the table, and if you have multiple graphs then below the table there will be pop list item
in the OAF page from which we nood to choose the graph which wo want to display.
Corresponding web bean: OAGraphTableBean
> header:
In oracle application framework page we create an OAF Header region to give separate title of
the page to give the information of the page functionality to the usor
By using Header region, page content and tho header region gots soparatod/partitionod for
more clear information display.
Header region is also used for some VGTortant message display on the Oracle application
framework page like Error, Warning, Information, etc at the top of the page.
By uso of Header region, the page level action buttons/links will be displayed both at the top of
the page and the bottom of the OAF page.
Note: Header element does not support style Class attribute
Corresponding web bean: OAHeaderBean
> HGrid:
As from the name HGrid itself, it suggests hierarchy grid.
In an oracle application page OAF HGrid region is used when the data needs to be represented
In a hierarchical/tree structure.
You can use the Tree region to represent the tree structure but tree region in OAF emphasis on
the relationship of the objects of the hierarchy.
You can use HGrid to display the hierarchical structure along with the detail information of each
row/node. It gives the privileged of modifying the hierarchy by performing the action as add,
delete, update, ete.
HGrid has 2 special columns:
1, Focus Column.
2, Object Hierarchy Column.
40Corresponding web bean: OAHGridBean
> hideShow:
In orace application framework page, to provide the functionality to hide and show the items
and (or) regions we use HideShow region, i.e. all the items or region, which should be displayed
or hidden, should be a child of a region which will have a hide/show control
By using hode/show control we can hide or show a part of the section of intormation or the
entire section.
Suppose you want to hide or show details of a particular object in an OA framework page,
hide/show region can be used. You can use hide/show region when you want to hide or show
the graph, which is present in an OAF page. You can use this even when a row of a tablo needs
to hide and shown on some action on OAF page.
Hidei show region can only provide its functionality on a single page at multiple parts. Nesting
can also be done.
Corresponding web bean: OADefauitHideShowBean
> hideShowHeader:
In oracle application framework page, to provide the functionality to hide and show the items
under a header we use HideShowHeader region.
In both the case of toggling i.o. hidden or shown header toxt will remain as itis.
In HideShowHeader region we can add items as we add in Header region.
Please refer Heador region for more information on tho propertios of Heador region.
Corresponding web bean: OAHideShowHeaderBean
> labeledFieldLayout:
‘The labeledFieldLayout region lays out its children in columns; one column is for the “labels”
and the other for the "fields", with a gap in between
The children are laid out across and down, the first child in cach row takes the “label” position
and the second child takes the “field” position. The contents of each row are centered in the
available space.
The "labels" are always right aligned, and the "fields" lett aligned.
With multiplo columns, the childron continue to be layed out across and down. For examplo,
with two columns, the third child will be used as the label for the first row and second column
It also has support for the inline messaging beans where each inline messaging bean will
automatically occupy both a "label" and “field” position.
Corresponding web bean: OALabeledFieldLayoutBean
Note: The laboledFieldLayout_ component has been deprecated; use the
messageComponentLaycut component instead. Please refer to the messageComponentLayout
section for information about messageComponentLayout
> listotvalues:
A listOtValues region is rendered in a separate modal dialog containing a complex list of possible
values that can be selected as a valid value for an entry field on a transaction page or a field
within a table. Refer to the messageLavinput section for information on the properties of
messagelovinput,
4A listOfValues region is rendered as a popup of separate OAF page region containing 4 list of
possible values, any of which can be selected as a valid value for an entry field on a transaction
page or a field within a table.
Corresponding web bean: OALIstOtValuesBean
> messageComponentLayout:
In oracle application framework page OAF messageComponentLayout is the most widely used
region to hold components.
It is restricted to message components, and it does not allow other regions to become its child.
Tho compononts, which aro child of OAF messageComponentLayout region, will have, prompt of
the component will be right (end) aligned and the text field will be left aligned.
It serves the multiple column display of components in an OA framework page and also satisfies
the standard Ul! guidelines.
It is recommended that we should not display more than 3 columns in respect to follow the Ul
guidelines,
In the OAF messageComponentLayout the spacing between the components is according to the
Oracle BLAF UI guidelines.
Corresponding web bean: OAMessageComponentLayoutBean
> navigationBar:
In oracle application framework OAF NavigationBar is used to navigate to the next or previous
sot of records.
‘You might have mostly saw NavigationBar attached with the table or advance table.
Suppose you have run a BC4J VO query that retrieved more than 10 records to be displayed in
a table, Then a NavigationBar will appear at the top and bottom of the table. By using the
NavigationBar link you can display the next 10 records, which are retrieved from tho query.
NavigationBar can also be seen in the HGrid region, in case we expand a node and the child
retrieved are more than the record limit, that time we have to use NavigationBar link.
Note: No need to declare NavigationBar functionality explicitely.
Corresponding web bean: OANavigationBarBean
> pageButtonBar:
In oracle application framework, OAF pageButtonBar is used when a set of buttons/action links
needs to be created at the page layout level
PageButtonBar is the child of pageLayout region
Buttons/action links will be displayed bath at the top of the page Just below the page title and
below the page footer line.
Corresponding web bean: OAPageButtonBarBean
> pageLayout:
‘The pageLayout region is the highest-level layout element. It acts as a template for the entire
page. It, by default, has to be the top most region of the page. It supports several other regions,
and navigation areas so as to maintain the Oracle Application Framework Standards.
Corresponding web bean: OAPageLayautBean
42