116
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

Oracle Forms to APEX conversion tool

Embed Size (px)

DESCRIPTION

Oracle Text is a facility within the database that provides more advanced indexing & search techniques - including the ability to index documents stored in your database; on your server; or even the web! Now you can incorporate this functionality into your web application using Oracle Application Express. This presentation will demonstrate how easy it is to combine the two, and give you a platform for further expansion and exploration within a very powerful product.

Citation preview

Page 1: Oracle Forms to APEX conversion tool

SAGE Computing ServicesCustomised Oracle Training Workshops and

Consulting

Trials & Tribulations of an Oracle Forms -> Apex Conversion

A Hypothetical Case Study

Scott WesleySystems Consultant

Page 2: Oracle Forms to APEX conversion tool

Today’s Guide

Strategies

Differences

Considerations

Process

Converter Review

What next?

Page 3: Oracle Forms to APEX conversion tool

Strategies

Page 4: Oracle Forms to APEX conversion tool

http://strategy2c.wordpress.com/2009/01/10/strategy-for-goldfish-funny-illustration-by-frits/

Page 5: Oracle Forms to APEX conversion tool

Oracle Product Strategy

Traditional Development Tools

Java Development Tools

Page 6: Oracle Forms to APEX conversion tool

Oracle Forms – Statement of Direction

• Oracle Forms and Reports– “Oracle has no plan to de-support these products,

furthermore new versions are components of Oracle Fusion Middleware 11g”

• Oracle Designer– Focus on stability and bug fixes, released via Oracle

Development Suite 10g

Page 7: Oracle Forms to APEX conversion tool

Lifetime Support Document

Page 8: Oracle Forms to APEX conversion tool

Oracle’s Recommendations for Customers

• Based on E-Business Suite– Move from client-server to web– Upgrade to latest versions– Interoperate with Java/J2EE– Develop new modules with JDeveloper

Page 9: Oracle Forms to APEX conversion tool

To Quote Oracle…

• Oracle JDeveloper 11g with ADF is the tool of choice for Forms, Reports and Designer customers because it carries over a similar development model. However, given the architecture difference between Java EE and Forms or Reports, Oracle has no plans to offer a complete migration solution that would attempt to migrate applications built with these tools to Java EE.

• Instead, Oracle’s strategy is to provide a Java EE development environment exposing similar concepts as Forms and Reports, giving to Forms and Reports developers the opportunity to become productive in a new, but familiar environment.

Page 10: Oracle Forms to APEX conversion tool

Application Express – Statement of Direction (Feb09)

• Native Web application development framework• Conceived February 2004 with Oracle Database

10g• “APEX 4.0 will focus on declarative support for

Web 2.0 features as well as extensibility of APEX framework”– APEX Websheets – end user define data rules– APEX Listener – J2EE alternative to mod plsql– Improved tab forms – validation, collection integration– AnyChart 4 – flash based maps, Gantt charts– Dynamic Actions – page rendering on client events– Declarative support for cascading select lists– Extensible item framework – custom item types– Updateable Interactive Reports – inline editing– New Authentication schemes

Page 11: Oracle Forms to APEX conversion tool

Differences

Page 12: Oracle Forms to APEX conversion tool

Differences

Page 13: Oracle Forms to APEX conversion tool

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

Page 14: Oracle Forms to APEX conversion tool

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

Page 15: Oracle Forms to APEX conversion tool
Page 16: Oracle Forms to APEX conversion tool

Project ConsiderationsProject Considerations

Page 17: Oracle Forms to APEX conversion tool

Project Expectations

•Suitable application development environment

(why, what, who, where)

Right Reason

•Change of behaviour

•Best out of Apex?

•Retraining required?

Conversion

•Stateful -> Stateless

•UI – layout / flow

Architecture

•Saving v Conversion Cost

Cost

•Case studies

•Feedback

Customer

Page 18: Oracle Forms to APEX conversion tool

Technical Expectations

• Forms triggers• PLLs• Forms built-ins• Code split into UI /

data layers?• Blocks based on

stored procedures• Control blocks• Ongoing changes• Turnkey vs Phase

Developer Architecture

• Menus (security)• Object libraries• Validation• Hotkeys• Reports (printing = $

$)• Turnkey vs Phase• Storyboards

Page 19: Oracle Forms to APEX conversion tool

A Hypothetical Case Study

Page 20: Oracle Forms to APEX conversion tool

A Hypothetical Case Study

• PLL• Menu• Reports• Forms

• LOVs• Program Units• Validation triggers• Event triggers• Alerts• Images• Parameters• Visual Attributes• Hierarchical Tree• Procedure based block

Page 21: Oracle Forms to APEX conversion tool

1) Splash Screen

Page 22: Oracle Forms to APEX conversion tool

2) Basic Form, Various item types, LOV, Post-Query

Page 23: Oracle Forms to APEX conversion tool

3) Master Detail

Page 24: Oracle Forms to APEX conversion tool

4) Tabular Form, Basic validation,Pre-Insert, Overflow

Page 25: Oracle Forms to APEX conversion tool

5) Hierarchy, Single Record Entry

Page 26: Oracle Forms to APEX conversion tool

6) View only, Procedural Entry Example

Page 27: Oracle Forms to APEX conversion tool

Conversion Process

Page 28: Oracle Forms to APEX conversion tool

Conversion Process Theory

• Chapter 4 – Converting an Oracle Forms Application

• How to convert your application– Step 1: Convert Oracle Forms to XML– Step 2: Create a Workspace and add APEX Users– Step 3: Upload database objects into the schema

associated with your workspace– Step 4: Create a conversion project– Step 5: Review and edit forms metadata– Step 6: Generate the Oracle APEX Application

• Deleting a migration project

Page 29: Oracle Forms to APEX conversion tool
Page 30: Oracle Forms to APEX conversion tool

Apex Migration Guide

Page 31: Oracle Forms to APEX conversion tool

Apex Migration Guide

Page 32: Oracle Forms to APEX conversion tool

Microsoft Access not forgotten

Page 33: Oracle Forms to APEX conversion tool

Step 1 - Convert Modules to XML

Page 34: Oracle Forms to APEX conversion tool

Step 1: Convert .fmb, .olb, .mmb files to XML

S:\SW-SHARE>frmf2xml overwrite=yes bookings.fmbOracle Forms 10.1.2 Forms to XML ToolCopyright(c) 2001, 2005, Oracle. All rights

reserved.

Processing module bookings.fmbWARNING: Item STATUS - all ListItemElements must

have an Index, Name and Value.XML Module saved as bookings_fmb.xml

Page 35: Oracle Forms to APEX conversion tool

Convert .pll to .pld

Page 36: Oracle Forms to APEX conversion tool

Convert .rdf, .jsp to XML

Page 37: Oracle Forms to APEX conversion tool

Resulting XML

Page 38: Oracle Forms to APEX conversion tool

Step 3 - Create Migration Project

Page 39: Oracle Forms to APEX conversion tool

Application Migration?

Page 40: Oracle Forms to APEX conversion tool

Application Conversion

Page 41: Oracle Forms to APEX conversion tool

Define Project

Page 42: Oracle Forms to APEX conversion tool

First error…

Page 43: Oracle Forms to APEX conversion tool

Second error…

Page 44: Oracle Forms to APEX conversion tool

Upload more files

Page 45: Oracle Forms to APEX conversion tool
Page 46: Oracle Forms to APEX conversion tool

Third error…

Page 47: Oracle Forms to APEX conversion tool

Migration Summary (Summit)

Page 48: Oracle Forms to APEX conversion tool

Migration Summary (Sage)

Page 49: Oracle Forms to APEX conversion tool

Annotations

Page 50: Oracle Forms to APEX conversion tool

Step 4 – Analyse the Application

Page 51: Oracle Forms to APEX conversion tool

Forms Objects

Page 52: Oracle Forms to APEX conversion tool
Page 53: Oracle Forms to APEX conversion tool

Metadata differences

Page 54: Oracle Forms to APEX conversion tool

Forgotten Metadata

Page 55: Oracle Forms to APEX conversion tool

Custom Query

Page 56: Oracle Forms to APEX conversion tool

Getting your query right

Page 57: Oracle Forms to APEX conversion tool

Exclude Items

Page 58: Oracle Forms to APEX conversion tool

alter table organisations add (close_btn raw(1), save_btn raw(1));

Page 59: Oracle Forms to APEX conversion tool

(Explore meta-data)

Page 60: Oracle Forms to APEX conversion tool

SAGE@sw10g> break on presentation skip 10

Page 61: Oracle Forms to APEX conversion tool

Register for the Next

Application Express V3.2 course:

23rd ,25th and 26th NovemberAdvanced 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

[email protected]

SAGE Computing Services(Unrepentant Marketing)

Page 62: Oracle Forms to APEX conversion tool

Step 5 – Generate the Apex Application

Page 63: Oracle Forms to APEX conversion tool

Generate Application - Theory

Page 64: Oracle Forms to APEX conversion tool

Blocks

Regions

Page 65: Oracle Forms to APEX conversion tool

Triggers

Computation / Validation /

Process

Page 66: Oracle Forms to APEX conversion tool

Program Units

Computation | Validation |

ProcessServer side packages

Page 67: Oracle Forms to APEX conversion tool

Object Library

d

Page 68: Oracle Forms to APEX conversion tool

LOV(Record Group)

LOV (Select List |

Popup)

?

Page 69: Oracle Forms to APEX conversion tool

Alerts

Shared Components

– Text Message

?

Page 70: Oracle Forms to APEX conversion tool

Interactive

Reports

Interactive

Reports

Interactive

Reports

Apex Page

Oracle Reports

Page 71: Oracle Forms to APEX conversion tool

Apex (potential) Printing Infrastructure

Page 72: Oracle Forms to APEX conversion tool

Generate Application - Process

Page 73: Oracle Forms to APEX conversion tool

“Compilation errors”

Page 74: Oracle Forms to APEX conversion tool

“Compilation errors”

Page 75: Oracle Forms to APEX conversion tool

“Compilation errors”

Page 76: Oracle Forms to APEX conversion tool

Application Design Model

Page 77: Oracle Forms to APEX conversion tool
Page 78: Oracle Forms to APEX conversion tool
Page 79: Oracle Forms to APEX conversion tool

Add Extra Pages

Page 80: Oracle Forms to APEX conversion tool

Define Theme

Page 81: Oracle Forms to APEX conversion tool

Confirm Creation

Page 82: Oracle Forms to APEX conversion tool

Success!

Page 83: Oracle Forms to APEX conversion tool

So what does my new Application look like?

Page 84: Oracle Forms to APEX conversion tool
Page 85: Oracle Forms to APEX conversion tool
Page 86: Oracle Forms to APEX conversion tool
Page 87: Oracle Forms to APEX conversion tool

Iterative Process?

Page 88: Oracle Forms to APEX conversion tool

UI Defaults

Page 89: Oracle Forms to APEX conversion tool

Step 6 – Customise your Apex Application

Page 90: Oracle Forms to APEX conversion tool

Annotations

Page 91: Oracle Forms to APEX conversion tool

Review

•Page structures•UI - themes / images•Navigation components•Report implementation

Page 92: Oracle Forms to APEX conversion tool

Program Units / Triggers

• Manually transfer code as validation/computation/process

• Annotate

Page 93: Oracle Forms to APEX conversion tool

Enhance Apex Application

• Apply conditional processing for regions / items

• Apply security via authorisation schemes / conditions

• Apply LOVs, alerts, specific item type attributes (checkboxes, dates)

• Review all generated buttons• Add session state protection• Annotate

Page 94: Oracle Forms to APEX conversion tool

Add Apex Components

• Pages, regions, buttons, items as required

• Implement client-side JS & AJAX

• Annotate

Page 95: Oracle Forms to APEX conversion tool

Develop Database Components

• Ensure code reused in packages and not embedded in the Apex Application where possible

• Annotate

Page 96: Oracle Forms to APEX conversion tool

Project Management

•System test•Train users•Implement application

Page 97: Oracle Forms to APEX conversion tool

Where did my time go?

Page 98: Oracle Forms to APEX conversion tool

1%

2%

2%

30%

40%

Page 99: Oracle Forms to APEX conversion tool

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

Page 100: Oracle Forms to APEX conversion tool

Consumption of Time

XML Upload

Ana-lyse

Gener-ate

Cus-tomise

Ac-cep-tanc

e

Conversion Tool = ~5%

Page 101: Oracle Forms to APEX conversion tool

Review

Page 102: Oracle Forms to APEX conversion tool

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

Page 103: Oracle Forms to APEX conversion tool

What’s missing?

• Export / Backup• Ability to pre-build Apex validations during conversion

– PL/SQL Placeholders• Define item type/order• Conversion of LOVs, Alerts• Apex Views

– Annotations– Aggregation (combined listings)

• SQL Developer Integration• Search facility (not IR)• Bulk change on all object types (not application applicability)• XML Metadata

– Report triggers– Certain form properties (eg. WHERE clause)– Menu roles– Non-Database item recognition– ?

Page 104: Oracle Forms to APEX conversion tool

Pros Cons

Annotations

Potential

Added Value

Missing Components

Annotations

Browse Logic

Page 105: Oracle Forms to APEX conversion tool

So what’s next?

Page 106: Oracle Forms to APEX conversion tool
Page 107: Oracle Forms to APEX conversion tool

Conversion Alternatives

• Integration– Wilfred van der Deijl– Visual Integration of Forms & Apex– Two way communication– Phased approach

Page 108: Oracle Forms to APEX conversion tool

Conversion Alternatives

• Manual labour – do it right– Storyboards – Balsamiq / MockupScreens / Sketchflow

http://apex-smb.blogspot.com/2009/10/designing-apex-applications-ui-mockups.html

Page 109: Oracle Forms to APEX conversion tool

Conversion Alternatives

• Mixture– Using the annotation functionality– Re-use logic where possible

Page 110: Oracle Forms to APEX conversion tool

Underlying Data

-- Create view of annotationscreate 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 mwhere 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');

Page 111: Oracle Forms to APEX conversion tool

Annotation Summary

Page 112: Oracle Forms to APEX conversion tool

Annotation Priority

Page 113: Oracle Forms to APEX conversion tool

Strategies Forms v Apex v ADF

Differences Stateful v Stateless

Considerations Right Decision

Process Simple

Converter Review Poor

What next?

Today’s Summary

Page 114: Oracle Forms to APEX conversion tool

References

• David Peake– http://www.oracle.com/technology/obe/apex32/apex32frmmigr.htm– http://www.oracle.com/technology/oramag/oracle/09-may/o39browser.html

• Grant Ronald– http://groundside.com/blog/GrantRonald.php?title=migrate_oracle_forms_to_ape

x• Oracle Documentation

– http://www.oracle.com/technology/products/database/application_express/html/doc.html– http://www.oracle.com/technology/products/forms/pdf/10g/ToolsSOD.pdf– http://www.oracle.com/technology/products/database/application_express/apex_sod.html

• Douwe Pieter van den Bos– http://www.packtpub.com/oracle-application-express-forms-converter/book

• Marc Sewtz– http://www.technicalconferencesolutions.com/pls/caat/caat_presenters_upd.display_document?

conference_id=39&abstract_id=56&document_id=78793

• John Edward Scott and Scott Spendolini– http://www.amazon.com/Oracle-Application-Express-Experts-Voice/dp/159059827X

• OraTransplant– http://www.oratransplant.nl/oracle-forms-as-web-component/

• Roel Hartman– http://roelhartman.blogspot.com/2009/10/integration-of-forms-and-apex-calling.h

tml

Page 115: Oracle Forms to APEX conversion tool

SAGE Computing ServicesCustomised Oracle Training Workshops and

Consulting

Questions and Answers?

Presentations are available from our website:http://www.sagecomputing.com.au

[email protected]@sagecomputing.com.auhttp://triangle-circle-square.blogspot.com

Page 116: Oracle Forms to APEX conversion tool

Register for the Next

Application Express V3.2 course:

23rd ,25th and 26th NovemberAdvanced 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

[email protected]

SAGE Computing Services(Unrepentant Marketing)