Inhaltsverzeichnis „Oracle Application Express in der...
Transcript of Inhaltsverzeichnis „Oracle Application Express in der...
Inhaltsverzeichnis zu
„Oracle Application Express in der Praxis“ von Ralf Beckmann
ISBN (Buch): 978-3-446-43896-5 ISBN (E-Book): 978-3-446-43913-9
Weitere Informationen und Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-43896-5
sowie im Buchhandel
© Carl Hanser Verlag München
Inhalt
Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVII
1 Was ist APEX? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 Aufbau und Funktionsweise von APEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.2 APEXEngine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.3 Embedded PL/SQL Gateway (EPG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.4 Oracle HTTP Server (OHS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.5 APEXListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.1.6 Workspaces und Datenbankschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 Für Kurzentschlossene . . . apex.oracle.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3 Installation einer Oracle Express Edition mit APEX 4.2 . . . . . . . . . . . . . . . . . . . . . 10
1.3.1 Download von der OracleHomepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3.2 Installation der Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3.3 Upgrade auf APEX 4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.4 Bilder installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3.5 Passwort des ADMINAccounts ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3.6 Sprache der Entwicklungsumgebung auf Deutsch anpassen . . . . . . . . . . . 141.3.7 HTTPPort ändern/externen Zugriff erlauben . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Anmelden an APEX – Admin und Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.4.1 Einen Workspace anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.4.2 Passwortrichtlinien ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.4.3 Einen Anwendungsentwickler anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.5 APEXWerkzeuge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.5.1 Die Entwicklungsumgebung starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.5.2 Der Application Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.5.3 Der SQL Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.6 SQL Developer einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.7 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
VI Inhalt
2 Eine Anwendung erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.1 Bestandteile einer APEXAnwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.1 Seiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.1.2 Regionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.1.3 Seitenelemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2 Themes und Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.3 Der Entwicklungsprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.4 Fallbeispiel: die Aufgabenverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382.5 Objektbrowser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.5.1 Starten des Objektbrowsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.5.2 Erstellung einer Tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6 Erstellen einer APEXAnwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442.7 Starten und Bedienung einer APEXAnwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.7.1 Starten einer Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.7.2 Die Aufgabenverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.7.3 Ergebnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.8 Seiten bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.8.1 Application Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.8.2 Seitendefinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552.8.3 Die Entwicklertoolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.8.4 Eigenschaften bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.9 SessionState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572.9.1 Serverseitiger Session State – Persisted Session State . . . . . . . . . . . . . . . . 592.9.2 Clientseitiger Session State – IN MEMORY Session State (IMSS) . . . . . . . 59
2.10 Funktionsweise einer Seite – Insert und Update . . . . . . . . . . . . . . . . . . . . . . . . . . . 602.10.1 Seitenwiedergabe – Page Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602.10.2 Seitenverarbeitung – Page Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632.10.3 Bestandteile der Seite (2)Aufgaben bearbeiten . . . . . . . . . . . . . . . . . . . . . . 642.10.4 Eine neue Aufgabe anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662.10.5 Öffnen und Ändern einer Aufgabe – Parameterübergabe per Link . . . . . . 71
2.11 Konkurrierende Zugriffe – Mehrbenutzerfähigkeit . . . . . . . . . . . . . . . . . . . . . . . . . 762.12 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3 Seiten (Pages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793.1 Beschriftungen anpassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.1.1 Beschriftungen des Interaktiven Grid anpassen . . . . . . . . . . . . . . . . . . . . . . 803.1.2 ItemBeschriftungen ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.1.3 Regionstitel anpassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.2 ItemTypen ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.3 Berechnung (computation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.3.1 Was sind Berechnungen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.3.2 Der Änderungszeitpunkt und der letzte Bearbeiter . . . . . . . . . . . . . . . . . . 883.3.3 Items ausblenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Inhalt VII
3.4 PL/SQLProzess erstellen – Audit Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893.4.1 Was sind Prozesse? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893.4.2 Änderungshistorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903.4.3 Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913.4.4 Referenzieren von ItemWerten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913.4.5 Insert Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923.4.6 Prozess erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.5 Validierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943.5.1 Was sind Validierungen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943.5.2 Pflichtfelder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953.5.3 Validierung mittels PL/SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973.5.4 Abhängigkeit zweier Items voneinander . . . . . . . . . . . . . . . . . . . . . . . . . . . 993.5.5 Ausgabemöglichkeit: Inline mit Feld und in Benachrichtigung . . . . . . . . . 102
3.6 Standardwerte festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043.7 Bedingungen (Conditions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1053.8 Kontextsensitive Hilfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073.9 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4 Wertelisten (List of Values) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094.1 Was sind Wertelisten? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094.2 Statische Wertelisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124.3 Selbstlernende dynamische Wertelisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154.4 Dynamische Wertelisten auf Basis einer LookupTabelle . . . . . . . . . . . . . . . . . . . . 116
4.4.1 LookupTabelle mit dem Objektbrowser erstellen . . . . . . . . . . . . . . . . . . . . 1174.4.2 ForeignKeyConstraint im Objektbrowser . . . . . . . . . . . . . . . . . . . . . . . . . . 1204.4.3 Joinen mit dem Querybuilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204.4.4 Datenquelle eines Seitenelements anpassen . . . . . . . . . . . . . . . . . . . . . . . . 1234.4.5 Klassischer Bericht mit Form erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254.4.6 Dynamische List of Values erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
4.5 Gespeicherte Wertelisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1304.5.1 Gemeinsame Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1304.5.2 Gemeinsame Wertelisten erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324.5.3 Werteliste konvertieren und verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.6 Generative Werteliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1344.6.1 Tabelle für externe Ansprechpartner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1354.6.2 Interaktives Grid mit Form erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1364.6.3 SelectStatements für externe Ansprechpartner . . . . . . . . . . . . . . . . . . . . . 1374.6.4 APEXViews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374.6.5 Kaskadierende LOV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394.6.6 Ergebnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
4.7 Quick Picks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1424.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
VIII Inhalt
5 Erweiterte Funktionalität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1455.1 Fallbeispiel: die Projektverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.1.1 Tabelle mit Unique Key Constraint erstellen . . . . . . . . . . . . . . . . . . . . . . . . 1465.1.2 Form zum Anlegen von Projekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1485.1.3 RichTextEditor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1505.1.4 LOVProjektleiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1515.1.5 Anwendung umbenennen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1525.1.6 Spalte und Items hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535.1.7 Interaktives Grid mit dem SQL Developer überarbeiten . . . . . . . . . . . . . . . 156
5.2 Seitenlayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1595.2.1 Anzeigepunkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1595.2.2 Verschachteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1625.2.3 Rasterlayout (Grid Layout) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1625.2.4 Seite „Projekte bearbeiten“ mit neuem Layout . . . . . . . . . . . . . . . . . . . . . . . 164
5.3 Bilder verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1675.3.1 Bilder verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1675.3.2 Bilder referenzieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1675.3.3 Anwendungslogo einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.4 Anhänge verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1705.4.1 Datenmodell erweitern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1705.4.2 Anwendung erweitern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1715.4.3 DownloadLink im Interaktiven Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
5.5 Daten importieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1755.5.1 DataLoadWizard erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1755.5.2 ImageButton erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1775.5.3 Daten hochladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
5.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1816.1 Was sind Navigationselemente? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1816.2 Registerkarten und Registerkarten gruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
6.2.1 Ein und zweistufige Menüs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1836.2.2 Menüstruktur festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846.2.3 Seitenwiedergabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856.2.4 Neue Registerkarte bei der Erstellung einer Seite . . . . . . . . . . . . . . . . . . . . 1876.2.5 Registerkarten und Registerkartengruppen bearbeiten . . . . . . . . . . . . . . . 188
6.3 Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1926.3.1 Was sind Listen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1926.3.2 Listen erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1936.3.3 Listen verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
6.4 Navigationspfad (Breadcrumps) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1956.4.1 Was sind Navigationspfade? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1956.4.2 Erstellen von Navigationspfaden über die gemeinsamen Komponenten . . . 1966.4.3 Zuordnen von Navigationspfaden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Inhalt IX
6.5 Navigationsleiste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1986.5.1 Feedback einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
6.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
7 Interaktives Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2037.1 Suchen, filtern und sortieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
7.1.1 Freitextfilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2047.1.2 Nach Spalteninhalten filtern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2057.1.3 Sortieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
7.2 Spalten ein und ausblenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087.3 Berechnete Spalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097.4 Markierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2097.5 Kontrollgruppenwechsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2117.6 Aggregation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2127.7 Speichern von Berichtsansichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
7.7.1 Eigene offene Punkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2137.7.2 Offene Punkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2147.7.3 Aufgabendarstellung nach Projekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2157.7.4 Berichtsansichten administrieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
7.8 Filter per Link setzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2177.9 Charts: grafische Auswertungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2207.10 Exportieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2217.11 Senden als EMail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
7.11.1 Access Control List (ACL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2227.11.2 Mails versenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2237.11.3 Subscription – Bericht per Mail versenden . . . . . . . . . . . . . . . . . . . . . . . 225
7.12 Optionen des Interaktiven Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2277.13 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
8 Diagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2298.1 Diagrammtypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2298.2 RingDiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
8.2.1 SelectAnweisung erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308.2.2 RingDiagramm einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318.2.3 Filter einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
8.3 GanttDiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368.3.1 Datenmodell und Anwendung erweitern . . . . . . . . . . . . . . . . . . . . . . . . . 2368.3.2 Datumsfeld einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368.3.3 ParentChildWerteliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378.3.4 Hierarchische SelectStatements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2388.3.5 GanttDiagramm einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2448.3.6 Rücksprung zur Ausgangsseite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
8.4 Browserabhängigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
X Inhalt
9 Weitere Regionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519.1 Baumstruktur: Projektstrukturbaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519.2 Kalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559.3 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
10 Dynamische Aktionen (Dynamic Actions) . . . . . . . . . . . . . . . . . . . 25910.1 Was sind Dynamische Aktionen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25910.2 Seitenelemente ein und ausblenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26110.3 PL/SQLAusführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26310.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
11 Fehlersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26711.1 APEXAdvisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26811.2 Datenbankobjektabhängigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27011.3 DebugMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
11.3.1 Debugging aktivieren und anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27111.3.2 Eigene DebugLogEinträge hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . . 273
11.4 SQL Tracing und TKPROF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27611.5 BrowserFehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27811.6 Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28011.7 Bekannte Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28111.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
12 Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28312.1 Minimalprinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28412.2 Angriffen entgegenwirken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
12.2.1 APEX härten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28412.2.2 URL Rewriting/Tampering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29012.3.3 CrossSite Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29212.2.4 SQLInjection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29312.2.5 Brute Force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
12.3 APEXSicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29512.3.1 Authentifizierungsschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29512.3.2 APEXBenutzerverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29612.3.3 Autorisierungsschema – funktionale Berechtigungen . . . . . . . . . . . . . . 29712.3.4 Sichtrechte – Anforderung an das Datenmodell . . . . . . . . . . . . . . . . . . . 302
12.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
13 Plug-ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30713.1 Was sind Plugins? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
13.1.1 Neue Plugins erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30813.1.2 Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30913.1.3 Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Inhalt XI
13.1.4 Dateien hochladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31113.1.5 Debuggen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
13.2 ElementPlugin (Item Type Plugin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31313.2.1 Das Plugin LookUp erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31313.2.2 Plugin LookUp verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
13.3 RegionPlugin (Region Type Plugin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31713.3.1 Datenquelle für das SitemapPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31713.3.2 CSS und HTML für das SitemapPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . 31913.3.3 Plugin Sitemap erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32213.3.4 Plugin Sitemap verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
13.4 ProzessPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32613.4.1 Execute Immediate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32613.4.2 Plugin Audit erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32613.4.3 Plugin Audit verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
13.5 Plugins exportieren und importieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33113.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
14 Mobile Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33314.1 Was sind mobile APEXAnwendungen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33314.2 Responsive DesignTheme 25\26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
14.2.1 Rasterlayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33414.2.2 MediaQueries und CSS3Hilfsklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
14.3 Fallbeispiel: mobile Aufwandserfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33814.3.1 Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33814.3.2 Die Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
14.4 Erstellen einer mobilen Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33914.5 Der Entwicklungsprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
14.5.1 Anwendung starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34114.5.2 SessionState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34214.5.3 Debuggen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
14.6 Bestandteile einer mobilen Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34514.6.1 Seiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34514.6.2 Regionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34514.6.3 Seitenelemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
14.7 Mobile WebApp: Time Sheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34614.7.1 Aufgabenübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34614.7.2 Aufgaben fertig melden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34714.7.3 Listenansicht optimieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34914.7.4 Form Aufgaben abschließen optimieren . . . . . . . . . . . . . . . . . . . . . . . . . . 35114.7.5 Menü erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35214.7.6 Zeiterfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
14.8 Entwicklungs und Testumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35614.9 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
XII Inhalt
15 Websheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35915.1 Was sind Websheets? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35915.2 Abschnitte (Sections) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36115.3 Datenraster (Data Grid) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36115.4 Erstellen einer WebsheetAnwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
15.4.1 Fallbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36215.4.2 Anwendung erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36215.4.3 Neue Seite – die ProjektNews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36315.4.4 Bilder einbetten – Markups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36515.4.5 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36715.4.6 Neues Datenraster: die Kostenübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . 368
15.5 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37115.5.1 Anwendungseigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
15.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
16 Mehrsprachige APEX-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . 37316.1 Vorgehen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37316.2 GlobalizationAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37416.3 Anwendung übersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37516.4 Primäranwendung einer übersetzten Anwendung zuordnen . . . . . . . . . . . . . . . . 37616.5 Übersetzte Texte in Übersetzungs Repository vordefinieren . . . . . . . . . . . . . . . . 37616.6 XLIFFÜbersetzungsdatei aus dem ÜbersetzungsRepository herunterladen . . . . 37716.7 XLIFFDatei hochladen und einspielen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37816.8 Sprache wechseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37916.9 Dynamische Übersetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38116.10 Statische Wertelisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38216.11 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
17 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38317.1 Export und Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
17.1.1 Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38317.1.2 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
17.2 Anwendungspakete (Packaged Applications) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38617.2.1 Abhängige Objekte ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38717.2.2 DDLInstallationsskripte erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38717.2.3 Unterstützte Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38817.2.4 Anwendung exportieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38917.2.5 Probleme beim Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
17.3 Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39017.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Inhalt XIII
18 Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39318.1 Datenmodell Aufgabenverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
18.1.1 Die Aufgabenverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39418.1.2 Die Projektverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
18.2 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39518.2.1 Die Aufgabenverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39518.2.2 Die Projektverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399