Donnerstag, 16. März 2017

Oracle Forms 12c Standalone IE11 Applikationsstart

Seit der Einführung von HTML5 und CSS3 ist eigentlich klar, dass die Plugins der Rich Internet Applications: Adobe Flex/AIR, Microsoft Silverlight und Oracle Java Applet mittelfristig in den populären Web Browsern nicht mehr unterstützt werden. (siehe "Moving to a Plugin-Free Web")

Oracles Java Applet Technologie wird beim Start von Oracle Forms derzeit angewendet, so dass eine logische Konsequenz die Einführung des etablierten Java Web Starts in  Forms 12c war. Das ist dahingehend auch sinnvoll, da mit dem Web Start sowohl Applets als auch Java Applikationen gestartet werden können, der angewendete Start Typ lässt sich im Java Cache Viewer nachweisen:


Mit WebStart und einer einmal definierten JNLP, lassen sich demnach sukzessive die Applets in Java Applikationen umstellen. Dieses Jahr wird das Einführungsjahr von Java 9 und damit ist die Applet Technologie für den Zeitraum von Java 9 außerhalb der Web Browser und damit natürlich für Oracle Forms gesichert !

Der Internet Explorer 11 wird noch eine Zeit lang die Java Applet Technologie unterstützen, hierbei können Standalone Web Browser Applikationen einen Oracle Forms12c Start einbetten. Mit diesen Applikationsstarts ist man außerdem in der Lage, auf der Basis von Windows Nutzer Authentifizierungen zielgerichtete Oracle Forms12c Autorisierungen anzuwenden.

Die Erstellung einer einfachen Standalone Web Browser Applikation, getestet mit Oracle Forms12c auf Windows 7 und 10, ist im TODO kurz zusammengefasst.

Mittwoch, 10. Februar 2016

Forms 12c Development u. WLS auf Windows 7 und IE 11 auf Windows 10 - Teil 1

Da Forms 12c derzeit nur auf Windows 7 zertifiziert ist, kann eine sinnvolle Umgebung mit VMware auf Windows 10 als Host System aufgebaut werden.
Mittlerweile läuft die Installation von Forms 12c, dem WLS und den notwendigen Infrastructure Schemen recht reibungslos ab und da die Verbindung zwischen Gast und Host mit VMware ohne Nachkonfigurierung wie auf einer Machine abläuft, kann man sich recht schnell den eigentlichen Entwicklungsaufgaben widmen:
Das Ganze läuft nach meinen Erfahrungen mit einem recht geringen, mentalen Overhead.

Mit Windows 10 als Host System kann man die aktuellsten Front End Checks durchführen,
z.B. Internet Explorer 11 mit dem aktuellsten Java Plugin als Client Run Time für Forms 12c.
In der Windows 10 Suche IE eingegeben und schon bekommt man den Internet Explorer 11 zur Auswahl:


Ich verwende sowohl zur Erstinstallation als auch zu laufenden Java Verifizierungen einfach diesen Link: https://www.java.com/de/download/installed.jsp :


Bevor diese Verifizierung nicht erfolgreich ist, sollte man mit den Front End Forms Checks nicht anfangen.

Für die Installation des Webutil gibt es im Metalink: How to Configure Webutil in Forms12c




Da ich den Forms 12c Test gleich mit WebUtil anfangen wollte, musste ich an zwei Stellen nachbessern: Die Bereitstellung der tnsnames.ora:


und die Generierung der webutil.pll zur webutil.plx. Die aktuellen Namensanpassungen der Jacob..dll's und deren Größe sind in der webutil.cfg inzwischen korrekt angepasst.

Der Test läuft auf dem IE 11 unter Windows 10 erwartungsgemäß problemlos:


Da sich Oracle mit Forms 12c und Java 1.9 nun eigentlich zur Java Client Technologie bekennt, werde ich neben Java auch einen Augenmerk auf die Native Programmierung legen (JNI etc.) und in Folge davon berichten. 

Natürlich unter Windows 10, Microsoft Visual Studio 2015 und Oracle NetBeans 8.x.

Good Codings

Montag, 4. März 2013

NetBeans 7.3 für Web Applikationen

Seit ein paar Tagen habe ich die lang erwartete NetBeans IDE 7.3 installiert. Interessant finde ich u.a. die neuen Features speziell um JavaScript, HTML5 und CSS3. Möchte man eine vollständige Web Applikationen entwickeln, so kann man für den Chrome Browser den NetBeans Chrome Connector installieren.

Unter chrome://extensions/ muss dieser NetBeans Connector natürlich aktiviert sein:



Mit diesem Chrome Plugin werden editierte Änderungen aus Netbeans automatisch im Chrome Browser
aufgefrischt, nach dem Start der Web Applikation erscheint im Chrome Browser ein Hinweis:



Hierbei bitte nicht "Abbrechen", da sonst die Verbindung von NetBeans zum Chrome Connector unterbrochen wird.


Das kleine Beispiel soll dieses Feature bei einfachen CSS3 Änderungen demonstrieren, kürzer kann man sich einen Softwarezyklus von der Änderung bis zur visuellen Darstellung kaum noch vorstellen.

Samstag, 9. Februar 2013

Forms 11g Alert Prozedur

Ich möchte hier eine Prozedur zur Ausgabe von Alert - Messages in Oracle Forms mit folgenden Merkmalen vorstellen:

  • Einfache Textausgabe, ohne Parameterzwang:
      
  • Textausgaben mit parametrierten Textersetzungen:
          
  • Textdefinitionen in dem definierten Textkatalog der Prozedur, Zugriff über Textlabel oder Index und parametrierter Textersetzung, der Textkatalog ist beliebig erweiterbar:
           
          In der Demo Form wird z.B. beim Versuch des ENTER_QUERY der Katalogtext 
          per generiertem Textlabel aus dem ON-ERROR Trigger ausgegeben.
  • Die parametrierte Textersetzung kann natürlich auch auf interne Katalogdefinitionen angewendet werden:      
      
  • Die Parametrierung des Alert Titels und eines vordefinierten Alerts ist ausserdem möglich.
  • Forms begrenzt die Textlänge eines Alert Textes auf max. 200, in dem Fall des Längenübertrages werden von der Prozedur die Texte gesplittet in aufeinander folgende Alerts ausgegeben.

Die Alert Prozedur ist hier dargestellt:


Wenn man in den Jahren die verschiedensten Alert Prozeduren, die eigentlichen nur der Ausgabe einer Textnachricht dienen sollten, gesehen hat, möchte man irgendwann auch seine eigene Variante vorstellen.;-)

Das Demo:


  steht nun für Forms 11g als Download bereit.

Dienstag, 20. März 2012

Forms11g - Procedure-Block mit dynamischem SQL in der Datenbank definiert

Häufig möchte man zwischen verschiedenen Tabellen einfach nur schnell navigieren oder beispielsweise Ausgabemengen für Reports bzw. Excel zusammenstellen. Eine Variante besteht darin, dass man die Datenquelle eines Blockes als SQL-Source definiert und das Statement dynamisch verändert. Hierbei ist jedoch die Steuerung im Modul integriert, bei jeweiligen Änderungen müssen die SELECTS im Modul nachgepflegt werden.


Eine andere Möglichkeit besteht darin, die Definition in der Datenbank, in einer Definitionstabelle und etwas PL/SQL - Code generisch zu verwalten:



Es wird eine statische Typdefinition für max. 5 Tabellenspalten mit dem Datentyp VARCHAR2(250) angewendet:



Den dynamischen PL/SQL - Block habe ich wie folgt implementiert:



Der Forms-Block wird als Procedure - Block definiert:



Die 5 Tabellen-Items sind im Forms-Block definiert:



Die Parameter des Procedure-Blockes müssen natürlich identisch zu den Procedure-Parametern der PL/SQL-Procedure sein:



Ein kleines Demo zeigt die Anwendung.

Somit kann man in der Datenbank die Definition der Formsapplikation quasi direkt steuern:

Eine "Database driven Forms Application" ;-) .


Ich hoffe, es hilft weiter.

Sonntag, 4. März 2012

Forms 11g - JDAPI mit Jython

Für eine programmatische Bearbeitung von Forms - Modulen ist das Oracle Forms API sehr gut geeignet, z.B. zur:

  • Einführung eines einheitlichen Layouts: Visuelle Attribute, Farben, GIF's, Fenstergrößen etc.

  • Versionspflegen: Vergabe von Versionsnummern, Historisierung u. Zuweisungen von Libraries

  • Generierung von Template-Modulen / -Komponenten für spezifische Applikationsthemen

  • Generierung von speziellen Modulen für Hilfe-Funktionen u. Textpflege in der Datenbank

  • Generierung von Systemdokumentationen

  • Strukturanalyse des PL/SQL - Codes u. Überprüfung von Style Guides u.a. mehr.

Das JDAPI ist nun die Java-Version des Forms API, wobei die eigentlichen C- Schnittstellen mittels Wrapper-Klassen verwendet werden. Da es für die JDAPI-Anwendung einige Beispiele gibt, habe ich mich u.a. für diese Java-Variante entschlossen.

Jython ist das Python für Java, d.h. basiert auf der JVM. Damit erschliesst sich die Java-Welt und man kann Verarbeitungsaufgaben natürlich auch mit Datenbankzugriffen zur permanenten Speicherung kombinieren. Das Weblogic Scripting Tool (WLST) basiert auf Jython, über weitere Anwendungen möchte ich in späteren Blog-Einträgen berichten.

Eine gute IDE-Basis für Jython und für Python allgemein ist Eclipse. Ich habe mir das Eclipse Classic und Jython Version 2.5.1 installiert, die Forms 11g R2 JDAPI findet man unter: D:\oraforms\Oracle_FRHome1\jlib\frmjdapi.jar .

Bei der Einrichtung der Jython-IDE ist die PyDev-Interpreter Einstellung wichtig:




Hier sieht man auch, dass sich diese IDE ebenso für Python und IronPython verwenden läßt.

Natürlich sollte man, wie bei Java, die verwendeten Imports inkl. der JAR's definieren:



In dem folgenden Demo wird für das Forms-Modul: employee-3-2.fmb ein Backup-File angelegt und anschliessend in dem vorhandenen Parameter P_VERSION die aktuelle Version inkl. Datum/Zeit eingetragen:


Ein kompakter und verständlicher Code erzeugt mit effektiv nur 12 Zeilen das Ergebnis:



Hier noch die Gesamtsicht auf das Projekt:



Ich hoffe, dass dies weiter hilft.

Montag, 2. Januar 2012

Forms 11g R2 - Modul ohne Window - Menue bzw. Frame

In Forms 11g Release 2 kann nun mit dem guiMode - Konfigurations-Parameter das Window-Menue und/oder der Window-Frame des Forms-Applets entfernen werden:  ..\user_projects\domains\ClassicFxDomain\ config\fmwconfig\servers\AdminServer\applications\formsapp_11.1.2\config\formsweb.cfg:

[jpi]
..
# Forms applet parameter, valid range [0-3]

guiMode=3

..


Dies kommt natürlich einem Layout mit integrativem Einbetten in HTML, einschliesslich der Interaktionsfähigkeit von Forms mit JavaScript sehr entgegen.