JHeadstart Forms2ADF Generator – Migrating from Oracle Forms to a Best-Practice ADF application
Oracle JHeadstart Superior Productivity in Developing Best Practice Oracle ADF Applications
-
Upload
steven-davelaar -
Category
Technology
-
view
1.913 -
download
0
description
Transcript of Oracle JHeadstart Superior Productivity in Developing Best Practice Oracle ADF Applications
1
<Insert Picture Here>
Oracle JHeadstart – Superior Productivity in Developing Best
Practice Oracle ADF Applications
Steven Davelaar
Oracle, Technical Director
3
Agenda
• What is JHeadstart
• Seeing is believing: demo!
• Generated ADF design patterns
• JHeadstart reusable components
• JHeadstart generator templates
• (JHeadstart Forms2ADF Generator)
4
What is JHeadstart?
• JDeveloper extension for template-based automation of
ADF development tasks
– Development Toolkit on top of ADF
– Builds on ADF Runtime architecture
– Fully integrates with ADF Design Time
• Takes declarative development to the next level
– Generates complete ADF applications
– Like the Designer Forms Generator generates Forms apps,
JHeadstart generates ADF apps
• Transforms Oracle Forms into ADF applications
5
JHeadstart – Main Components
• JHeadstart Application Generator (JAG)
– Generates best-practice web application
• JHeadstart Utilities
– Automate other ADF development tasks
– Perform quality checks
• JHeadstart Runtime
– Reusable components to implement complex functionality
– Auto-implements host of best practices
• JHeadstart Forms2ADF Generator
– Create fully-functional ADF app based on forms definitions
• JHeadstart Developer’s Guide
6
JHeadstart Application Generator (JAG)
• Generates ADF Faces pages and fragments
• Generates (un)bounded task flows
• Generates page definitions (data bindings)
• Does NOT generate any Java code, only XML!
• JAG is driven by
– XML-based Application Definition file, created and edited
through GUI Wizard (JDeveloper add-in)
– Velocity Generator Templates
• Generated output is 100% customizable
7
JSF JSPADF Faces
JSF JSPADF Faces
JSF+ADFcJSF+ADFc
ADF Business
Components
ADF Business
Components
ADF Model
Data Bindings
Data Controls
ADF Model
Data Bindings
Data Controls
View
Controller
Model
BusinessServices
JDeveloper
ADF BC Wizard
JHeadstart
Application
Definition
Wizard
Application Definition
Application Definition
ADF BCmetadata
ADF BCmetadata
ADF Business
Components
ADF Business
Components
Generation Process
8
JSF JSPADF Faces
JSF JSPADF Faces
JSFJSF
ADF Business
Components
ADF Business
Components
ADF Model
Data Bindings
Data Controls
ADF Model
Data Bindings
Data Controls
View
Controller
Model
BusinessServices
JDeveloper
ADF BC Wizard
JHeadstart
Application
Definition
Wizard
Application Definition
Application Definition
ADF BCmetadata
ADF BCmetadata
ADF Business
Components
ADF Business
Components
9
JSF JSPADF Faces
JSF JSPADF Faces
JSFJSF
ADF Business
Components
ADF Business
Components
ADF Model
Data Bindings
Data Controls
ADF Model
Data Bindings
Data Controls
View
Controller
Model
BusinessServices
JDeveloper
ADF BC Wizard
JHeadstart
Application
Definition
Wizard
GeneratorTemplates
GeneratorTemplates
Application Definition
Application Definition
JHeadstart
Application
Generator
ADF BCmetadata
ADF BCmetadata
ADF Business
Components
ADF Business
Components
JSF+ADFcJSF+ADFc
JSF JSPADF Faces
JSF JSPADF Faces
ADF Model
Data Bindings
Data Controls
ADF Model
Data Bindings
Data Controls
Generation Process
10
Demo Time!
11
Sample Generated Pages
12
JHeadstart Generated Page
13
JHeadstart Generated Page
14
JHeadstart Generated Pages
15
JHeadstart Generated Page
16
JHeadstart Generated Page
17
JHeadstart Generated Page
18
JHeadstart Generated Page
19
JHeadstart Generated Page
20
JHeadstart Generated Page
21
Enhanced UI Shell with Dynamic Tabs
22
JHeadstart Uses Best Practice ADF Design Patterns
• “One-page” application (UIShell)
– Generated bounded task flows use page fragments and can be
embedded as ADF region in page
– One page with dynamic region driven by application menu
• Generated task flows are highly reusable
– Use with traditional menu structure
– Use with dynamic tabs
– Use in handbuilt drag-and-drop pages
– Use as child within another region
– Use with human workflow task list
– Use as popup / list of values
– Use as WebCenter portlet
– Add at runtime using WebCenter Composer
23
JHeadstart Uses Best Practice ADF Design Patterns
• Generated task flows are highly configurable
– Configure to start in create mode (new row)
– Configure to show one specific row (deeplinking)
– Configure to go to summary or detail page
– Configure to hide action buttons (Save, Cancel, Nav. Buttons)
– Configure to hide search region
– Configure to show in read-only mode
• Generates layout best practices
– Easy switching between stretching and non-stretching layouts
• Region interaction design patterns are auto-
implemented
24
Configurable TaskFlows Generated
• Taskflow Template Parameters
• Taskflow Parameters
25
Configurable Task Flows Generated
26
Reusable Application
Components
27
Reusable Application Components
• Fine-grained permission-based authorization,
seamlessly integrated with ADF Security
• Dynamic menu structure
• Flex Items: Adding new items at runtime
• Runtime customization of standard items
– Show/hide
– Make mandatory
• Runtime translation/modification of page text
28
Reusable Application Components - Packaging
• DDL script to Create Table Structure
• Predefined Business Components with application
module that is nested within own app module
• JHeadstart Application Definitions generated, that can
be used to generate admin screens
• SQL scripts are generated and executed to populate
the database tables
– Roles, Permissions (Group Access/Action), Grants
– Module and menu items
– Translations
– Flex Region Definitions
29
JSF JSPADF Faces
JSF JSPADF Faces
JSF+ADFcJSF+ADFc
ADF Business ComponentsADF Business Components
Data Bindings
Data Controls
Data Bindings
Data Controls
View
Controller
Model
BusinessServices
GeneratorTemplates
GeneratorTemplates
Application Definition
Application Definition
JHeadstart
Application
Generator
JHeadstart Application
Components
Flex ItemsApplication Definition
Flex ItemsApplication Definition
SecurityApplication Definition
SecurityApplication Definition
MenuApplication Definition
MenuApplication Definition
Security Components
Security Components
MenuComponents
MenuComponents
Flex ItemComponents
Flex ItemComponents
NLSComponents
NLSComponents
30
Generated Menu Admin Page
31
Generated Security Admin Page
32
In-Page Text Editing and Translating
33
Define Flex Items Dialog
34
Flex Items Added to Employee Page
35
JHeadstart Generator
Templates
36
Recommended Approach to Customizing Generated
Output
• Use the visual design time tools in JDeveloper to
make any modifications you like
– Drag and drop from control palette
– Structure pane
– Property inspector
– ..
• Run the modified page and verify it works as
expected
• Move the custom page code to a custom template to
preserve the modifications upon regeneration
• (or switch off page generation flag and skip last step)
37
JHeadstart Generator Templates
– The content of generated pages is completely
driven by Velocity generator templates
– The templates are categorized in groups
• Page, pageComponent, button, item
(table/form/search), search, misc, etc.
– Which template is used for which page “snippet” is
handled by defaultTemplateBindings.jtp file.
– You can customize anything that is generated
onto a page by creating a custom template
38
Creating Custom Templates
39
Graph Generated Using Custom Template
40
JHeadstart Forms2ADF
Generator
41
Running the Forms2ADF Generator
42
Running the Forms2ADF Generator
43
Running the Forms2ADF Generator
44
Running the Forms2ADF Generator
45
Running the Forms2ADF Generator
46
Running the Forms2ADF Generator
47
Running the Forms2ADF Generator
48
Running the Forms2ADF Generator
49
Generated ADF Business Components
50
Generated Application Definition
51
Oracle Forms Screen
52
JHeadstart Generated ADF/JSF Page
53
Oracle Forms Screen
54
JHeadstart Generated ADF/JSF Page
55
Oracle Forms Screen
56
JHeadstart Generated ADF/JSF Page
57
Oracle Forms Screen
58
JHeadstart Generated ADF/JSF Page
59
What about PL/SQL Logic?
• Custom PL/SQL Logic not automatically migrated to Java
• JHeadstart prefers sound multi-tier target architecture(ADF MVC) above automated PL/SQL migration– Analyze the logic
– Determine in which tier(s) it should be implemented
– Determine how to implement it
• Application Definition Editor shows all form, block and item triggers and all program units– Good overview of all custom PL/SQL logic
– Ability to move logic to database, to ADF BC or to JSF managed beans
60
PL/SQL Code in Appl. Definition Editor
61
JHeadstart Superior Productivity – In Many Ways
• Saves you months to figure out ADF best practices
• Saves you months with ready-to-use reusable
components
• Maximizes reuse
– JAG is actually RTG: Reusable Taskflows Generator
• Facilitates agile development
– Start with generating functional prototypes that evolve into
working system
• Eases upgrade to new JDeveloper releases
– Technology-agnostic metadata layer!
62
JHeadstart – Next Steps
• Get more info at “JHeadstart Product Center” (google):
– Developer’s guide
– Tutorial
– Online Forms2ADF demonstrations
– Customer success stories
– Frequently asked questions
• Evaluate JHeadstart
– JDeveloper Help -> Check for Updates -> Open Source and
Partner Extensions
– Do the tutorial
• Buy JHeadstart
• Ask additional questions at OTN JHeadstart Discussion Forum
or email [email protected]
63