The presentation desribes how develop a APEX plugin using metadata. The presentation was hold on the doag conference in nürnberg on 20th of november 2013 in german language.
2. |
MT AG
GESCHÄFTSFORM INHABERGEFÜHRTE AG
HAUPTSITZ RATINGEN
GRÜNDUNGSJAHR 1994
BESCHÄFTIGTE 180 FESTANGESTELLTE MITARBEITER
BETEILIGUNGEN MT-IFS GMBH (RATINGEN), MT-IFS SARL (LUXEMBURG)
business by integration
BUSINESS
INTELLIGENCE SOLUTIONS
SOCIAL BUSINESS
SOLUTIONS
MOBILE
SOLUTIONS
APPLICATION
DEVELOPMENT
INTEGRATION
SERVICES
IT SYSTEM
SERVICES
3. ||
Agenda
DOAG 2013
1. Die Anforderungen
2. Das Konzept
3. Die Umsetzung
4. Livedemo
5. Region Plugin vs. Process Plugin
6. Im Einsatz
7. Ausblick
8. Fazit
3
13. |
Die Umsetzung - Regeltabelle
piqa_id NUMBER not null,
piqa_name VARCHAR2(100) not null,
piqa_category VARCHAR2(10) not null,
piqa_object_types VARCHAR2(4000) not null,
piqa_error_message VARCHAR2(4000) not null,
piqa_comment VARCHAR2(4000),
piqa_exclude_objects VARCHAR2(4000),
piqa_error_level NUMBER not null,
piqa_is_active NUMBER default 1 not null,
piqa_sql CLOB not null,
piqa_predecessor_ids VARCHAR2(4000),
piqa_layer VARCHAR2(100) not null
DOAG 201313
14. |
Die Umsetzung – Type
create or replace type t_plugin_qa_rule force as object
(
-- Information based on the rule
piqa_id number, -- id of the rule
piqa_category varchar2(10), -- category of this rule row, based on the query
piqa_error_level number, -- overwrite the error level based on the content of the object
piqa_object_type varchar2(30), -- objecttype, based on query
piqa_error_message varchar2(4000), -- overwrite the standard error_message for this rule
-- Information based on the query, related to the object which is checked
object_id number, -- object id if possible
object_name varchar2(100), -- name of the object
object_value varchar2(4000), -- value of the object itself
object_updated_user varchar2(50), -- last update user on object
object_updated_date date, -- last update date on object
-- apex specific parameters for buildung edit links
apex_app_id number, -- application where component is placed
apex_page_id number, -- page where component is placed
apex_region_id number -- region where component is placed
);
DOAG 201314
22. |
Vorträge auf der DOAG 2013
ADF Persistenz-Frameworks im Vergleich – JPA/EJB
vs. ADF BC
Continuous Integration für Oracle DB und Apex
Mein Backup – die richtige Strategie oder der totale
Irrweg?
Das APEX QS-Plugin
Forms goes APEX – wie man es richtig macht
USABLE_FILE_MB im Oracle ASM oder wenn der
nutzbare Plattenplatz negativ wird
Erstellen einer mobilen Applikation mit PhoneGap
und ADF Mobile
Experten-Panel: APEX und DB-Programmierung
Java Unterstützung von Multithreading in den
Versionen 1.0 bis 7
3 Wochenenden Strohwitwer
business by integration
Hendrik Gossens, Di, 11 Uhr
Peter Busch, Dominic
Ketteltasche, Di, 12 Uhr
Volker Mach, Di 16 Uhr
Oliver Lemm, Mi, 12 Uhr
Niels de Bruijn, Sven-Olaf
Kelbert, Mi 15 Uhr
Ernst Leber, Mi, 16 Uhr
Wolfgang Nast, Do, 9 Uhr
Niels de Bruijn, Do, 11 Uhr
Wolfgang Nast, Do, 12 Uhr
Christof Kaller, Do, 12 Uhr
Wiederverwendbar => nicht jedes mal neu programmieren, Vorgaben oft gleich
Flexibel => ob Datenbank oder APEX oder Daten, alles soll prüfbar sein
Einfache Verwendung => keine komplizierte Konfiguration oder Anleitung durchlesen
Schnell einsetzbar => Import & fertig
Integriert => Ein Bestandteil von APEX => sichtbar in der Entwicklung und soll auf APEX zugreifen
Abdeckung jeglicher Eigenschaft in APEX und Datenbank
Regeln sollen definiert werden können
Objekttypen => Item, Region, Dynamic Action, … Trigger, Table, ….
Prüfung als Regel => SQL pro Regel
Kategorien => APEX, Datenbank, Daten
Aktiv/Inaktiv => Aktivierung und Deaktivierung von Regeln
Meldung => Was soll ausgegeben werden wenn Regelprüfung Daten findet
Kommentar => Erklärung der Regel
Vorgänger => Abbildung von Abhängigkeiten => Prüfung nicht durchführen, wenn vorige schon fehlgeschlagen
Ausschluss => gibt es Objekte die von der Regel ausgenommen werden
Ebene => pro Seite / Anwendung?
Mögliche Umsetzung als Region oder Process Plugin
Region => direkter Output, keine eigener Output zu definieren, Auf global Page möglich
Process => eigene Weiterverarbeitung, kann weder als Application Process oder noch auf Seite 0 / Global Page
Logik zusammen im Package
Nur Render/Process funktion unterschiedlich
Process Plugin über APEX_COLLECTIONS
Problem der LOV für Plugins nur statisch
http://apex.mt-ag.com/pls/apex/f?p=185
Plugin auf Basis von APEX 4.2
Plugin bestehend aus Type, Package & Regeltabelle
Konfiguration => Darstellung => über Region mit eigener Klasse erweiterbar (standard über IR-Klasse)
=> Filter => Seite & Anwendungs ID, Aktivierung / Deaktivierung nicht möglich da nur fest verdrahtete LOV gehen
Package => Render Region => Region Plugin
Execute Process => Process Plugin
Edit Link => Komponenten in APEX direkt per Link editierbar
Run Rules => Funktion zum Durchlauf der Regeln
Type => nächste Folie Details
Tabelle => Enthält Regeln und Metainformationen zur Ausführung einer Regel