Ispirer Website Ispirer Capabilities: Oracle Forms Conversion Free Trial

How to Collect Metrics on Oracle Forms/Reports/Menus/Libraries

Ispirer Toolkit automatically converts Oracle Forms to .NET or Java, considering the specifics of these languages.


First, extract all Oracle objects from BINARY format to XML:

  • Oracle Forms (*.fmb) → *.xml - form module files
  • Oracle Menus (*.mmb) → *.xml - menu module files
  • Oracle Reports (*.rdf) → *.xml - reports files
  • Oracle Libraries (*.pll)→ *.pld - PL/SQL libraries

To convert binary source files to the xml format you need to run the following scripts on the PC where Oracle is installed:

1. Forms:

full_path_to_bin\frmf2xml.bat OVERWRITE=YES C:\Forms\*.fmb

2. Menus:

full_path_to_bin\frmf2xml.bat OVERWRITE=YES C:\Menus\*.mmb

3. Object libraries:

full_path_to_bin\frmf2xml.bat OVERWRITE=YES C:\ObjectLibrary\*.olb

4. Reports:

for %%f in (C:\Reports\*.rdf) do full_path_to_bin\rwconverter.exe stype=rdffile source="%%f" dest="%%f.xml" dtype=xmlfile overwrite=yes batch=yes

Note: When you convert a report that has an attached library, convert the .pll files attached to the report before converting the .rdf/.rex file.

5. Libraries:

for %%f in (c:\PLL\*.pll) do full_path_to_bin\rwconverter.exe stype=pllfile source="%%f" dest="%%f.pld" dtype=pldfile overwrite=yes batch=yes

After all XML have been extracted, you can count the number of lines of code for every object type. You can use Ispirer Assessment Studio to automatically generate a row count report. Download a free Ispirer Assessment Toolkit for your migration project.

Like most GUI applications, an Oracle Forms application is composed of two parts: the application logic and the user interface. An understanding of the basic concepts and components that make up a form is important to planning an application migration. The form view is used to access the business logic and the data access.

When converted to Java focuses on the preservation of the logic of the sources application; names and the architecture of the files, the variables types.

An application can be built using multiple forms, menus, and library modules.

Object Library

The object-oriented programming concept of reusing code is implemented in Oracle Forms by the object library and PL/SQL library modules. The Object library contains reusable objects and the PL/SQL library contains reusable code.

The Object library is a collection of forms objects that can be used in other form, menu, or library modules. The Object Library is used to store, maintain, and distribute standard forms objects, which can then be reused across the entire application.

The object-oriented features of Java allow you to model library object inheritance closely to maintain the same structure.

PL/SQL Library

The PL/SQL library contains reusable code invoked by other form, menu, or library modules. The code, also called a program unit, can be user-named functions, procedures, or packages. They may contain purely business logic.

Form Module

A form (or form module) is the main component that anchors an application and provides the necessary code to interact with the data source and the user interface. The underlying database data is reflected in multiple items, including fields, check boxes, and radio groups. A form is logically organized into blocks.


A block is a container for a group of related items such as text boxes, lists, and buttons. The block itself does not have a visual representation.

Oracle Forms Builder consists of two main types of blocks. These are:

  1. Data blocks
  2. Control blocks

These two kinds of blocks are very different from each other. The data block serves as a bridge to the underlying data and provides an abstraction for how the data is reached. The control blocks are more like programming units that can organize controls into logical groups forming part of the same user interface navigation cycle.

Data Block

A data block can be associated with a specific database table (or a view), a stored procedure, a FROM clause query, or a transactional triggers. By default, the association between a data block and the database allows for automatic access and manipulation of data in the database. By capturing a query on a table, a block can also be designed to show one or more records at a time.

Control Block

The second type of block is the control block. The items in a control block are not associated with the database, and its items do not relate to any columns within any database table. The items in a control block are called control items.

Program Units

Program units are part of forms modules and they contain named procedures, functions, or packages. The program units are similar to the program units created in the libraries but are local to the form in which they are created. They are stored and executed on the client with any embedded SQL passed to the database for processing.


The trigger object is a PL/SQL block executed on an event. Triggers can be owned by the form module, a data block, or an item, depending upon their scope. When a trigger is activated, it executes the code it contains. Each trigger’s name defines what event will fire it.

Windows and Canvases

Windows and canvases form the basis for the visual presentation of the form. The visual model is built by looking at the windows and canvases through Form Builder. Oracle Forms has two types of windows: document windows (the main application areas) and dialog windows (messages and other actions).The end user interacts with the application using these windows. In addition to incorporating all the functionality in the original application, it is also important to maintain the general look and feel of the application. The document window is composed of work areas called canvases where visual objects such as graphics and items are arranged. Several canvases can be located in a form module. All canvases may appear in a single window (by default) or spread across multiple windows (to view simultaneously).


A frame is a visual object found on a canvas. Frames are used to arrange items in terms of blocks. The frame defines visual characteristics such as margins, offsets, and distances between items.


Items are interface objects that present the data values to the users. Items also enable the user to interact with the form. The type of interaction varies according to the type of item. Text items allow for text to be displayed and manipulated. Buttons are interface items that can display list of values, commit data in a form, query the database, or invoke PL/SQL blocks.

If you have any additional questions, please contact us: