Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
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