Oracle Forms to ADF Mobile: The Ultimate Modernization Challenge

The world has gone mobile.
So why haven’t our Oracle Forms system caught up?

In our constant effort to show how we can achieve Oracle Forms modernization without re-development we decided to rise to the ultimate challenge and show how we can run Oracle Forms from the newly released ADF Mobile.

In our demo we decided to use the traditional Oracle Forms Summit application as it was developed by Oracle as “go to” demo application  to demonstrate Forms functionality, version upgrades and even Forms redevelopment  as ADF. In our demo we show the “insert order”  business process of the Oracle Forms Summit application running with an ADF Mobile UI on an iPhone using OraPlayer.

The final product can be seen here:

We will be presenting the full process in detail in a FREE webinar hosted by ODTUG called Take Your Oracle Forms on the Road Using ADF Mobile,  I will be presenting alongside Denis Tyrell, Oracle Director and overall ADF Mobile guru.  Register for FREE here

In creating this demo we did not do any redevelopment of the Forms system functionality. We are running the existing Oracle Forms business process on the Forms server using OraPlayer from ADF Mobile. Although it sounds challenging this was achieved in 4 simple steps:

Step 1: Define the business process you want to run on a mobile 

Oracle Forms screens are mainly suited for massive data entry and are jam-packed of items and not easily translatable to mobile screens. It was not our intention to replicate the entire Forms system with our solution. This would be both impractical and  in most cases unnecessary since applications running on mobile platforms are usually only a subset of the full system. It is therefore critical, as the first step, that we determined the specific system processes we wished to run on the mobile.  This included:

1) Understanding the business process we want to translate to the small screen. In our demo we created a  flowchart of the business process to assist us (see below)

2) Selecting what data we needed to get from the user in order to run the business process. Including identifying all fields necessary to have on our new mobile UI in order to insert a new order.

3) Identifying the expected results of the application. Including all output data and messages we must receive from the Forms system to understand if the process was run successfully. As well as error messages to explain if and why the process has failed.

The full business process for the “Insert Order Process” can be seen in this flow chart:

Mobile_scenario

The process can be summed up as follows:

1.  Login to the System
2.  Insert a new order to an existing customer ID.
3.  If the customer exists, and order was inserted successfully then return the order ID.
4.  If the customer does not exist, then create a new customer and then insert the order. If successful return the order ID.
5.  If any steps of the process fails return the Forms error messages and text.

Step 2: Record and deploy the Forms business processes using OraPlayer

Once the business process was selected in step 1, we recorded the scenario as it was performed in the Oracle Forms system using the OraPlayer Recording Toolbar (similar to recording a macro). Any items that were selected, entered or manipulated in our recording will be available as fields /actions  in the new ADF Mobile application.

We can see an example of  the recording process in this demo where we recorded the “Creating a new order for existing customer scenario“ for our demo here 

Once the recording was completed and deployed, a Java API to run the Forms process was created automatically using the OraPlayer Web Wizard.

Step 3: In Jdeveloper create a new ADF Mobile project with ADF DataControls and AMX Pages (the New UI)

Once we had our Oracle Forms scenario ready, we began to create the Mobile front end of our application. In Jdeveloper, we first created a new ADF Mobile project. We then created the ADF Datacontrol based on the OraPlayer Java API (automatically generated in step 2)  to give us the basis for binding the ADF Mobile page items to the Forms system items.  This was easily done with the wizard based development in Jdeveloper.

Screen Shot 2013-01-07 at 7.57.34 PM

We then used the visual editor of Jdeveloper to create the ADF Mobile AMX pages. In our demo we created 3 insert pages: Login, insert order and create customer as well as 3 results pages : 2 for error handling and the other for successful results of the process.

The beauty of ADF Mobile is, that we develop the pages once using the drag and drop and WYSIWYG editing features, and we can deploy them on any mobile platform. Upon deployment it is rendered as a native application on whatever platform we chose. So we can benefit from  the “design once deploy to many environments”  feature of ADF Mobile that Oracle promises.

Step 4: Create task flow of the pages and add validation / navigation code

Finally after we created the necessary pages, we designed the navigation flow between the pages and added the validations that should occur upon success or failure of events on the page. In our demo the taskflow is critical since we perform navigation based on analyzing the responses we get from the Forms server (such as error messages like frm-xxxx or ora-xxx) and only then navigate to the correct page.

You can see our taskflow diagram here:

tasks

In summary, by using OraPlayer in conjunction with  the powerful ADF Mobile framework, we are able to develop modernized mobile applications without redevelopment.

Using this method, we can create mobile applications in no time for a multitude of use cases and complex business processes found in our existing Oracle Forms systems. Also, with OraPlayer’s ability to retrieve all Forms messages, we can ensure that the new mobile application can behave just like the current Forms systems does.

We will be presenting the full process in detail in a FREE webinar hosted by ODTUG called Take Your Oracle Forms on the Road Using ADF Mobile,  I will be presenting alongside Denis Tyrell, Oracle Director and overall ADF Mobile guru. We will have all new demos with the latest ADF Mobile bells and whistles such as maps and gauges to show off.

To receive more information email us with this form: 

Why does our system run so slow? FREE webinar on Improving Oracle Forms Performance

More and more as customer start doing upgrades to 11g. I am being overrun with customer complaints about the performance of their forms systems. Funny thing is the minute I get to the customer, I run their existing systems 10g systems and show them that it is actually a few seconds slower on every action than the 11g version.
I guess human nature is such that we assume that when a new more modern version of a tool comes out it must be soooooo much better than the old version that it fixes our application bugs and system performance as well.
Well all these questions led me to dust off my Oracle Forms performance tips presentation and arrange a FREE webinarJoin me on August 9 2:00 pm – 2:30 pm EST when I will present my tips and tricks to improve Oracle Forms system performance.
I will first explain how forms on the web works so we can better understand how our development and coding techniques can impact forms performance and  I will then discuss how we can improve system performance including:
  • Improving PERCEIVED performance
  • Minimizing Startup time
  • Minimizing client resource requirements
  • Minimizing Oracle Forms Server resource requirements
  • Use the network as little as possible – Minimize round trips to server
Hope to see you all there. Even if you can not make it those who register can get a copy of my slides for the webinar.

Future So Bright I Got to Wear Shades – Thoughts on Future of Forms Conference – May 15

Yesterday I presented at the Future of Oracle Forms event sponsored by AMIS in the Netherlands.

I must say it was literally one of the most impressive gatherings of Oracle Forms minds I ever saw.  All the speakers themselves could fill a room but to have Lucas Jellma, Grant Ronald, Steven Davelaar,  Francois Degrelle etc.. all together in the same conference was amazing. Its no wonder there were 13 HOURS of content.  It was a modernization marathon.

The format was very original (the brain child of Lucas Jellma) -He gave each speaker a half hour to present, sort of a business card about their solution, then the attendants needed to choose 2 solutions to learn more about in a later session of 45 minutes. Finally into the wee hours of the night people were given the option of doing a deep dive Hands On on the solution of their choice. It was like technology speed dating.

The solutions presented covered 4 main areas:

1) Forms migration – Jheadstart, Pitss

2) Forms to new platforms / mobile – OraPlayer, YoForms

3) Modernizing forms – Look and Feel project and Forms PJC and Java Beans, AMIS consulting

4) Integration of forms in hybrid environments – OraPlayer, OraFormsFaces

I thought it would be helpful to do a sort of flowchart of the solutions and the modernization challenges they help with.

I think this is the best way to sum up the day.

I also wanted to thank AMIS for an incredible hosting job. It’s not everyday you see such a perfectly organized event. It’s not an easy feat to navigate almost 100 people around the offices and provide them with breakfast, lunch ,snacks, dinner and drinks. They spoiled us :)

For those of you who attended, let me know what you thought!

Mia

Lessons Learned From Upgrading to Oracle Forms 11g R2 on WebLogic !

You may have heard the rumors about upgrading to Forms 11g R2. How all you need is a quick recompile of your 10g forms. I of course was skeptical since I’ve heard rumors like this before… “It’s just a minor upgrade”,  ”Just run the migration wizard and you’re done”  :)

This time I can happily report that it is TRUE.

Last week we successfully upgraded about 700 forms to 11g R2 in about a WEEK including all installs and infrastructure configuring.

I installed Weblogic 10.1.3.5 and Forms 11g R2 standalone (Installs to download here) on a VM machine of Windows 2008 R2 – 64 bit (See post for how to do the installation) and recompiled our 10.1.2.3 Forms application. I completed all installations, configuration of files, registry editing, signing of the jar files, HEBREW SUPPORT configuration :) and upgraded the 10g application. The whole deal took about 1.5 days and only because I ran into a silly bug. (which I tell you how to avoid in this post)

In general the only issues we ran into while compiling and upgrading the Forms were “nit picky”. 10g did not really care if we had a piece of code that was not supported on the web or small inconsistencies in the code . Now forms 11g gets aggressive. Continue reading

Bug of the week: Error with Font Mapping Hebrew in JRE 1.6

My annoying bug of the week came when I tried to fix the font mapping of our Forms 11g upgraded system. During the 11g upgrade, we moved from Jnitiator to JRE and since we are a Hebrew application all the font switched to David. I did everything according to the letter – mapfonts = yes change the fonts in the fontconfig.properties.src but it seemed no matter what I did the font in JRE 1.6 was David instead of the font assigned in the application or in the registry.dat file.

UNTIL I found this Oracle support note
After Upgrading to Either JRE 1.5.0_XX or 1.6.0_XX the Default Font for Hebrew Characters has Changed from “Arial” to “David” [ID 972975.1]

The work around is quite simple but a bit annoying:

1) Copy fontconfig.properties.src and rename to fontconfig.properties Continue reading

Oracle Forms – The application’s digital signature has an error – Your forms application is Fozen

The applications digital signature has an error

Alternate Titles:

Oracle Forms gets stuck with java certificate warning popup window

Or

Forms hangs with java digital signature certificate error

Well we have reached the weekend and time for my annoying bug of the week. I’m sure most forms consultants out there have already run into this one by now.  There have been many solutions floating around (copying dll, installing patches, upgrading the jdk) But I thought I’d write a post with a pretty simple solution and with all possible keywords that people will use to search the error since my customers had trouble finding the solution on google. Continue reading

Oracle Forms is Alive and Kicking! Oracle Forms Modernization Day

This past Tuesday, I had the privilege of running the Oracle Forms user group conference. It all started when Grant Ronald (Oracle Forms and JDeveloper product manager) and I got to talking at Open World 2011. We were saying how Oracle Forms developers are a huge community but  the forgotten people. Every Oracle conference of recent years has been filled with sessions on ADF, SOA, APEX, BPEL and all other 3 letter curse words (OOPS  I mean buzz words). But for the past few years Forms has dropped off the “session titles” map.

Well we decided then and there to make a conference specifically geared to the Oracle Forms developers community. With the help of Eyal Shani, CTO of Oracle Israel and Ami Aharonovitch, head of the Israel Oracle User Group (our heroes), we set out to prove that the Forms development community is a force to be reckoned with.

And rest assured, there were plenty of nay sayers:  “No one still develops in forms”,  “You won’t get more than 50 people” – Sound familiar? Well, this Tuesday, I got to say those three precious words: “TOLD YOU SO! ” With nearly 200  developers who attended, the event was a rousing success. Continue reading

Fixing running Oracle Reports from a menu item in Forms during upgrade

You may find that when you upgrade your forms application from client server. The reports you have that are run from the menu bar have stopped working. This is due to the change from using RUN_PRODUCT to using the RUN_REPORT_OBJECT() built-in.

In order to use the RUN_REPORT_OBJECT() built-in you need to have a report object in the form from which you want to call the report. If you need to add a report object across the board you can checkout some past posts for how to do form manipulations in patch either using JDAPI or Form to XML functionality. Full details of the solution is found in the below document.

 



More code snippets: JDAPI: change Font for all Items, Prompts, Boilerplates, Frames

Its me again with more code samples to help batch upgrade for your application.

If my previous posts of how to convert the system to XML pages to then do manipulations in notepad was not for you. This is a different route to solve the same problems. Here is sample code of a java api that can manipulate forms in batch and change the font for all items.
NOTE:219168.1 – How To Change Fonts For All Items in a Form Module using JDAPI
Metalink is full of these little gems if you know where to look.
Don’t forget to follow us here and via Twitter (right here – top right)
We’ve got many more code snippets & tricks coming up!

Getting the Browser Window under control when separateFrame=True

To follow up with my post about closing the parent browser while running forms on the web I will share a few more tricks on how to control the browser window when running forms in separate frame mode.
These notes all basically use javascript to manipulate or minimize the effect the browser window has on the user.Attached is a great script on how to permanently minimize the browser window using javascipt and the below note can be found on Metalink:

Note 259786.1 Using Java To Manipulate The External Forms Frame For Application Running In separateFrame Mode

Minimize_Window.zip