ww.Magnifictraining.com-oracle oracle adf online training.
contact us: info@magnifictraining.com
or call us: +919052666559 oracle adf technologies like oracle adf suite,
oracle adf bpel online training,oracle adf 11g online training,
oracle adf admin online training,oracle adf bpm training,oracle adf developer training,oracle fusion adf training .
real time Oracle scm online training by industrail experts for details call:+919052666559 hands on training on oracle online TRAINING.
Getting Started with Oracle ADF
Getting Started with Oracle ADF
Why Oracle ADF?
Oracle ADF architecture
Developing with ADF
Your first Fusion web application
Introduction to ADF Business Components
Business service layer
Overview of ADF Business Components
Building a simple business service
Oracle ADF Model Tester
Using the ADF Model Tester to test the CRUD
operations on business data
Understanding the runtime behavior of ADF Business Components
Introducing Entity Object
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Oracle adf online training e-learning and placement
1. ORACLE ADF - ONLINE TRAINING | E-
LEARNING AND PLACEMENT
Online | classroom| Corporate
Training | certifications | placements| support
CONTACT US:
MAGNIFIC TRAINING
INDIA +91-9052666559
USA : +1-678-693-3475
info@magnifictraining.com
www.magnifictraining.com
3. WHAT IS A GOLD NUGGET?
• Unexpected benefit
• Underused, overlooked feature
– Small – frequently useful
– Huge – unexplored concept or area of infrastructure
• Potentially useful to large community
– Not too much a niche option
4. NUGGET CLOUD
Refresh after insert
Groovy
so aDF
JHeadstartPPR
DVT
DecoupledDevelopment&Reuse
TaskFlow,Region,UIShell,DeclarativeComponents,ADFLibrary,…
active rowkey
prepareSession
Java/JEE
Fusion Applications
EMG and wider community
OraFormsFaces
Popup
Change Persistence
AutoSuggest
PanelCollection
ADFContext
OPSS/ADF Security
TreeSelect
VO Updateable Lookup
Multi Browser Support
server event & listener
Listvalidator
FormatString
Selenium
Hot Reload
Customization
PanelDashboard
Programmatic VO
Bean Data Control
setPropertyListener
ActiveDataServiceforPush
RichTable
WebLogicServer
EL
SavePoints
PageTemplate
Skin editor
5. ADF IN LARRY‟S KEYNOTE
ON ORACLE OPEN WORLD 2009 AND 2010
6. THE TABLE
• ADF Faces
Rich Table (& Panel Collection)
– Displays ADF Model data bound collection, bean array,
List, ResultSet, RowSet and more
– Dynamic Table Configuration & Change Persistence
• Rearrange, resize, hide/show columns, freeze columns
– Post-load or Lazy Data Fetch
– Fetch data rows upon scroll
– Filter & Sort
– Read-Only and Click-to-edit
– [single or multiple] Row and Column Selection
– Header, Footer, Column Grouping, DetailStamp
– Many, many predefined facets
– Export data set, Email & Print mode
7. ACTIVE ROW KEY
• Property on table that is „click to edit‟
• EL expression that resolves to the primary key of the
row that should be displayed as editable
– Table will scroll that row into view
9. public class AppModuleImpl extends ApplicationModuleImpl
{
public BookingsViewImpl getBookingsView1() {
return
(BookingsViewImpl)findViewObjects("BookingsView1");
}
}
10. public class AppModuleImpl extends ApplicationModuleImpl
{
public BookingsViewImpl getBookingsView1() {
return
(BookingsViewImpl)findViewObjects("BookingsView1");
}
public void doSomething() {
}
}
11. public class AppModuleImpl extends ApplicationModuleImpl
{
public BookingsViewImpl getBookingsView1() {
return
(BookingsViewImpl)findViewObjects("BookingsView1");
}
public void doSomething() {
this.
}
}
12. public class AppModuleImpl extends ApplicationModuleImpl
{
public BookingsViewImpl getBookingsView1() {
return
(BookingsViewImpl)findViewObjects("BookingsView1");
}
public void doSomething() {
this.
}
}
13. public class AppModuleImpl extends ApplicationModuleImpl
{
public BookingsViewImpl getBookingsView1() {
return
(BookingsViewImpl)findViewObjects("BookingsView1");
}
public void doSomething() {
this.getB
}
}
14. public class AppModuleImpl extends ApplicationModuleImpl
{
public BookingsViewImpl getBookingsView1() {
return
(BookingsViewImpl)findViewObjects("BookingsView1");
}
public void doSomething() {
this.getBookingView1Impl()
}
}
15. public class AppModuleImpl extends ApplicationModuleImpl
{
public BookingsViewImpl getBookingsView1() {
return
(BookingsViewImpl)findViewObjects("BookingsView1");
}
public void doSomething() {
? = this.getBookingView1Impl()
}
}
16. public class AppModuleImpl extends ApplicationModuleImpl
{
public BookingsViewImpl getBookingsView1() {
return
(BookingsViewImpl)findViewObjects("BookingsView1");
}
public void doSomething() {
this.getB
}
}
17. public class AppModuleImpl extends ApplicationModuleImpl
{
public BookingsViewImpl getBookingsView1() {
return
(BookingsViewImpl)findViewObjects("BookingsView1");
}
public void doSomething() {
this.getB
}
}
18. public class AppModuleImpl extends ApplicationModuleImpl
{
public BookingsViewImpl getBookingsView1() {
return
(BookingsViewImpl)findViewObjects("BookingsView1");
}
public void doSomething() {
BookingsViewImpl bookingsView =
this.getBookingsView1();
}
}
19. JDEVELOPER GO TO SHORTCUTS
• Go to Class: CTRL -
• Go to File: CTRL ALT -
• Find usages: CTRL ALT u
– For class, method,
EO and VO Attribute, …
20. MORE BEST SHORT CUTS…
• CTRL Shift Space: parameter insight
• CTRL = : list of recently opened files
• CTRL Space: completion insight
• CTRL Space (2x): declaration insert
• CTRL /: selection commented
• CTRL Shift C:
copy file path to
Clipboard
• Alt Home :
select
file in „tree‟
24. EXAMPLE: ADDING FANCY
BALLOON HELP
• Create a popup with a noteWindow child to
contain the fancy
help content
• Add a showPopupBehavior tag to the inputText
that we want to add the help to
25. EXPRESSION LANGUAGE
• IoC: Injection of Value and Listener into page
• Dynamic, context sensitive behavior
• Extension points
– Custom Functions invoked from EL
– Integration of Spring Beans
– Custom EL Resolver
• To resolve values from property files, ….
28. Client
Server
(middle tier)
Database
JavaScript Components
ComponentsBeans & Objects
activeOutputText
Active Data
Model
activeOutputText
push
serverListener
Bean
Load JSON, CSS,
Image, XML, JSRequest
data or
Push
message
push (DB QRCN)
Object
clientListener
component
serverListener
partial
page
refresh
partialSubmit
autoSubmit
JavaScript
Function
Queue Custom
Event
component
component
manipulate
poll
setPropertyListener
user
or
programmatic
action
add JS to
execute
(ERKS) add
components
as partial target
ERKS
‘ppr script’
actionListener,
valueChangeListener,
…Listener
component
component
Full page
reload
CLIENT SERVER INTERACTIONS VV.
29. USE SETPROPERTYLISTENER
TO PUSH DATA TO THE SERVER
• The setPropertyListener will pass
from value to the to target
when type event occurs on parent
– A very simple way to inform the
server about an event and the data
associated with the event
– Supported types: action, focus,
poll, query, rangeChange, selection, sort, rowDisclosure,
valueChange and many more
<af:image id="removeFromSetImage“
source="/images/removeFromSet.png“
shortDesc="Remove from Shopping Basket"/>
<af:setPropertyListener from="#{item}“
to="#{shoppingBasket.itemToRemove}"
type="action"/>
</af:commandLink>
30. SERVERLISTENER FOR CUSTOM AJAX
(BACKGROUND CLIENT TO SERVER
PUSH)
• A serverListener associates a
server side method with a
client side custom event
– This allows JavaScript functions
to call a server side method by queuing an event
– A custom event carries a payload
31. ADF ACTIVE DATA SERVICE –
SERVER PUSH TO CLIENT
• Push: server sends messages to client
• ADF Active Data Service enables UI components to
be „automatically refreshed‟ when server side events
occur
• Active UI Components include Table, Image,
OutputText, DVT Components
– Based on BAM Data Control
– Based on Custom Beans
that extend ActiveAdapter
• Nudge: push-to-refresh
• Note: client-2-client push
can easily be implemented
as client-to-server-followed-
by-server-to-client push
Web Browser
JEE Application Server
32. AUTO-PPR FOR IMMEDIATE REFRESH OF
DATA BOUND COMPONENTS
• To have ADF automatically refresh
data bound components when underlying
value binding has changed its value
• Set changeEventPolicy=ppr on iterator
– Refresh as piggy back on any request cycle
– No partialTriggers attribute required!
33. CROSS TIER PUSH
Web Browser
RDBMS
JEE Application Server
trg
job
servlet
activeOT
evt lsnr
Cache
refresher
table
34. THE “HISTORY” FEATURE IN JDEVELOPER
• Quick comparison of file with previous states
– Can leverage Source Code Control system
(Subversion, CVS) but also maintains local file history
– The compare feature is ‘XML aware’
• Revert to a previous state of a file
35. MARRYING FORMS AND ADF TOGETHER –
MIGRATE WITH (i/o FROM) FORMS TO ADF
• OraFormsFaces leveraging the JavaScript-Applet
bridge for two-way event exchange
38. JAVA AND JEE
• ADF is a framework on top of Java, JEE and JVM
• Anything that is/extends/runs on one of these is
potentially usable with and relevant for ADF
• Zillion frameworks and libraries
– iText (PDF), Apache POI (Excel), Jasper Reports, BIRT
– Spring (IoC, AOP, Acegi/Security, Social, ..)
– Apache Commons, Google Collections, Joda Time
• Software Engineering
– Test (Junit, EasyMock), build (Ant, Maven), check/QA
(FindBugs, CheckStyle, Sonar),
• JEE facilities in WLS including JMS, WS* & RS, JMX…
• Dynamic JVM languages: Groovy, Scala, JRuby, …
• Java 7 SE and beyond
• Java FX?
39. PREPARE SESSION
• Before any other database communication is
performed during the processing of a request …
• ADF BC will execute the prepareSession() method that
you can override in ApplicationModuleImpl
• This is the perfect place to
– Reset package state
– Set application and client info
– Set application context
• User details, current session
context, view filter conditions
(real or poor man VPD)
– Fetch any events published
inside the database
Database
ADF BC
AppMod
40. CHALLENGE
• Create a Sliding Tile puzzle that tiles up an image in a
configurable number of tiles
• Using drag and drop, the user can reassemble the
image
41. STEPS
• Create Servlet that produces tiles from a JPEG
image
– Parameters: image name, tile factor, x and y
• Create PanelDashboard with panelBoxes with
richImage components
– That request their source from the servlet
corresponding to their position in the grid
• Bind the PanelDashboard and dynamically create
the panelBox components
• Allow user to set the tile factor and choose the
image
– Use a Carousel for image selection
44. ADF TO SOA INTERACTIONS IN FAPPS
Business LogicView Data
OrchestrationHuman interaction Policy evaluationMonitoring
Rules
EngineAssign
Task
Task
Complete
Human Workflow
Service
Mediator /BPEL
Process
results
facts
Business
Activity
Monitoring
Business Services
ADF Business Components
Data
Binding
SDO Services
Database
Schema
Events
User Interface
ADF Faces
components
WebCenter
45. PROGRAMMATIC VIEW OBJECT
• It walks, talks and looks like a „regular‟ View Object
– (regular being based on Entity Objects or SQL Query)
• But it is entirely fueled by custom written overridden
Java methods – possibly without database connection
– A bit like a View with Instead Of trigger – against a
Collection based Table Function and PL/SQL API
• Programmatic View Objects can be used as normal in
a Data Control for binding ADF Faces components
• Normal rich declarative ADF BC data binding can be
provided to UI developers for data sources such as
– WebService, JMS Queue, Memory Grid, Document
Management System, Email, cross session data, …
• Note: with the evolution of the Bean Data Control,
some of the use cases will fade away
47. AUTO SUGGESTIONS
• User is entering a field
– As she types characters,
suggestions can be
presented for what the full entry should read
• Based on a list of allowable values, based on
previous (popular) entries or anything really
– User can pick a suggestion for ‘short-cut typing’
• Auto suggestions can be model-driven (declarative) or
custom
– And can do things beyond plain list based suggestions
48. INTRO
• Google Suggest set off the AJAX hype in anger
• Many implementations for a „suggestions‟ feature
in ADF 10g and 11g have been created
– Using custom JavaScript or libraries like Jquery
• With PS1, ADF 11g introduced a native
component for „auto suggestions‟
– The <af:autoSuggestBehavior> component, to be
included in inputText or inputListOfValues or
inputComboboxListOfValues
49. MODEL DRIVEN SUGGESTIONS
• The suggestions can be derived declaratively
from List of Values reference on a VO Attribute
• Steps:
– On ViewObject
• Create ViewAccessor (for list values)
• Create List of Values for Attribute
• Link LoV to ViewAccessor
– In Page
• Add InputListOfValues component based on attribute
• Add af:autoSuggestBehavior with suggestions based on
List of Values Binding’s suggestedItems
51. CUSTOM SUGGESTIONS
• Auto Suggestions can be provided by managed
bean that implements signature:
– List getSuggestions( String currentValue)
• And the List returned is really List<SelectItem>
• Potential use cases
– Based on some (application wide) cached
collection (of previously entered ?) values
– Retrieve values from WebService, file, …
– Use common abbreviations, codes
• Country code, airport
– Show translations in other languages
53. SUGGESTIONS … OR?
• Suggested Values do not need to be suggestions in a
very literal sense
– What you see may not be what you get
– The SelectItem as a label (WYS) and a value (ISWYG)
• Examples:
– Add words to field instead of replacing value
– Perform selected
operation on value
– Show an updated
indicator based
on the value
54. PAGE TEMPLATE
• Turns page layout inside out:
– the page references the template
– the page template determines the overall structure
– the page provides the content for the designated areas
in the template (through the facets)
• Can be dynamically, context-sensitively selected using
an EL expression
• Can also be used for areas within a page
– With multiple page templates used within the same
page
– More an area template than a page template to define
UI Design Patterns
• Tree-with-Detail-Form, Table-and-Chart, Master-Form-
Detail-Table, Search block-Results table…
55. USING MULTIPLE PAGE TEMPLATES
• Two templates: mainpage and Table-Form template
58. SUMMARY
• Twinkle, twinkle little stars…
– #1 nugget
– #2 nugget
– #3 nugget
• Don‟t give up [too soon]
– There is more in ADF than meets the eye
– There is a world of Java/JEE to leverage
– There is a community to lean on
• Scan release notes and monitor blog-o-sphere for
valuable new (and re-discovered) nuggets
• Share! Yes, you too! Your findings are just as valuable.
– Participate in EMG and OTN Forum discussions, write
blog articles, present in conferences, …
60. SHOULD YOU REQUIRE ANY FURTHER
INFORMATION PLEASE DO NOT HESITATE
TO
CONTACT US
• http://www.oraclecourseonline.com
• -oracle fusion adf online training
contact us:
• info@magnifictraining.com or +919052666559
• By Real Time Experts from Hyderabad,
• Bangalore
• ,India,USA,Canada,UK, Australia,South
• Africa.
Notas del editor
ADFBCGroovy, groovy, groovy.List validators die je definieert op view assessors. Bij een entityObjectAttribute Business rule kun je een Listvalidator baseren op een view accessor. Dit kan handig zijn.LibraryShared property voor EO's en VO's. In verband met ADF BC Libraries. Alleen de objecten met LibrarySharedproperty = true kunnen worden gebruikt in de projecten die deze library importeren. Default staat deze property op true, dus zullen alle objecten altijd zichtbaar zijn. Door selectiever gebruik te maken van deze property blijven je libraries schoner. ADFFACESIn ADF 11g-R2 heb je de activeRowKeyproperty. Deze stelt je in staat om in een tabel met de click to edit mode een rij programmatisch editable te maken (zonder te clicken). Als de rij niet zichtbaar is dan wordt hier automatisch naar toe gescrolled. Zie ook : http://technology.amis.nl/blog/13314/adf-11g-r2-using-the-activerowkey-propertyIn ADF 11g-R2 heb je af:formatString en af:formatNamed. Daarmee kun je parameters (maximaal 4) gebruiken in EL expressies. formatString heeft 1 parameter, formatString2 heeft er 2, en zo verder tot formatString4. Hetzelfde geldt voor formatNamed; zie ook http://download.oracle.com/docs/cd/E16162_01/web.1112/e16181/gs_jdev.htm#CHDDAICC<af:outputText value="#{af:formatString('The current user is: {0}, someBean.currentUser)}" />
In ADF 11g-R2 heb je de activeRowKeyproperty. Deze stelt je in staat om in een tabel met de click to edit mode een rij programmatisch editable te maken (zonder te clicken). Als de rij niet zichtbaar is dan wordt hier automatisch naar toe gescrolled. Zie ook : http://technology.amis.nl/blog/13314/adf-11g-r2-using-the-activerowkey-property
Some developers don't know the Completion Insight has 2 modes
Problem here is it hasn't filled in the left hand side of the assignment .... what types was it meant to return?In this examples it's easy to guess, but what if the function was declared in some other class? It's painful to have to navigate to that class and come back
Instead if the user presses Ctrl – Space twice
....the Completion Insight changes modes
On selecting an entry, it will now do both sides of the expression+ bonus it completes the statement too with a semicolon
Even though we have a rich editor for business components, there are hidden properties only revealed in the Property InspectorThe highlighted option when used, with the ADF BC components are deployed as an ADF Library, if this is set to true, the component will not be available to the consuming application.
ViewObject for Candidate Managers (ViewCriteria with one bind parameter PartialName) Application Module Impl method (in Client Interface): findCandidateManagers(partialName) return row[]Action (Operation) Binding for that method in pageManaged bean that implements suggestions signature, executes operation binding and returns the results(pretty serious: database access after each key stroke!)