Click here to load reader

EFFEKTIVE BLUEPRINTS FÜR FORMS2ADF - doag.org · PDF fileDOAG 2013 BLUEPRINT 14 1. (Ggfs.) Dialog - Applikation / Workspace im JDeveloper erstellen 2. Dialog basierend auf dialog-

  • View
    0

  • Download
    0

Embed Size (px)

Text of EFFEKTIVE BLUEPRINTS FÜR FORMS2ADF - doag.org · PDF fileDOAG 2013 BLUEPRINT 14 1....

  • DOAG 2013

    Ulrich Gerkmann-Bartels und

    Andreas Koop

    EFFEKTIVE BLUEPRINTS FÜR FORMS2ADF

  • Andreas Koop Geschäftsführung & Consultant

    Oracle Technologies

    ÜBER MICH

    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

    http://www.enpit.de/blog http://www.enpit.de/blog

  • Ulrich Gerkmann-Bartels Geschäftsführung & Consultant

    Oracle Technologies

    Ulrich Gerkmann-Bartels

    ÜBER MICH

    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

    3

    http://www.enpit.de/blog http://www.enpit.de/blog

  • Training DevelopmentConsulting Oracle Business

    Intelligence Oracle ADF ADF Mobile

    Oracle WebLogic

    Oracle WebCenter

    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 einen Wizard generierbar.

  • DOAG 2013

    DESIGN

    15

    dialog.jsf

    Menu

    dialog-btf

    form.jsff

    dialog-copy-btf-template

    dialog-base-btf codename.dialog

    adfc-config.xml Dialog: Vollständige ausführbare Benutzeroberfläche Form: Teil eines Benutzerinterfaces

    DialogManager Scope:View

    Register

    dialog-template.jsf

    form-template.jsf

    Use Existing Transaction if Possible Share 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-Application ADF 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-btf TabsController Scope:PageFlow

    #{pageFlowScope.TabsController.afterValidate}

    TabsViewBean Scope: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 !

Search related