38
ADF EMG XML Data Control Powerful and Easy ADF Data Control for XML data

ADF EMG XML DataControl (OpenWorld 2014)

Embed Size (px)

DESCRIPTION

Oracle OpenWorld 2014 presentation launching the ADF EMG XML DataControl. A new (free) open source tool to work with any XML data in an Oracle ADF Application. Highly configurable and flexible.

Citation preview

Page 1: ADF EMG XML DataControl (OpenWorld 2014)

ADF EMGXML Data ControlPowerful and Easy ADF Data Control for XML data

Page 2: ADF EMG XML DataControl (OpenWorld 2014)

About Us

Richard OlrichsMNwww.olrichs.nl@richardolrichs

Wilfred van der DeijlThe Future Groupwww.redheap.com@wilfreddeijl

Page 3: ADF EMG XML DataControl (OpenWorld 2014)

AgendaShort introductionBrief historyAlternativesLive product demoTheoretical summary of the demo

Page 4: ADF EMG XML DataControl (OpenWorld 2014)

Short Introduction● Goal: An easy way to handle XML in ADF● Any XML element can be runtime data

○ XML payload in SOA/BPM Human Task○ SOAP Web Service response○ RESTful XML API○ XML column in database○ Static file○ and more

Page 5: ADF EMG XML DataControl (OpenWorld 2014)

Short IntroductionADF abstraction through Data Controls

Page 6: ADF EMG XML DataControl (OpenWorld 2014)

Short Introduction● XML Schema is the key● XML DataControl gets its structure from XSD● Runtime XML document can come from

anywhere○ Human task payload, Static resource, Web service,

or… wherever you like

Page 7: ADF EMG XML DataControl (OpenWorld 2014)

XML DataControl History● Development started at MN in August 2012● Adopted by Spir-it since March 2014● Open to the public

○ ADF EMG sub project○ https://adfxmldc.atlassian.net/wiki○ Available through Help > Check For Updates

Page 8: ADF EMG XML DataControl (OpenWorld 2014)

AlternativesCalling WebService from ADF

1. ADF WebService DataControl

2. JAX-WS Proxy with Bean DataControl

3. Programmatic Business Components

Page 9: ADF EMG XML DataControl (OpenWorld 2014)

ADF WebService DataControlAlternatives

● Not customizable, for simple web services

● Dates and enumerations not supported

● Only for simple web services like stock info or weather info

Page 10: ADF EMG XML DataControl (OpenWorld 2014)

JAX-WS Proxy with Bean DCAlternatives

● Lots of work:○ Generate JAX-WS Proxy classes○ Domain POJO’s○ Mapper classes (and back).

● Labor intensive when services change

● JAX-WS Proxy cannot be used directly as bean DataControl○ Dates and enumerations not supported○ JAXBElement getters/setters not supported

Page 11: ADF EMG XML DataControl (OpenWorld 2014)

● Lot of work: ○ JAX-WS Proxy○ ViewObjects○ EntityObjects○ Mappers (and back)

● BC is very database (SQL) centric○ Commit, Rollback, Fault-In selects, locking,

connection pooling, etcetera● Requires extensive coding in ADF BC base

classes

Programmatic ADF BCAlternatives

Page 12: ADF EMG XML DataControl (OpenWorld 2014)

ADF EMG

ADF EMG

ADF EMG

Page 13: ADF EMG XML DataControl (OpenWorld 2014)

Demo TimeADF EMG XML DataControl

Page 14: ADF EMG XML DataControl (OpenWorld 2014)

ADF EMG XML DataControl● Minimal effort to setup, yet powerful and

customizable● JDeveloper 11.1.1 and 12.1.3

Page 15: ADF EMG XML DataControl (OpenWorld 2014)

Powerful Providers● Data Provider - Fetch XML Element● Customization - Supplies customization classes● Type Mapper - Map XML to Java types● Structure Provider - Builds DC structure from XSD

Page 16: ADF EMG XML DataControl (OpenWorld 2014)

DataProvider Nesting● Plain DataProviders

○ WSDataProvider - Web Service○ ELDataProvider - Expression Language○ ResourceDataProvider - XML file from classpath

● Nesting DataProviders○ Can manipulate dynamic parameters going into the

nested dataprovider○ Get XML from nested provider and can manipulate it

before returning it to the caller

Page 17: ADF EMG XML DataControl (OpenWorld 2014)
Page 18: ADF EMG XML DataControl (OpenWorld 2014)

Nesting DataProviders● XSL Transformation● XML Schema Validation● Caching● Multi Nesting

○ UnionFilter - Combines result from multiple providers○ Build your own...

Page 19: ADF EMG XML DataControl (OpenWorld 2014)

WSDataProviderEmployeeService

<Employee> <Type>MGR</Type> …</Employee>

Page 20: ADF EMG XML DataControl (OpenWorld 2014)

WSDataProviderReferenceDataService

WSDataProviderEmployeeService

<Employee> <Type>MGR</Type> …</Employee>

<EmployeeTypes> <Type> <Code>MGR</Code> <Desc>Manager</Desc> </Type> …</EmployeeTypes>

Page 21: ADF EMG XML DataControl (OpenWorld 2014)

WSDataProviderReferenceDataService

WSDataProviderEmployeeService

UnionFilter

<Employee> <Type>MGR</Type> …</Employee>

<EmployeeTypes> <Type> <Code>MGR</Code> <Desc>Manager</Desc> </Type> …</EmployeeTypes>

<Union> <Employee> … </Employee> <EmployeeTypes> ... </EmployeeTypes></Union>

Page 22: ADF EMG XML DataControl (OpenWorld 2014)

WSDataProviderReferenceDataService

WSDataProviderEmployeeService

UnionFilter

XSLFilter

<Employee> <Type>MGR</Type> …</Employee>

<EmployeeTypes> <Type> <Code>MGR</Code> <Desc>Manager</Desc> </Type> …</EmployeeTypes>

<Employee> <Type>MGR</Type> <TypeDesc>Manager</TypeDesc> …</Employee>

<Union> <Employee> … </Employee> <EmployeeTypes> ... </EmployeeTypes></Union>

Page 23: ADF EMG XML DataControl (OpenWorld 2014)

WSDataProviderReferenceDataService

WSDataProviderEmployeeService

CacheFilter

UnionFilter

XSLFilter

<Employee> <Type>MGR</Type> …</Employee>

<EmployeeTypes> <Type> <Code>MGR</Code> <Desc>Manager</Desc> </Type> …</EmployeeTypes>

<Employee> <Type>MGR</Type> <TypeDesc>Manager</TypeDesc> …</Employee>

<Union> <Employee> … </Employee> <EmployeeTypes> ... </EmployeeTypes></Union>

Page 24: ADF EMG XML DataControl (OpenWorld 2014)

Java Customizers● Java Classes with Annotations● Can alter structure and behavior of

datacontrol elements○ Calculated Attributes○ Transient Attributes○ Attribute Validation○ Element Validation○ Post Attribute Change○ Post Element Created○ Custom operations/methods

Page 25: ADF EMG XML DataControl (OpenWorld 2014)

Wiki - adfxmldc.atlassian.net/wiki

Page 26: ADF EMG XML DataControl (OpenWorld 2014)

Next StepsDownload from JDev Update Center and follow 5 Minute Getting Started from wiki

Subscribe to ADF EMG:http://www.adfemg.org

Follow XML DataControl development:https://adfxmldc.atlassian.net/wiki

Page 27: ADF EMG XML DataControl (OpenWorld 2014)

Questions

Page 28: ADF EMG XML DataControl (OpenWorld 2014)

Demo shots

Page 29: ADF EMG XML DataControl (OpenWorld 2014)

Creating Data Control

Page 30: ADF EMG XML DataControl (OpenWorld 2014)
Page 31: ADF EMG XML DataControl (OpenWorld 2014)
Page 32: ADF EMG XML DataControl (OpenWorld 2014)

Initial Data Controlin 2 minutes

Dynamic Parameter from DataControls.dcx

Page 33: ADF EMG XML DataControl (OpenWorld 2014)

Drag-DropData Control

onto Page

Dynamic Parameter value (typically from EL)

Page 34: ADF EMG XML DataControl (OpenWorld 2014)

Initial Task Flowin 5 minutes

Page 35: ADF EMG XML DataControl (OpenWorld 2014)

Which Data Collection is this customizing ?

Calculated (Read Only) Attribute

Transient (Read Write) Attribute

Attribute Validation

Page 36: ADF EMG XML DataControl (OpenWorld 2014)

Register Customization Class(es) with Data Control

Page 37: ADF EMG XML DataControl (OpenWorld 2014)

Calculated Attribute

Transient Attribute

Page 38: ADF EMG XML DataControl (OpenWorld 2014)

Transient Attribute

Calculated Attribute

Attribute Validation