adf emg xml datacontrol (openworld 2014)
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.TRANSCRIPT
![Page 1: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/1.jpg)
ADF EMGXML Data ControlPowerful and Easy ADF Data Control for XML data
![Page 2: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/2.jpg)
About Us
Richard OlrichsMNwww.olrichs.nl@richardolrichs
Wilfred van der DeijlThe Future Groupwww.redheap.com@wilfreddeijl
![Page 3: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/3.jpg)
AgendaShort introductionBrief historyAlternativesLive product demoTheoretical summary of the demo
![Page 4: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/4.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/5.jpg)
Short IntroductionADF abstraction through Data Controls
![Page 6: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/6.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/7.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/8.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/9.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/10.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/11.jpg)
● 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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/12.jpg)
ADF EMG
ADF EMG
ADF EMG
![Page 13: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/13.jpg)
Demo TimeADF EMG XML DataControl
![Page 14: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/14.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/15.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/16.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/17.jpg)
![Page 18: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/18.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/19.jpg)
WSDataProviderEmployeeService
<Employee> <Type>MGR</Type> …</Employee>
![Page 20: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/20.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/21.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/22.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/23.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/24.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/25.jpg)
Wiki - adfxmldc.atlassian.net/wiki
![Page 26: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/26.jpg)
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)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/27.jpg)
Questions
![Page 28: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/28.jpg)
Demo shots
![Page 29: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/29.jpg)
Creating Data Control
![Page 30: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/30.jpg)
![Page 31: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/31.jpg)
![Page 32: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/32.jpg)
Initial Data Controlin 2 minutes
Dynamic Parameter from DataControls.dcx
![Page 33: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/33.jpg)
Drag-DropData Control
onto Page
Dynamic Parameter value (typically from EL)
![Page 34: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/34.jpg)
Initial Task Flowin 5 minutes
![Page 35: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/35.jpg)
Which Data Collection is this customizing ?
Calculated (Read Only) Attribute
Transient (Read Write) Attribute
Attribute Validation
![Page 36: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/36.jpg)
Register Customization Class(es) with Data Control
![Page 37: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/37.jpg)
Calculated Attribute
Transient Attribute
![Page 38: ADF EMG XML DataControl (OpenWorld 2014)](https://reader034.vdocuments.net/reader034/viewer/2022052301/55621992d8b42af2128b55aa/html5/thumbnails/38.jpg)
Transient Attribute
Calculated Attribute
Attribute Validation