Endlich APEX verstehen.key

Werbung
Endlich APEX verstehen!
Peter Raganitsch
CEO, FOEX GmbH
Hier geht es zur
Vortragsbewertung:
http://bit.ly/2pfE5tW
Vielen Dank!
apex.doag.org
Verstanden?
•
Body Level One
•
Body Level Two
•
Body Level Three
•
Body Level Four
•
Body Level Five
www.tryfoexnow.com
Endlich APEX verstehen
www.tryfoexnow.com
Architektur
Data
Schemas
OracleAPEX
Engine
Oracle
Database
Browser
MidTier
ORDS=OracleRESTDataServices
www.tryfoexnow.com
DatabaseTier
Architektur - Browser
Beliebiger moderner Webbrowser in der jeweils
aktuellen und vorherigen Major Version
Im Falle IE bedeutet dies aber min. Version 11
www.tryfoexnow.com
Architektur - Mid-Tier
Empfohlen: ORDS auf WLS, Tomcat, Glassfish
Legacy: Oracle HTTP Server mit mod_plsql
Test: Embedded PL/SQL Gateway
www.tryfoexnow.com
Architektur - DB
DB ab 11.2.0.4 (und XE 11g)
Alle DB Features / Editionen
On Premises, Cloud, Hybrid, …
www.tryfoexnow.com
Architektur - Verbindungen
www.tryfoexnow.com
Ist doch ganz einfach
www.tryfoexnow.com
oder?
www.tryfoexnow.com
Ja, denn APEX
ist nur
PL/SQL Code
www.tryfoexnow.com
HTP.P(‘<h1>Oracle APEX</h1>’);
www.tryfoexnow.com
Beispiel HTP.P
www.tryfoexnow.com
Beispiel HTP.P
www.tryfoexnow.com
Beispiel leere Anwendung
www.tryfoexnow.com
Beispiel leere Anwendung
www.tryfoexnow.com
Beispiel leere Anwendung
www.tryfoexnow.com
Ablauf
Browser
apex.oracle.com/ords/f?p=100
Webserver
Database
/ords/f?p=100
ORDS
nimm DB-Connection aus Pool
rufe Procedure “f” auf
APEX Verarbeitung (Magic)
lese htp-Buffer (HTML)
Connection clear, zurück in Pool
HTML Code verarbeiten und
anzeigen (Render)
sende HTML an Client
Fertig
Verbindung zu WS ist nun zu
www.tryfoexnow.com
Procedure fertig,
zurück an Aufrufer
Wichtige Erkenntnisse
•
Es besteht keine dauerhafte Verbindung vom Client zur DB
•
Bei jedem Aufruf wird eine andere DB-Connection verwendet
•
Die gesamte Verarbeitung läuft in der Datenbank ab
•
Der Ablauf gilt für alle APEX Operationen, z.B.:
•
Seite laden - Page Render
•
Seite speichern (Submit) - Page Processing
•
A JAX Calls: DA, apex.server, ..
www.tryfoexnow.com
Ein paar Beispiele
www.tryfoexnow.com
Praktische Demonstration
www.tryfoexnow.com
Freiwillige:
1)
2)
3)
4)
Client
Webserver
Datenbank
Request (Läufer)
www.tryfoexnow.com
Seite laden
www.tryfoexnow.com
Redirect
www.tryfoexnow.com
Dynamic Action (change)
www.tryfoexnow.com
Dynamic Action (page load)
www.tryfoexnow.com
Daten eingeben
www.tryfoexnow.com
Speichern
www.tryfoexnow.com
APEX Verarbeitung (f?p)
•
Welche Applikation? -> f?p=123
•
Parsing Schema ermitteln
•
Session / Authentifizierung prüfen
•
Welche Seite? -> f?p=123:1
•
Regionen, Items, Buttons, … der Seite ermitteln
•
Elemente mit Template HTML-Code verbinden
www.tryfoexnow.com
Debug zeigt alle Schritte
www.tryfoexnow.com
Liste von No-No’s
•
A JAX Calls on Page Load (Execute PL/SQL, Set Item mit (PL)SQL)
•
Mehrere A JAX Calls an einem Event
•
A JAX Calls bei Tastendruck (Key-Up/Down/Pressed)
www.tryfoexnow.com
Wie kann ich mir selbst helfen?
www.tryfoexnow.com
Links
•
https://apex.oracle.com
•
https://otn.oracle.com/apex
•
https://builtwithapex.com
•
https://apex.world
•
https://docs.oracle.com/database/apex-5.1/
•
http://www.oracle.com/technetwork/developer-tools/rest-dataservices/overview/index.html
•
http://tinyurl.com/apexcommunity
www.tryfoexnow.com
Viel Spass mit APEX !
@PeterRaganitsch
www.oracle-and-apex.com
www.tryfoexnow.com
Let’s connect:
@FOEXplugins
FOEX-gmbh
FOEXplugins
Herunterladen