Oracle Forms


Oracle Forms is a software product for creating screens that interact with an Oracle database. It has an IDE including an object navigator, property sheet and code editor that uses PL/SQL. It was originally developed to run server-side in character mode terminal sessions. It was ported to other platforms, including Windows, to function in a client–server environment. Later versions were ported to Java where it runs in a Java EE container and can integrate with Java and web services.
The primary focus of Forms is to create data entry systems that access an Oracle database.

How it works

Oracle Forms accesses the Oracle database and generates a screen that presents the data. The source form is compiled into a platform-specific "executable", that is run by the forms runtime module. The form is used to view and edit data in database-driven applications. Various GUI elements, such as buttons, menus, scrollbars, and graphics can be placed on the form. Source code may also be placed in library files which are compiled into library executables used at runtime.
The environment supplies built-in record creation, query, and update modes, each with its own default data manipulations. This minimizes the need to program common and tedious operations, such as creating dynamic SQL, sensing changed fields, and locking rows.
As is normal with event driven interfaces, the software implements event-handling functions called triggers which are automatically invoked at critical steps in the processing of records, the receipt of keyboard strokes, and the receipt of mouse movements. Different triggers may be called before, during, and after each critical step.
Each trigger function is initially a stub, containing a default action or nothing. Programming Oracle Forms therefore generally consists of modifying the contents of these triggers in order to alter the default behavior. Some triggers, if provided by the programmer, replace the default action while others augment it.
As a result of this strategy, it is possible to create a number of default form layouts which possess complete database functionality yet contain no programmer-written code at all.

History

Oracle Forms is sold and released separately from the Oracle Database. However, major releases of an Oracle database usually result in a new major version of Oracle Forms to support new features in the database.

Original Version

Oracle Forms started as Interactive Application Facility , which had two main components: the compiler and the runtime interpreter. Released with Oracle Database version 2, IAF provided a character mode interface to allow users to enter and query data from an Oracle database.
It was renamed to FastForms with Oracle Database version 4 and added an additional tool to help generate a default form to edit with IAG, the form editor.
It was renamed a third time to SQL*Forms version 2 along with the Oracle 5 database version.

Forms 2.x

Forms 2.0 did not have a form editor with a screen painter so forms were maintained by editing the text based *.INP file
Forms 2.3 was a major improvement as it added a screen painter. This release was character-based and the development and runtime was typically in a terminal. The source file was an *.INP ASCII file and was edited using the screen painter, however the file was an ASCII file and editing this file directly in a text editor was a common practise due to the limitations of the form editor.
This version of Forms did not include the PL/SQL language and instead it used its own custom language based on trigger steps. The language was more primitive than the PL/SQL language that was available in SQL*Plus. The limited language was augmented by user exits that compiled language code linked to the binary of the Oracle-provided run-time.
Forms 2.3 was used as the basis for the Oracle Financials accounting package. As a result, 2.3 remained in use long after Forms 3 and 4 became available in order to support customer forms that were created to integrate with Oracle Financials.

Forms 3.x

Oracle Forms 3 was character-based, and by using PL/SQL was the first real version of Forms. All subsequent versions are a development of this version. It could run under X but did not support any X interface-specific features such as checkboxes. The source file was an *.INP ASCII file. The IDE was vastly improved from 2.3 which dramatically decreased the need to edit the INP file directly, though this was still a common practice. Forms 3 automatically generated triggers and code to support some database constraints. Constraints could be defined, but not d in the Oracle 6 database at this time, so Oracle used Forms 3 to claim support for enforcing constraints. There was a "GUI" version of Forms 3 which could be run in environments such as X Window, but not Microsoft Windows. This had no new trigger types, which made it difficult to attach PL/SQL to GUI events such as mouse movements.

Forms 4.0

Oracle Forms version 4.0 was the first "true" GUI based version of the product. A character-based runtime was still available for certain customers on request. The arrival of Microsoft Windows 3 forced Oracle to release this GUI version of Forms for commercial reasons. Forms 4.0 accompanied Oracle version 6 with support for Microsoft Windows and X Window. This version was notoriously buggy and introduced an IDE that was unpopular with developers. The 4.0 source files became binary and were named *.FMB. This version was not used by the Oracle Financials software suite.

Forms 4.5

Oracle Forms version 4.5 was really a major release rather than a "point release" of 4.0 despite its ".5" version number. It is believed to be named 4.5 in order to meet contractual obligations to support Forms 4 for a period of time for certain clients.
This version contained significant functional changes and a brand new IDE, replacing the unpopular IDE introduced in 4.0. It added GUI-based triggers, and provided a modern IDE with an object navigator, property sheets and code editor.

Forms 5.x

Oracle Forms version 5 accompanied Oracle version 7. It featured custom graphical modes tuned especially for each of the major systems, though its internal programmatic interface remained system-independent.

Forms 6.x

Forms 6 was released with Oracle 8.0 database and was rereleased as Forms 6i with Oracle 8i. This version was basically Forms 4.5 with some extra wizards and bug-fixes. It included the facility to run inside a web server. A Forms Server was supplied to solve the problem of adapting Oracle Forms to a three-tier, browser-based delivery, without incurring major changes in its programmatic interface. The complex, highly interactive form interface was provided by a Java applet which communicated directly with the Forms server. However the web version did not work very well over HTTP. A fix from Forms 9i was retrofitted to later versions of 6i to address this.
The naming and numbering system applied to Oracle Forms underwent several changes due to marketing factors, without altering the essential nature of the product. The ability to code in Java, as well as PL/SQL, was added in this period.

Forms 9.x

The version number jumped straight from 6 to 9 in order to keep the number the same as the Oracle database version released at a similar time.
Forms 9i included many bug fixes to 6i and was known as a good stable version. Support was removed for Windows client-server runtime, character-based interfaces and instead the three-tier, web browser based user interface is the only deployment option. The ability to import java classes means that it can act as a web service client.
Starting with this release the version number of Oracle Forms moving forward would keep in synch with the Oracle database version. As a result, version 8 as skipped and the version number jumped to 9
After this release, there were very few product changes made besides keeping the version number in sync with the Oracle database.

Forms 10.x

Forms 10g is actually Forms version 9.0.4, so is merely a rebadged Forms 9i.

Forms 11.x

Forms 11 included some new features, relying on Oracle AQ to allow it to interact with JMS.

Forms 12.x

Java Web Start allows users to run Oracle Forms applications without having a parent web browser. Although a browser may be used to initially obtain the application’s Java Web Start launcher file, the browser is not responsible for hosting the application and can be closed after the application has been started. JWS supports Internet Explorer, Firefox ESR, Chrome, Edge.

Version Summary

NameVersion DatabaseCharacter/GUIComments
IAF2CharacterNo IDE
FastForms+IAG4Character
SQL*Forms25CharacterNew IDE, No PL/SQL, User Exits, INP ASCII File, FRM Runtime File
SQL*Forms2.35CharacterRuntime improvements
SQL*Forms36CharacterMajor Rewrite, Improved IDE, PL/SQL included, X Support, Generate code to enforce constraints
Oracle Forms4.06-7GUI / CharacterMajor Rewrite, New IDE, FMB source binary file, FMX Runtime, optimized for Client-Server. New interface is slow, buggy and not popular with client base.
Oracle Forms4.57GUI / CharacterMajor Rewrite, New IDE based on Object Navigator & Property Sheets. Good release, fast, popular with client base. Oracle wanted customers to upgrade from v4 quickly because v4 was very buggy and Oracle was contracted to support v4 for a period of time for some large, important customers. So, Oracle named this release 4.5 which allowed Oracle to claim continued support for v4. This allowed some customers who were locked into v4 for the life of their project to upgrade from v4 to v4.5 by claiming that this was a patch release even though it was clearly a major release.
Oracle Forms57GUI / Character
Oracle Forms68GUI / CharacterForms Server / Web Forms introduced. Client-Server still available and used by most clients. Forms Server mode is slow, buggy and uses a lot of memory per session.
Oracle Forms6i8GUI / Character
Oracle Forms9i 9iGUIClient-Server runtime removed leaving Forms Server as only runtime option. Major Changes at the Server Level, more effective communication between user browser and the server.
Oracle Forms10g10gGUIThis is a Forms 9 release. Renamed externally to indicate support for 10g database. Menu-Help-About displays v9.0.4.0.19. Not forward compatible with 10gr2
Oracle Forms10gR210gR2GUIversion 10.1.2.0.2 - registry home key moved. Max NUMBER length reduced from 40 to 38
Oracle Forms11g11gGUIversion 11.1.1.X External Events, JavaScript
Oracle Forms11gR211gR2GUIversion 11.1.2.X Oracle Access Manager Integration, Performance and Monitoring, Real User Experience Interaction
Oracle Forms12c12cGUI

Each version of Oracle Forms can connect to numerous versions of the ORACLE database and is sold and released separately from the ORACLE Database. Oracle Forms is generally forward and backward compatible with the Oracle database - for example: Oracle Forms 9 can connect to at least Oracle 8,9, 10 and 11. The database versions listed here are the primary version that was available at the time of the Form release
Oracle products have historically followed their own release-numbering and naming conventions. This changed with Oracle RDBMS 9i release when Oracle Corporation started to standardize Oracle Forms to use the same major version number as the database. This explains the jump in Oracle Forms versions from 6i to 9i

Integration with Oracle Designer CASE Tool

is a CASE tool that was sold by Oracle. It was able to generate various software modules including Oracle Forms and Oracle Reports.

Current status

Whilst Oracle's preferred approach for new development is its Java based Oracle Application Development Framework or Oracle Application Express, Oracle's development tools statement of direction is quite clear in its commitment to continuing to support Oracle Forms and continue to develop and enhance it in the following areas:
An alternative to Oracle Application Development Framework is also Oracle Application Express. One of the advantages of Oracle Application Express is that it is more closely related to Forms as it also relies heavily on PL/SQL.