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.

Freitag, 30. Dezember 2011

Forms 11g und Reports 11g im Developer-Mode

Der Aufruf von Reports aus Forms 11g Release 2 im Developer-Mode ist recht einfach, hier nun ein vollständiger Demo - Ablauf:

  • Start des WebLogic Servers:
  • Erstellen eines emp - Demo - Modules im Forms 11g Builder
  • Anlegen eines Reports-Objectes:


Das Report-Object heißt hier 'Report6' und der eigentliche Report ist für den
Developer-Mode mit absoluter Pfadangabe 'D:\Forms11g-Workshop\chk_report.rdf' eingetragen.
  • Erstellen des Demo - Reports im Reports 11g Builder:

  • Test des Reports-Servers:


  • Im rwservlet.properties - File wird der Reports - Server Name ermittelt: D:\oraforms\user_projects\domains\ClassicFxDomain\servers\AdminServer\temp\_WL_user\ reports_11.1.2\90rnjo\configuation\rwservlet.properties :

  • Erstellen der Reports - Procedur im Formsmodul:


  • Test des Report - Startes aus dem Formsmodule mit dem Procedure - Call:

Dieser Ablauf kann ohne Konfigurierung des Forms - bzw. Reports - Servers problemlos nachvollzogen werden.


Viel Erfolg und beste Wünsche für das Neue Jahr
Friedhold

Montag, 26. Dezember 2011

Forms 11g getestet im Chromium Browser

Eine gute Testmöglichkeit ist für Forms 11g mit dem WebKit - Chromium-Browser des Open Source Chromium Projekts gegeben:


Den aktuellsten Projektstand erhält man durch: http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/LATEST

und abhängig vom Ergebnis dann das jeweils aktuelle Projektverzeichnis, z.B.:
http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/5849/

Ich habe mir ein Chromium - Verzeichnis angelegt und entpackte das Zip-File: chrome-win32.zip in den neu angelegten Nummern-Folder: .\Chromium\5849 .

In dem Forms-Developer wird nun der Chromium-WebBrowser eingetragen:

Unter: "Bearbeiten / Voreinstellungen / Laufzeit / Web-Browser-Speicherort:"
D:\Chromium\5849\chrome.exe .

Sinnvoll ist es auch, den FireBug Lite für Chrome zu installieren und die Debugging/Logging Features von FireBug zu verwenden:

Zentriert

Der Chromium-Browser ist schnell, portabel und enthält einen integrierten PDF-Viewer. Sollte irgendwann ein aktuelles Release Probleme bereiten, so setzt man den Web-Browser-Speicherort im Forms-Developer einfach auf ein anderes Release ..

Gruß,
Friedhold

Donnerstag, 15. Dezember 2011

Forms 11g mit Proxy - User

Eine wichtige Neuerung in Forms 11g ist die Möglichkeit des Anmeldens als Proxy - User, ich habe dies in Forms 11g Release 2 (11.1.2.0.0) getestet. Bei dieser Art der Anmeldung muss nur der Proxy - User im LOGON bekannt sein, die jeweiligen Applikations- End User werden sozusagen durchgereicht. Damit kann der Umstellungsaufwand von Client- nach Web- Forms reduziert werden, da die Sicherung der Anmeldung lediglich auf den Proxy - User konzentriert werden muss.

- Anlegen eines Proxy Users:
create user test_proxy identified by test_proxy;

- Freigabe des Proxy- Connects für einen End - User:
alter user scott grant connect through test_proxy;

- Test - Connect:


- Anmeldung im Forms 11gR2 - Developer:


- Implizite Anmeldung im ON-LOGON - Trigger:


- Nachweis des Connect - Status:




D.h. man kann mit get_Application_Property(USERNAME) den Proxy - User Account abfragen, USER liefert nach wie vor den End - User.

Übrigens kann sich der Proxy - User selbst nicht anmelden:


Aus Sicherheitsgründen und besserer, nachhaltiger Wartung sollte ein End - User ohnedies als einziges Recht nur das grant create session erhalten, eigene Objecte wie Synonyme, temporäre Tabellen, Views etc. oder gar PL/SQL - Code sollte er keinesfalls besitzen!
Jegliche Applikationsrechte sollten über Datenbank - Rollen, möglichst nach dem Prinzip der additiven Funktionserweiterung, vergeben werden.

Ich hoffe, dass dies weiter hilft.

Friedhold

Montag, 20. Juni 2011

GeoRaptor 3.0 Exportfunktionen - ESRI Shapefiles

Eine sehr nützliche Funktion ist das Exportieren von SDO_GEOMETRIES:


in eines der folgenden Formate:


Dabei muss der SRID natürlich OGC - konform angepasst werden:


Letztendlich wird das Ergebnis gemeldet:


Das erstellte Shapefile konnte ich mit dem OpenSource Desktop-GIS uDig (aktuelle Version: 1.2.2) verifizieren:


Der Layer COUNTIES_GEOM ist unser Shapefile-Layer, COUNTIES ist der MVDEMO.COUNTIES.SDO_GEOMETRY-Layer: Beide Layer sind natürlich deckungsgleich.

Großen Dank an das GeoRaptor Team!

Friedhold

Montag, 13. Juni 2011

GeoRaptor 3.0 für SQL Developer 2.1 u. 3.0

Simon Greener hat im Oracle Spatial Forum die Freigabe des GeoRaptor 3.0 für den SQL Developer 2.1 und 3.0 bekannt gegeben.


Dies ist ein Super - Beispiel, wie ein kommerzielles Produkt durch freie Mitarbeit um sinnvolle Funktionen erweitert werden kann!

Mit besten Wünschen,
Friedhold

Samstag, 11. Juni 2011

Oracle Maps mit Yahoo Maps inklusiv

Neulich hatte ich mir wieder einmal Oracle Maps in der vorletzten Version aus dem MapViewer 11g patch 3 (11.1.1.4.1)angesehen. Aufgefallen ist mir dabei, dass in oraclemaps.js auch für Yahoo Maps die Custom Tiles Anwendung vorbereitet ist. Man braucht nur mit

baseMap = new MVYahooTileLayer();
die Yahoo Base Map definieren, wobei auch bei Yahoo Maps ein Registrierungskey notwendig ist:




Somit erhält man mit der Registrierung und einem Funktionsaufruf die Yahoo Map Tiles als
Base Map in Oracle Maps:



In diesem Demo ist die verschiebliche Oracle Maps Toolbar, mit der auch individuelle Erweiterungen möglich sind, enthalten.

Friedhold