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

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:

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

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

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

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:

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

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.

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

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:

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

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. 


  1. Nick Alevetsovitis August 5, 2009
  2. DJ Roberts February 16, 2007
  3. Edward July 14, 2006
  4. Lucas Jellema July 7, 2006
  5. Lucas Jellema June 21, 2006
  6. Marco Gralike June 21, 2006