ADF EMG XML DataControl (OpenWorld 2014)

Preview:

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

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

About Us

Richard OlrichsMNwww.olrichs.nl@richardolrichs

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

AgendaShort introductionBrief historyAlternativesLive product demoTheoretical summary of the demo

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

Short IntroductionADF abstraction through Data Controls

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

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

AlternativesCalling WebService from ADF

1. ADF WebService DataControl

2. JAX-WS Proxy with Bean DataControl

3. Programmatic Business Components

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

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

● 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

ADF EMG

ADF EMG

ADF EMG

Demo TimeADF EMG XML DataControl

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

customizable● JDeveloper 11.1.1 and 12.1.3

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

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

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

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

WSDataProviderEmployeeService

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

WSDataProviderReferenceDataService

WSDataProviderEmployeeService

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

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

WSDataProviderReferenceDataService

WSDataProviderEmployeeService

UnionFilter

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

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

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

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>

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>

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

Wiki - adfxmldc.atlassian.net/wiki

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

Questions

Demo shots

Creating Data Control

Initial Data Controlin 2 minutes

Dynamic Parameter from DataControls.dcx

Drag-DropData Control

onto Page

Dynamic Parameter value (typically from EL)

Initial Task Flowin 5 minutes

Which Data Collection is this customizing ?

Calculated (Read Only) Attribute

Transient (Read Write) Attribute

Attribute Validation

Register Customization Class(es) with Data Control

Calculated Attribute

Transient Attribute

Transient Attribute

Calculated Attribute

Attribute Validation

Recommended