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
3. Dezember 2009
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
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
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
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
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
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
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
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
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
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
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
27. Februar 2009
Daten filtern über Multi-Rows
Angenommen, wir haben eine Maske auf der Tabelle EMP aufgebaut und möchten die Daten filtern, so dass nur Mitarbeiter der Abteilungen 20 und 30 zu sehen sind. Die beste Art und Weise einen solchen Filter anzubieten wäre ein Block, der alle Abteilungen anzeigt und man jede Abteilung markieren kann oder nicht.
Wir würden dann zum Beispiel die Checkboxen für Abteilung 20 und 30 anklicken:
Der Button Abfrage starten startet dann eine Query im Block EMP
Was brauchen wir für diese Technik?
-) Einen CONTROL-Block mit einem Feld TI_Filter_String (Char, 2000)
-) Eine Checkbox CB_Filter im DEPT-Block (Numerisch, 0-unchecked, 1-checked)
Der Button, der die Query startet, benötigt noch einen WHEN-BUTTON-PRESSED:
Zum Schluss benötigt der EMP-Block noch folgende Default-Where-Eigenschaft:
Der Trick ist nun, dass jede DEPTNO des Filter-Strings in der EMP-Tabelle gefunden werden kann durch die LIKE %;...;% - Technik:
Viel Spass damit
Gerd
Wir würden dann zum Beispiel die Checkboxen für Abteilung 20 und 30 anklicken:
Der Button Abfrage starten startet dann eine Query im Block EMP
Was brauchen wir für diese Technik?
-) Einen CONTROL-Block mit einem Feld TI_Filter_String (Char, 2000)
-) Eine Checkbox CB_Filter im DEPT-Block (Numerisch, 0-unchecked, 1-checked)
Der Button, der die Query startet, benötigt noch einen WHEN-BUTTON-PRESSED:
:Control.TI_Filter_String := ';';
go_block ('DEPT');
first_record;
LOOP
IF :DEPT.CB_Filter = 1 THEN
:Control.TI_Filter_String := :Control.TI_Filter_String || :DEPT.DEPTNO || ';';
END IF;
IF :SYSTEM.LAST_RECORD = 'TRUE' THEN
EXIT;
ELSE
Next_Record;
END IF;
END LOOP;
go_block ('EMP');
execute_query;
Zum Schluss benötigt der EMP-Block noch folgende Default-Where-Eigenschaft:
:Control.TI_Filter_String LIKE '%;' || DEPTNO || ';%'
Der Trick ist nun, dass jede DEPTNO des Filter-Strings in der EMP-Tabelle gefunden werden kann durch die LIKE %;...;% - Technik:
Viel Spass damit
Gerd
19. Januar 2009
Forms Function Nummern
Die Ressourcendatei fmrweb.res zu editieren war noch nie ganz trivial. Die Syntax ist zwar in der Datei sehr gut und ausführlich beschrieben, jedoch sind nur die Parameter JFN, JMN, URKS und URFD vollständig erklärt. FFN-IDs werden nur zum Teil dort aufgelistet.
Die vollständige Liste aller IDs ist hier nun aufgeführt:
Viel Spass mit den Forms Function Nummern !
Das Problem mit der Doppelbelegung der Nr. 23 werde ich so schnell als möglich versuchen zu lösen
Gerd
# JFN : JMN : URKS : FFN : URFD (whitespace ignored)
#
# JFN = Java function number
# JMN = Java modifiers number
# URKS = User-readable key sequence (double-quoted)
# FFN = Forms function number
# URFD = User-readable function description (double-quoted)
Die vollständige Liste aller IDs ist hier nun aufgeführt:
FFN Beschreibung
-----+---------------
1 Next Field
2 Previous Field
3 Clear Field
4 Left Arrow
5 Right Arrow
6 Up Arrow
7 Down Arrow
8 Goto Beginning of Line
9 Goto End of Line
10 Goto Extreme Vertical Up
11 Goto Extreme Vertical Down
12 Scroll Up
13 Scroll Down
14 Scroll Left
15 Scroll Right
16 Delete Character Left
17 Delete Character Right
18 Delete Line
19 Move Cursor Left
20 Move Cursor Right
21 Scroll-Up
22 Invoke Editor for Field
23 Delete Character ??
/ 23 Insert Line ??
24 Search
25 Toggle Insert/Replace Mode
26 Select Item
27 Return
28 Invoke Menu
29 List of Values
30 Help
31 Redraw Screen
32 Exit
35 Show Keys
36 Accept
61 Next Primary Key
62 Clear Record
63 Delete Record
64 Duplicate Record
65 Insert Record
66 Next Set
67 Next Record
68 Previous Record
69 Clear Block
70 Block Menu
71 Next Block
72 Previous Block
73 Duplicate Field
74 Clear Form
75 Enter
76 Enter Query
77 Execute Query
78 Display Error
79 Print
80 Count Query
81 Update Record
82 User Defined Key 0
83 User Defined Key 1
84 User Defined Key 2
85 User Defined Key 3
86 User Defined Key 4
87 User Defined Key 5
88 User Defined Key 6
89 User Defined Key 7
90 User Defined Key 8
91 User Defined Key 9
92 Clear Eol
95 List Tab Pages
11022 Accelerator Key 1
11023 Accelerator Key 2
11024 Accelerator Key 3
11025 Accelerator Key 4
11026 Accelerator Key 5
11027 Accelerator Key 6
11028 Accelerator Key 7
11029 Accelerator Key 8
11030 Accelerator Key 9
11031 Accelerator Key 10
Viel Spass mit den Forms Function Nummern !
Das Problem mit der Doppelbelegung der Nr. 23 werde ich so schnell als möglich versuchen zu lösen
Gerd
Abonnieren
Posts (Atom)