Ralf Beckmann
Oracle Application Express in der Praxis
Mit APEX datenbankbasierte Webanwendungen entwickeln
Inhalt
6
Einleitung
16
1 Was ist APEX?
18
1.1 Aufbau und Funktionsweise von APEX
18
1.1.1 Architektur
19
1.1.2 APEX-Engine
21
1.1.3 Embedded PL/SQL Gateway (EPG)
22
1.1.4 Oracle HTTP Server (OHS)
23
1.1.5 APEX-Listener
24
1.1.6 Workspaces und Datenbankschema
25
1.2 Für Kurzentschlossene ..... apex.oracle.com
26
1.3 Installation eine Oracle Express Edition mit APEX 4.2
27
1.3.1 Download von der Oracle-Homepage
28
1.3.2 Installation der Datenbank
28
1.3.3 Upgrade auf APEX 4.2
29
1.3.4 Bilder installieren
30
1.3.5 Passwort des ADMIN-Accounts ändern
31
1.3.6 Sprache der Entwicklungsumgebung auf Deutsch anpassen
31
1.3.7 HTTP-Port ändern/externen Zugriff erlauben
32
1.4 Anmelden an APEX – Admin und Developer
33
1.4.1 Einen Workspace anlegen
33
1.4.2 Passwortrichtlinien ändern
36
1.4.3 Einen Anwendungsentwickler anlegen
36
1.5 APEX-Werkzeuge
39
1.5.1 Die Entwicklungsumgebung starten
39
1.5.2 Der Application Builder
41
1.5.3 Der SQL Workshop
42
1.6 SQL Developer einrichten
44
1.7 Zusammenfassung
45
2 Eine Anwendung erstellen
46
2.1 Bestandteile einer APEX-Anwendung
46
2.1.1 Seiten
47
2.1.2 Regionen
48
2.1.3 Seitenelemente
49
2.2 Themes und Templates
51
2.3 Der Entwicklungsprozess
54
2.4 Fallbeispiel: die Aufgabenverwaltung
55
2.5 Objektbrowser
55
2.5.1 Starten des Objektbrowsers
56
2.5.2 Erstellung einer Tabelle
57
2.6 Erstellen einer APEX-Anwendung
61
2.7 Starten und Bedienung einer APEX-Anwendung
64
2.7.1 Starten einer Anwendung
65
2.7.2 Die Aufgabenverwaltung
66
2.7.3 Ergebnis
69
2.8 Seiten bearbeiten
70
2.8.1 Application Builder
70
2.8.2 Seitendefinition
72
2.8.3 Die Entwicklertoolbar
73
2.8.4 Eigenschaften bearbeiten
74
2.9 Session-State
74
2.9.1 Serverseitiger Session State – Persisted Session State
76
2.9.2 Clientseitiger Session State – IN MEMORY Session State (IMSS)
76
2.10 Funktionsweise einer Seite – Insert und Update
77
2.10.1 Seitenwiedergabe – Page Rendering
77
2.10.2 Seitenverarbeitung – Page Processing
80
2.10.3 Bestandteile der Seite (2)-Aufgaben bearbeiten
81
2.10.4 Eine neue Aufgabe anlegen
83
2.10.5 Öffnen und Ändern einer Aufgabe – Parameterübergabe per Link
88
2.11 Konkurrierende Zugriffe – Mehrbenutzerfähigkeit
93
2.12 Zusammenfassung
94
3 Seiten (Pages)
96
3.1 Beschriftungen anpassen
96
3.1.1 Beschriftungen des Interaktiven Grid anpassen
97
3.1.2 Item-Beschriftungen ändern
98
3.1.3 Regionstitel anpassen
100
3.2 Item-Typen ändern
102
3.3 Berechnung (computation)
104
3.3.1 Was sind Berechnungen?
104
3.3.2 Der Änderungszeitpunkt und der letzte Bearbeiter
105
3.3.3 Items ausblenden
106
3.4 PL/SQL-Prozess erstellen – Audit Log
106
3.4.1 Was sind Prozesse?
106
3.4.2 Änderungshistorie
107
3.4.3 Datenmodell
108
3.4.4 Referenzieren von Item-Werten
108
3.4.5 Insert Statement
109
3.4.6 Prozess erstellen
109
3.5 Validierungen
111
3.5.1 Was sind Validierungen?
111
3.5.2 Pflichtfelder
112
3.5.3 Validierung mittels PL/SQL
114
3.5.4 Abhängigkeit zweier Items voneinander
116
3.5.5 Ausgabemöglichkeit: Inline mit Feld und in Benachrichtigung
119
3.6 Standardwerte festlegen
121
3.7 Bedingungen (Conditions)
122
3.8 Kontextsensitive Hilfen
124
3.9 Zusammenfassung
125
4 Wertelisten (List of Values)
126
4.1 Was sind Wertelisten?
126
4.2 Statische Wertelisten
129
4.3 Selbstlernende dynamische Wertelisten
132
4.4 Dynamische Wertelisten auf Basis einer Lookup-Tabelle
133
4.4.1 Lookup-Tabelle mit dem Objektbrowser erstellen
134
4.4.2 Foreign-Key-Constraint im Objektbrowser
137
4.4.3 Joinen mit dem Querybuilder
137
4.4.4 Datenquelle eines Seitenelements anpassen
140
4.4.5 Klassischer Bericht mit Form erstellen
142
4.4.6 Dynamische List of Values erstellen
145
4.5 Gespeicherte Wertelisten
147
4.5.1 Gemeinsame Komponenten
147
4.5.2 Gemeinsame Wertelisten erstellen
149
4.5.3 Werteliste konvertieren und verwenden
150
4.6 Generative Werteliste
151
4.6.1 Tabelle für externe Ansprechpartner
152
4.6.2 Interaktives Grid mit Form erstellen
153
4.6.3 Select-Statements für externe Ansprechpartner
154
4.6.4 APEX-Views
154
4.6.5 Kaskadierende LOV
156
4.6.6 Ergebnis
158
4.7 Quick Picks
159
4.8 Zusammenfassung
160
5 Erweiterte Funktionalität
162
5.1 Fallbeispiel: die Projektverwaltung
163
5.1.1 Tabelle mit Unique Key Constraint erstellen
163
5.1.2 Form zum Anlegen von Projekten
165
5.1.3 Rich-Text-Editor
167
5.1.4 LOV-Projektleiter
168
5.1.5 Anwendung umbenennen
169
5.1.6 Spalte und Items hinzufügen
170
5.1.7 Interaktives Grid mit dem SQL Developer überarbeiten
173
5.2 Seitenlayout
176
5.2.1 Anzeigepunkte
176
5.2.2 Verschachteln
179
5.2.3 Rasterlayout (Grid Layout)
179
5.2.4 Seite „Projekte bearbeiten“ mit neuem Layout
181
5.3 Bilder verwenden
184
5.3.1 Bilder verwalten
184
5.3.2 Bilder referenzieren
184
5.3.3 Anwendungslogo einfügen
186
5.4 Anhänge verwalten
187
5.4.1 Datenmodell erweitern
187
5.4.2 Anwendung erweitern
188
5.4.3 Download-Link im Interaktiven Grid
189
5.5 Daten importieren
192
5.5.1 Data-Load-Wizard erstellen
192
5.5.2 Image-Button erstellen
194
5.5.3 Daten hochladen
195
5.6 Zusammenfassung
196
6 Navigation
198
6.1 Was sind Navigationselemente?
198
6.2 Registerkarten und Registerkartengruppen
200
6.2.1 Ein- und zweistufige Menüs
200
6.2.2 Menüstruktur festlegen
201
6.2.3 Seitenwiedergabe
202
6.2.4 Neue Registerkarte bei der Erstellung einer Seite
204
6.2.5 Registerkarten und Registerkartengruppen bearbeiten
205
6.3 Listen
209
6.3.1 Was sind Listen?
209
6.3.2 Listen erstellen
210
6.3.3 Listen verwenden
211
6.4 Navigationspfad (Breadcrumps)
212
6.4.1 Was sind Navigationspfade?
212
6.4.2 Erstellen von Navigationspfaden über die gemeinsamen Komponenten
213
6.4.3 Zuordnen von Navigationspfaden
214
6.5 Navigationsleiste
215
6.5.1 Feedback einfügen
216
6.6 Zusammenfassung
219
7 Interaktives Grid
220
7.1 Suchen, filtern und sortieren
220
7.1.1 Freitextfilter
221
7.1.2 Nach Spalteninhalten filtern
222
7.1.3 Sortieren
224
7.2 Spalten ein- und ausblenden
225
7.3 Berechnete Spalten
226
7.4 Markierungen
226
7.5 Kontrollgruppenwechsel
228
7.6 Aggregation
229
7.7 Speichern von Berichtsansichten
230
7.7.1 Eigene offene Punkte
230
7.7.2 Offene Punkte
231
7.7.3 Aufgabendarstellung nach Projekten
232
7.7.4 Berichtsansichten administrieren
233
7.8 Filter per Link setzen
234
7.9 Charts: grafische Auswertungen
237
7.10 Exportieren
238
7.11 Senden als E-Mail
239
7.11.1 Access Control List (ACL)
239
7.11.2 Mails versenden
240
7.11.3 Subscription – Bericht per Mail versenden
242
7.12 Optionen des Interaktiven Grid
244
7.13 Zusammenfassung
245
8 Diagramme
246
8.1 Diagrammtypen
246
8.2 Ring-Diagramm
247
8.2.1 Select-Anweisung erstellen
247
8.2.2 Ring-Diagramm einfügen
248
8.2.3 Filter einfügen
249
8.3 Gantt-Diagramm
253
8.3.1 Datenmodell und Anwendung erweitern
253
8.3.2 Datumsfeld einfügen
253
8.3.3 Parent-Child-Werteliste
254
8.3.4 Hierarchische Select-Statements
255
8.3.5 Gantt-Diagramm einfügen
261
8.3.6 Rücksprung zur Ausgangsseite
262
8.4 Browserabhängigkeit
263
8.5 Zusammenfassung
266
9 Weitere Regionen
268
9.1 Baumstruktur: Projektstrukturbaum
268
9.2 Kalender
272
9.3 Zusammenfassung
274
10 Dynamische Aktionen (Dynamic Actions)
276
10.1 Was sind Dynamische Aktionen?
276
10.2 Seitenelemente ein- und ausblenden
278
10.3 PL/SQL-Ausführen
280
10.4 Zusammenfassung
282
11 Fehlersuche
284
11.1 APEX-Advisor
285
11.2 Datenbankobjektabhängigkeiten
287
11.3 Debug-Mode
288
11.3.1 Debugging aktivieren und anzeigen
288
11.3.2 Eigene Debug-Log-Einträge hinzufügen
290
11.4 SQL Tracing und TKPROF
293
11.5 Browser-Fehler
295
11.6 Monitoring
297
11.7 Bekannte Fehler
298
11.8 Zusammenfassung
298
12 Sicherheit
300
12.1 Minimalprinzip
301
12.2 Angriffen entgegenwirken
301
12.2.1 APEX härten
301
12.2.2 URL Rewriting/Tampering
307
12.3.3 Cross-Site Scripting
309
12.2.4 SQL-Injection
310
12.2.5 Brute Force
311
12.3 APEX-Sicherheit
312
12.3.1 Authentifizierungsschema
312
12.3.2 APEX-Benutzerverwaltung
313
12.3.3 Autorisierungsschema – funktionale Berechtigungen
314
12.3.4 Sichtrechte – Anforderung an das Datenmodell
319
12.4 Zusammenfassung
322
13 Plug-ins
324
13.1 Was sind Plug-ins?
325
13.1.1 Neue Plug-ins erstellen
325
13.1.2 Callbacks
326
13.1.3 Attribute
327
13.1.4 Dateien hochladen
328
13.1.5 Debuggen
329
13.2 Element-Plug-in (Item Type Plug-in)
330
13.2.1 Das Plug-in LookUp erstellen
330
13.2.2 Plug-in LookUp verwenden
333
13.3 Region-Plug-in (Region Type Plug-in)
334
13.3.1 Datenquelle für das Sitemap-Plug-in
334
13.3.2 CSS und HTML für das Sitemap-Plug-in
336
13.3.3 Plug-in Sitemap erstellen
339
13.3.4 Plug-in Sitemap verwenden
341
13.4 Prozess-Plug-in
343
13.4.1 Execute Immediate
343
13.4.2 Plug-in Audit erstellen
343
13.4.3 Plug-in Audit verwenden
347
13.5 Plug-ins exportieren und importieren
348
13.6 Zusammenfassung
348
14 Mobile Anwendungen
350
14.1 Was sind mobile APEX-Anwendungen?
350
14.2 Responsive Design-Theme 25\26
351
14.2.1 Rasterlayout
351
14.2.2 Media-Queries und CSS3-Hilfsklassen
353
14.3 Fallbeispiel: mobile Aufwandserfassung
355
14.3.1 Datenmodell
355
14.3.2 Die Anwendung
356
14.4 Erstellen einer mobilen Anwendung
356
14.5 Der Entwicklungsprozess
358
14.5.1 Anwendung starten
358
14.5.2 Session-State
359
14.5.3 Debuggen
360
14.6 Bestandteile einer mobilen Anwendung
362
14.6.1 Seiten
362
14.6.2 Regionen
362
14.6.3 Seitenelemente
363
14.7 Mobile Web-App: Time Sheet
363
14.7.1 Aufgabenübersicht
363
14.7.2 Aufgaben fertig melden
364
14.7.3 Listenansicht optimieren
366
14.7.4 Form Aufgaben abschließen optimieren
368
14.7.5 Menü erstellen
369
14.7.6 Zeiterfassung
370
14.8 Entwicklungs- und Testumgebung
373
14.9 Zusammenfassung
374
15 Websheets
376
15.1 Was sind Websheets?
376
15.2 Abschnitte (Sections)
378
15.3 Datenraster (Data Grid)
378
15.4 Erstellen einer Websheet-Anwendung
379
15.4.1 Fallbeispiel
379
15.4.2 Anwendung erstellen
379
15.4.3 Neue Seite – die Projekt-News
380
15.4.4 Bilder einbetten – Markups
382
15.4.5 Navigation
384
15.4.6 Neues Datenraster: die Kostenübersicht
385
15.5 Administration
388
15.5.1 Anwendungseigenschaften
388
15.6 Zusammenfassung
388
16 Mehrsprachige APEX-Anwendungen
390
16.1 Vorgehen
390
16.2 Globalization-Attribute
391
16.3 Anwendung übersetzen
392
16.4 Primäranwendung einer übersetzten Anwendung zuordnen
393
16.5 Übersetzte Texte in Übersetzungs-Repository vordefinieren
393
16.6 XLIFF-Übersetzungsdatei aus dem Übersetzungs-Repository herunterladen
394
16.7 XLIFF-Datei hochladen und einspielen
395
16.8 Sprache wechseln
396
16.9 Dynamische Übersetzungen
398
16.10 Statische Wertelisten
399
16.11 Zusammenfassung
399
17 Deployment
400
17.1 Export und Import
400
17.1.1 Export
400
17.1.2 Import
402
17.2 Anwendungspakete (Packaged Applications)
403
17.2.1 Abhängige Objekte ermitteln
404
17.2.2 DDL-Installationsskripte erstellen
404
17.2.3 Unterstützte Objekte
405
17.2.4 Anwendung exportieren
406
17.2.5 Probleme beim Deployment
407
17.3 Migration
407
17.4 Zusammenfassung
408
18 Anhang
410
18.1 Datenmodell Aufgabenverwaltung
410
18.1.1 Die Aufgabenverwaltung
411
18.1.2 Die Projektverwaltung
411
18.2 Anwendungen
412
18.2.1 Die Aufgabenverwaltung
412
18.2.2 Die Projektverwaltung
413
Index
416
© 2009-2024 ciando GmbH