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.
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 standard tool. The product saw one more
name change before gaining its current moniker, called SQL*Forms version 2 with
the Oracle 5 database. Oracle Forms 2.3 was character-based,
and did not use PL/SQL. The source file was an *.INP ASCII file. This enabled
developers to commonly edit the INP file directly, although that editing method
was not supported by Oracle. This version used its own primitive and
unfriendly built-in language, augmented by user exits—compiled language code
linked to the binary of the Oracle-provided run-time.
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 enforced 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. 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.
Oracle Forms version 4.5 was really a major release rather than a "point
release" of 4.0 despite its ".5" version number. It contained significant
functional changes and a brand new IDE, replacing the unpopular IDE introduced
in 4.0. 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. It added GUI-based
triggers, and provided a modern IDE with an object navigator, property sheets and
code editor. Due to conflicting operational
paradigms, 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. It was quickly superseded by Forms 6, which was
released with Oracle 8.0 database and was rereleased as Forms 6i with Oracle
8i. This was basically Forms 4.5 with some extra wizards and bug-fixes. But it
also 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 7 was never release to the public and only existed
internally as Project Cherokee. Version 8 did not exist; This number was jumped
over in order to allow the Oracle Forms version number to match the database
version in v9. Forms 9i included many bug fixes to 6i and was a stable
version, but it did not include either client–server or character-based
interfaces, and three-tier, browser-based delivery is the only
deployment option. The ability to import java classes means that it can act as a
web service client. Forms 10g is actually Forms version
9.0.4, so is merely a rebadged forms 9i. Forms 11 includes some new features,
relying on Oracle AQ to allow it to interact with JMS.
! Version ! Database ! Character/GUI ! Comments |- | IAF | | 2 | Character | No
IDE |- | FastForms+IAG | | 4 | Character | |- | SQL*Forms | 2 | 5 | Character |
|- | SQL*Forms | 2.3 | 5 | Character | New IDE, No PL/SQL, User Exits, INP
ASCII File, FRM Runtime File |- | SQL*Forms | 3 | 6 | Character | Major
Rewrite, New IDE, PL/SQL, X Support, Generate code to enforce constraints |-
| Oracle Forms | 4.0 | 6-7 | GUI / Character | Major 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 Forms |
4.5 | 7 | GUI / Character | Major 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
Forms | 5 | 7 | GUI / Character | |- | Oracle Forms | 6 | 8 | GUI / Character |
Forms 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 Forms | 6i | 8 | GUI / Character | |- | Oracle Forms | 9i
| 9i | GUI | Client-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 Forms | 10g |
10g | GUI | This 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 Forms | 10gR2 | 10gR2 | GUI | version
10.1.2.0.2 - registry home key moved. Max NUMBER length reduced from 40 to 38
|- | Oracle Forms | 11g | 11g | GUI | version 11.1.1.X External Events,
JavaScript |- | Oracle Forms | 11gR2 | 11gR2 | GUI | version 11.1.2.X Oracle
Access Manager Integration, Performance and Monitoring, Real User Experience
Interaction |} (*1) 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 (*2) 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
Oracle Designer is a CASE tool that is sold by Oracle. It is able to generate
various software modules including Oracle Forms and Oracle Report
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:
Making the upgrade to the web and to new releases as smooth as possible
Allowing Forms and Reports applications to take full advantage of the
application server services and inter-operate with Java EE applications.
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. External links
Official Oracle Forms Home Statement of Direction
Oracle FORMS FAQ References