E-Book, Deutsch, 917 Seiten
Reihe: Rheinwerk Computing
Sieben Oracle APEX
2. Auflage 2023
ISBN: 978-3-8362-8995-5
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Das umfassende Handbuch
E-Book, Deutsch, 917 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-8362-8995-5
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
- Grundlagen, Praxis, Administration
- Für Einsteiger, Umsteiger und Fortgeschrittene mit PL/SQL-Kenntnissen
- Datenbankanwendungen, Dynamic Actions, Plugins, Deployment, Smartphone-Web-Apps
Jürgen Sieben macht Sie in diesem Handbuch mit Oracle APEX vertraut und zeigt Ihnen ausführlich, wie Sie darin unternehmenstaugliche, webbasierte Datenbankanwendungen entwickeln – fachlich anspruchsvoll und didaktisch routiniert. Kenntnisse in SQL und PL/SQL werden vorausgesetzt. Inkl. Installations- und Upgrade-Anleitung.
Aus dem Inhalt:
- Listener-Konzepte im Vergleich
- Integration eines Connection Pools
- Pages, Regions, Items, Seitenprozesse
- Formulare, Reports, Dynamic Actions
- Shared Components
- Themes, Templates, Plugins
- Autorisierung und Authentifizierung
- Erstellung mobiler Applikationen
- Optische Darstellung anpassen
- Internationalisierung
- Fehlerbehandlung, Code-Review, Debugging
- Entwicklung im Team und Deployment
Autoren/Hrsg.
Weitere Infos & Material
Materialien zum Buch ... 20
1. Einführung ... 21
1.1 ... Für wen ist dieses Buch geschrieben? ... 24
1.2 ... Der Aufbau des Buches ... 25
1.3 ... Vorwort zur zweiten Auflage ... 34
1.4 ... Danksagung ... 35
TEIL I No Code ... 37
2. Grundlagen von APEX ... 39
2.1 ... Was APEX anders macht ... 39
2.2 ... Überblick über APEX ... 41
3. Überblick über die Entwicklungsumgebung ... 51
3.1 ... Einstiegsseite ... 52
3.2 ... Application Builder ... 53
3.3 ... Seitendesigner ... 58
3.4 ... Gemeinsame Komponenten ... 68
3.5 ... SQL Workshop ... 73
3.6 ... Team Development und Galerie ... 76
3.7 ... Zusammenfassung ... 77
4. Eine einfache APEX-Anwendung ... 79
4.1 ... Übersicht über die Anwendung ... 79
4.2 ... Rendern einer APEX-Seite ... 83
4.3 ... Verarbeitung von Benutzereingaben ... 92
4.4 ... Verschiedene Regionstypen ... 101
4.5 ... Zusammenfassung ... 103
5. Eine einfache Datenbankanwendung erstellen ... 105
5.1 ... Vorbereitung und Datenmodell ... 105
5.2 ... Anlage der Anwendung ... 106
5.3 ... Anwendungseigenschaften ... 114
5.4 ... Eine Berichtsseite anlegen ... 116
5.5 ... Die Rolle von Aliasen ... 123
5.6 ... Startseite editieren ... 124
5.7 ... Eine Formularseite anlegen ... 129
5.8 ... Mit gemeinsamen Komponenten arbeiten ... 132
5.9 ... Eine Dynamic Action einfügen ... 137
5.10 ... Formular optisch kontrollieren ... 140
5.11 ... Berechnungen und Validierungen einfügen ... 145
5.12 ... Einen Bericht editieren und filtern ... 151
5.13 ... Eine Geschäftsgrafik einfügen ... 155
5.14 ... Zusammenfassung ... 156
6. Grundlegende APEX-Konzepte ... 159
6.1 ... Komponenten mit Daten versorgen ... 159
6.2 ... Das Layout kontrollieren ... 176
6.3 ... Darstellung der Komponenten steuern ... 185
6.4 ... Zwischen Anwendungsseiten navigieren ... 196
6.5 ... APEX-Komponenten konditional anzeigen ... 202
7. Features und Anwendungsseiten ... 213
7.1 ... Features ... 213
7.2 ... Anwendungsseiten ... 218
8. Berichte ... 243
8.1 ... Grundlegende Techniken ... 243
8.2 ... Interaktives Grid ... 258
8.3 ... Interaktive Berichte ... 276
8.4 ... Klassische Berichte ... 279
9. Facet-Suche, intelligente Filter und Karten ... 285
9.1 ... Facet-Suche ... 285
9.2 ... Intelligente Filter ... 301
9.3 ... Suchseite ... 304
9.4 ... Karten ... 304
9.5 ... Zentrales Sortieren und Suchen ... 313
10. Formulare ... 321
10.1 ... Formular-Region ... 322
10.2 ... Editierbare Grids ... 338
10.3 ... Master-Detail-Formular ... 346
11. Diagramme ... 351
11.1 ... Grundsätzliche Bedienung ... 352
11.2 ... Gantt-Diagramm ... 364
12. Kalender-Regionen ... 367
12.1 ... Grundlagen der Verwendung ... 367
12.2 ... Filterung eines Kalenders ... 371
12.3 ... Erweitere Parametrierung ... 371
12.4 ... Dynamische Aktionen ... 375
13. Maps ... 379
13.1 ... Regionstyp »Map« ... 380
13.2 ... Elementtyp »Karte anzeigen« ... 397
13.3 ... Elementtyp Geocode-Adresse ... 401
13.4 ... MiniMap-Widget ... 405
14. Dynamische Aktionen ... 411
14.1 ... Verwendung von dynamischen Aktionen ... 411
15. APEX auf mobilen Endgeräten ... 433
15.1 ... Grundlagen: responsive Eigenschaften des Universal Themes ... 434
15.2 ... Spezielle Komponenten für mobile Anwendungen ... 436
15.3 ... Progressive Web Applications (PWA) ... 441
16. Weitere Funktionsbereiche ... 445
16.1 ... E-Mail-Versand ... 445
16.2 ... Template-Direktiven ... 452
16.3 ... Erweiterte Parametrierung über JavaScript-Initialisierungscode ... 456
16.4 ... Automatisierungen ... 460
16.5 ... Workflows ... 464
TEIL II Low Code APEX ... 479
17. Technische Grundlagen ... 481
17.1 ... Technische Rahmenbedingungen ... 481
17.2 ... Technischer Ablauf ... 492
18. Integration serverseitigen Codes ... 501
18.1 ... DML-Operationen ... 502
18.2 ... PL/SQL in Berechnungen und Validierungen ... 511
18.3 ... Unterschiedliche Formen der PL/SQL-Integration ... 515
18.4 ... PL/SQL in dynamischen Aktionen ... 519
18.5 ... APEX PL/SQL-Packages ... 523
18.6 ... Arbeiten mit der Collection-API ... 532
19. Daten laden, exportieren und drucken ... 553
19.1 ... Regionsdaten drucken ... 553
19.2 ... Exportieren der Daten einer Region ... 557
19.3 ... Export beliebiger Daten ... 564
19.4 ... Verwendung der Export-API ohne APEX ... 570
19.5 ... Erweitertes Laden von Daten ... 576
20. Integration von JavaScript ... 583
20.1 ... JavaScript und jQuery ... 585
20.2 ... APEX-JavaScript-API ... 602
20.3 ... JavaScript verwenden ... 607
21. Fehlerbehandlung, Code Review und Debugging ... 623
21.1 ... Fehlerbehandlung in APEX ... 623
21.2 ... Debugging ... 637
21.3 ... Session Overrides ... 647
21.4 ... Code Review ... 649
21.5 ... Automatisiertes Testen ... 651
TEIL III Professional Use ... 655
22. APEX als Softwareentwicklungswerkzeug ... 657
22.1 ... Architektonische Anforderungen ... 658
22.2 ... Anforderungen an APEX-Anwendungen ... 679
22.3 ... Zuschnitt von Workspaces ... 684
22.4 ... Zuschnitt von APEX-Anwendungen ... 686
23. Plugins ... 691
23.1 ... Grundlagen von Plugins ... 691
23.2 ... Arbeitsweise von Plugins ... 695
23.3 ... Die Erfassungsseiten für Plugins ... 698
23.4 ... Ein Element-Plugin erstellen ... 715
23.5 ... Ein Regions-Regions-Plugin erstellen ... 736
23.6 ... Plugins ex- und importieren ... 743
23.7 ... Zusammenfassung ... 745
24. Kontrolle komplexer Anwendungen ... 747
24.1 ... Flows for APEX (F4A) ... 747
24.2 ... APEX Dynamic Controller (ADC) ... 757
24.3 ... Fazit ... 771
25. Webservices ... 773
25.1 ... Was ist ein Webservice? ... 773
25.2 ... Webservices in der Datenbank über ORDS ... 777
25.3 ... REST-Webservices in APEX ... 782
25.4 ... Webzugangsdaten ... 786
25.5 ... REST-fähiges SQL: Erweiterung ab Version 22.1 ... 794
25.6 ... Zusammenfassung ... 795
26. Authentifizierung und Autorisierung ... 797
26.1 ... Authentifizierung ... 797
26.2 ... Autorisierung ... 808
26.3 ... APEX-Anwendung zur Benutzerverwaltung ... 810
27. APEX-Administration ... 817
27.1 ... Bereich »Anforderungen verwalten« ... 818
27.2 ... Bereich »Instanz verwalten« ... 819
27.3 ... Bereich »Workspaces verwalten« ... 826
27.4 ... Bereich »Aktivität überwachen« ... 835
28. Sicherheit ... 837
28.1 ... Arbeitsweise von APEX ... 837
28.2 ... Administration von Sicherheitseinstellungen ... 842
28.3 ... Weiterführende Optionen ... 855
28.4 ... Zusammenfassung ... 856
29. Internationalisierung ... 857
29.1 ... Eine Anwendungssprache auswählen ... 857
29.2 ... Eine Anwendung übersetzen ... 859
29.3 ... Weitere Werkzeuge zur Übersetzung ... 865
29.4 ... Sonstige Herausforderungen der Internationalisierung ... 868
Anhang ... 873
A. Installation von APEX ... 875
B. Liste der Navigationskürzel ... 893
C. Glossar ... 897
Index ... 907
1 Einführung
Application Express (APEX) ist die ideale Entwicklungsumgebung für datenzentrierte Webanwendungen im Umfeld von Oracle-Datenbanken. Dieses Buch führt Sie in den Gebrauch von APEX ein und schlägt einen Weg durch das Dickicht der verschiedenen Optionen, damit Sie in der Lage sind, professionell Anwendungen auf dieser Basis zu entwickeln.
Schon seit vielen Jahren ist Application Express (APEX) als die neue Strategie zur Erstellung webbasierter, datenzentrierter Anwendungen von Oracle gesetzt. Es steht einerseits in der Nachfolge des nicht mehr allzu aktiv weiterentwickelten Oracle Forms und andererseits neben dem mächtigeren, aber auch ungleich komplexeren Application Development Framework (ADF). Oracle selbst empfiehlt APEX für kleinere bis mittlere Projekte, wobei man bei Oracle immer fragen muss, was hier denn unter klein bis mittelgroß verstanden wird. Wenn APEX in der Lage ist, asktom.oracle.com zu betreiben (und das mit enttäuschend »kleiner« Hardware!), dann ist mit klein wohl eher nicht die Anzahl der Seitenaufrufe oder die Anzahl gleichzeitig arbeitender Anwender gemeint. Insofern ist APEX auch dann einen Blick wert, wenn es um große Datenmengen und viele Benutzer geht. Vielleicht ist die Grenze eher dort zu ziehen, wo die Geschäftsregeln extrem komplex werden, viele externe Datenquellen integriert oder aber komplexe Architekturen wie Enterprise Service Busses etc. umgesetzt werden müssen. Alle anderen Anwendungen können mit APEX mit guten Erfolgsaussichten umgesetzt werden.
Ein großer Pluspunkt ist für viele, dass APEX komplett in PL/SQL programmiert wird. Dies erleichtert die Migration von Oracle-Forms-Anwendungen und bewahrt das von den Entwicklern über Jahrzehnte erworbene Fachwissen, zum großen Teil auch die dort bereits programmierte fachliche Logik. Doch auch Umsteiger von Anwendungsplattformen wie Java Server Faces, PHP-basierten Webanwendungen, Microsoft Access und anderen finden in APEX eine leistungsstarke Plattform für die Entwicklung ihrer Anwendungen: Auf Basis eines stabil laufenden und hochskalierbaren Kernels, nämlich der Oracle-Datenbank, werden datenzentrierte Anwendungen in einer einfach zu wartenden Umgebung erstellt, installiert und betrieben. Der Code bleibt binärkompatibel zwischen den Datenbankeditionen und -versionen, egal, ob Sie eine Oracle Express Edition oder eine Enterprise Edition einsetzen, egal, ob die Datenbank auf Windows, Unix, Solaris oder einem der anderen unterstützten Betriebssysteme eingesetzt wird, (weitgehend) egal, ob Sie die Datenbank in Version 12, 19 oder später einsetzen, sodass Sie flexibel auf wechselnde Anforderungen an Ihre Anwendungen reagieren können. Zudem profitieren Sie von leistungsfähigen Backup-and-Recovery-Konzepten, die Ihnen mit der Datenbank ohnehin mitgeliefert werden.
APEX hat sich nicht nur für die professionelle Entwicklung von Software einen Namen gemacht, sondern wird auch intensiv für eigene Entwicklungen in der jeweiligen Fachabteilung genutzt. Das APEX-Entwicklerteam spricht in diesem Fall von »Citizen Developers« und meint damit Entwickler, die sich nicht hauptberuflich mit der Erstellung von Software befassen, sondern APEX als Ersatz für eigene Excel- oder Access-basierte Lösungen verwenden. Auch hier spielt die Oracle-Datenbank als Fundament für APEX seine Stärken aus, denn im Gegensatz zu den reinen Clientlösungen auf Excel- oder Access-Basis sind APEX-Anwendungen auf dem zentralen Datenbankserver vor dem Totalverlust durch versagende Festplatten oder den Austausch eines Rechners geschützt. Zudem sind die in der Anwendung gesammelten Informationen auch für andere Verwendungen verfügbar, sodass einem reinen Inselwissen entgegengewirkt wird.
Innerhalb der Firma Oracle arbeiten über 3.500 Citizen Developers an APEX-Lösungen für ihre jeweiligen Fachdomänen, und ich gehe davon aus, dass auch unter den Leserinnen und Lesern n dieses Buches eine nicht unerhebliche Anzahl ebenfalls keine hauptamtlichen Software-Entwickler sind. Dies hat Auswirkungen auf die Struktur dieses Buches, denn ich werde nacheinander die Perspektive eines Citizen Developers, dann eines fortgeschrittenen APEX-Entwicklers mit dem Wunsch nach Erweiterung durch eigene Programmierung und schließlich den Blickwinkel des professionellen APEX-Anwendungsentwicklers einnehmen.
Daher ist dieses Buch in drei große Teile gegliedert, die sich von der Benennung an Termini anlehnen, die auch von Oracle selbst im Zusammenhang mit APEX verwendet werden.
Der erste Teil, »No Code«, stellt die in APEX vorhandenen Werkzeuge vor und folgt einer Vorgehensweise, die ohne weitere Programmierung auskommt. Es ist erstaunlich, wie viel Funktionalität bereits mit diesem Ansatz erzeugt werden kann! Dieser Teil wendet sich aber nicht nur an den nun ausreichend häufig zitierten Citizen Developer, sondern auch an diejenigen, die sich in die Materie APEX als Softwareentwickler einarbeiten möchten. Der Grund: Nur wenn die mitgelieferten Werkzeuge bekannt sind, ist es möglich, effizient und strukturiert mit APEX zu arbeiten. Zudem nutze ich den ersten Teil, um die Architektur und Strategie von APEX zu erläutern. Dieses Wissen hilft, eigenständig neue Funktionalität von APEX zu erkunden und für das eigene Projekt verfügbar zu machen. Denn vor einem Problem muss ich in diesem Buch kapitulieren: vor dem Wunsch, alle Optionen und Funktionen von APEX erschöpfend darzustellen. In der ersten Auflage dieses Buches habe ich das noch – blauäugig – versucht, doch steigt die Funktionalität mit jedem neuen Release so schnell an, dass ich es aufgeben muss, hiermit Schritt halten zu wollen. Es ist auch deshalb nicht sinnvoll, weil dadurch der Wert dieses Buches zu stark auf die besprochene APEX-Version abgestellt wird. Ich werde daher versuchen, die Prinzipien darzustellen und Sie zu ermuntern, auf eigene Faust neue Möglichkeiten kennenzulernen.
Der zweite Teil dieses Buches, »Low Code«, ist dann insofern technischer, als ich die Erweiterung und Ergänzung der mitgelieferten Funktionalität durch eigene Programmierung in PL/SQL und JavaScript erläutern werde. Es handelt sich hierbei um eine faszinierende Möglichkeit von APEX, eben nicht auf den mitgelieferten Funktionsumfang festgelegt zu sein, sondern flexibel auf weitere Anforderungen reagieren oder auch APEX an vorhandene Infrastrukturen anpassen zu können. Dass dies möglich ist, macht APEX zu einem unerhört effizienten und leistungsfähigen Werkzeug. Die erhöhte Komplexität benötigt aber auch eine aufmerksamere Strukturierung, damit die Anwendung nicht chaotisch wird.
APEX bietet, zum Teil aus historischen Gründen, zum Teil einfach, weil es dies kann, eine ganze Reihe verschiedener Wege an, zum erklärten Ziel zu gelangen. Einige dieser Wege sollten Sie beschreiten, andere nicht. Diese Unterscheidung werde ich im gesamten Buch treffen. Zunächst werde ich diese Entscheidungen für Sie treffen, ohne immer alles im Einzelnen zu begründen. Doch im weiteren Verlauf des Buches und mit zunehmendem Wissen werden wir immer wieder an Stellen gelangen, an denen ich begründen werde, warum ich diese Wege für richtig erachte und andere nicht.
Im letzten Teil, »Professional Use«, wird APEX vor allem aus dem Blickwinkel eines Software-Entwicklungsteams betrachtet, für das APEX nur ein Werkzeug in einer Sammlung weiterer Werkzeuge ist, um leistungsfähige Anwendungen erstellen, pflegen und ausliefern zu können. In diesem Zusammenhang stellen sich weitere Fragen, die über die reine Realisierung einer Anwendungsfunktionalität in APEX hinausgehen, etwa die Teamfähigkeit der Entwicklung (wie gut kann parallel in einem Team an einer Anwendung gearbeitet werden), architektonische Fragen wie etwa die Aufteilung des Codes auf mehrere Layer und die Erweiterung des Werkzeugkastens durch spezialisierte Plugins für APEX. Naturgemäß steigen die Komplexität des Stoffes, aber auch die Anforderungen an die Art, wie mit APEX gearbeitet wird. Diesem Thema stellen wir uns mit der Diskussion zum Thema »Clean APEX«.
Inhaltlich ist dieses Buch als Band 3 einer losen Reihe von Oracle-Büchern gedacht: basierend auf meinem Buch »Oracle SQL – das umfassende Handbuch« und dem daran anschließenden Band »Oracle PL/SQL – das umfassende Handbuch«, beide im Rheinwerk Verlag erschienen. Benötigen Sie Informationen zu SQL oder PL/SQL, möchte ich Ihnen diese beiden Bücher unbedingt – und uneigennützig ;-) – empfehlen. Für die JavaScript/jQuery-Seite empfehle ich Ihnen überdies noch den Band »jQuery« von Maximilian Vollendorf und Frank Bongers sowie die JavaScript-Bücher von Philip Ackermann, ebenfalls aus dem Rheinwerk Verlag.
Bitte lassen Sie sich von niemandem etwas anderes einreden: Die Entwicklung komplexer, leistungsstarker Anwendungen ist auch mit APEX gebunden an – Kenntnis. Kenntnis der eingesetzten Technologien, der eingesetzten Datenbank insbesondere. Wie tiefgreifend diese Kenntnis sein muss, korreliert direkt mit der Komplexität der Anwendung, die Sie schaffen möchten. Im einfachsten Fall haben Sie vielleicht jemanden aus dem Datenbankteam, der Ihnen die Abfragen für ihre Anwendung erstellt und als View zur Verfügung stellt. Wenn Sie sich dann auf die mitgelieferte Funktionalität und die Assistenten von APEX verlassen, benötigen Sie nur die Kenntnis der APEX-Entwicklungsumgebung und der Denkweise des APEX-Entwicklerteams, um gut aussehende und funktionale Anwendungen zu erstellen.
Möchten Sie über diesen Level hinaus, benötigen Sie profunde SQL- und PL/SQL-Kenntnisse, wenn die Anwendung nicht nur laufen, sondern schnell laufen und gut skalieren können soll. Im Umfeld von APEX ist diese Forderung wichtiger – oder sagen wir besser und...




