effective blueprints for forms 2 oracle adf
Post on 14-Jun-2015
614 Views
Preview:
DESCRIPTION
TRANSCRIPT
DOAG 2013
Ulrich Gerkmann-Bartelsund
Andreas Koop
EFFEKTIVE BLUEPRINTS FÜR FORMS2ADF
Andreas KoopGeschäftsführung & Consultant
Oracle Technologies
ÜBER MICH
Beratung, Training Oracle TechnologieADF Certified Implementation Specialist
CommunityDOAG, ADF EMG, ADF German Community, Twitter @multikoop
BlogTechnical http://multikoop.blogspot.comSonstiges http://www.enpit.de/blog
2
Ulrich Gerkmann-BartelsGeschäftsführung & Consultant
Oracle Technologies
Ulrich Gerkmann-Bartels
ÜBER MICH
Beratung, Training Oracle TechnologieADF Certified Implementation Specialist
CommunityDOAG, ADF EMG, ADF German Community, Twitter @Gerkmann-Bartels
BlogTechnical http://maybe-interesting.blogspot.comSonstiges http://www.enpit.de/blog
3
Training DevelopmentConsultingOracle Business
IntelligenceOracle ADFADF Mobile
OracleWebLogic
OracleWebCenter
ENTERPRISE PRAGMATIC IT
Oracle Fusion Middleware
4
DOAG 2013
AGENDA
Blueprint
No. One
Dialog-BTF-Form
Dialog-Register
ValueHolder-ViewObject
Reserve-BusinessObject
5
DOAG 2013
BLUEPRINT ALS SPRACHBILD‣ Ein Bauplan
‣ „...Metaphorisch steht das eigentlich rein technologisch gemeinte Wort Blaupause für ein maßgebendes Urmodell oder einen Masterplan...“*
‣ Kommunikationshilfe -> Design Pattern
‣ Design und Implementierungsvorgabe
* Wikipedia: Blaupause - Verwendung als Sprachbild
DOAG 2013
FOKUS‣ Die neue Applikation soll in der Darstellung und
User Interaktion der Forms - Anwendung gleichen.
‣ Business Logik befindet sich in der Datenbank
‣ Ergänzender und unterstützender Datenbankcode ist akzeptabel
‣ Bestehendes Entwicklungsteam soll sich in der Lernphase und Weiterentwicklung wiederfinden
DOAG 2013
AGENDA
Blueprint
No. One
Dialog-Form
Dialog-Register
ValueHolder-ViewObject
Reserve-BusinessObject
9
SMILE
DOAG 2013
AGENDA
Blueprint
No. One
Dialog-Form
Dialog-Register
ValueHolder-ViewObject
Reserve-BusinessObject
12
DOAG 2013
HERAUSFORDERUNG ‣ Ein Dialog soll als ein Konstrukt im Konzept erkennbar sein
‣ Dialoge sollen keine separaten Datenbankverbindung öffnen
‣ Formulare sollen auch in anderen Rahmenapplikationen einsetzbar sein
‣ Formulare im Dialog sollen ggfs. eigenen Transaktionsrahmen setzen
‣ Dialoge sollen sehr einfach aus der ganzen Applikation aufrufbar sein.
DOAG 2013
BLUEPRINT
14
1. (Ggfs.) Dialog - Applikation / Workspace im JDeveloper erstellen
2. Dialog basierend auf dialog-template.jsf erstellen
3. Dialog BTF basierend auf dialog-copy-template.xml erstellen
4. Form basierend auf form-template.jsf erstellen
5. Dialog BTF durch View und MethodeActivity auffüllen
6. Binding in der Form umsetzen
enpit.sample.dlgfrm
Punkt 1. - 4. sind prinzipiell durch einenWizard generierbar.
DOAG 2013
DESIGN
15
dialog.jsf
Menu
dialog-btf
form.jsff
dialog-copy-btf-template
dialog-base-btfcodename.dialog
adfc-config.xml Dialog: Vollständige ausführbare BenutzeroberflächeForm: Teil eines Benutzerinterfaces
DialogManagerScope:View
Register
dialog-template.jsf
form-template.jsf
Use Existing Transaction if PossibleShare Datacontrols with calling task flow entry
DOAG 2013
BEWERTUNG
16
‣ Konzept ermöglicht eine einfache Orientierung für Forms-Entwickler
‣ Flexible Granularität und Bereitstellung*
‣ Dialoge sind für sich alleine lauffähig und testbar
1-N Dialoge pro JDev-ApplicationADF Library / Shared WLS Library / EAR
*DOAG Development 2013: Continuous Delivery in ADF Projekten...
DOAG 2013
AGENDA
Blueprint
No. One
Dialog-Form
Dialog-Register
ValueHolder-ViewObject
Reserve-BusinessObject
17
DOAG 2013
HERAUSFORDERUNG ‣ Validierung bei Wechsel von Registerkarten
‣ Reduzierung der Komplexität (Standard-PanelTabbed Komponente lädt alle Registerkarten-Inhalte!)
‣ Ausbaufähig zu einem Prozessfluss (BPM)
DOAG 2013
BLUEPRINT ‣ Register als ADF Train mit Validierung
DnD
DOAG 2013
BLUEPRINT ‣ Realisierung durch ADF Taskflow Train
‣ Register werden durch af:navigationPane (hint=tabs) auf dem Train-Model erzeugt
‣ Jeder Reiterinhalt ist ein Page-Fragment (JSFF)
‣ Von jedem Page-Fragment führt eine Navigation-Rule namens „validate“ zur jeweiligen Validierungsmethode
DOAG 2013
DESIGN
tabs-template.jsf tabs-template-btfTabsControllerScope:PageFlow
#{pageFlowScope.TabsController.afterValidate}
TabsViewBeanScope:View
BTF als Train
Tabs by navigationPane on TrainModel!
DOAG 2013
DESIGN ‣ BTF (Train) auf Basis von Tabs-Template-BTF
‣ Validierungsmethoden, z.B. in AM-Impl Klasse
DOAG 2013
BEWERTUNG ‣ Clean and Simple Design Pattern
‣ Die Vorgehensweise ist für ADF Rookies / Forms Veteranen transparent und wartbar
‣ Ausbaufähig zu einem Prozessablauf (da bereits als Train implementiert ;)
DOAG 2013
AGENDA
Blueprint
No. One
Dialog-Form
Dialog-Register
ValueHolder-ViewObject
Reserve-BusinessObject
24
DOAG 2013
HERAUSFORDERUNG‣ Suchdialoge in klassischen Forms-Anwendungen
sind meist sehr komplex und umfangreich
‣ ADF BC ViewCriteria Ansatz ist zu unflexibel. Es lassen sich nur wenige Anpassungen vornehmen
‣ Beispiel
DOAG 2013
‣ ValueHolder VO definieren
‣ ValueHolder VO-Instanz im AM exponieren
BLUEPRINT
26
DOAG 2013
BLUEPRINT
27
‣ Einführung eines transienten, programmatischen ViewObjektes mit exakt einer Row (als sog. ValueHolder) für die Aufnahme der Suchkriterien
‣ Es können alle ADF BC Features für die Erstellung der Suchmaske genutzt werden
‣ Der Flexibilität sind keine Grenzen gesetzt
‣ Gewohnte (ADF Minded) Arbeitsweise über die DataControl Palette
DOAG 2013
DESIGN
28
DOAG 2013
‣ Suche durchführen in einer Service-Methode (AM oder VO Level)
‣ Suchdialog erstellen
DESIGN
29
DOAG 2013
BEWERTUNG
30
‣ Model-Driven LOVs können für den Aufbau des Suchdialogs verwendet werden.
‣ Maximale Flexibilität beim Oberflächendesign der Suchmaske
‣ Dynamische Zusammenstellung der WHERE- und ORDER BY-Klausel möglich (bei Bedarf)
‣ Die Vorgehensweise ist für ADF Rookies / Forms Veteranen transparent und wartbar
DOAG 2013
AGENDA
Blueprint
No. One
Dialog-Form
Dialog-Register
ValueHolder-ViewObject
Reserve-BusinessObject
31
DOAG 2013
HERAUSFORDERUNG ‣ Sperren von Business Objekten / Datensätzen über
einen längeren Zeitraum ohne einen physikalischen Sperre (Lock) zuhalten
‣ Nutzen von Connection Pooling
DOAG 2013
BLUEPRINT
33
throw exception if business object is locked !
DOAG 2013
DESIGN
34
‣ Erweiterung der Tabellen oder eigenen Datenstruktur zur Verwaltung einer Sperre
‣ Prüfung der Sperre durch generierte Trigger oder Programmablauf
‣ Keep-Alive durch (ADF-) Anwendung notwendig
‣ Automatische entfernen einer Sperre durch Datenbank - Job
DOAG 2013
DESIGN
35
DOAG 2013
DESIGN
36
DOAG 2013
BEWERTUNG
37
‣ Konzept lässt sich transparent in bestehende Datenbankanwendungen einführen.
‣ Löst nicht die Problematik von globalen Packagevariablen und im Code gesetzten Locks.
‣ Erfordert ein eigenes Management der Sperre
‣ Durch Integration in Dialog Task Flow Template leicht nutzbar
*One more thing...
DOAG 2013 39
DOAG 2013 40
VIELEN DANK FÜR IHRE AUFMERKSAMKEIT
HABEN SIE NOCH FRAGEN?
Join our team -We‘re HIRING !
top related