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

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:

: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.

# 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