Why you need a bugtracking system during an oracle Forms migration.


Posted by Hafed Benteftifa | Posted in Forms, oracle | Posted on 02-08-2008

Any software under development should have at least two essential systems, namely a source control system and a bugtacking system.

When we planned our migration, we did include a source control based on subversion but a bugtracking system was really not thought of. While we planned on using MouliForms as our migration tool, we did not envision that we also needed to track bugs within MouliForms and our application as well.

Read the rest of this entry »

Oracle reports 10g – local printing problems


Posted by Hafed Benteftifa | Posted in oracle | Posted on 30-07-2008

In the course of adapting our reports and submission forms to 10g, some of our users asked for a specific request. In version 6 of our application, users can either request a screen preview or print directly to the local printer.

In 10g, the local feature is lost because the processing is now done in the middle-tier. There are a number of alternatives, each having its own advantages and drawbacks.

Read the rest of this entry »

Week2 – Migrating a mission-critical Oracle Forms 6 application


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

Here we are at the end of the second week in the migration of a mission-critical Oracle Forms 6 application. The main points we dealt with are:

  • AIX file transfert and compile processes
  • LOV visual appearance (differences between 6 and 10g)
  • Report rdf structure search in a batch mode from a keyword-based file

Read the rest of this entry »

Day 5 of the Forms migration


Posted by Hafed Benteftifa | Posted in oracle | Posted on 19-07-2008

One of our developers raised the question about finding specific strings within our Reports. For example, we might have to check whether a query has schema name used in building up the query. That can be a problem if we need to move the tables to another container (this will break the query since the schema name reference is no longer valid).

So we might be looking at searching strings such as: INVENTORY. or RESOURCES. etc…

But since we have more than 500 reports, it was suggested that this should be done in a batch manner. Given that Oracle Reports does not have an API similar to JDAPI for Oracle Forms, I looked at another option suggested by others (AMIS among others). This one involves converting the report from rdf format to XML, parse the DOM model and do some regexing (search and replace) and then convert back to rdf.

So I whipped up a small JAVA class to MouliForms in order to check the validity of this approach on a number of reports stored in a temp folder. It did the job as expected but I need to do some additional testing in week 2.

But as it stands, things are looking good at the end of week 1.

Day 3 of the migration from Forms 6 to Forms 10g


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

Now that all the developers workstations are setup, we have started putting MouliForms through its paces.
We already started seeing some unexpected results. First, some items do have their prompts in non-standard fonts such as Arial Narrow. In this case, I added some search and replace rules for font name and size. Whenever one is found matching these fonts, we do replace them with Arial. In the case of Arial Narrow size 12, the best match was chosen to be Arial 10.

Read the rest of this entry »

Migration Steps Oracle Forms 6i-10g and MouliForms


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

Here is the MouliForms-Oracle Forms 6-10g presentation related to the steps that will be followed when doing the migration from Oracle Forms 6i to 10g.
I also included some screenshots from MouliForms. There are also three flash presentations (made with Wink) that also show the interface, conversion steps and webutil module adaptation using MouliForms. These presentations are available to those who request it.
Please bear in mind that all four are in French but I plan to translate them to English when I have some free time to spare.

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.

    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: