Are you currently running Oracle Forms and are you thinking about beginning an Oracle ADF project, or are you about to start Oracle Forms modernization to Oracle ADF?
As a consulting company we have been involved in dozens of modernization projects.
There are valuable tips and tricks that you can learn from.
From teams setup to technical best practices, and from automated migration to manual rebuild.
What is the best way to setup a team ?
Where to start ?
What to do, and more important, what not to do ?
Can you reuse existing Business Rules ?
What about layout and user interaction ?
What do you need to know ?
In this session you will see a top 10 of lessons learned when going from Oracle Forms to Oracle ADF.
2. Who Am I
• Luc Bors
• Principal Consultant
• AMIS Nieuwegein Netherlands
• Friends of Oracle & Java
• 5 Oracle ACE(D)
• Oracle Partner
3. Where Are You Now ?
• HUGE Forms investment
• Mission critical, complex systems
• Low maintenance, stable system for over 10 years
• Mostly undocumented systems
• VERY fast productive development
• Trained developer pool
• Looking to leverage the existing investment
6. Most Recent Project
• Ministry of Security and Justice
• Application >20 years old
• Decentralized architecture (19x)
• Approx. 2.000 users
• 1 million cases per year
• 10.000-15.000 letters per day
7. Modernization Project Triggers
• Very old technical environment(end-of-life)
• Maintenance is expensive
• Staffing is difficult
• Architecture not flexible
• Need to be ready for the future
8. Distributed Architecture
• 19 distributed implemenations• 1 central implemenation
• Less Hardware
• Less Administrators
• Less Duplicate Data
• More Insight
• More Control
18. Lesson 1: The Right Size
• Application Architecture
• Taskflow with page fragment and per
Taskflow 1 page with 1 static region
• All in one big workspace
– Or
• Taskflow with page fragment and per
Application 1 page with 1 dynamic
region
• Use separate workspaces
19. Lesson 2 : Don’t Copy Paste
• Migrate “As-is” …… ??
• Don’t try to copy forms functionality
– Know your ADF Faces Components
• Forms Built-ins are not available in ADF
and PL/SQL is not Java. Your options:
– Whenever possible
• transfer to DB
– Whenever lucky
• Use a declarative or zero code ADF Alternative
– Otherwise
• Code Java Alternative
20. Lesson 2 : Don’t Copy Paste
• Forms code for:
– Buttons
– Canvasses
– Navigation
• ADF code for:
– None of the above
21. Lesson 3 : Involve People
• Grumpy Old Men
• Talk with all People involved in
the project
• Let them know what you are
doing
• Let them decide what goes in
and what not
22. Lesson 3 : Involve People
• Include operational team
• Infrastructure (DTAP) : Ready on Time
• Don’t underestimate WebLogic configuration
• SSO via MS-AD
23. Lesson 4 : Hire Experts
• Training is not enough.
• Steep learning curve
– Don’t mix in regular work
– Long “Conscious Incompetence”
phase: motivational dip
• Hire Experts 0
1
2
3
4
5
Week
1
Week
20
Week
30
Week
40
Week
52
Next
Year
Even
Later
Imaginary ADF Learning
Curve
24. Lesson 4 : Hire Experts
“The cheapest ADF Consultant is
the one with the highest hourly rate”
25. Lesson 5: Planning & Process
• Scrum
• Predictable Results
• Short Cycles
26. Lesson 5: Planning & Process
• Short Development Cycles
– Easy to Adjust
– Easy to Demo
– Nearby Goals
Sprint 1 Sprint 2 Sprint 3
2 weeks 2 weeks 2 weeks
Demo
Demo
Demo
27. Lesson 6 : Think Performance
• Performance First, not Last
• Might look good, however….
• Consider Tools
• …. And Watch Now Carefully !
28. Lesson 6 : Think Performance
• ViewObject queries caused by unintentionally left iterators in pageDefs
• Iterator bindings can still be refreshed and the ViewObject
unnecessary executed - for example when you have Refresh=“ifNeeded”)
29. Lesson 6 : Think Performance
• Oracle’s Default Values Do Not
Always Rock !
– ViewObject fetchMode and
fetchSize are underestimated
properties and have big
performance impact
– The default value is 1 - will give
poor performance (unless only one
row will be fetched)
30. Lesson 6 : Think Performance
• Too much data in ADFBC memory…………..
• Try to avoid loading more database rows than you need
• Be careful if you really do need to load a proportional number
of database rows
33. Lesson 7: Business Rules
• Business Components is not Always the Best Place !
• For employees with a Job (attribute value) equal to
SALESMAN the value of the Salary attribute should not be
higher than 2500.
• The difference between the maximum salary for all
employees with the same job and their average salary may
not exceed 30% of the average salary
34. Lesson 7: Business Rules
Hey, I can do ADF !
We can’t……….
….. But we can do
PL/SQL
36. Lesson 8: Documentation !
• *.fmb are not Documentation !
• Provide proper Documentation
• It is a Valid Investment
• Create a Cookbook
– Architectural issues
– Development How to‘s
37. Lesson 9: Automated Migration
• Automated migration is not easy.
– You can run into issues that an automated tool cannot handle
– You still need to re-code forms triggers (PL/SQL)
• JHeadstart Forms2ADF ?
– Not Really on Option
• Automated migration doesn’t exist.