Effective Blueprints for Forms 2 Oracle ADF

1,457 views

Published on

Vortrag von Ulrich Gerkmann-Bartels (@enpit) und Andreas Koop (@enpit) zu effektiven Blueprints für Oracle Forms zu Oracle ADF auf der DOAG 2013 Konferenz (#doag2013).

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Effective Blueprints for Forms 2 Oracle ADF

  1. 1. EFFEKTIVE BLUEPRINTS FÜR FORMS2ADF Ulrich Gerkmann-Bartels und Andreas Koop DOAG 2013
  2. 2. ÜBER MICH Andreas Koop Geschäftsführung & Consultant Oracle Technologies Beratung, Training Oracle Technologie ADF Certified Implementation Specialist Community DOAG, ADF EMG, ADF German Community, Twitter @multikoop Blog Technical http://multikoop.blogspot.com Sonstiges http://www.enpit.de/blog 2
  3. 3. ÜBER MICH Ulrich Gerkmann-Bartels Geschäftsführung & Consultant Oracle Technologies Beratung, Training Oracle Technologie ADF Certified Implementation Specialist Community DOAG, ADF EMG, ADF German Community, Twitter @Gerkmann-Bartels Blog Technical http://maybe-interesting.blogspot.com Sonstiges http://www.enpit.de/blog Ulrich Gerkmann-Bartels 3
  4. 4. ENTERPRISE PRAGMATIC IT Consulting Oracle Business Intelligence Training Oracle WebCenter Oracle ADF ADF Mobile Oracle Fusion Middleware 4 Development Oracle WebLogic
  5. 5. AGENDA Blueprint Dialog-BTF-Form No. One Dialog-Register ValueHolder-ViewObject Reserve-BusinessObject DOAG 2013 5
  6. 6. 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
  7. 7. 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
  8. 8. AGENDA Blueprint Dialog-Form No. One Dialog-Register ValueHolder-ViewObject Reserve-BusinessObject DOAG 2013 9
  9. 9. SMILE
  10. 10. AGENDA Blueprint Dialog-Form No. One Dialog-Register ValueHolder-ViewObject Reserve-BusinessObject DOAG 2013 12
  11. 11. 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
  12. 12. BLUEPRINT 1. (Ggfs.) Dialog - Applikation / Workspace im JDeveloper erstellen 2. Dialog basierend auf dialog-template.jsf erstellen 3. Dialog BTF basierend auf dialog-copytemplate.xml erstellen 4. Form basierend auf form-template.jsf erstellen 5. Dialog BTF durch View und MethodeActivity auffüllen 6. DOAG 2013 enpit.sample.dlgfrm Punkt 1. - 4. sind prinzipiell durch einen Wizard generierbar. Binding in der Form umsetzen 14
  13. 13. form-template.jsf DESIGN form.jsff Menu Register Use Existing Transaction if Possible Share Datacontrols with calling task flow entry dialog-btf dialog-copy-btf-template dialog.jsf codename.dialog dialog-template.jsf dialog-base-btf DialogManager Scope:View adfc-config.xml DOAG 2013 Dialog: Vollständige ausführbare Benutzeroberfläche Form: Teil eines Benutzerinterfaces 15
  14. 14. BEWERTUNG ‣ Konzept ermöglicht eine einfache Orientierung für Forms-Entwickler ‣ Flexible Granularität und Bereitstellung* 1-N Dialoge pro JDev-Application ADF Library / Shared WLS Library / EAR ‣ Dialoge sind für sich alleine lauffähig und testbar *DOAG Development 2013: Continuous Delivery in ADF Projekten... DOAG 2013 16
  15. 15. AGENDA Blueprint Dialog-Form No. One Dialog-Register ValueHolder-ViewObject Reserve-BusinessObject DOAG 2013 17
  16. 16. 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
  17. 17. BLUEPRINT ‣ Register als ADF Train mit Validierung DnD DOAG 2013
  18. 18. 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
  19. 19. DESIGN BTF als Train tabs-template.jsf Tabs by navigationPane on TrainModel! DOAG 2013 tabs-template-btf TabsController Scope:PageFlow TabsViewBean Scope:View #{pageFlowScope.TabsController.afterValidate}
  20. 20. DESIGN ‣ BTF (Train) auf Basis von Tabs-Template-BTF ‣ Validierungsmethoden, z.B. in AM-Impl Klasse DOAG 2013
  21. 21. 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
  22. 22. AGENDA Blueprint Dialog-Form No. One Dialog-Register ValueHolder-ViewObject Reserve-BusinessObject DOAG 2013 24
  23. 23. 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
  24. 24. BLUEPRINT ‣ ValueHolder VO definieren ‣ ValueHolder VO-Instanz im AM exponieren DOAG 2013 26
  25. 25. BLUEPRINT ‣ 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 27
  26. 26. DESIGN DOAG 2013 28
  27. 27. DESIGN ‣ Suche durchführen in einer Service-Methode (AM oder VO Level) ‣ Suchdialog erstellen DOAG 2013 29
  28. 28. BEWERTUNG ‣ 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 30
  29. 29. AGENDA Blueprint Dialog-Form No. One Dialog-Register ValueHolder-ViewObject Reserve-BusinessObject DOAG 2013 31
  30. 30. HERAUSFORDERUNG ‣ Sperren von Business Objekten / Datensätzen über einen längeren Zeitraum ohne einen physikalischen Sperre (Lock) zuhalten ‣ Nutzen von Connection Pooling DOAG 2013
  31. 31. BLUEPRINT throw exception if business object is locked ! DOAG 2013 33
  32. 32. DESIGN ‣ 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 34
  33. 33. DESIGN DOAG 2013 35
  34. 34. DESIGN DOAG 2013 36
  35. 35. BEWERTUNG ‣ 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 DOAG 2013 37
  36. 36. *One more thing...
  37. 37. DOAG 2013 39
  38. 38. DOAG 2013 40
  39. 39. VIELEN DANK FÜR IHRE AUFMERKSAMKEIT Join our team We‘re HIRING ! HABEN SIE NOCH FRAGEN?

×