Looking smart is easy when you havethe right info.


A blog by Hafed Benteftifa.

Migration to Oracle Forms 10g- Day one


Posted by Hafed Benteftifa | Posted in Forms, oracle | Posted on 12-07-2008

We are finally starting the migration of our main application (around 1200 modules) this July 14. Our main tool is MouliForms which I presented in an earlier post.
I spent the last couple of days ironing out the interface as well as fixing the developers machines (setting up the JRE, classpath, forms_path).
Preliminary tests on some modules are very encouraging but we need to go for a full run in order to see how MouliForms performs on our applications.

Generating FormsDoc and FMB module compare functionality


Posted by Hafed Benteftifa | Posted in Forms, oracle | Posted on 14-06-2008

For the last two weeks, I have been working on ironing out the two functionalities in MouliForms that I think are very useful for an Oracle forms developer:

  • Generating documentation on the Forms modules that make up an application. This is similar to Javadoc for those that are familiar with JAVA. In this case, I choose to generate an HTML page for each module. This will give the liste of Program Units (procedures, function and packages) linked thru an index page.
  • FMB module compare: In most cases, we have a before and after version for the same module and we want to have an exact picture of what has changed as far as the objects are concerned.
    While the basic functionality is there (changes are reflected in Red), I am still having some troubles with object properties. It seems to me that the developers at Oracle did not lay out a proper mechanisms for object-property categorization.
    I managed to rewrite the whole property palette (with the BEFORE and AFTER columns) but there are still some unwanted properties that do appear at the wrong place-object.
  • Oracle forms migration from 6i to 10g- Introducing MouliForms


    Posted by Hafed Benteftifa | Posted in Forms, oracle | Posted on 24-05-2008

    I am curently involved in a major migration project with around 1000 forms and 500 reports. Built using Designer 6i and maintained thru the years using forms builder 6i, it has been decided to migrate the whole application to oracle 10g.

    During the last month or so, I wrote a JAVA application that does the migration based on the JDAPI package. In the coming days, I will present some of the stuff that I went thru and how I managed to build MOULIFORMS.

    Here are the current features:
    -Migration of forms from 6i to 10g. Close to 90% automated migration.
    -All the new features implemented with WEBUTIL are either flagged or switched at the code level.
    -Search and replace capability: I used the JAVA Regex package.
    -Batch mode: compile, replace, migration.
    -Report calls modified at the code level (RUN_PRODUCT to RUN_REPORT_OBJECT).
    -Forms compare: before and after in a tree like fashion. Useful to see what has changed.
    -Full Reports for outputs: HTML, CSV, PDF, Excel summary reports.
    -Use of Log4j for various developer level reports (debugging-info etc.)
    -Full JAVA Swing interface with switchable French-English interface.

    There are still some bugs mainly related to the interface but Mouliforms does the job and I am really impressed by the JDAPI package.

    I don’t know whether I should release Mouliforms as open-source. I already spent close to 150 hours designing it.

    Next step: I will post some screenshots of mouliforms in action.

    Sharing documents between Notes databases


    Posted by Hafed Benteftifa | Posted in Other tools | Posted on 17-04-2008

    With Lotus Notes, you can be very productive if you know how to store your information. In my case, I have a library database (with a number of categories) which always open. I use it to jot down any information I may encounter during my workday.

    Recently, I came across on a very smart Notes application Share documents
    on Alan Lepofsky Notes blog. Basically, it will let you send any DB link from notes databases to a designated database.

    In my case, I am now using it to send important emails, the ones that I may otherwise tag, to this library database.

    It is very efficient and will really prove useful.

    Blog was down for two days


    Posted by Hafed Benteftifa | Posted in personal | Posted on 17-04-2008

    The website got hacked during the week-end. Some silly morrocan jerks deleted the files from the server. I had to restore from backup.

    Really don’t understand the motives for doing this (apart for phishing-keylogging etc…) but this jerk can’t even use HTML.

    Anyway, just wasted a couple of hours for nothing.

    UTL_SMTP package for sending emails


    Posted by Hafed Benteftifa | Posted in oracle | Posted on 10-03-2008

    On the otn forum, I have seen a number of posts about users trying to send emails from the database. For those that don’t know it yet, there is the utl_smtp package that can be used for this purpose.

    Setup is very easy and usage is quite straightforward. Either use a procedure or a function and make use of the basic commands (smtp connection, message setup, message sending and smtp deconnect). If you need to send UTF characters, you will have to use the raw command.

    For further info, check:




    JDeveloper 11g TP3


    Posted by Hafed Benteftifa | Posted in oracle | Posted on 10-03-2008

    Here I am again trying to make sense of JDeveloper for an upcoming project. This is the third attempt at using Jdeveloper in a real project since 2003.

    However, it seems to me like Jdeveloper is in a perpetual state of change and each version (with its own strange numbering system) brings its lot of deprecated features and new ones that no one seem to know what to make of.

    Read the rest of this entry »

    Oracle Forms Technical notes


    Posted by Hafed Benteftifa | Posted in Forms, oracle | Posted on 15-09-2007

    I have put together some technical notes related to Oracle Forms 10g, 9i.

    While they are in French, they can still be useful and understood since they contain screenshots.

    These notes deal with alerts, object libraries, program unit, List items and some other basic stuff that students keep asking.

    I will update as soon as I get the other remaining notes together.
    How to eliminate the NULL value when displaying a Poplist

    How to resolve the button that selected when the user closes a dialog
    How to remove the blank lines when designing Lists in Form
    How many alerts should we define in a Forms project ?
    How to detect the page that was selected when switching pages in a tabbed canevas ?
    How to set the PATH variable in order to avoid using the full path in your Modules ?
    How to create and use a program unit in a Forms module ?
    How to create and use an object library in a Forms application ?

    Oracle Forms – Present & Future


    Posted by Hafed Benteftifa | Posted in Forms, oracle | Posted on 14-08-2007

    Of the developer tools that Oracle has delivered over the years, Forms is perhaps the most mature tool of all and has been used by thousands of developers all over the world.

    However, the current situation faced by many Forms developers is quite problematic. One of the main reasons is that Oracle has adopted JDeveloper as its main tool for the Fusion strategy and one of the consequences is that the development of the Oracle Business suite has been switched from Forms to JDeveloper.

    Read the rest of this entry »

    Update on the Openbravo ERP project


    Posted by Hafed Benteftifa | Posted in Other tools | Posted on 04-04-2007

    Unfortunately, the ERP project that was scheduled to be rolled out in a major institution in Algeria was cancelled at the last minute (2 days before the roll out). No reasons were given for the cancellation but from the news I got, there was a shakeup at the highest level.

    This is not unusual with Algerian companies as most of them work without any planning and decisions are most of the time taken without any rational thoughts.

    While I knew this could happen when I got involved with the project, I did not expect that it could end this way. There were many things I learned, both on a technical and human level. The most important one is that I was able to customize Openbravo for the Algerian market. I was able to prepare a number of tutorials related to the various modules.

    The Openbravo team cited those presentations on their blog (see www.openbravo.com).

    Unfortunately and because of other commitments, I can not continue working on Openbravo for the time being.

    If there is another interest with this excellent ERP, I will gladly carry on.