28. April 2010

Ändern des Character Sets auf UTF8, Schritt 3

Applikationen ohne Reports sind nutzlos :-)

Daraus folgt, dass wir nun auch einige Änderungen in den Umgebungsvariablen des Report-Servers vornehmen müssen, damit UTF8 in PDFs sauber angezeigt wird.

Erstens

editieren wir auf dem OAS im Report-Server die Report-Konfiguration:




Wir können beliebig neue Bereiche erstellen, die wir mit "environment id" beginnen lassen. In diesem Fall nutzen wir je einen Bereich für Entwicklung, einen für Test und einen für Produktion. Danach können wir dann in jedem Bereich unseren eigenen NLS_LANG und Report-Pfad definieren.

Zweitens

Diese neuen Bereiche können von Forms beim Start des Reports genutzt werden. Dazu wird die Parameterliste um einen Parameter erweitert:

Add_Parameter (V_ParamListe, 'ENVID', TEXT_PARAMETER, 'NLS-PROD');

Dadurch kontrollieren wir die NLS_LANG des Reportservers.


Drittens

Zuletzt müssen wir noch das Mapping zwischen unseren Report-Fonts und unseren TrueType-Fonts herstellen (in diesem Beispiel nutzen wir einen OAS unter Windows)

Die Datei "uifont.ali" im Verzeichnis \tools\common wird im Bereich [ PDF:Subset ] um folgende Einträge erweitert:
Arial..Italic.Bold..             = "c:\windows\fonts\arialbi.ttf"
Arial...Bold..                   = "c:\windows\fonts\arialbd.ttf"
Arial..Italic...                 = "c:\windows\fonts\ariali.ttf"
Arial.....                       = "c:\windows\fonts\arial.ttf"

"Courier New"..Italic.Bold..     = "c:\windows\fonts\courbi.ttf"
"Courier New"...Bold..           = "c:\windows\fonts\courbd.ttf"
"Courier New"..Italic...         = "c:\windows\fonts\couri.ttf"
"Courier New"                    = "c:\windows\fonts\cour.ttf"

"Times New Roman"..Italic.Bold.. = "c:\windows\fonts\timesbi.ttf"
"Times New Roman"...Bold..       = "c:\windows\fonts\timesbd.ttf"
"Times New Roman"..Italic...     = "c:\windows\fonts\timesi.ttf"
"Times New Roman"                = "c:\windows\fonts\times.ttf"


In diesem Beispiel liegen die Fonts im Verzeichnis c:\windows\fonts\

Viel Spass damit
Gerd


Es geht weiter mit Ändern des Character Sets auf UTF8, Anmerkung zu Schritt 3

Zurück zum Teil 2 des Artikels

7. April 2010

Ändern des Character Sets auf UTF8, Schritt 2

Nachdem wir nun die NLS auf UTF8 geändert haben, könnte es sein, dass die bisherigen Hotkeys nicht mehr funktionieren.

Der NLS-Wechsel auf UTF8 hat bewirkt, dass im Hintergrund nun eine andere Ressourcen-Datei benutzt wird. Statt fmrwebd.res wird nun fmrweb_utf8d.res benutzt. Die Datei befindet sich im Forms-Home-Verzeichnis.

Falls otherparams in der formsweb.cfg den Parameter "term" nutzt, dann wird auf diese Weise eine Ressourcen-Datei hartkodiert zugewiesen. Hier könnte man nun a) den Wert des Parameters auf eine andere Datei schauen lassen oder b) den Inhalt der Datei überarbeiten.

z.B. Änderung des Parameters:
alt: otherParams=term=\fmrwebd.res
neu: otherParams=term=\fmrweb_utf8d.res

Nach diesen Änderungen arbeiten die Hotkeys wieder wie zuvor.


Es geht weiter mit Ändern des Character Sets auf UTF8, Schritt 3

Zurück zum Teil 1 des Artikels

31. März 2010

Ändern des Character Sets auf UTF8 in 3 Schritten

Was müssen wir in unserer Forms-Applikation alles ändern, wenn die dahinter liegende Datenbank von einem Single-Byte- auf einen UTF8-Zeichensatz geändert wird?

Erster Schritt:

Sichere alle Forms-Sourcen, die lokale Forms-Installation und alle Application-Server-Konfigurationsdateien.

Danach wird die NLS_LANG der Registry geändert. Zuerst einmal kann man den String in einem Dummy-Parameter zwischenspeichern, indem man einen neuen Parameter erzeugt namens "NLS_alt" mit dem aktuellen Wert des NLS_LANG. Danach ändert man den Wert von NLS_LANG z.B. auf "GERMAN_GERMANY.UTF8". Diese Änderung hat nur Auswirkungen auf den lokalen Forms Builder und wird benötigt um alle Forms-Sourcen neu durchzukompilieren.

Jetzt ändern oder erweitern wir die "default.env". Falls es dort schon eine Zeile mit NLS_LANG gibt, dann wird der neue UTF8-Wert (s.o.) dort reingeschrieben. Im anderen Fall wird eine neue Zeile NLS_LANG erzeugt. Diese Änderung hat nur Einfluss auf unseren lokalen OC4J.

Die gleichen Änderung werden auch an der default.env des Application Servers vorgenommen (jedoch mit den Mitteln des OEM-Editors und nicht direkt an den Dateien)

Diese Vorbereitungen im Bereich der Umgebungsvariablen sind zwingend notwendig


Es geht weiter mit Ändern des Character Sets auf UTF8, Schritt 2

3. Dezember 2009

Die iPhone Developer Konferenz war klasse

In den letzten beiden Tagen besuchte ich die iPhone-Konferenz und bekam endlos neue Informationen, Ideen und Anregungen rund ums iPhone und wie man Applikationen darauf entwickelt.



Ich denke, dass ich einen kleinen Showcase für's iPhone entwickeln werde, in dem man Daten auf einer Oracle DB manipulieren kann und parallel sieht man dann in einer Forms Anwendung, wie die Daten verändert wurden. In der neuesten Forms 11 Version dürfte das kein Problem mehr sein, wenn man mit der Advanced Queue-Technik arbeitet.

Gerd

30. November 2009

iPhone Developer Konferenz in Köln

Morgen (am 1.12.09) startet die deutsche iPhone Developer Konferenz in Köln.

Ich werde mal schauen, ob das der neue Weg ist, Applikationen zu entwickeln. Vielleicht erstelle ich ja als erstes eine Applikation, die in der Lage ist, mit Oracle Forms zu kommunizieren :-)

Bis dahin
Gerd

19. Oktober 2009

Blogging via Google Wave - Erster Test durch EMail

Google Wave ist einfach cool. Jeden Tag entdecke ich Neues in dieser spannenden Welt !

Und jetzt ist die Zeit gekommen um die Konnektivität zwischen Google Wave und meinem Blog zu testen.

Als ersten Test werde ich eine automatisierte EMail an den Blog-Account schicken. Im zweiten Test wird das dann automatisch aus der Google Wave heraus geschehen.

Ich brauche jetzt ein wenig Glück
Gerd

15. September 2009

Der Vortrag für die DOAG Konferenz 2009 ist fertig

Der Titel lautet "Shout out: Oracle Designer vs. SQL Developer Data Modeler".

Im Vortrag werden die Stärken und Schwächen der beiden Tools miteinander verglichen. Auf Basis eines EMP /DEPT Beispiels, live am Rechner.

Behandelt werden folgende Themen

- Domänen
- ER-Design
- Transfer des ER-Modells zum Datenmodell
- Daten-Modellierung
- Generierung der DDL-Skripte
- Reverse Engineering
- Zukunftssicherheit

Direkt nach dem Vortrag werde ich das White Paper und die Präsentation auf meinem Downloadbereich in Google-Code veröffentlichen, so wie alle Vorträge der letzten 13 Jahre.

Gerd

31. August 2009

Forms Debugger - hidden Feature

Der Debugger in Forms 10g hat sich gegenüber Forms 6i deutlich verbessert. Er wurde komplett neu geschrieben und hat nun unter anderem die Fähigkeit remote zu debuggen. D.h. man kann sich nun auf produktive Sessions aufschalten und einen Fehler untersuchen, der gerade erst beim Endanwender aufgetreten ist. Eine in der Web-Welt selten anzutreffende Methode, Fehler zu finden, was Oracle Forms kann!

Und dies ist nur ein Aspekt des neuen Debuggers.


Der Debugger arbeitet in zwei Modi: Der Stopp-Modus ist der bekanntere, in dem fast alle Debug-Funktionen genutzt werden können. Er ist aktiv, während man den Sourcecode untersucht und die Abarbeitung gerade gestoppt ist. Man erreicht ihn z.B. durch einen Breakpoint.


Den Run-Modus sieht man eher selten, da er nur im Forms Developer zu sehen ist, während die zu debuggende Maske im Vordergrund läuft.


Genau in diesem Augenblick ist der „Anhalten“-Befehl eines der interessantesten und meist unterschätzten Features des Debuggers. Hiermit erzeuge ich einen Breakpoint in einem Stück Sourcecode, von dem ich vorher vielleicht noch gar nicht wusste, wo er steht.

Betätigt man diesen Button während des Debuggens, dann scheint sich auf den ersten Blick nichts zu tun. Kehrt man nun vom Forms Developer in die Runform zurück, dann wird der nächste Event, den man startet, sofort im Debugger unterbrochen und man sieht die Stelle im PL/SQL-Editor, die als nächstes abgearbeitet würde.
Somit ist man in der Lage, Sourcecode zu untersuchen und zu prüfen, ohne sich im Vorfeld lange Gedanken machen zu müssen, an welchen Stellen Breakpoints zu setzen sind.

Das ist mein Tipp des Tages
Gerd

4. Juli 2009

Forms 11g ist verfügbar

Auf der Seite Oracle Fusion Middleware 11g klickt man auf Downloads


Aus der Liste verfügbarer Tools, wählt man "Portal, Forms, Reports and Discoverer"



dann lehnt man sich gemütlich zurück, während 2.1 GB geladen werden. Danach kann man mit dem neuen Oracle Forms 11g R1 starten.

Verfügbar für Windows und Linux. Solaris, HP und IBM kommen bald
Viel Spass damit
Gerd

3. Juli 2009

Oracle Fusion Middleware 11g Launch

Charles Phillips hat vorgestern in Washington D.C. im weltweiten Launch die Oracle Fusion Middleware 11g vorgestellt und präsentiert.

D.h. der Fusion Middleware Start hat begonnen und mehr und mehr Produkte aus der Oracle Familie gehen in den nächsten Wochen nun produktiv und können von uns allen genutzt werden. Dies ist eine sehr gute Nachricht für Oracle Forms 11g, das ja seit fast zwei Jahren auf den Fusion Start wartet.


Während der Show sprach Charles Phillips über seine Key Partner, die ihm während der Entwicklung, der Beta Tests und Trainings geholfen haben. Zwei Screenshots aus dem Live-Stream habe ich hier direkt einmal gepostet, die verdeutlichen, welche Position OPITZ CONSULTING mittlerweile bei Oracle einnimmt:


Jetzt brauchen wir nur noch zu hoffen, dass Forms 11g in wenigen Wochen released wird
Gerd

29. Juni 2009

Deaktivierung eines Triggers

Wenn man auf die schnelle einen Trigger deaktivieren möchte, dann kann man die "_"-Technik benutzen:



In diesem Beispiel soll ein Key-Create-Record-Trigger deaktiviert werden. Dazu benennt man jeden "-" in "_" um im Namen des Triggers. Von da an ist der Trigger ein sogenannter User-Named-Trigger und kann durch normale Events nicht mehr gestartet werden.



Wichtig: Den Trigger in "KEY-CREREC2" oder ähnliches Umbenennen funktioniert nicht. Der Bindestrich ist in Forms reserviert für Event-Trigger.

Den Trigger kriegt man danach wieder aktiviert, indem man die Unterstriche wieder gegen Bindestriche tauscht.

Viel Spass
Gerd

18. Juni 2009

AdSense Test beendet

Die zwei Wochen, in denen ich Googles AdSense getestet habe, waren sehr interessant. Man sieht jeden Tag, wieviele tausend Euro man wieder dazuverdient hat (aeh, ich meinte Euro-Cents) und hat die Möglichkeit aus endlos vielen Reports sich die Daten anzuschauen, die einem zeigen, was für Werbung die User bevorzugten, etc.

Und genau jetzt, wo es am schönsten ist, beende ich diesen Test auch wieder, damit keiner durch die Ads genervt ist und die Blog-Seite wieder so aussieht wie immer. Frei von Werbung!



Viel Spass weiterhin mit dem Blog
Gerd

4. Juni 2009

AdSense in meinem Blog (nur für kurze Zeit)


Heute fand ich eine neue Registerkarte auf meiner Google-Blogger-UI. Sie heisst "Monetize" und scheinbar möchte Google, dass wir Blogger denken, dass wir sofort reich werden, wenn wir dem AdSense Programm beitreten. Ich weiss, dass das nicht passieren wird, da ich nicht die erforderlichen 2 Millionen Hits pro Tag schaffe :-)

Ich starte das AdSense-Programm trotzdem aus reiner Neugier, um zu sehen, wie Google das intern umsetzt und wie sie die Blogs damit verändern.

Ich möchte niemanden nerven und werde den Test sogar vorzeitig beenden, wenn entsprechende Kommentare kämen. Mein Blog wird weitergehen wie bisher und am Ende meines AdSense-Tests werden ich ein kleines Feedback veröffentlichen, wie die Arbeit mit AdSense war und welchen Einfluss es auf meinen Blog hatte.

Auf geht's!
Gerd

29. Mai 2009

Und die Gewinner sind:

Grants Posting habe ich mir zum Vorbild genommen und hier einmal die 5 besten Oracle Forms Java Beans des April 2009 Wettstreits veröffentlicht:

18,8% Md. Mehbub Islam: Scanner Bean
17,5% Hafed Benteftifa: FRITE (Forms Rich Text HTML Editor)
17,5% Vijaynath Nair: Autocad Integration Bean
16,2% Francois Degrelle: Carousel Bean
16,2% Lionel Lasserre: Planning Bean



Für diese Links sollte man sich ein paar Minuten Zeit nehmen und die Lösungen eingehend untersuchen.

Es ist toll zu sehen, dass dies alles mit Oracle Forms machbar ist. Auf diese Weise kann man seine alten Oracle Forms Applikationen beinahe beliebig modernisieren, so dass man bald gar nicht mehr erkennen wird, dass im Hintergrund Forms läuft.

Ein grosses Dankeschön an alle, die bei dem Contest mitgemacht haben und Ihre Lösungen der Öffentlichkeit gezeigt haben
Gerd

25. März 2009

Data Modeling White Paper

Es sieht so aus, dass Oracle SQL Developer Data Modeling der neue Oracle Designer werden könnte.

Unter diesem Link ist ein sehr umfangreiches White Paper zu finden, dass den vollen Umfang des Data Modelers beschreibt SQL Developer Überblick

viel Spass damit
Gerd