Lernen vom Page Designer. Auf den Spuren von Jules Verne

Ähnliche Dokumente
APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

DOAG Regio 2015 APEX 5 Neuerungen Highlights. Marco Patzwahl

APEX 5.0: neue & überarbeitete Komponenten. Oliver Lemm Berlin,

Schick statt altbacken Oberflächen-Modernisierung von Forms-Anwendungen

Business Applika-onen schnell entwickeln JVx Framework - Live!

Graphen in Apex von Thomas Hernando.

Dynamisches Anzeigen von Informationen in APEX mit jquery UI Dialogs und Tabs

Oracle APEX 3.2. Peter Raganitsch. Einführung und neue Features

APEX 5.0 DOAG Mai 2014

APEX und Drucken Die Schöne und das Biest! Seite 1 von 61

Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

APEX 5.0: Page Designer. Tobias Strohmeyer Berlin,

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Erweiterte Interaktion mit Trees und Charts in APEX

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

Mehr Dynamik in Apex mit Javascript und JQuery

AJAX Implementierung mit Joomla!

Dirk Reinemann Working Student Sales Consulting

Entwicklung und Integration mobiler Anwendungen. <Speaker> Oracle Deutschland B.V. & Co. KG

Einführung in Google Web Toolkit

Der Oracle Application Express Entwicklungsprozess

Kategorisierung von Web-Frameworks im Java-Umfeld

APEX und Drucken! - Die Schöne und das Biest!

Die APEX 5 Migra'on. Präsen'ert von Tobias Arnhold

Ein APEX für alle und alle für APEX! Niels de Bruijn, Fachbereichsleiter APEX , DOAG DB Konferenz

APEX verbessern mit Browser-Extensions

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept

APEX Worst Prac-ces. Die schlimmsten Fehler DOAG Jahreskonferenz 2014 Peter Raganitsch

Oracle Application Express 4.2.1

Five Finger Death Punch. Oliver Lemm Competence Center Leiter APEX

Rapid Java wie mit Forms

Mehr Dynamik in Apex mit Javascript und JQuery. Alexander Scholz its-people

bsc Education Center bsc solutions GmbH & Co. KG Industriestr. 50 b, Walldorf Tel:

Deep Dive into WinRT-Controls:

Agon Solutions. The native web mobile Architekturen mit HTML5 und PhoneGap. Ihre Prozesse in besten Händen.

APEX DESKTOP APPS. Interaktion mit dem Client System

React.js flottes Front-End für Domino. Knut Herrmann

Agile Softwareentwicklung mit APEX (4.0)

Ich war's nicht! Fehler & Ursachensuche in APEX Peter Raganitsch FOEX GmbH Österreich Schlüsselworte APEX, Fehler, Debug, Logging, Nachforschung.

Model-View-Controller

XPages - Core Technologie der Lotus Zukunft? 2011 IBM Corporation

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Kompendium der Web-Programmierung

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Aufbau einer Web 2.0 Community mit Grails. DOAG Konferenz + Ausstellung 2010 Nicole Hoock, esentri consulting GmbH

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht.

Task Force - Profound UI Suite Newsletter für die Version (Stand )

Mit PL/SQL auf s ipad

Typo3 & QFQ. Carsten Rose, I-MATH, University of Zurich, 2017

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

HERZLICH WILLKOMMEN SHAREPOINT 2013 DEEP DIVE - APPS IOZ AG 1

DCCS Lotusphere Nachlese 2012 Was sind XPages? Mobile Features für XPages

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG

Cross Platform Development mit SharePoint

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann -

<Insert Picture Here> BI Publisher Berichte in eigene Anwendungen integrieren

Webengineering. jquery

Dr. Thomas Meinike Hochschule Merseburg

Vorteil. Einfach zu realisieren performant. Übersichtlich performant. "Vererbung" von Änderungen an vererbender Tabelle

Präsentation. Entwicklung eines Frameworks. in Forms 12c. - Light Version. Friedhold Matz. Forms Day Entwicklung eines Frameworks in Forms 12c

ORACLE Application Express (APEX) und Workflows. Copyright Apps Associates LLC. 1

APEX 5.1 Design Crashkurs. Steven Grzbielok: APEX connect 2017

Rails Ruby on Rails Ajax on Rails. Clemens H. Cap

Zeitlich abhängig von OWB?

Smartphone Entwicklung mit Android und Java

Dabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können.

Windows- und Java-Integration mit Oracle Forms 10g und 6i

Responsive Web Design

Model-View-Controller

1.1 Ein neues TYP03 entsteht Das Berlin-Manifesto Die Geburtsstunde von TYP03 Flow (FL0W3) Phoenix aus der Asche 21

Dateien per Drag & Drop in Apex Applikationen ablegen

AJAX und Ruby on Rails

Herzlich Willkommen! Die neue Dimension des Bedienungskomforts: Fiori 2.0

<Insert Picture Here> Generierung von ADF-Applikationen aus Metadaten des Oracle Designer

APEX 5.0 als wertvolle Ergänzung einer SharePoint-Umgebung. Alexej Schneider DOAG 2015

Control System Studio CSS

1. Übung IT-Management HTML, CSS und JavaScript Teil 2. Einführung, , PC Pool

Hilfe, ich verstehe meine APEX Seite nicht mehr! DOAG Development Konferenz, Düsseldorf

ITIL Prozese in APEX am Beispiel des Vodafone FCH

SINT Rest App Documentation

Spring IDE. Christian Dupuis - Spring 2.0 Release Party

Wolkig bis heiter. Andreas Wismann WHEN OTHERS. APEX als Drehkreuz für Web Service-Anwendungen

Modernisierung von Forms durch neues Look&Feel

Mapbender3 Workshop. Christian Wygoda. FOSSGIS Dessau 2012

Kobra, übernehmen Sie! Endbenutzer an den Schalthebeln von Apex Ingrid Hayek Universität Innsbruck Innsbruck, Österreich

Installation des edu- sharing Plug- Ins für Moodle

Kapitel 5: Das Design

Erweiterte Diagrammdarstellungen im BI Publisher

Web-Anwendungsentwicklung mit dem Delivery Server

Das Interceptor Muster

Mobile Apps mit. React-Native. Manuel

Mobile Apps mit. React-Native. Manuel

Web 2. Gang. Python User Group Köln Christopher Arndt

als Alternative zu REST Manuel

Ein Blick unter die Motorhaube von Oracle APEX. Patrick Wolf, Sphinx IT Consulting DOAG Konferenz Nürnberg,

APEX und Workflows: Spaghetticode oder Integration. Sven Böttcher. Consultant, Apps Associates GmbH

Transkript:

Lernen vom Page Designer Auf den Spuren von Jules Verne 1

Lernen vom Page Designer Agenda 1 Einführung 2 Application Builder als Anwendung importieren 3 4 5 Page Designer im Detail (javascript stack, MVC, etc.) Demo Zusammenfassung 2

BASF We create chemistry Unsere Chemie wird in nahezu allen Branchen eingesetzt Wir verbinden wirtschaftlichen Erfolg, gesellschaftliche Verantwortung und den Schutz der Umwelt Umsatz 2015: 70.449 Millionen EBIT 2015: 6.248 Millionen Mitarbeiter (31.12.2015): 112.435 6 Verbund- und 338 weitere Produktionsstandorte 3

Information Services & Supply Chain Operations Connected to deliver value Wir sind der Anbieter von Geschäftslösungen für die BASF-Gruppe Wir unterstützen die We create chemistry -Strategie in drei Hauptbereichen: Supply Chain Operations (einschließlich Logistik) Information Services Business Process Management 4

APEX at BASF Einheit Bespoke Applications Planung, Implementierung und Betrieb aus einer Hand. Maßgeschneiderte Anwendungen (APEX, Forms, java,.net) für den verschiedensten BASF Unternehmensbereiche. Größere Anzahl APEX Anwendungen für die BASF Gruppe Environment, Health & Safety Plant Maintenance Supply Chain Logistics, 5

Lernen vom Page Designer Application Builder importieren Tip: Application Builder in eigenen Workspace importieren <installationsverzeichnis>/apex/builder/f4000.sql Beim Import application ID neu vergeben, z.b. 143 Der Page Designer ist zum Großteil aus einer einzigen APEX Seite aufgebaut! Wie sieht die Seite 4500 aus? Es lohnt sich reinzuschauen! 6

Lernen vom Page Designer Seite 4500 (Komponentenansicht) 7

Lernen vom Page Designer Seite 4500 (Komponentenansicht) 17 Page Prozesse 8

Lernen vom Page Designer Seite 4500 (Komponentenansicht) 1 (region) Plug-in 9

Lernen vom Page Designer Seite 4500 APEX region Splitter plugin 10

Lernen vom Page Designer Seite 4500 (Komponentenansicht) 1 Dynamische Aktion und viel, viel Javascript 11

Page Designer (client) Javascript Stack Page Designer Main Controller f4000_p4500.js Tree f4000_p4500.tree.js Grid Layout f4000_p4500.glv.js Components Gallery f4000_p4500.gallery.js Property Editor f4000_p4500.pe.js Page Designer custom Widgets widget.lovdialog.js widget.pesearch.js widget.codeeditor.js widget.propertyeditor.js widget.pemessagesview.js gridlayout.js widget.colorpicker.js widget.iconlist.js widget.menu.js APEX 5.0 Widgets widget.splitter.js widget.treeview.js jquery UI jquery GUI library (widgets, interactions, themes) APEX JS API s ajax, security, actions, PE callbacks pe.callbacks.js jquery core library CodeMirror Text Editor library PE model pe.model.js 12

Page Designer (client) Javascript Bibliotheken Beim Öffnen der Page Designer-Seite werden die benötigten Bibliotheken in komprimierter ( minified ) form geladen. Es handelt sich hierbei um open source + Oracle spezifische Bibliotheken. Quelltexte der APEX Javascript API s sind im APEX Installationspaket vorhanden <installationsverzeichnis>/apex/images/libraries/apex jquery UI jquery GUI library (widgets, interactions, themes) APEX JS API s ajax, security, actions, jquery core library CodeMirror Text Editor library 13

Lernen vom Page Designer Seite 4500 Seite 0 jquery UI tabs 19.12.2012 14

Model, View, Controller (MVC) Entwurfsmuster Model Das Modell enthält die anzuzeigenden Daten (Listeneinträge, Text, die Beschriftung einer Schaltfläche usw.). Von außen kann man die Daten über dafür vorgesehene Methoden erfragen und Änderungswünsche bekannt geben. View Die Ansicht stellt die Daten in der Oberfläche dar, sie ist der sichtbare Teil der GUI- Komponente im MVC-Muster und für die Erscheinung (Größe, Farbe, Position usw.) zuständig. Die anzuzeigenden Daten werden durch den View vom Modell erfragt. Controller Die Steuerung empfängt Benutzeraktionen (Tastatureingaben, Mausklicks usw.) und verarbeitet sie in Form von Botschaften an Ansicht und Modell. Quelle: http://www.itwissen.info/definition/lexikon/model-view-controller-mvc-modell-ansicht-steuerung.html 15

Model, View, Controller (MVC) Entwurfsmuster Controller (Steuerung) aktualisiert aktualisiert benachrichtigt Benutzeraktion Model (Modell) View (Präsentation) 16

Model, View, Controller (MVC) Model (=Datenmodell im Client) Das Page Designer Datenmodell wird zur Laufzeit durch das Javascript Objekt pe, den Properties Editor, repräsentiert. Es ist unter anderem zuständig für die Kommunikation mit der Datenbank. AJAX requests mittels JS API apex.server.process Ruft PL/SQL Page Prozesse auf Seite 4500 auf (z.b. GetPageData) Bekommt JSON zurückgeliefert Triggert Javascript Callback Funktionen. M Model PE callbacks pe.callbacks.js PE model pe.model.js 17

Model, View, Controller (MVC) Model (=Datenmodell im Client) Benachrichtigt Views/Controllers damit Änderungen visualisiert werden synchronisieren client (browser) mit server (datenbank). Quelltexte in <installationsverzeichnis>/apex/images/apex_ui/js pe.model.js Definiert Javascript pe Objekt und API. Interne Funktionen, z.b. mergen Properties aus APEX Plugins. Page Designer Transaktionshandling im Client! pe.callbacks.js JS Callback Funktionen der PL/SQL Page Prozesse. Befüllen Properties Editor mit Werte/Typen für Seitenelemente (Regions, Page Items, etc.) M Model PE callbacks pe.callbacks.js PE model pe.model.js 18

Model, View, Controller (MVC) View (=GUI Komponenten) Page Designer custom Widgets Meistens nicht dokumentiert und nur für Verwendung im Page Designer gedacht. Quelltexte in <installationsverzeichnis>/apex/images/apex_ui/js APEX 5.0 Widgets zum Teil dokumentiert + Verwendung in andere APEX Komponenten (Interactive Reports, ), z.b. widget.menu.js Quelltexte in <installationsverzeichnis>/apex/images/libraries/apex V Page Designer custom Widgets widget.lovdialog.js widget.pesearch.js widget.codeeditor.js widget.propertyeditor.js widget.pemessagesview.js gridlayout.js View widget.colorpicker.js widget.iconlist.js widget.menu.js APEX 5.0 Widgets widget.splitter.js widget.treeview.js 19

Model, View, Controller (MVC) View (=GUI Komponenten) Beispiel: Property-Editor widget (widget.propertyeditor.js) Definiert Eingabe-Elemente für Page Designer COMBOBOX, NUMBER, INTEGER, SELECT_LIST, TEXT, TEXT_AREA, YES_NO, CHECKBOXES, RADIOS, COLOR, POPUP_LOV DIV-Element kann in Property Editor umgewandelt werden mit apex.jquery( #mydiv ).propertyeditor( ) 20

Model, View, Controller (MVC) Controller Quelltexte in <installationsverzeichnis>/apex/images/apex_ui/js Zur Laufzeit wird der Page Designer Main Controller durch das Javascript Objekt pagedesigner repräsentiert. Objekt Definition ist vorhanden in f4000_p4500.js Der Main Controller ist die API für die Interaktion mit Page Designer. C Controller Page Designer Main Controller f4000_p4500.js Tree f4000_p4500.tree.js Grid Layout f4000_p4500.glv.js Components Gallery f4000_p4500.gallery.js Property Editor f4000_p4500.pe.js 21

Lernen vom Page Designer Das pagedesigner javascript Objekt Ausgabe pagedesigner Objekt in javascript Konsole: APEX Seite in Page Designer laden <installationsverzeichnis>/apex/images/apex_ui/js/f4000_p4500.dump.js Debug Infos pagedesigner.showdumptab(); 22

Lernen vom Page Designer MVC-Stack im Page Designer client C Page Designer Main Controller f4000_p4500.js C C C C Tree Grid Layout Components Gallery f4000_p4500.tree.js f4000_p4500.glv.js f4000_p4500.gallery.js Property Editor f4000_p4500.pe.js V Page Designer custom Widgets widget.lovdialog.js widget.pesearch.js widget.codeeditor.js widget.propertyeditor.js widget.pemessagesview.js gridlayout.js V widget.colorpicker.js widget.iconlist.js widget.menu.js APEX 5.0 Widgets widget.splitter.js widget.treeview.js M M PE callbacks pe.callbacks.js PE model pe.model.js 23

Lernen vom Page Designer Ablauf öffnen Seite 4500 Page Designer ist eine Single-page-Webanwendung: Besteht aus einem einzigen HTML-Dokument Inhalte werden dynamisch per JSON nachgeladen Ablauf öffnen Page Designer 1. HTML Quelltext Seite 4500 laden document.ready Minified CSS einbinden (8 Dateien) Minified JS einbinden (16 Dateien) 2. Sprachdatei einmalig aus images-verzeichnis laden (pd_static_data_en.json) 3. Spezifizierte Anwendungsseite laden (getpagedata, ) 4. Einzelheiten Anwendungsseite darstellen (properties editor) 24

APEX Seite in Page Designer laden Übersicht Eine APEX Seite wird in 3 Schritten in Page Designer geladen. Dazu gibt es 3 asynchrone ajax GET-requests: Browser getpagedata JSON Datenbank Properties for Computations, Regions, Page Items, Buttons, Processes, Browser getsharedcomponentdata JSON Template properties, Plugin properties, Datenbank Browser getadditionaldata JSON Comments & Team-Development (Features, Bugs, Todos) Datenbank 25

APEX Seite in Page Designer laden Aufruf Page Prozess getpagedata Aufruf Page Prozess getpagedata um Seitendefinition aus der Datenbank zu laden (Computations, Regions, Items, Dynamic Actions, Page Prozesse, etc.) Browser Beispiel: Laden Seite 2 getpagedata JSON Datenbank Component Types 5000 = Page 5110 = Region 5120 = Page Item 5130 = Item Property ID s 1 = Name 10 = Page Mode 13 = Title 26

APEX Seite in Page Designer laden Page Prozess getpagedata intern Der Page Prozess getpagedata wird nur benutzt für das Aufrufen von eine interne APEX Package Prozedur. Wir sehen, dass die Page-ID aus :FB_FLOW_PAGE_ID übernommen wird; der Wert wurde als Parameter mitgeliefert. Die Applikation-ID wurde bereits vor dem öffnen von Page Designer in :FB_FLOW_ID geladen. Hier geht es nicht weiter; die Prozedur wwv_flow_property_dev.emit_page_data ist gewrappt. 27

Zusammenfassend Was ist bei PD anders als bei eine klassische APEX Anwendung? Ist aus eine einzige APEX-Seite aufgebaut (Singe-Page App) Ist hoch dynamisch Nach öffnen Page Designer wird nur noch über JSON mit der Datenbank kommuniziert. Eingabefelder (Properties) werden erst zur Laufzeit ermittelt und generiert. Mehrsprachigkeit ist nicht über Schatten -Applikation geregelt, sondern Labels werden zur Laufzeit geholt (JSON). PD folgt MVC Muster 28

Zusammenfassend Es gibt viel zu entdecken... Offizielle APEX API Dokumentation Packaged Applications mit Beispielcode Original Quelltexte Javascript-Teil vom Page Designer (im APEX Installationspaket enthalten) Application Builder importieren 29

Fragen Bildquelle: https://pixabay.com/ 30

Lernen vom Page Designer Vielen Dank für Ihre Aufmerksamkeit. 31

2/18/2015 32

Lernen vom Page Designer Backup Slides 33

Application Builder (4000) Page Flow öffnen Page Designer Seite 1500 IR Übersicht Applikationen Applikation Seite 1 IR Pages Zu editierende Seite auswählen auswählen Seite 4150 component View Before Header branch Seite 4500 Page Designer 34