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

Ähnliche Dokumente
Der Kunde ist (doofer?) König Ingrid Hayek Universität Innsbruck Innsbruck, Österreich

<Insert Picture Here> APEX? Aber sicher! Tipps und Tricks für eine sichere APEX-Umgebung. Carsten Czarski, ORACLE Deutschland B.V. Co.

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators

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

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

Moderne Anwendungen und relationale Datenbanken? Natürlich!

DOAG Regio 2015 APEX 5 Neuerungen Highlights. Marco Patzwahl

Objekt-relationales Datenbanksystem Oracle

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

Excel-ähnliche Spreadsheets in Apex Innovation aus einer IT-Abteilung

Mehr Dynamik in Apex mit Javascript und JQuery

Oracle Forms und APEX

Der Kunde ist (doofer?) König

PostgreSQL unter Debian Linux

Debugging in APEX. Christina Funke Apps Associates GmbH Dortmund

Installation Guide/ Installationsanleitung. Spring 16 Release

ApEx effektiv. Lösungen für Standardanforderungen. Stephan Engel OPITZ CONSULTING Bad Homburg GmbH. Nürnberg,

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

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

APEX 5.0 DOAG Mai 2014

Lernen vom Page Designer. Auf den Spuren von Jules Verne

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

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Application Express (APEX) Carsten Czarski Business Unit Database. ORACLE Deutschland B.V. & Co KG

<Insert Picture Here> Application Express: Stand der Dinge und Ausblick auf Version 5.0

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Kapitel 4 Dynamisches SQL

p^db=`oj===pìééçêíáåñçêã~íáçå=

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

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

Benachrichtigungen. Installation und Konfiguration. Version 2017 Summer Release

Die Nutzung von Webservices in der Oracle Datenbank. 11 März 2010

APEX: from past to present

NVR Mobile Viewer for iphone/ipad/ipod Touch

Fortgeschrittene SQL-Techniken für APEX-Formulare und -Reports

iid software tools QuickStartGuide iid USB base driver installation

Oracle Virtual Private Database

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

Fehlervermeidung und Debugging in APEX

Geodaten und Karten in APEX

SQL Developer Unit Tests

SQL (Structured Query Language) Schemata Datentypen

Datum, Uhrzeit, Kalender & Co und Application Express

Oracle 10g Einführung

Jedes Byte zählt. Tuning-Rezepte für APEX-Anwendungen in der Cloud. Andreas Wismann WHEN OTHERS

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Zusammenfassung der letzten Vorlesungen. - Ergänzungen zu Menüs /Sprachumschaltung. - indexed search

Vergessene (?) SQL- und PL/SQL- Funktionen

Word-CRM-Upload-Button. User manual

Geschäftslogik in die Datenbank Umstellung eines Kernbanksystems

Installationsanleitung für CAO-FAKTURA Connector.

XML in Oracle 12c. Wolfgang Nast

Ingenics Project Portal

Oracle Real Application Security (RAS) in APEX5

1. Zusammenfassung der letzten Vorlesung

Mobile Webapps in kürzester Zeit: APEX mobile!

APEX 5.0: Page Designer. Tobias Strohmeyer Berlin,

Zeitlich abhängig von OWB?

Entwicklungsumgebung für die Laborübung

Interactive Report zu Excel und zurück 2017 DATAGROUP

SMARTtill Server mit Manager

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

quick documentation Inhalt Datenmodellierung

USB Treiber updaten unter Windows 7/Vista

Wie sichert man APEX-Anwendungen gegen schädliche Manipulationen und unerwünschte Zugriffe ab?

Typo 3 installieren. Schritt 1: Download von Typo3

APEX DESKTOP APPS. Interaktion mit dem Client System

Interactive Report zu Excel und zurück

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

Implementierungsvarianten. mit Oracle Application Express

APEX URLs Suchmaschienen- und Benutzerfreundlich

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

Komplexe Excel-Berichte mit APEX und jxls erstellen

Installation Manual. Driver Installation USB-to-Serial Adapter WE2111. A en/de

JSF (JavaServer Faces) Erstellen einer Webseite

JAVA Look & Feel Design Guidelines

Anleitung für Korrektoren. Mac OS X. Stand

The app the crashes, before the breakpoint is reached: Code to the event:

cs241: Datenbanken mit Übungen HS 2011

Prozedurale Datenbank- Anwendungsprogrammierung

Übung PL/SQL Trigger Lösungen

QMF Tabelle Q.OBJECT_DATA in DB2

A Datenbanken. A.1 Firebird. A.1.1 Installation des Servers. A.1.2 Installation der Beispieldatenbanken. Datenbanken 1

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

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

Gummilippe BMW e36 Motorsport M3 GT Class 2 II Flap

Installation MySQL Replikationsserver

ECLIPSE PLUG-IN. Redwood Anwendertage 2015

Christine Hansen, Fabrizio Fresco, Patrick Malcherek

BEDIFFERENT ACE G E R M A N Y. aras.com. Copyright 2012 Aras. All Rights Reserved.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Roundcube Webmail Installation HANDBUCH

Oracle Forms. Aufbau und Bestandteile von Formularen. Erstellen eines neuen Blocks. Starten von Oracle Forms

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Multimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach)

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

Transkript:

Kobra, übernehmen Sie! Endbenutzer an den Schalthebeln von Apex Ingrid Hayek Universität Innsbruck Innsbruck, Österreich Schlüsselworte Apex-Applikationen modifizieren, Labels, Hilfetexte ändern, Conditional Display, dynamische Defaulttexte für Endbenutzer Einleitung Guten Morgen, Mister/Mrs EndbenutzerIn... Sollten Sie oder jemand aus Ihrem Betrieb an der Applikation kleine Änderungen vornehmen wollen, wird der Applikationsentwickler jegliche Kenntnis dieser Operation abstreiten. Die Applikation wird sich dabei aber keineswegs selbst vernichten. Viel Glück, Mister/Mrs EndbenutzerIn. Kobra, übernehmen Sie! (Mission Impossible - adaptierte Version von IH, 2013) Die Datenbank ist erstellt, die maßgeschneiderte Applikation steht, der Kunde ist zufrieden. So weit so gut. Aber Zeiten ändern sich, Ansprechpersonen wechseln, neue Bedürfnisse entstehen, Anforderungen werden angepasst. Der Kunde kann die Inhalte der Datenbank dynamisch und individuell verändern und ergänzen - wie aber steht es um das relativ starre "Gerüst" einer Apex Applikation? Der Applikationsentwickler muss sich Jahre nach Fertigstellung bei auftauchenden Änderungswünschen wieder einarbeiten und empfindet diese Arbeit oft als lästig. Der Kunde muss als Bittsteller auftreten, beziehungsweise für Änderungswünsche bezahlen, die er als "Kleinigkeiten" empfindet. Was spricht dagegen, dem Kunden mehr Macht über die für ihn entwickelte Applikation zu geben, wenn man verhindern kann, dass er dabei Schaden anrichtet? Der Vortrag zeigt Tipps und Tricks, wie man den Kunden Möglichkeiten bieten kann, Apex Webformulare selbst individuell anzupassen: Item Labels selbst adaptieren. Nach Lust und Laune Default-Texte festlegen. Persönliche Hilfetexte erstellen. Bestimmte Items je nach Wunsch oder Berechtigung des eingeloggten Benutzers ein- oder ausblenden...... und als Entwickler gleichzeitig lästige Nachbesserungsarbeiten los zu sein! Kein Problem, wenn man nur weiß, wie. Application Express Architektur Apex ist ein "Application Framework", das heißt ein Programm zur Applikationswentwicklung, das selbst mit Apex erstellt wurde. Ein wichtiges Merkmal von APEX ist dabei, dass kein ausführbarer Code erzeugt wird, sondern die Anfragen im Browser direkt in PL/SQL-Aufrufe umgesetzt werden. Dabei werden die Webapplikationen, die in Datenbanktabellen gespeichert sind, in Echtzeit aus Metadaten "gerendert".

In diesem Metadaten Repository werden sämtliche Definitionen von Applikationen gespeichert. Das Repository "lebt" komplett innerhalb unserer Oracle-Datenbank und besteht lediglich aus einer Unmenge von Daten, die in Tabellen gespeichert sind, sowie einem riesigen PL/SQL Code. Hinter Apex verbergen sich zirka 425 Tabellen und 230 Packages mit insgesamt mehr als 425000 Zeilen PL/SQL-Code. Was bedeutet das für den Entwickler? Zunächst einmal: oh, kompliziert! (siehe oben). Dann aber: Wenn Apex die Daten selbst in der Datenbank speichert, muss es eine Möglichkeit geben, darauf zuzugreifen. Nun gibt Oracle die Tabellen, in denen die Daten der Apex- Entwicklungsumgebung gespeichert werden, natürlich nicht frei - zu groß wäre die Gefahr, dass bei Änderungen das System bricht. Sehr wohl aber haben Entwickler Lese-Zugriff auf die Daten, und zwar in Form von Views. Von diesen Views nun können wir uns genau diejenigen näher ansehen, die wir für die Adaptierungen unserer Applikation brauchen. Dynamische Labels Betrachten wir zunächst einmal den View 1 apex_application_page_items: Hier finden wir sämtliche Applikationen mit allen Definitionen zu den Items: SELECT * FROM apex_application_page_items So finden wir sämtliche Definitionen zu den Items einer bestimmten Applikation: SELECT * FROM apex_application_page_items 1 Es ist gängig, den englischen Begriff View für eine Darstellungskomponente zu verwenden. Allerdings ist es nicht völlig klar, ob der Artikel nun als "der View" oder "die View" zu wählen ist. Ich verwende die Version "der View" (http://www.duden.de/suchen/dudenonline/view)

Und jetzt die relevanten Definitionen zu den Items, die wir für dynamische Formulare brauchen: SELECT application_name, page_id, item_name, display_as, label, condition_type, condition_expression1, item_default FROM apex_application_page_items Item Name und zugehöriges Label werden also im Repository gespeichert. Wie kann nun Apex dazu gebracht werden, Labels gemäß unseren Wünschen dynamisch zu produzieren? 1. Applikation erstellen oder vorhandene Applikation auswählen, zum Beispiel 'KOBRA'. 2. alle dynamischen Labels mit "LABEL" beschriften. 3. eventuell schon Hilfetexte eingeben 4. Tabelle mit den essentiellen Informationen aus dem Repository erstellen, die der Endbenutzer editieren kann CREATE TABLE apexadmin AS SELECT application_id, page_id, item_name, label AS label_orig, label, item_default, condition_type, condition_expression1, item_help_text FROM apex_application_page_items AND label = '"LABEL"' AND display_as!= 'Hidden' AND condition_type!= 'Never' AND authorization_scheme!= 'Developer' 5. Ein Shortcut, um Apex mitzuteilen, wo es die Information für die Labels holen soll: RETURN apex.get_label('#current_item_name#'); 6. Function get_label: FUNCTION get_label(p_item_name IN VARCHAR2) RETURN VARCHAR2 IS lv_text VARCHAR2(100); BEGIN SELECT NVL(label, p_item_name) INTO lv_text WHERE item_name = p_item_name; RETURN lv_text; END get_label; 7. Daten synchronisieren: bei Änderungen muss der Applikationsentwickler die Daten synchronisieren. Wird zum Beispiel einem Item ein statisches Label gegeben, muss dieses Item aus der Liste, die dem Endbenutzer zur Verfügung steht, verschwinden.

Dynamische Hilfetexte Hilfetexte für die (technische) Bedienung einer Apex-Applikation braucht es nicht: Eine benutzerfreundliche Applikation sollte selbsterklärend sein. Hilfetexte zum Inhalt sollten generell nicht vom Entwickler erstellt werden. Erstens bezieht sich die Hilfe auf den Inhalt der Datenbank, das heißt auf das jeweilige Fachgebiet, und mit dem kennt sich der Endbenutzer mit Sicherheit besser aus als der Entwickler. Zweitens können sich solche Hilfetexte im Lauf der Zeit ändern, erweitert oder auch hinfällig werden. In diesem Fall soll der Endbenutzer einfach die Hilfetexte ändern können. Für die Verwaltung der Hilfetexte verwenden wir dieselbe Tabelle wie für die Labels. Dynamische Default Werte Default Value Type: PL/SQL Function Beispiel: entsprechende Function aufrufen: kobra_util.get_user_default('p20_title'); Dynamische Bedingungen Condition Type: Exists Expression1 Beispiele: SELECT 1 WHERE item_name = : P1_TITLE AND condition = 'Y' SELECT 1 WHERE item_name = :P1_TITLE AND condition = 'Y' AND :APP_USER = 'ADMINISTRATOR' Dynamische Informationen bearbeiten Welche Möglichkeiten biete ich nun dem Endbenutzer, um die Schalthebel von Apex mitzubedienen? Expertenmodus: Eine Seite mit Tabular Form, in der alle Items - ähnlich wie in Apex selbst - bearbeitet werden können Einfacher Modus: 1. Form mit den Feldern, die der Endbenutzer editieren darf, erstellen 2. Mit einem entsprechenden Plugin erscheint dieses Formular in einem Modal Window: Plugin (modal_page.zip) herunterladen: http://skillbuilders.com/oracle-apex/application-express-apex-consulting- Training.cfm?tab=free-plugin-downloads modal_page.zip entpacken: dynamic_action_plugin_com_skillbuilders_modal_page.sql, in Apex importieren und Plugin installieren 3. Dynamic Action für editierbares Item konfigurieren: jquery Selector:.uHelpLinkDyn True Action: Identification: Action aus Select List Effect auswählen: SkillBuilders Modal Page (1.0.0) [Plug-in]

Settings: Url Location: Attribute of Triggering Element Attribute Name: href Auto-close On Element Selector: div#close-modal Dialog Height/Width Mode: Auto 4. Frames für Modal Window erlauben: Application Properties > Security > Browser Security: Enable Frames 5. Label Templates modifizieren: Template Optional with help /Required with help - Definition: Before Label: <label for="#current_item_name#" tabindex="999" class="uoptional/urequired"> <a onclick="javascript: return false;" class="uhelplinkdyn" href="f?p=&app_id.:10002:&app_session.:::: P100002_ITEM_NAME:#CURRENT_ITEM_NAME#" tabindex="999" > 6. Conditional Display im Modal Window Endbenutzer mit dem Status "Administrator" können alle editierbaren Informationen sehen und bearbeiten. "Normale User" sehen nur bestimmte Informationen, zum Beispiel den Hilfetext, und können diese Informationen nicht editieren (Read Only Condition) So, und jetzt lehnen wir uns zurück Client:..And Mr/Mrs Developer, the next time you go on holiday, please be good enough to let us know where you're going. Developer: If I let you know where I'm going, I won't be on holiday. (Mission Impossible - adaptierte Version von IH, 2013) Kontaktadresse: Dr. Ingrid Hayek daten & worte Höhenstraße 110 A-6020 Innsbruck Telefon: +43 (0) 650-2923290 E-Mail work@ingridhayek.at Internet: ingridhayek.at