SAGE Computing Services
Customised Oracle Training Workshops and Consulting
Trials & Tribulations of an
Oracle Forms -> Apex Conversion
A Hypothetical Case Study
Scott Wesley
Systems Consultant
Today’s Guide
Strategies
Differences
Considerations
Process
Converter Review
What next?
Strategies
http://strategy2c.wordpress.com/2009/01/10/strategy-for-goldfish-funny-illustration-by-frits/
Oracle Product Strategy
Traditional Development Tools
Java Development Tools
Oracle Forms – Statement of Direction
Lifetime Support Document
Oracle’s Recommendations for Customers
To Quote Oracle…
Application Express – Statement of Direction (Feb09)
Differences
Differences
Basic Differences
Feature | Forms | Application Express |
4GL Declarative | Renders applications with metadata in .fmx | Renders applications using metadata stored in database |
4GL Languages | Client Side PL/SQL | Server Side PL/SQL |
User Interface | Java | HTML |
Web Services | Yes | Yes |
Key Differences
Feature | Forms | Application Express |
Page Layout | Windows / Canvases | Pages / Regions |
Client-side Field Control | Forms Triggers | Javascript / AJAX |
Locking | Pessimistic / Optimistic / Custom | Optimistic |
Database Connection | Synchronous | Asynchronous |
Concurrent User Support | Connectivity by user session | Connection only maintained for processing requests |
Architecture | 3 Tier | 2/3 Tier |
Reporting | Oracle Reports / BI Beans | Flash Charts / BI Publisher |
Project Considerations
Project Considerations
Project Expectations
Right Reason
Conversion
Architecture
Cost
Customer
Technical Expectations
Developer
Architecture
A Hypothetical Case Study
A Hypothetical Case Study
1) Splash Screen
2) Basic Form, Various item types, �LOV, Post-Query
3) Master Detail
4) Tabular Form, Basic validation,�Pre-Insert, Overflow
5) Hierarchy, Single Record Entry
6) View only, Procedural Entry Example
Conversion Process
Conversion Process Theory
Apex Migration Guide
Apex Migration Guide
Microsoft Access not forgotten
Step 1 - Convert Modules to XML
Step 1: Convert .fmb, .olb, .mmb files to XML
S:\SW-SHARE>frmf2xml overwrite=yes bookings.fmb
Oracle Forms 10.1.2 Forms to XML Tool
Copyright(c) 2001, 2005, Oracle. All rights reserved.
Processing module bookings.fmb
WARNING: Item STATUS - all ListItemElements must have an Index, Name and Value.
XML Module saved as bookings_fmb.xml
Convert .pll to .pld
Convert .rdf, .jsp to XML
Resulting XML
Step 3 - Create Migration Project
Application Migration?
Application Conversion
Define Project
First error…
Second error…
Upload more files
Third error…
Migration Summary (Summit)
Migration Summary (Sage)
Annotations
Step 4 – Analyse the Application
Forms Objects
Metadata differences
Forgotten Metadata
Custom Query
Getting your query right
Exclude Items
alter table organisations add
(close_btn raw(1), save_btn raw(1));
(Explore meta-data)
SAGE@sw10g> break on presentation skip 10
Register for the Next
Application Express V3.2 course:
23rd ,25th and 26th November
Advanced course:
8th – 9th December
Talk to Sage about moving your Forms applications to Apex
Call in at the Sage Computing Services exhibition booth, or contact Penny
penny@sagecomputing.com.au
0419904458
SAGE Computing Services
(Unrepentant Marketing)
Step 5 – Generate the Apex Application
Generate Application - Theory
Blocks
Regions
Triggers
Computation / Validation / Process
Program Units
Computation | Validation | Process
Server side packages
Object Library
d
LOV
(Record Group)
LOV
(Select List | Popup)
?
Alerts
Shared Components
– Text Message
?
Interactive Reports
Interactive Reports
Interactive Reports
Apex Page
Oracle Reports
Apex (potential) Printing Infrastructure
Generate Application - Process
“Compilation errors”
“Compilation errors”
“Compilation errors”
Application Design Model
Add Extra Pages
Define Theme
Confirm Creation
Success!
So what does my new Application look like?
Iterative Process?
UI Defaults
Step 6 – Customise your Apex Application
Annotations
Review
Program Units / Triggers
Enhance Apex Application
Add Apex Components
Develop Database Components
Project Management
Where did my time go?
1%
2%
2%
30%
40%
Transform to XML
Create Application Express Workspace / Migration Project
Upload XML files to workspace
Analyse the application metadata
Generate the Application Express Application
Customise the Application Express Application
User Acceptance & Testing
Consumption of Time
Conversion Tool = ~5%
Review
Bottlenecks / Danger Zones
“Oracle has no plans to offer a complete migration solution”
Speedy annotation locate & update
Custom Query modification
Multi-row blocks
Non-database items
Beyond simple block source
Control blocks
PL/SQL Conversion
UI Defaults
What’s missing?
Pros
Cons
Annotations
Potential
Added Value
Missing Components
Annotations
Browse Logic
So what’s next?
Conversion Alternatives
Conversion Alternatives
Conversion Alternatives
Underlying Data
-- Create view of annotations
create or replace view annotations as
(output of)
select 'select '''||table_name||''' table_name, '
||nvl((select distinct first_value (column_name) over (order by column_id) from all_tab_columns s where m.table_name = s.table_name and s.column_name like '%NAME%') ,
(select distinct first_value (column_name) over (order by column_id) from all_tab_columns s where m.table_name = s.table_name and (s.column_name like '%ROLE%' or s.column_name like '%EXPRESSION%')))
||‘ name, select_for_app, applicable, complete, priority, assignee, notes, tags from '||owner||'.'||table_name||' union all ' a
from all_tab_columns m
where column_name like 'APPLICABLE'
and owner = 'APEX_030200'
and table_name not in ('WWV_MIG_PROJECT_COMPONENTS','WWV_MIG_FRM_COORDINATES','WWV_MIG_RPT_GRP_FILTER'
,'WWV_MIG_RPT_DATASRC_SELECT','WWV_MIG_RPT_DATA'
,'WWV_MIG_FRM_MENUS_MODULES','WWV_MIG_FRM_MODULES','WWV_MIG_OLB_MODULES');
Annotation Summary
Annotation Priority
Today’s Summary
Strategies Forms v Apex v ADF
Differences Stateful v Stateless
Considerations Right Decision
Process Simple
Converter Review Poor
What next?
References
SAGE Computing Services
Customised Oracle Training Workshops and Consulting
Questions and Answers?
Presentations are available from our website:
http://www.sagecomputing.com.au
enquiries@sagecomputing.com.au
scott.wesley@sagecomputing.com.au
http://triangle-circle-square.blogspot.com
Register for the Next
Application Express V3.2 course:
23rd ,25th and 26th November
Advanced course:
8th – 9th December
Talk to Sage about moving your Forms applications to Apex
Call in at the Sage Computing Services exhibition booth, or contact Penny
penny@sagecomputing.com.au
0419904458
SAGE Computing Services
(Unrepentant Marketing)