Modernizing Oracle Forms · Diese Beispiele demonstrieren sehr deutlich, dass Oracle Forms eine...

10
Modernizing Oracle Forms Gerd Volberg OPITZ CONSULTING GmbH Gummersbach Schlüsselworte Forms 10g, Forms 11g, Modernisierung, PJC, Java Beans, BI-Beans, LAF, OraFormsFaces, Framework Einleitung Oracle Forms Applikationen können auf sehr einfache Weise modernisiert werden. Im ersten Teil wird die Integration von PJC’s und Java Beans beschrieben. Oracles Webutil ist ein gutes Beispiel für ein Toolset das komplett auf Basis von Java Beans aufgebaut wurde. Durch diese Beans integriert man nahezu beliebigen Javacode in Forms. Neben diesen Standardtechniken kann man auch über die Integration von Open-Source-Frameworks nachdenken. Seit einiger Zeit gibt es OraFormsFaces, dass die Integration von Oracle Forms innerhalb einer Oracle ADF-Applikation ermöglicht. Ein weiteres Framework namens Look and Feel, kurz LAF, enthält einen Baukasten von vielen verschiedenen Java Beans und CSS-Definitionen, mit deren Hilfe man schnell und effizient das Aussehen seiner Forms-Applikation verändern kann. Grundlagen zu PJC‘s Pluggable Java Components können Oracle Forms Objekte erweitern. Im folgenden Beispiel wird ein numerisches Feld um die Fähigkeit eines Keyfilters erweitert. D.h. Buchstaben werden schon beim Eintippen abgewiesen und nur Ziffern können eingegeben werden. Dieser Keyfilter liegt im OTN unter den Forms-Beispielen und beinhaltet ein Java-Archive namens keyfilter.jar. Diese Datei kopiert man ins <Forms-Home>\JAVA-Verzeichnis und bindet es in der formsweb.cfg in den ARCHIVE-Parameter ein. In den Feld-Properties wird in „Implementation Class“ der Verweis auf die Java-Klasse hinterlegt. Mit dem Set_Custom_Property-Befehl kann man die PJC nun zur Runtime benutzen. SET_CUSTOM_PROPERTY('order_items.quantity',1,'FILTER_TYPE','NUMERIC');

Transcript of Modernizing Oracle Forms · Diese Beispiele demonstrieren sehr deutlich, dass Oracle Forms eine...

Modernizing Oracle Forms Gerd Volberg

OPITZ CONSULTING GmbH Gummersbach

Schlüsselworte

Forms 10g, Forms 11g, Modernisierung, PJC, Java Beans, BI-Beans, LAF, OraFormsFaces, Framework

Einleitung

Oracle Forms Applikationen können auf sehr einfache Weise modernisiert werden.

Im ersten Teil wird die Integration von PJC’s und Java Beans beschrieben. Oracles Webutil ist ein gutes Beispiel für ein Toolset das komplett auf Basis von Java Beans aufgebaut wurde. Durch diese Beans integriert man nahezu beliebigen Javacode in Forms.

Neben diesen Standardtechniken kann man auch über die Integration von Open-Source-Frameworks nachdenken. Seit einiger Zeit gibt es OraFormsFaces, dass die Integration von Oracle Forms innerhalb einer Oracle ADF-Applikation ermöglicht.

Ein weiteres Framework namens Look and Feel, kurz LAF, enthält einen Baukasten von vielen verschiedenen Java Beans und CSS-Definitionen, mit deren Hilfe man schnell und effizient das Aussehen seiner Forms-Applikation verändern kann.

Grundlagen zu PJC‘s

Pluggable Java Components können Oracle Forms Objekte erweitern. Im folgenden Beispiel wird ein numerisches Feld um die Fähigkeit eines Keyfilters erweitert. D.h. Buchstaben werden schon beim Eintippen abgewiesen und nur Ziffern können eingegeben werden. Dieser Keyfilter liegt im OTN unter den Forms-Beispielen und beinhaltet ein Java-Archive namens keyfilter.jar.

Diese Datei kopiert man ins <Forms-Home>\JAVA-Verzeichnis und bindet es in der formsweb.cfg in den ARCHIVE-Parameter ein.

In den Feld-Properties wird in „Implementation Class“ der Verweis auf die Java-Klasse hinterlegt. Mit dem Set_Custom_Property-Befehl kann man die PJC nun zur Runtime benutzen.

SET_CUSTOM_PROPERTY('order_items.quantity',1,'FILTER_TYPE','NUMERIC');

Abb. 1: PJC Keyfilter und seine Properties

Grundlagen zu Java Beans

Nahezu beliebigen Java-Code kann man in Forms durch die Verwendung von Java-Beans integrieren. Dazu wird im Layout-Editor eine Bean-Area erzeugt, der eine Java-Bean zugeordnet wird. Diese Zuordnung kann wieder über die Implementation Class vorgenommen werden, oder per direkter Anweisung im PL/SQL Sourcecode.

FBean.Register_Bean('control.colorpicker',1,'oracle.forms.demos.beans.ColorPicker');

Genau wie bei der PJC muß auch hier die Java-Klasse in einer JAR-Datei im entsprechenden Forms-Verzeichnis liegen. Die Erweiterung des ARCHIVE-Parameters in der formsweb.cfg erfolgt auf die gleiche Weise.

Abb. 2: Java Bean Properties

Wichtig: Die Bean Area muß auf einer Canvas liegen und immer eine Mindestgrösse von 1*1 Pixel haben. Sonst kann sie zur Laufzeit nicht genutzt werden.

Zur Laufzeit kann nun die Bean genutzt werden um eine Farbpalette in Forms zur Verfügung zu stellen.

Abb. 3: Java Bean PickColor

Dies waren ein paar einfache Beispiele, die einem das grundlegende Handling erläutern. Im Folgenden werden jetzt zwei Frameworks präsentiert, die auf dieser Basis beliebiges Modernisierungspotential für Forms-Applikationen erlauben.

Look and Feel Framework

Francois Degrelle’s Framework findet man hier :

http://fdegrelle.over-blog.com/

In dem Framework finden sich viel Beispiele, die man direkt in seinen Applikationen nutzen kann. Meist sind nur wenige Zeilen Code notwendig und die Integration der LAF-Java-Archive.

Einen einfachen grauen Block mit wenigen Handgriffen farblich aufzupeppen zeigt die folgende Abbildung.

Abb. 4: Blöcke einfärben

Das nächste Beispiel zeigt einen Block, der dynamische Felderbreiten erlaubt.

Abb. 5: Dynamische Feldgrössen

Kartenmaterial kann recht einfach integriert werden:

Abb. 6: Integration von Maps

Buttons können auch transparent dargestellt werden:

Abb. 7: Transparente Buttons

Dynamische Menüs können Teil der Applikation werden:

Abb. 8: Dynamische Menüs

Alles in allem sehen Applikationen, die mit LAF verbessert werden, nicht mehr wie Standard-Formsmasken aus, sondern eher wie HTML-Masken:

Abb. 10: Look and Feel einer kompletten Maske

Sämtliche Sourcecodes des LAF-Projekts sind Open Source und können frei verwendet werden.

OraFormsFaces Framework

Wilfred van der Deijl’s Framework findet man hier :

http://www.commit-consulting.com/

In diesem Framework geht es darum, wie man Forms in anderen Applikationen integrieren kann und dann das Beste aus beiden Welten rausholt.

ADF als Oracle’s Zugpferd in der Javawelt ist Wilfred’s Ansatzpunkt. Die folgende Maske ist komplett ADF, bis auf den unteren rechten Bereich, in dem eine Forms-Registerkarte eingeblendet wird.

Der Datenaustausch zwischen einer HTML-Seite und einer dort integrierten Formsmaske ist seit Forms 11g denkbar einfach. Das Javascript-API gibt einem alle nötigen Funktionen an die Hand um diese Integration einzubauen.

Abb. 11: ADF-Applikation mit integriertem Forms-Block

Im nächsten Beispiel wird der äussere Rahmen wieder von ADF vorgegeben. Die Daten im Employee-Bereich werden durch eine Forms-Maske dargestellt. Rechts daneben ist eine ADF-Grafik integriert, die von Forms aus aktualisiert wird.

Abb. 11: Forms-Block synchronisiert ADF-Grafik

Resümee

Diese Beispiele demonstrieren sehr deutlich, dass Oracle Forms eine ausgewachsene Entwicklungsumgebung ist und noch lange nicht vom Markt verschwinden wird. Wir Entwickler müssen einfach dafür sorgen, dass es uns gelingt, unseren Applikationen mit einfachen Modernisierungen neues Leben und neuen Charme einzuhauchen.

Viel Spaß dabei

Gerd Volberg

Kontaktadresse:

Gerd Volberg OPITZ CONSULTING GmbH Kirchstr. 6 D-51647 Gummersbach Telefon: +49 (0) 2261-6001 0 Fax: +49 (0) 2261-6001 4200 E-Mail: [email protected] Blog: http://talk2gerd.blogspot.com