Great Presentation on migrating Oracle Forms to ADF Faces at ODTUG 2006

6

The title of this article is hugely misleading. Or somewhat at least. The presentation has to take place yet. And it is my own – so how great can it be? So why the noisiness?

It’s relieve mainly. After struggling with my demonstration for some time, I now have them running. And they are pretty cool, I am pleased to report in an fully objective, entirely unbiased manner.

This presentation is a bit special. First of all, it is not really my presentation at all. Steven (Davelaar) from Oracle was supposed to be here and deliver the talk. However, for various reasons he was not able to come and asked me to step in for him. Which I was only to happy to do: as long as people think Steven is presenting, I stand a good chance of happing a standing-room-only type of audience: a packed room! Of course when they realize it will only be me…

The second reason for it being special is....
the fact that during my last ODTUG while still working at Oracle, back in 2002 in Las Vegas, I was doing almost the exact same presentation. Back then I was migrating an Oracle Forms application to the then current stack of BC4J, Oracle 9iAS Framework for MVC and UIX whereas today it will be ADF BC and ADF Faces, but otherwise it is the same story. I am even going to reuse some of those slides from 2002. That conference is a good memory, as Steven and I worked very hard to produce a really good demo – hardly leaving the hotelroom for several days to get it working smoothly. And the ODTUG Conference Manager application that I created for that demonstration is the same one Steven sent me last week to present this year. Talk about deja vu!

The presentation starts with an overview of generating ADF Faces applications using JHeadstart. I demonstrate how some of the challenges of developing multi-page database backed applications can be overcome using JHeadstart’s meta-data definitions of the application and generator functionality. I will discuss the usage of generator templates in this 10.1.3 JHeadstart release as well as go into the desirability of 100% generation vs the first-cut approach where the outcome of the generation is taken as a stepping stone, a first step to use to further enhance manually.

In this first section I will demonstrate the AMIS Library System – a five table database schema for managing our books collection. Using JHeadstart I can create a ten page application with full Master-Detail and Lookup/List of Values capabilities in less than five minutes! It is not the UI Designer’s wet dream, but for prototyping purposes it is a fantastic first step. For all those dozens of screens in your application that you need for maintaining reference data, this will be all you need; so for those pages we are looking at several hours of time gained PER PAGE.

The second section is on the migration of Oracle Forms applications that have been generated using Oracle Designer into the new era of ADF BC and ADF Faces. Here I introduce a WebForms application that was generated using JHeadstart. I will show the design in Oracle Designer and then perform a live migration to the ADF toolstack.

The migration in detail

The application we want to migrate has been developed in Oracle Designer and generated out to WebForms. One of the key forms in the application looks like this:

 

The module definition in Designer can be reviewed in the Design Editor. The Data Display:

We have a module that allows Presenters to submit their presentations. They can provide details about the presentation and the presenters. The page is laid out as a Master Detail with two stacked item groups – Schedule and Administration. There are several lists of values: to select the topic track for the presentation, the room it is to be presented in and the presenters for it.

And the Display View:

 

During the demonstration, I will make a number of changes to the module definition – if anything to prove the live-ness of the demo. I will change a prompt, move an extra item to the item group, add an item in a lookup section and perhaps change a domain. I will even create a very simple new module.

Then it is time for the migration magic. I go into JDeveloper 10.1.2, create a new project, run the JHeadstart Designer Generator on it for the modules of the OCM application and save the generated application.

 

Then I will close down JDeveloper 10.1.2 and start up JDeveloper 10.1.3 (this switch is necessary since the JHeadstart Designer Generator is not yet available in the 10.1.3 Beta Release for JHeadstart). In JDeveloper 10.1.3 I will open the generatoed project, have it automatically migrated and run the JHeadstart Application Generator. This step will produce the ADF Faces pages that I crave for.

After this step I can run the application and receive the standing ovatation from an admiring audience. (it is 5:00 AM, I am still dreaming….). The application in action looks like this:

 

The migration missed out on one feature that was not yet supported in 10.1.2: the stacked item group, that is why Schedule and Administration are two regions above each other rather than on top of each other. In a post migration refinement I will correct that. I will also change the LOV definition for Presenters to have it return not only the Last Name and Id of the Presenter but the First Name as well. I will make some additional manual refinements to demonstrate how easy it is to go on developing an application that only five minutes ago was still an Oracle Forms application. 

Share.

About Author

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director for Fusion Middleware. Consultant, trainer and instructor on diverse areas including Oracle Database (SQL & PLSQL), Service Oriented Architecture, BPM, ADF, Java in various shapes and forms and many other things. Author of the Oracle Press book: Oracle SOA Suite 11g Handbook. Frequent presenter on conferences such as JavaOne, Oracle OpenWorld, ODTUG Kaleidoscope, Devoxx and OBUG. Presenter for Oracle University Celebrity specials.

6 Comments

  1. Very interesting article. A friend of mine introduced me to a migration tool that takes a different approach (www.release3.com).

    1) Moves Business Logic to the Database as packages.

    2) Allows Forms developers to use their existing PL/SQL skills to migrate

    3)Non Proprietory, Standards Based, Open Source Java (i.e. not ADF).

    He will be making a trial version of the tool available on his website in the next week or 2. Pretty cool roadmap (I’ll leave it to him to communicate that).

  2. There is a solution to migrate your Oracle forms and all of their functionality to the latest version of forms. The solution is called Pitss.Con and is offered by my company, Alliance Technology. It is an Oracle Forms migration tool that automates the migration/upgrade of Oracle forms. If you would like more information regarding this solution I would be glad to send you some documents, case studies, and customer references via email or have a short phone conversation. My email is robertsd@alliancetechnologies.net

    Send me an email and I will get you some information.

    Thanks,
    DJ

  3. Hello Lucas.

    Thanks for your great articles.

    I hope to have your help about one topic. We have a lot of Oracle Forms and Reports modules (around 300 programs in 6i). For technical rectrictions we implemented it in a typical Client – Server architecture, but the server side, Oracle RDB, doesn’t have any kind of store procedures.. the client side have all the logical.

    Now we have the oportunity to migrate the RDBMS from RDB to Oracle10G but what can we do with our forms?…. the IT Manager have the task to present a report about the cost-benefic, issues, tips, consideration, requierements, advantages and disadvantage to migrate all our components to JDeveloper.

    Regards,

    Edward