oa framework part1
TRANSCRIPT
-
8/16/2019 Oa Framework Part1
1/35
OA FRAMEWORK-1
-
8/16/2019 Oa Framework Part1
2/35
Java Concepts
• Class/Interface• Package
• Me!er "ar#a!les
• Me!er F$nct#ons
• Access %pec#f#ers
• In&er#tance
• Overloa'#ng/Overr#'#ng
-
8/16/2019 Oa Framework Part1
3/35
Frae(ork ) *oals + ,enef#ts
)eclarat#ve appl#cat#on 'evelopent )Rap#' 'evelopent env#ronent
)Cons#stent + copell#ng .I
),$#lt-#n '$ra!le Personal#at#on %$pport )E0tens#!le .I an' !$s#ness log#c
)12 Java + 3M4 on Oracle platfor
)Co#tent to M"C arctect$re
-
8/16/2019 Oa Framework Part1
4/35
Mo'el-"#e(- ontroller 5M" 6 Arctect$re
Controller Controller
ModelModel ViewView
A component-based design with clean interfaces
among model, view, and controller objects
The model encapsulates
underlying data and
business logic of the
application
The view formats and
presents data from a
model to the user
The controller responds to
user actions and directsapplication flow
-
8/16/2019 Oa Framework Part1
5/35
Ke7(or's
• ,4AF Browser Look and Feel • C4AF Custom Look and Feel
• OC8J Oracle Containers For Java
•,C8J
Business Components For Java
• M% Meta Data Services
• 4O" List of Values
• J,C Java Database Connectivity
-
8/16/2019 Oa Framework Part1
6/35
Fle0#!le Arctect$re
• "#e( ) Coon .I3-!ase' 9:M4coponents $se' t&ro$g&o$t
Appl#cat#ons
) Controller ) OA Controllerrespon's to $ser act#ons;'#rects appl#cat#on flo(
) Mo'el ) ,$s#ness log#c
encaps$late' #n ,$s#nessCoponents for Java v#e(o!
-
8/16/2019 Oa Framework Part1
7/35
:ec&nolog7 %tack
#eb $erver
Oracle%i A$
&''( $erver and ")** Container
Common $ervices
Apache OC4J
Portal SSO LDAP
UI
Meta +ata
epositor
Applications
$chemaC!".C!".
XM/ 0 "avaXM/ 0 "ava
for data model 0for data model 0
1siness /ogic1siness /ogic
UIX.UIX.XM/ 0 "avaXM/ 0 "ava
for 1ser interfacefor 1ser interface
OA Controller.OA Controller.
"ava for flow and action events"ava for flow and action events
+ata $erver rowser
-
8/16/2019 Oa Framework Part1
8/35
:ec& %tack Coponents
) ,C8J - Java !$s#ness coponents forrepresent#ng !$s#ness log#c
) .I3 - Java coponents for represent#ng .I
) OA E0tens#on ) ,$#l' 'eclarat#ve 'ata for .I3• E0tens#on to Jeveloper
• Meta'ata res#'es #n 'ata!ase or 3M4 f#les
) OA Frae(ork - Prograat#c =gl$e> t&at
#ntegrates t&ese tec&nolog#es
-
8/16/2019 Oa Framework Part1
9/35
Encaps$lat#on? 4a7ere'
Re$sa!#l#t7
*ntitObjects
+
ViewObjects
ApplicationMod1les
OAControllers
'ataflo( $p stack 5p$ll6
'ataflo( 'o(n stack 5p$s&6
• Eac& la7er onl7 @kno(s a!o$tt&e la7ers !elo( #tB
• :s encaps$lat#on allo(s
re$se at an7 of t&e la7er!o$n'ar#esB
-
8/16/2019 Oa Framework Part1
10/35
Mo'el? ,$s#ness Coponentsfor Java
• :&ere are t&ree !as#c coponent classes ) :&e Appl#cat#on Mo'$le ) a conta#ner for
relate' ,C8J o!
-
8/16/2019 Oa Framework Part1
11/35
Mo'el? ,$s#ness Coponentsfor Java
+atabase
'ables,Views
(/2$3/
Ent#t7 O!
-
8/16/2019 Oa Framework Part1
12/35
"#e( - Coponents
Page 9#erarc&7Page 9#erarc&7
Meta +ata
OA Frae(ork R$nt#eOA Frae(ork R$nt#eOA Frae(ork es#gn t#eOA Frae(ork es#gn t#e
.I3.I3,ean 9#erarc&7,ean 9#erarc&7
.I3.I3Ren'erersRen'erers
J%P/9:M4J%P/9:M4
,ro(ser ,ro(ser
4XM/
CacheCache
-
8/16/2019 Oa Framework Part1
13/35
"#e(? OA Frae(ork-,ase'Page
-
8/16/2019 Oa Framework Part1
14/35
"#e(? Java O!
-
8/16/2019 Oa Framework Part1
15/35
"#e(? A Frae(ork E0aple
es1lts tableean
&eader ean
$1bmit b1tton
ean
-
8/16/2019 Oa Framework Part1
16/35
"#e(? Page 9#erarc&7
• :s #s t&e page str$ct$re as seen #n OA E0tens#onat 'es#gn t#eB
) :&e Frae(ork $ses t&e or'er of t&e #tes to 'eter#ne t&e#r pos#t#on (#tn a page or reg#on .I
at r$nt#eB
-
8/16/2019 Oa Framework Part1
17/35
Controller? Controll#ng .I,e&av#or
) Controller classes 'ef#ne &o( 7o$r Java ,eans !e&aveB
) Do$ can overr#'e controller classes to?
• Man#p$late t&e .I at r$nt#e
• Man$all7 #n#t#al#e 'ata #tes
• Intercept an' &an'le $ser events l#ke !$tton cl#cks ) Controller classes s$!class OAControllerImpl.
) OAPage,ean #s t&e a#n OA Frae(ork pageprocess#ng classB
) :&ere are et&o's #n t&e Controller class to &an'le *E:
an' PO%: re$estsB
-
8/16/2019 Oa Framework Part1
18/35
Controller? 9an'l#ng a *E:Re$est
) :&e OAPage,ean calls t&e processRequest et&o'(&en a !ro(ser #ss$es a *E: re$estB
) :&e OAPage,ean $ses ts et&o' to !$#l' t&e !eanerarc&7B
) :&e processRequest et&o' #s calle' for eac& !ean
#n t&e page erarc&7B
) Do$ can overr#'e ts et&o' on an7 of t&e conta#ner!eans #n t&e erarc&7B
) :&e processRequest() et&o' can !e $se' to
• C$sto#e page la7o$t at r$nt#e• Perfor an$al 'ata #n#t#al#at#on
• Perfor an a$to$er7
-
8/16/2019 Oa Framework Part1
19/35
Controller? 9an'l#ng a PO%:Re$est
) :&e OAPage,ean calls processRequest foreac& ,ean #n t&e erarc&7 5s##lar to a *E:6B
) :&e OAPage,ean t&en callsprocessFormData for pages t&at #nsert or
$p'ate 'ataB ) :&e processFormData et&o' rea's for
f#el' 'ata to appl7 #t to $n'erl7#ng v#e( o!
-
8/16/2019 Oa Framework Part1
20/35
Controller? :&e OAPageConte0tO!
-
8/16/2019 Oa Framework Part1
21/35
Controller? :&e OAPageConte0tO!
-
8/16/2019 Oa Framework Part1
22/35
Cl#ent an' %erver
Client 'ier Middle 'ier $erver 'ier
5ind AM
Invo6e MethodAM finds VO
web1i server
Client $ide $erver $ide
OA(ageConte7t OA+'ransaction
-
8/16/2019 Oa Framework Part1
23/35
%ett#ng .p Jeveloper
• OA Frae(ork/Jeveloper patc& to $se ) !bout t%is pa&e l#nk )'ec%nolo&y Components :a!) OA Frae(ork ) &ttps?//etal#nkBoracleBco/etal#nk/plsl/s&o('ocG
'!HO:+#'H81LB1
• ,C F#le ) !bout t%is pa&e l#nk )(a&e Conte)t :a!) ata!ase
• RE%PKED
) FRE%PO%I,I4I:IE%
) FAPP4ICA:IO%• 4og#n Cre'ent#als
) .serae/Pass(or' ) Please $se t&e $ser (&o &as t&e respons#!#l#t7 ass#gne' to B
-
8/16/2019 Oa Framework Part1
24/35
#rector7 %tr$ct$re
-
8/16/2019 Oa Framework Part1
25/35
Packages• oracleBappsBfn'B$lt#orgBlovBserver
• oracleBappsBfn'B$lt#orgBserver • oracleBappsBpoB'oc$ent
• oracleBappsBpoB'oc$entBagreeentBserver
• oracleBappsBpoB'oc$entBagreeentB(e!$#
• oracleBappsBpoB'oc$entBor'erB(e!$#
• oracleBappsBpoB'oc$entBserver
• oracleBappsBpoBlovB(e!$#• oracleBappsBpoBpopl#st
• oracleBappsBpoBpopl#stBserver
• oracleBappsBpoBsc&eaBserver
-
8/16/2019 Oa Framework Part1
26/35
*eneral a#ng R$les
• ae lengt&? ) F#le naes are l##te' to NBN c&aracters for OA
E0tens#on 3M4 f#les 5B
-
8/16/2019 Oa Framework Part1
27/35
,C8J Coponents• Ent#t7 O!
-
8/16/2019 Oa Framework Part1
28/35
Package a#ng ) 3M4 f#le or a s$!-'#rector7 s#gn#f7 a s#ngle f$nct#onal $n#t 5s$!-
coponent6 of t&e appl#cat#on
) %$!-'#rector7 package nae s&o$l' clearl7 #n'#cate t&e naeof t&e s$!-coponent an' !e #n lo(ercase lettersB
• E0aple?oracle/apps/per/selfserv#ce/emppersonalinfo/(e!$#
) 3M4 f#le package nae s&o$l' clearl7 #n'#cate t&e nae oft&e s$!-coponent an' follo( t&e Java class naestan'ar'sB
• E0aple?
oracle/apps/per/selfserv#ce/(e!$#/PerEmpPersInfo.xml
-
8/16/2019 Oa Framework Part1
29/35
Page a#ng• A page represents a step #n a task flo(B Pages are assoc#ate'
(#t& an o!
-
8/16/2019 Oa Framework Part1
30/35
Reg#on a#ng
• :&e top page reg#on 5page4a7o$t st7le6 s&o$l'al(a7s !e nae' Page4a7o$tR
• Reg#on nae 5!ot& e!e''e' an' 3M4 f#lenae6s&o$l' take t&e for takes t&e for
Object51nctional-str1ct1re9 an' s&o$l' follo(t&e Java class nae stan'ar'B
• Ob*ect e0aples? eplo7ee; contact
• E0aples? Eplo7eeR; EpMaster R;
EpContactseta#lR; Ep%earc&R;Ep:a!leR
-
8/16/2019 Oa Framework Part1
31/35
C&eck#ng Oracle %tan'ar'Co'e• .I Coponents
) 3M4 Coponents
• PRO.C::OP/'s/Qpackage str$ct$re
) Java Coponents
• JA"A:OP/Qpackage str$ct$re
• ,C8J Coponents
) 3M4 Coponents
• JA"A:OP/Qpackage str$ct$re
) Java Coponents
• JA"A:OP/Qpackage str$ct$re
• 3M4 f#les are #n A%CII forat an' can !e rea'B
• Java f#les are cop#le' #n to class f#les an' nee' to !e'ecop#le' to !e rea'B
-
8/16/2019 Oa Framework Part1
32/35
C$sto Controllers• For e0aple (e (#ll c$sto#e C$stoer %tan'ar' %earc& PageB
• F#n' o$t t&e stan'ar' controller 7o$ (ant to overr#'eB
• Create a C$sto Controller #n appropr#ate packageB
• Cop#le t&e C$sto ControllerB
• Personal#e t&e page an' place t&e C$sto ControllerB
• :est t&e pageB• ote? :&e Controller Java/Class f#le an' t&e Personal#at#on f#le
s&o$l' !e sppe' as 'el#ver7 !$n'leB
• :&e Personal#at#on f#le can !e generate' $s#ng F$nct#onal A'#n#strator respons#!#l#t7B
• F$nct#onal A'#n#strator esp-Personal#at#on5'ab6-Iport/E0port5$1b'ab6
-
8/16/2019 Oa Framework Part1
33/35
Cop#l#ng C$sto E0tens#onControllers• 4og#n to .n#0 ,o0
) l0sNerBsol$t#onsBgl!snetBco
) r1$ser/pass1;B
• %et t&e Env#ronent "ar#a!le ) E0ec$te t&e Env In#t#al#at#on %cr#pt APP4:OP/APP%QI%:ACEAMEBenv– . /ata/R!"#I$/apps/apps%st/appl/APP$R!"#I$%lxs&er'.en
• .p'ate t&e PA:9 var#a!leB– export PA*+,/ata/R!"#I$/apps/tec-%st/!'.!.&/appsutil//0in/12PA*+
• F:P f#les to $n#0 !o0 &oe '#rector7
• Cop#le t&e Java Co'e– aac – 23A#A%*OP 4filename5.aa
• "er#f7 t&e Class f#le
-
8/16/2019 Oa Framework Part1
34/35
,$#l' OAF Page•
Create an Ent#t7 O!
-
8/16/2019 Oa Framework Part1
35/35
Reso$rces•
F$rt&er rea'#ng? ) O! Framework Developer,s -uide? Anato7 of an OA Frae(ork Page
) OA Frae(ork Java'oc