EFFEKTIVE BLUEPRINTS FÜR FORMS2ADF - doag.org · DOAG 2013 BLUEPRINT 14 1. (Ggfs.) Dialog -...

42
DOAG 2013 Ulrich Gerkmann-Bartels und Andreas Koop EFFEKTIVE BLUEPRINTS FÜR FORMS2ADF

Transcript of EFFEKTIVE BLUEPRINTS FÜR FORMS2ADF - doag.org · DOAG 2013 BLUEPRINT 14 1. (Ggfs.) Dialog -...

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 !