# Oracle Forms

| Beteilige dich an der Diskussion! | Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+) Begründung: Das ist kein enzyklopädischer Artikel für jedermann; das ist ein Change Log und Newsticker für Datenbankadministratoren (WWNI). Der Artikel driftet völlig vom Wesentlichen ab (Termin für den nächsten Formsday; Smartbarheight etc.). --Siegbert v2 (Diskussion) 11:04, 19. Mai 2024 (CEST) |
Oracle Forms ist ein Entwicklungswerkzeug der Firma Oracle und erlaubt die WYSIWYG-Erstellung sowie die Programmierung von Datenbank-gestützten, interaktiven Dialogmasken. Außer der Oracle-Datenbank werden auch diverse andere SQL-Datenbanken unterstützt; mit den neuesten Version können auch REST-Services nativ mit lokalen JSON-PL/SQL-Packages konsumiert werden. Die Programmierung von Masken, Reports, Bibliotheken und Menüs erfolgt in PL/SQL. Die Masken können optional über Java (importierte Java-Klassen) oder C(dlls) oder WebSockets (Kommunikation mit Webservern) erweitert werden. Mit der optionalen, aber mitgelieferten WEBUTIL-Funktion (Package, JAVA Plugin, DLLs.) lassen sich auch umfangreiche lokale Windowsfunktionen ausführen oder Office-Automationen durchführen.

## Produktversionen

Oracle Forms wurde 1979 von Bill Friend entwickelt und gemeinsam mit der ersten kommerziellen Oracle-Datenbank unter der Bezeichnung IAF (Interactive Application Facility) vertrieben. Später, etwa 1982, kam mit RPT noch eine Reportsvariante (RPT) dazu. Es folgten weitere Versionen unter dem Namen „Fastforms“, „SQL Forms“ und dann schließlich „Oracle Forms“. Von 1985 bis 2002 wurde Forms von Sohaib Abbassi weiterentwickelt. Meilensteine waren die PL/SQL-Integration (lange vor der Datenbank), der Screen-Builder (Möglichkeit des visuellen Maskendesigns) und 1999 eine Internet-3-Schichten-Architektur. Von 2002 bis 2011 war Grant Ronald und seit 2011 ist Michael Ferrante der Produktmanager von Oracle Forms.
Ab der Produktversion 9 wird ausschließlich die Web-basierte 3-Tier-Architektur unterstützt. Für den produktiven Betrieb von Forms-Anwendungen ist der Oracle WebLogic Server Voraussetzung (in früheren Versionen von Forms war dieses der Oracle Application Server). Einige Produkte der Oracle Applications Produktfamilie (EBS) verwenden bis heute Forms für die Realisierung der Dialogmasken in einer älteren 10er Version. Oracle Forms wird schon aus diesem Grund weiterhin von Oracle langfristig unterstützt und weiterentwickelt. Mit dem Statement of Direction hat Oracle den weiteren Werdegang der Forms-Entwicklung beschrieben. Die aktuelle Version 14.1.2, erschienen am 19. Dezember 2024, hat einen Premium Support bis Dezember 2029 und einen Extended Support bis Dezember 2032. Es sind bereits weitere Nachfolgeversionen geplant.

## Grundlagen

Oracle Forms ist eine 4GL-Entwicklungsumgebung zur schnellen Erstellung robuster Dialoganwendungen für Oracle-Datenbanken mit Hilfe auch sogenannter Formulare (Weiteres siehe auch Schema (Informatik)). Dabei werden Elemente grafischer Benutzeroberflächen intern in Blöcken organisiert, die mit Datenbanktabellen oder -prozeduren verbunden sind. Blöcke stehen untereinander in Verbindung, wenn sie z. B. Hierarchien (Master-Detail-Relationen) abbilden. Der Code zur Aktualisierung der Detail-Anzeige bei Datensatz-Navigation wird automatisch generiert. „Datenbank-nahe“ Dialoganwendungen lassen sich so ohne eine Zeile zusätzlichen Code erstellen. Abfragen, Einfügen, Ändern oder Löschen von Daten sowie ein intelligentes Locking auf Datensatzebene (u. a. zur Vermeidung von lost-updates) gehören zur Standardlogik eines Datenbankblocks und müssen nicht extra kodiert werden. Für eigene Anwendungslogik dienen ereignisgesteuerte Trigger, die mittels der Ada-ähnlichen Programmiersprache PL/SQL formuliert werden. Mit dem WYSIWYG-Designer erstellte Forms-Anwendungen werden durch den integrierten Forms-Kompilierer in ausführbare Module überführt. Bei dieser Kompilierung werden u. a. fehlende oder ungültige Datenbankobjekte oder fehlende Berechtigungen erkannt, was zur Laufzeit-Stabilität von Forms-Anwendungen beiträgt.
Ein Vorteil von Forms ist, das Datenbanklogik, die zu einem robusten und nachhaltigen Betrieb erforderlich sind, automatisch generiert werden kann. Die Maskenlogik bietet out of the BOX das Sperren von Datensätzen bei der Bearbeitung (Row Level Locking) oder auch die performanceoptimierte Abfrage der Inhalte über Optimizer freundliche Techniken (Bindings).
Seit Version 12 können Applikationen ohne Browser gestartet werden. Dazu muss auf dem Client-PC eine Java-Runtime installiert sein. Entgegen früherer Aussagen von Oracle wird Oracle Reports auch weiterhin in der aktuellen Version 14.1.2 angeboten. Michael Ferrante, der Produktchef von Oracle Forms, hat alle Neuerungen zu dem Produkt, die mit der Familie 12.1.2.x eingeführt wurden, in einem New Features Dokument zusammengefasst und die Neuerungen in Version 14.1.2 in den Release Notes (siehe Weblinks).

## Modernisierungen

ORACLE bietet für Forms seit der ersten Version 1979 bis heute bei jedem Releasewechsel einen Migrationspfad an, um sein Produkt kompatibel zu allen aktuellen Windows- und Unix-Serversystemen zu halten. Es besteht auch die Möglichkeit, unter Windows zu entwickeln und nach einer Compilierung unter Unix zu deployen. Mit der Version 12 wurde FSAL eingeführt (Forms Standalone Launcher) und eine Möglichkeit geschaffen, mit einem kleinen Java-Startprogramm die Masken ohne Browserplugin zu betreiben. Mit den Versionen 12.2.1.x und 14.1.2. wurden GUI-Optionen eingeführt, mit denen Masken moderner gestaltet werden können. Diese Neuerungen werden aber konservativ eingeführt und können über Feld(Item)-Eigenschaften(Properties) oder Serverkonfigurationen aktiviert werden. Der native Forms-REST-Service aus Version 14.1.2 mit Forms-JSON-PL/SQL-Packages erlaubt eine Maskenerstellung erstmalig auch ohne Datenbankanbindung.