Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
1 Einführung
21
1.1 Für wen ist dieses Buch geschrieben?
25
1.2 Der Aufbau des Buches
26
1.2.1 Teil I: Die Basics
26
1.2.2 Teil II: APEX im Detail
28
1.2.3 Teil III: Fortgeschrittene APEX-Konzepte
30
1.2.4 Anhang
32
1.2.5 Anmerkung zur Formatierung
33
1.3 Danksagung
34
Teil I Die Basics
37
2 Grundlagen von APEX
39
2.1 Technische Rahmenbedingungen
39
2.1.1 Probleme von Webanwendungen
41
2.1.2 Technische Komponenten einer typischen Webanwendung
47
2.1.3 Bestehende Entwicklungsumgebungen
49
2.1.4 APEX als Lösungsansatz
50
2.2 Überblick über APEX
54
2.2.1 Allgemeiner Überblick
54
2.2.2 Workspaces
56
2.2.3 APEX-Anwendung
61
2.2.4 Seiten
63
2.2.5 Regionen, Items und Schaltflächen
63
2.2.6 Zusammenfassung
66
3 Eine Websheet-Anwendung erstellen
67
3.1 Übersicht über Websheet-Anwendungen
68
3.1.1 Bedienung einer Websheet-Anwendung
68
3.2 Mitgelieferte Websheet-Anwendungen
70
3.3 Websheet-Eigenschaften
71
3.3.1 Websheet
71
3.3.2 Details/Logo
72
3.3.3 Stil
72
3.3.4 Authentifizierung
72
3.3.5 Autorisierung
72
3.3.6 SQL/Vorgeschlagene Objekte
73
3.4 Bestandteile einer Websheet-Anwendung
73
3.4.1 Datenraster / Tabellendaten
73
3.4.2 Seiten
74
3.4.3 Abschnitte
75
3.4.4 Verweise
75
3.4.5 Anmerkungen
76
3.5 Datenmodell
77
3.6 Verwaltung von Anwenderrechten
78
3.7 Beispiel: Anlage einer Websheet-Anwendung
79
3.7.1 Neuanlage eines Websheets aus der Entwicklungsumgebung
79
3.7.2 Datenraster erstellen
80
3.7.3 Eine einfache Seite mit Abschnitten hinzufügen
82
3.7.4 Einschränken der Benutzerrechte
83
3.8 Zusammenfassung und Bewertung
85
4 Überblick über die Entwicklungsumgebung
87
4.1 Einstiegsseite
88
4.2 Application Builder
90
4.3 Seitendesigner
91
4.3.1 Aufbau der Seite
92
4.3.2 Linker Seitenbereich
93
4.3.3 Galerie
94
4.3.4 Canvas
95
4.3.5 Attributbereich
97
4.4 Gemeinsame Komponenten
98
4.4.1 Bereich »Anwendungslogik«
100
4.4.2 Bereich »Sicherheit«
100
4.4.3 Bereich »Weitere Komponenten«
100
4.4.4 Bereich »Navigation«
101
4.4.5 Benutzeroberfläche
102
4.4.6 Bereich »Dateien«
102
4.4.7 Bereich »Datenreferenzen«
103
4.4.8 Bereich »Berichte«
103
4.4.9 Bereich »Globalization«
103
4.4.10 Seitenbereich »Aufgaben«
104
4.5 Administration des Workspaces
104
4.5.1 Service verwalten
105
4.5.2 Benutzer und Gruppen verwalten
106
4.5.3 Aktivität überwachen – Dashboards – Auslastungsbericht
108
4.6 SQL Workshop
108
4.6.1 Utilitys
109
4.6.2 RESTful Services
111
4.7 Team Development und mitgelieferte Anwendungen
111
4.8 Zusammenfassung
112
5 Eine einfache APEX-Anwendung
115
5.1 Übersicht über die Anwendung
115
5.2 Rendern einer APEX-Seite
120
5.2.1 Pre-Rendering – »Vor Header«
120
5.2.2 Pre-Rendering – »Nach Header« und »Vor Regionen«
122
5.2.3 Regionen
123
5.2.4 Seitenelemente
125
5.2.5 Post-Rendering
126
5.2.6 Dynamic Actions
126
5.2.7 Zusammenfassung
127
5.3 Verarbeitung von Benutzereingaben
127
5.3.1 Rendern einer Formularseite
127
5.3.2 Daten für ein Formular lesen: der Fetch Row-Prozess
128
5.3.3 Verarbeitung der Seite
132
5.3.4 Was passiert in der Datenbank?
136
5.3.5 Zusammenfassung
140
5.4 Verschiedene Regionstypen
142
5.4.1 Berichtsregionen
142
5.4.2 Grafikregionen
144
5.4.3 Kalenderregion
144
5.4.4 Listenregionen
145
5.4.5 Assistenten
146
5.5 Zusammenfassung
147
6 Eine einfache Datenbankanwendung erstellen
149
6.1 Vorbereitung und Datenmodell
149
6.2 Anlage der Anwendung
152
6.3 Eine Berichtsseite anlegen
156
6.4 Startseite editieren
164
6.5 Eine Formularseite anlegen
168
6.6 Mit gemeinsamen Komponenten arbeiten
171
6.7 Anwendungsseite validieren
174
6.8 Eine Dynamic Action einfügen
175
6.9 Berechnungen einfügen
176
6.10 Validierungen einfügen
178
6.11 Einen Bericht editieren und filtern
184
6.12 Eine Geschäftsgrafik einfügen
189
6.13 Zusammenfassung
190
Teil II APEX im Detail
193
7 APEX-Anwendungen
195
7.1 Anwendungseigenschaften
196
7.1.1 Tabulator »Definition«
197
7.1.2 Tabulator »Sicherheit«
206
7.1.3 Tabulator »Globalization«
211
7.1.4 Tabulator »Benutzeroberfläche«
212
7.2 Verwendung von Anwendungen
219
8 Anwendungsseiten
223
8.1 Leere Seite
223
8.1.1 Bereich »ID«
224
8.1.2 Bereich »Darstellung«
228
8.1.3 Bereiche »Navigationsmenü«, »Navigation«, »JavaScript«, »CSS« und »HTML-Header«
230
8.1.4 Bereich »Header und Footer«
231
8.1.5 Bereiche »Schreibgeschützt« und »Sicherheit«
231
8.1.6 Bereich »Erweitert«
233
8.1.7 Bereiche »Servercache« und »Konfiguration«
234
8.1.8 Bereich »Fehlerbehandlung«
235
8.1.9 Bereiche »Hilfe« und »Kommentare«
236
8.2 Anmeldeseite
237
8.3 Globale Seite
238
8.4 Formular
240
8.4.1 Option »Bericht mit Formular basierend auf Tabelle«
241
8.4.2 Option »Editierbares interaktives Grid«
241
8.4.3 Option »Master/Detail (1 Seite/2 Seiten)«
242
8.4.4 Option »Formular basierend auf Tabelle«
243
8.4.5 Option »Formular basierend auf Prozedur«
243
8.4.6 Option »Formular basierend auf SQL-Abfrage«
244
8.4.7 Option »Formular basierend auf Web Service«
244
8.5 Assistent
244
8.5.1 Assistentenseite »Seiten«
245
8.5.2 Assistentenseite »Navigationsmenü«
245
8.5.3 Assistentenseite »Seitenattribute«
246
8.5.4 Eingaben von Assistenten verarbeiten
249
8.6 Laden von Daten
250
8.6.1 Assistentenseite »Data Load-Tabelle«
251
8.6.2 Assistentenseite »Transformationsregeln«
251
8.6.3 Assistentenseite »Tabellen-Lookups«
252
8.6.4 Assistentenseite »Seitenattribute«
253
8.6.5 Assistentenseite »Navigationsmenü«
253
8.6.6 Assistentenseite »Schaltflächen und Verzweigungen«
253
8.6.7 Bedienung des Datenlade-Assistenten
254
8.7 Zugriffskontrolle
256
8.7.1 Datenbankobjekte
257
8.7.2 Seitenelemente
258
8.7.3 Gemeinsame Komponenten
259
8.8 Feedbackseite
262
8.8.1 Feedbackseite erstellen
263
8.8.2 Review der erstellten Seitenelemente
264
8.8.3 Verwendung von Feedback
266
8.9 Modale Seiten
267
9 Regionen
269
9.1 Regionstypen »Statischer Inhalt«, »Dynamischer PL/SQL-Inhalt« und »URL«
270
9.1.1 Bereiche »ID« und »Quelle«
270
9.1.2 Bereich »Layout«
272
9.1.3 Bereich »Darstellung«
273
9.1.4 Bereich »Erweitert«
278
9.1.5 Bereich »Header und Footer«
280
9.1.6 Bereiche »Serverseitige Bedingung« und »Schreibgeschützt«
281
9.1.7 Bereiche »Sicherheit«, »Konfiguration« und »Servercache«
285
9.1.8 Bereich »Anpassung«
285
9.2 Grid Layout
287
9.2.1 Einstieg: Anordnung von Regionen auf der Seite
287
9.2.2 Fortgeschrittene Techniken des Regionslayouts
291
9.2.3 Responsive Design
293
9.3 Regionstyp »Liste«
294
9.3.1 Beispiel: Liste für Anwendungsbereiche
295
9.3.2 Übersicht über die verfügbaren Listentemplates
299
9.4 Regionstyp »Baum«
300
9.5 Tabulator-Regionen
304
9.6 Regionstyp »Auswahl Regionsanzeige«
306
9.7 Regionstyp »Hilfetext«
307
10 Seitenelemente und Schaltflächen
315
10.1 Elementtyp »Nur anzeigen«
315
10.1.1 Bereich »Einstellungen«
316
10.1.2 Bereich »Layout«
317
10.1.3 Bereiche »Darstellung« und »Werteliste«
319
10.1.4 Bereich »Erweitert«
320
10.1.5 Bereich »Quelle«
321
10.1.6 Bereich »Standard«
328
10.1.7 Bereiche »Serverseitige Bedingung« und »Schreibgeschützt«
329
10.1.8 Bereich »Sicherheit«
331
10.1.9 Bereiche »Konfiguration«, »Hilfe«, »Kommentare«
333
10.2 Elementtypen zur Texterfassung
334
10.2.1 Elementtypen »Textfeld« und »Kennwort«
334
10.2.2 Elementtypen »Textbereich« und »Rich Text-Editor«
337
10.3 Elementtypen, die auf Wertelisten basieren
339
10.3.1 Elementtypen »Auswahlliste«, »Listen-Manager«, »Popup-Werteliste« und »Wechseln«
342
10.3.2 Elementtypen »Kontrollkästchen«, »Optionsgruppe« und »Shuttle«
346
10.3.3 Elementtyp »Textfeld mit automatisch vervollständigen«
350
10.4 Sonstige Elementtypen
353
10.4.1 Elementtyp »Datumsauswahl«
353
10.4.2 Elementtyp »Farbauswahl«
355
10.4.3 Elementtyp »Datei durchsuchen…«
356
10.4.4 Elementtyp »Ausgeblendet«
359
10.5 Schaltflächen
361
10.5.1 Positionierung von Schaltflächen
361
10.5.2 Darstellungsoptionen
362
10.5.3 Funktionale Attribute
364
11 Seitenprozesse
367
11.1 Berechnungen
368
11.2 Validierungen
370
11.3 Verzweigungen
372
11.4 Prozesse
375
11.4.1 Prozesstypen »Automatische Zeilenverarbeitung« und »Automatischer Zeilenabruf«
375
11.4.2 Prozesstyp »Formularseitenumbruch«
377
11.4.3 Prozesstyp »PL/SQL-Code«
382
11.4.4 Sonstige Seitenprozesse
393
12 Berichte
397
12.1 Klassische Berichte
397
12.1.1 Allgemeine Regionsattribute
398
12.1.2 Spezielle Regionsattribute
400
12.1.3 Templates des Bereichs »Darstellung«
402
12.1.4 Klassischer Bericht (basierend auf Funktion)
412
12.2 Interaktives Grid
415
12.2.1 Grundfunktionen des interaktiven Grids
416
12.2.2 Optionen für den Endbenutzer
417
12.2.3 Sichten des interaktiven Grids
420
12.2.4 Optionen des interaktiven Grids
426
12.2.5 Erweiterte Anwendungen des interaktiven Grids
434
12.2.6 Die Spalten des interaktiven Grids
439
12.2.7 Unterschiede zwischen »interaktivem Grid« und »interaktivem Bericht«
440
13 Formulare
443
13.1 Formular für eine Tabellenzeile
443
13.1.1 Verarbeitung komplexer Formulare
446
13.1.2 Alternativen zur Verarbeitung komplexer Formulare
451
13.1.3 Fazit: Komplexe Formulare verarbeiten
454
13.1.4 Beispiel aus einem Projekt
455
13.2 Formular für tabellarische Bearbeitung
458
13.2.1 Ein Beispielformular
460
13.2.2 Überblick über die Seitenelemente
461
13.2.3 Attribute des editierbaren Grids
462
13.2.4 Zusätzliche Spaltenattribute
465
13.2.5 Varianten der Eingabe in editierbare Grids
467
13.2.6 Manuelle Verarbeitung der Daten eines editierbaren Grids
471
13.3 Arbeiten mit der Collection-API
476
13.3.1 Eine Collection erzeugen
477
13.3.2 In die Collection schreiben
478
13.3.3 Löschen von Collections
480
13.3.4 Weitere Methoden
480
13.3.5 Anwendungsbeispiel
481
13.4 Anwendungsbeispiel: Status Chart Toolkit
485
13.4.1 Das Problem und der Lösungsansatz
486
13.4.2 SCT im Einsatz
491
13.4.3 Verwendung des Plugins
497
13.4.4 Zusammenfassung und Bewertung
499
14 Grafiken und Charts
503
14.1 Technischer Hintergrund
503
14.2 Erstellung von Grafiken in APEX
505
14.2.1 Regionstyp »Diagramm«
507
14.2.2 Datenreihen eines Diagramms
507
14.2.3 Diagrammachsen
511
14.2.4 Spezielle Regionsattribute
513
14.3 Weitere Diagrammtypen
517
14.3.1 Gantt-Charts
517
14.3.2 Dashboards
524
14.3.3 Kombinationsdiagramme
525
14.4 JET-Charts und JavaScript
525
14.5 Migration älterer Grafiken zu JET-Charts
528
14.6 Mitgelieferte Grafik-Plugins
528
15 Dynamische Aktionen
531
15.1 Verwendung von dynamischen Aktionen
532
15.1.1 Was sind dynamische Aktionen?
532
15.1.2 Ereignisse und Typen dynamischer Aktionen
535
15.1.3 Aktionen
541
15.2 JavaScript und jQuery
551
15.2.1 Einführung JavaScript
551
15.2.2 Einführung in jQuery
566
15.2.3 Wo wird JavaScript in APEX eingesetzt?
569
15.3 Zusammenfassung: JavaScript und APEX
577
Teil III Fortgeschrittene APEX-Konzepte
579
16 Plugins
581
16.1 Vor- und Nachteile von Plugins
581
16.1.1 Was ist ein Plugin?
581
16.1.2 Warnhinweise vor Plugins
582
16.1.3 Empfehlungen für Plugins
584
16.1.4 Arten von Plugins
584
16.2 Arbeitsweise von Plugins
586
16.2.1 Initialisierung
586
16.2.2 Verwendung des Plugins auf der Seite
587
16.2.3 Validierungsphase, Aktualisierungsphase
588
16.3 Die Erfassungsseiten für Plugins
589
16.3.1 Verwaltungsseite eines Plugins
589
16.3.2 Benutzerdefinierte Attribute verwalten
605
16.4 Ein Item-Plugin erstellen
608
16.4.1 Konzeption des Plugins
608
16.4.2 Anlegen der Metadaten
609
16.4.3 Implementierung des PL/SQL-Packages
611
16.4.4 Implementierung der JavaScript-Logik
621
16.5 Ein Regions-Plugin erstellen
629
16.5.1 Review der Metadaten und des PL/SQL-Codes
629
16.5.2 Review des JavaScript-Codes
636
16.6 Plugins ex- und importieren
640
16.6.1 Plugins exportieren
640
16.6.2 Plugins importieren
641
16.6.3 Plugins subskribieren
641
16.7 Zusammenfassung
642
17 Webservices
645
17.1 Was ist ein Webservice?
645
17.1.1 SOAP
646
17.1.2 REST
647
17.2 Webservices in der Datenbank über ORDS
649
17.3 REST-Webservices in APEX
656
17.3.1 Applikationsunabhängige Webservice-Referenzen
657
17.3.2 Darstellung eines Berichts
666
17.4 Bewertung: REST-Webservices
667
18 Fehlerbehandlung, Code Review und Debugging
669
18.1 Fehlerbehandlung in APEX
669
18.1.1 APEX_ERROR
670
18.1.2 Generisches Logging-Werkzeug
675
18.1.3 apex.message
681
18.2 Debugging
683
18.2.1 APEX_DEBUG
683
18.2.2 Debugging von Dynamic Actions und Plugins
686
18.2.3 Weiter gehendes Logging
687
18.2.4 Remote Debugging mit SQL Developer
688
18.2.5 Debugging ohne APEX
692
18.3 Code Review
693
18.3.1 Suche
694
18.3.2 Advisor
695
18.3.3 Anwendung »Application Standards Tracker«
696
18.4 Automatisiertes Testen
699
18.4.1 Test von PL/SQL-Code
699
18.4.2 Test von APEX-Weboberflächen
700
19 Entwicklung komplexer APEX-Anwendungen
703
19.1 Organisation innerhalb der Datenbank
704
19.1.1 Das »Thick Database«-Paradigma
705
19.1.2 Trennung von Geschäfts- und Darstellungslogik
708
19.1.3 Anforderungen an die Datenmodellierung
711
19.1.4 Schemata und Workspaces
719
19.1.5 APEX im internationalen Umfeld
722
19.2 Deployment
723
19.2.1 Workspace
728
19.2.2 Anwendungen
733
19.2.3 Anwendungskomponenten
736
19.2.4 Unterstützende Objekte
736
19.2.5 Begleitende Dateien
737
19.3 Entwicklung im Team
739
19.3.1 Aufteilung des Codes
740
19.3.2 Team Development
742
20 Mobile Entwicklung mit APEX
745
20.1 Berücksichtigung vieler verschiedener Endgeräte
746
20.2 Die Auswahl des richtigen Themes
746
20.2.1 Das Universal Theme
747
20.2.2 jQuery Mobile
749
20.3 Erstellung einer mobilen Anwendung
749
20.3.1 Erstellung einer neuen Anwendung für mobile Endgeräte
750
20.3.2 Hinzufügen einer weiteren Benutzeroberfläche für eine bestehende Desktop-Anwendung
751
20.4 Dynamische Aktionen für mobile Endgeräte
753
20.5 Der jQuery Mobile ThemeRoller
756
20.6 Tipps für die Entwicklung mobiler Anwendungen
758
20.6.1 Google Chrome Developer Tools und der Firefox Inspector
758
20.6.2 Die Zukunft der mobilen Entwicklung mit jQuery Mobile
760
20.7 Mitgelieferte Anwendungen
761
21 Authentifizierung und Autorisierung
763
21.1 Authentifizierung
763
21.1.1 Mitgelieferte Authentifizierungsverfahren
764
21.1.2 Wie funktioniert eine Authentifizierung in APEX?
766
21.1.3 APEX Authentication API
768
21.1.4 Erstellung eines eigenen Authentifizierungsverfahrens
769
21.1.5 Single Sign-On-Verfahren
773
21.2 Autorisierung
774
21.3 APEX-Anwendung zur Benutzerverwaltung
775
21.3.1 Datenmodell
776
21.3.2 Anwendungslogik
778
21.3.3 APEX-Anwendung
779
21.3.4 Beispiel für die Verwendung
781
22 APEX-Administration
783
22.1 Bereich »Anforderungen verwalten«
784
22.2 Bereich »Instanz verwalten«
786
22.2.1 Bereich »Instanzeinstellungen«
786
22.2.2 Bereich »Gemeinsame Komponenten verwalten«
790
22.2.3 Bereich »Meldungen«
790
22.2.4 Bereiche »Metadaten verwalten« und »Logs und Dateien verwalten«
791
22.3 Bereich »Workspaces verwalten«
792
22.3.1 Bereich »Workspace-Aktionen«
793
22.3.2 Bereich »Anwendungen verwalten«
797
22.3.3 Bereiche »Exportieren/Importieren« und »Workspace-Berichte«
798
22.4 Bereich »Aktivität überwachen«
801
23 Sicherheit
803
23.1 Arbeitsweise von APEX
803
23.1.1 Zugriff auf APEX
803
23.1.2 Schemata von APEX
804
23.1.3 Prozeduren
805
23.1.4 Session und Sessionstatus
807
23.2 Administration von Sicherheitseinstellungen
809
23.2.1 Grundlegende Entscheidungen bei der Installation
809
23.2.2 Sicherheitseinstellungen im Bereich APEX-Administration
809
23.2.3 Sicherheitseinstellungen auf Workspace-Ebene
812
23.2.4 Sicherheit auf Anwendungsebene
813
23.3 Zusammenfassung
822
24 Internationalisierung
823
24.1 Eine Anwendungssprache auswählen
823
24.2 Eine Anwendung übersetzen
825
24.2.1 Bereich »Anwendungssprachen definieren«
826
24.2.2 Bereich »Übersetzbaren Text vordefinieren«
827
24.2.3 Bereich »XLIFF-Übersetzungsdateien herunterladen«
828
24.2.4 Bereich »Text übersetzen«
830
24.2.5 Bereich »XLIFF-Übersetzungsdateien anwenden«
830
24.2.6 Bereich »Übersetzte Anwendungen veröffentlichen«
830
24.3 Weitere Werkzeuge zur Übersetzung
831
24.3.1 Bereich »Textnachrichten«
831
24.3.2 Bereich »Dynamische Übersetzungen«
833
24.3.3 Bereich »Übersetzungs-Repository«
834
24.4 Sonstige Herausforderungen der Internationalisierung
834
24.4.1 Stammdaten der Datenbank
834
24.4.2 Umgang mit Datum und Zeit
835
24.4.3 Kulturelle und gesetzliche Unterschiede
836
24.4.4 Icons und Schreibrichtung
837
Anhang
839
A Installation der Datenbank
841
A.1 Aufsetzen einer Beispieldatenbank
841
A.1.1 Eine Datenbank herunterladen und installieren
841
A.2 SQL Developer
852
A.2.1 SQL Developer herunterladen und installieren
852
A.2.2 Übersicht SQL Developer
853
A.2.3 Eine Datenbankverbindung aufbauen
853
A.2.4 SQL-Anweisungen ausführen
856
B Installation von APEX
859
B.1 Installation von Tomcat
859
B.2 Installation von ORDS
860
B.3 Entfernen einer existierenden APEX-Installation
863
B.4 Installation einer neuen APEX-Version
864
B.4.1 Notwendige Vorarbeiten
865
B.4.2 Vollständige Installation von APEX
865
B.4.3 Installation von APEX im Read Only-Modus
866
B.4.4 Nacharbeiten nach der Installation
867
B.4.5 Installation der CSS-, JavaScript- und Bilddateien
868
B.5 Installation des APEX-Buch-Workspace
868
B.5.1 Installation des Datenbankschemas
868
B.5.2 Installation des Workspaces
869
C Liste der Navigationskürzel
871
D Glossar
875
Index
885