Inhalt | 6 |
Vorwort | 12 |
Die Autoren | 14 |
1 Grundlagen | 15 |
1.1 Oracle Forms | 15 |
1.1.1 Welche Bedeutung hat Oracle Forms? | 15 |
1.1.2 Was ist Oracle Forms? | 18 |
1.1.3 Einsatzbereiche von Oracle Forms | 19 |
1.2 Oracle Forms Developer | 20 |
1.2.1 Forms Builder | 20 |
1.2.2 Forms Compiler | 29 |
1.2.3 Forms Migration Assistant | 30 |
1.2.4 TranslationHub | 31 |
1.2.5 Java Design-Time API | 33 |
1.2.6 XML-Konverter | 33 |
1.2.7 Forms und Java | 33 |
1.3 Forms Services | 34 |
1.3.1 Forms Services – Übersicht | 34 |
1.3.2 Unterschiede zur Client-Server- Architektur | 36 |
1.3.3 Integration mit dem Oracle Application Server | 36 |
1.3.4 Einbindung Forms Services in Oracle Developer Suite | 36 |
1.4 Oracle Forms intern | 37 |
1.4.1 Basiskonzepte | 37 |
1.4.2 Formulare | 38 |
1.4.3 Objekte und Properties | 39 |
1.4.4 Ereignisse und Trigger | 46 |
1.4.5 Navigation | 49 |
1.4.6 Ein einfaches Formular | 50 |
1.4.7 Standardfunktionalität | 53 |
1.4.8 Modultypen | 54 |
1.4.9 Dateitypen | 54 |
2 Architektur | 56 |
2.1 Technische Architektur | 56 |
2.1.1 Forms Client | 57 |
2.1.2 Oracle Application Server Forms Services | 59 |
2.1.3 Datenbank | 62 |
2.1.4 Ergänzende Dokumente | 62 |
2.2 Forms in Aktion | 63 |
2.2.1 Verbindungsaufbau | 63 |
2.2.2 Weitere Kommunikation | 65 |
2.3 Logische Architektur | 65 |
2.3.1 Forms Client | 66 |
2.3.2 Oracle Application Server | 67 |
2.3.3 Oracle Datenbank | 67 |
2.3.4 Logische Schichten | 67 |
3 Windows, Canvas & Co. | 70 |
3.1 Standardverhalten von Formularen | 70 |
3.1.1 Standard-Layout | 71 |
3.1.2 Eigene Standards | 73 |
3.2 Zusammenspiel mehrerer Formulare | 74 |
3.2.1 Window und Canvas in Oracle Forms | 75 |
3.2.2 Window-Typen | 76 |
3.2.3 Eigenschaften von Window-Objekten | 76 |
3.2.4 Dynamische Verwaltung von Windows | 78 |
3.3 Der Canvas als Fensterhintergrund | 79 |
3.3.1 Canvas- Typen | 79 |
3.3.2 Eigenschaften von Canvas-Objekten | 80 |
3.3.3 Tab Pages | 83 |
3.3.4 Verwalten von Canvases im Layout-Editor | 83 |
3.3.5 Dynamische Verwaltung von Canvases | 84 |
3.3.6 Dynamische Verwaltung von Viewports | 85 |
3.3.7 Dynamische Verwaltung von Tab Pages | 85 |
3.3.8 Interaktion von Windows und Canvases | 85 |
3.3.9 Canvas Stacking Order | 86 |
3.4 Items zur Anzeige und Verwaltung der Daten | 87 |
3.4.1 Item-Typen | 87 |
3.4.2 Eigenschaften von Item-Objekten | 88 |
3.4.3 Dynamische Verwaltung von Items | 95 |
4 Daten | 96 |
4.1 Grundlagen | 96 |
4.2 Ein Beispiel | 97 |
4.3 Der lesende Zugriff | 101 |
4.3.1 Record Groups | 103 |
4.3.2 List of Values (LOV) | 105 |
4.3.3 List-Items | 108 |
4.3.4 Globals | 111 |
4.4 Der ändernde Zugriff | 113 |
4.5 Interna | 114 |
4.5.1 Cursor | 114 |
4.5.2 Verwendung der ROWID | 115 |
4.5.3 Default Values in der Datenbank beim Insert | 116 |
4.5.4 Updates | 116 |
4.5.5 Returning Values | 117 |
4.5.6 Namensauflösung | 117 |
4.5.7 Verwendung von Views | 118 |
4.5.8 Abartigkeiten | 123 |
4.5.9 Concurrency | 125 |
5 PL/SQL | 127 |
5.1 PL/SQL in Oracle Forms | 127 |
5.1.1 Die Basis von PL/SQL | 127 |
5.1.2 PL/SQL-Programmeinheiten in Oracle Forms | 128 |
5.1.3 Technische Aspekte von PL/SQL | 129 |
5.1.4 PL/SQL-Entwicklung mit dem PL/SQL-Editor | 129 |
5.2 Variablen | 131 |
5.2.1 Data Items | 132 |
5.2.2 System-Variablen | 132 |
5.2.3 Globale Variablen | 134 |
5.2.4 Forms-Parameter | 134 |
5.3 Datentypen | 134 |
5.3.1 Forms Datentypen | 135 |
5.3.2 SQL- und PL/SQL-Datentypen | 137 |
5.4 Forms Built-In Packages | 137 |
5.5 PL/SQL Standards | 138 |
5.5.1 Warum sind Standards wichtig? | 139 |
5.5.2 Namensgebung | 139 |
5.5.3 Formatierung | 142 |
5.5.4 Organisation | 151 |
5.5.5 Techniken | 152 |
6 Komponenten und Wiederverwendbarkeit | 153 |
6.1 Einschränkung | 154 |
6.2 PL/SQL Code | 154 |
6.2.1 Definition, Ablage und Verwendung | 154 |
6.2.2 Herstellung der Objekte | 156 |
6.2.3 PL/SQL Libraries zuweisen | 157 |
6.2.4 Anonyme Blöcke | 158 |
6.2.5 Besonderheiten bei PL/SQL Libraries | 158 |
6.2.6 Ein Beispiel | 159 |
6.3 Objekte und ihre Properties | 160 |
6.3.1 Mehrfachnutzung | 160 |
6.3.2 Visual Attributes | 161 |
6.3.3 Referenzierung (Subclassing) | 162 |
6.4 Mitgelieferte Object und PL/SQL Libraries | 165 |
7 Grundlagen 2 | 166 |
7.1 Erweiterung des Standardverhaltens | 166 |
7.2 Bearbeiten, Suchen, Präsentieren | 168 |
7.2.1 Erfassen | 168 |
7.2.2 Löschen | 169 |
7.2.3 Ändern | 170 |
7.2.4 Suchen | 171 |
7.2.5 Anpassen der Suche | 172 |
7.2.6 Präsentation | 173 |
7.3 Erweiterte Kontrollelemente | 174 |
7.3.1 Popup Menus | 174 |
7.3.2 Tooltips | 174 |
7.3.3 Calculated Items | 175 |
7.3.4 Hierarchical Trees | 176 |
8 Integration | 179 |
8.1 Client-Integration mit Java | 179 |
8.1.1 Pluggable Java Components | 180 |
8.1.2 JavaBeans | 181 |
8.1.3 WebUtil und JACOB | 181 |
8.2 Server-Integration mit Java | 185 |
8.2.1 Einbindung von Java-Klassen mit dem Java Importer | 186 |
8.2.2 Web Services | 190 |
8.3 Integration mit anderen Komponenten | 190 |
8.3.1 Oracle Reports | 190 |
8.4 Ergänzende Dokumente | 197 |
9 Qualität und Test | 198 |
9.1 Grundlagen | 198 |
9.2 Lösungsansatz | 199 |
9.3 Der praktische Weg | 200 |
9.3.1 Bestandteile der Dokumentation | 201 |
9.3.2 Abweichungsanalyse | 202 |
9.3.3 Eine PL/SQL Library | 202 |
9.3.4 Eine Object Library | 206 |
9.3.5 Ein Template | 220 |
9.4 Warnung | 221 |
10 Analyse und Dokumentation | 222 |
10.1 Analyse von Abhängigkeiten | 222 |
10.1.1 Object List Report | 222 |
10.1.2 XML-Konverter | 223 |
10.1.3 Forms Java API | 228 |
10.2 Identifizieren von Performance-Problemen | 229 |
10.2.1 Forms Trace | 230 |
10.2.2 Servlet-Protokollierung | 232 |
10.2.3 Ein eigenes Werkzeug | 233 |
10.3 Analyse bekannter Fehler mit dem Debugger | 239 |
10.3.1 Grundlegende Funktionen | 239 |
10.3.2 Debugger starten | 239 |
10.3.3 Debugger beenden | 241 |
10.3.4 Die Kontrolle übernehmen | 241 |
10.3.5 Navigation innerhalb des Codes | 242 |
10.3.6 Breakpoints setzen und löschen | 243 |
10.3.7 Die Debug Console | 243 |
10.3.8 Alternativen | 244 |
10.3.9 Debuggen bedeutet nicht Testen! | 245 |
11 Forms Java API | 246 |
11.1 Grundlagen | 247 |
11.1.1 Verwendung mit dem JDeveloper | 247 |
11.1.2 Architektur | 248 |
11.2 Beispiele | 251 |
11.2.1 Erweiterung der Verarbeitung | 252 |
11.2.2 Eigenschaften von Items setzen | 252 |
11.2.3 Koordinatensystem anpassen | 254 |
11.2.4 WebUtil einbinden | 255 |
11.2.5 Trigger ergänzen | 256 |
11.2.6 Ergänzende Dokumente | 256 |
12 Konfiguration und Deployment | 257 |
12.1 Konfigurationswerkzeuge | 257 |
12.2 Konfigurationsdateien – eine Übersicht | 258 |
12.2.1 HTTP Server | 259 |
12.2.2 OC4J Server | 260 |
12.2.3 Forms Services | 261 |
12.3 Konfigurationsaufgaben | 270 |
12.3.1 Konfigurationsabschnitt anlegen | 271 |
12.3.2 Icons überall anzeigen | 272 |
12.3.3 Virtuelles Verzeichnis anlegen | 276 |
12.3.4 Java Virtual Machine aktualisieren | 277 |
12.3.5 Aufbau einer Testumgebung für WebUtil | 279 |
12.3.6 Tastaturbelegung anpassen | 283 |
12.4 Deployment | 284 |
12.4.1 Verzeichnisse einer Forms- Applikation | 285 |
12.4.2 Zusammenstellen und Kopieren | 285 |
12.4.3 Generieren von Modulen auf dem Application Server | 286 |
12.4.4 Änderungen der Konfiguration | 287 |
12.5 Infrastruktur- Anforderungen | 287 |
12.6 Ergänzende Dokumente und Referenzen | 292 |
13 Migration | 294 |
13.1 Migration oder Technologiewechsel | 294 |
13.2 Migrationsvorgehen | 295 |
13.2.1 Bestandsaufnahme | 296 |
13.2.2 Infrastruktur | 298 |
13.2.3 Migrationskonzept | 299 |
13.2.4 Die Umsetzung der Migration | 303 |
13.2.5 Test | 306 |
13.2.6 Produktivnahme | 306 |
13.3 Ergänzende Dokumente | 307 |
14 Ausblick | 308 |
14.1 Oracle Forms 11 | 308 |
14.1.1 External Events | 309 |
14.1.2 Scheduled Pre-Start | 310 |
14.1.3 JavaScript-Integration | 310 |
14.1.4 Java Events | 311 |
14.1.5 Proxy User Support | 311 |
14.1.6 PL/SQL Tracing | 312 |
14.1.7 Performance Tuning | 312 |
14.1.8 Oracle Diagnostic Logging Support für Forms Services | 313 |
14.2 Ein Wort zum Schluss | 313 |
Literatur | 314 |
Register | 317 |