Oracle Forms
Encyclopedia
Oracle Forms is a software product for creating screens that interact with an Oracle database
Oracle database
The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....

. It has an IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 including an object navigator, property sheet and code editor that uses PL/SQL
PL/SQL
PL/SQL is Oracle Corporation's procedural extension language for SQL and the Oracle relational database...

. It was originally developed to run server-side
Server-side
Server-side refers to operations that are performed by the server in a client–server relationship in computer networking.Typically, a server is a software program, such as a web server, that runs on a remote server, reachable from a user's local computer or workstation...

 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
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 where it runs in a Java EE container and can integrate with Java and web service
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...

s.

The primary focus of Forms is to create data entry systems that access an Oracle
Oracle Database
The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....

 database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

.

How it works

Oracle Forms accesses the Oracle database
Oracle database
The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....

 and generates a screen that presents the data. The source form (*.fmb) is compiled into an "executable" (*.fmx), that is run (interpreted) 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.

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
Oracle Database
The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....

. 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 (IAF), which had two main components: the compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 (Interactive Application Generator - IAG) and the runtime interpreter (Interactive Application Processor - IAP). Released with Oracle Database version 2, IAF provided a character
Character (computing)
In computer and machine-based telecommunications terminology, a character is a unit of information that roughly corresponds to a grapheme, grapheme-like unit, or symbol, such as in an alphabet or syllabary in the written form of a natural language....

 mode interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

 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
Default (computer science)
A default, in computer science, refers to a setting or value automatically assigned to a software application, computer program or device, outside of user intervention. Such settings are also called presets, especially for electronic devices...

 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
PL/SQL
PL/SQL is Oracle Corporation's procedural extension language for SQL and the Oracle relational database...

. The source file was an *.INP ASCII
ASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...

 file. This enabled developers to commonly edit the INP file directly, although that editing method was not support
Customer support
Customer support is a range of customer services to assist customers in making cost effective and correct use of a product. It includes assistance in planning, installation, training, trouble shooting, maintenance, upgrading, and disposal of a product....

ed by Oracle. This version used its own primitive and unfriendly built-in language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

, augmented by user exits
User exit
A user exit is a subroutine invoked by a software package for a predefined event in the execution of the package. Clients of the package can substitute their own subroutines in place of the default ones provided by the package vendor to provide customized functionality.A typical use is replacing...

—compiled language code linked to the binary
Binary file
A binary file is a computer file which may contain any type of data, encoded in binary form for computer storage and processing purposes; for example, computer document files containing formatted text...

 of the Oracle-provided run-time
Run-time system
A run-time system is a software component designed to support the execution of computer programs written in some computer language...

.

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
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

 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
Database trigger
A database trigger is procedural code that is automatically executed in response to certain events on a particular table or view in a database. The trigger is mostly used for keeping the integrity of the information on the database...

 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 prodct. 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
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 and X Window. This version was notoriously buggy and introduced an IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 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
Point release
A point release is a minor release of a software project, especially one intended to fix bugs or do minor cleanups rather than add features. The term implies that such releases are relatively frequent, and is generally used with respect to open source projects being developed in the "bazaar model"...

" 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
Customer
A customer is usually used to refer to a current or potential buyer or user of the products of an individual or organization, called the supplier, seller, or vendor. This is typically through purchasing or renting goods or services...

. It added GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

-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
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

-based delivery, without incurring major changes in its programmatic interface. The complex, highly interactive form interface was provided by a Java applet
Java applet
A Java applet is an applet delivered to users in the form of Java bytecode. Java applets can run in a Web browser using a Java Virtual Machine , or in Sun's AppletViewer, a stand-alone tool for testing applets...

 which communicated directly with the Forms server. However the web
World Wide Web
The World Wide Web is a system of interlinked hypertext documents accessed via the Internet...

 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
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...

 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
Java Message Service
The Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...

.

Version Summary

Name Version (*1) 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 PLSQL, User Exits, INP ASCII File, FRM Runtime File
SQL*Forms 3 6 Character Major Rewrite, New IDE, PLSQL, 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 (rather than 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 (*2) 9i GUI Client-Server runtime removed leaving Forms Server (Web Interface) 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 (9.0.4.0.19). Renamed externally to indicate support for 10g database. Menu-Help-About displays v9.0.4.0.19. Not forward compatible with 10gr2 (cant open 10gr2 forms in 10g/904)
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 External Events, JavaScript
Oracle Forms 11gR2 11gR2 GUI 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 standardizing Oracle Forms (and Reports and Developer) to use the same major version number as the database. This explains the jump in Oracle Forms versions from 6i to 9i (there was no v7 or v8)

Integration with Oracle Designer CASE Tool

Oracle Designer
Oracle Designer
Oracle Designer is Oracle's CASE tool for designing an information system and generating it. After generating the information system one is able to edit the generated code with Oracle Developer Suite-Components of Oracle Designer:Business Process Modelling...

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
Oracle Application Development Framework
In computing, Oracle Application Development Framework, usually called Oracle ADF, provides a commercial Java framework for building enterprise applications. It provides visual and declarative approaches to Java EE development...

 or Oracle Application Express
Oracle Application Express
Oracle Application Express is a software development environment based on the Oracle database. It allows a fast development cycle to be achieved to create web based applications. It can be used for departmental-style applications with a dozen users, but can also scale up to handle thousands of...

. 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
Oracle Application Development Framework
In computing, Oracle Application Development Framework, usually called Oracle ADF, provides a commercial Java framework for building enterprise applications. It provides visual and declarative approaches to Java EE development...

 is also Oracle Application Express
Oracle Application Express
Oracle Application Express is a software development environment based on the Oracle database. It allows a fast development cycle to be achieved to create web based applications. It can be used for departmental-style applications with a dozen users, but can also scale up to handle thousands of...

. 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
PL/SQL
PL/SQL is Oracle Corporation's procedural extension language for SQL and the Oracle relational database...

.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK