Upload
richard-olrichs
View
341
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Presentation by Wilfred van der Deijl and Richard Olrichs on the ADF EMG XML Data Control.
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 historyAlternatives
Live product demoTheoretical summary of the demo
Short Introduction● Goal: An easy way to handle XML in ADF● Any XML element can be runtime data
o XML payload in SOA/BPM Human Tasko SOAP Web Service responseo RESTful XML APIo XML column in databaseo Static fileo 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
anywhereo 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
o ADF EMG sub projecto https://adfxmldc.atlassian.net/wikio 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:o Generate JAX-WS Proxy classeso Domain POJO’so Mapper classes (and back).
● Labor intensive when services change● JAX-WS Proxy cannot be used directly as
bean DataControlo Dates and enumerations not supportedo JAXBElement getters/setters not supported
● Lot of work: o JAX-WS Proxyo ViewObjectso EntityObjectso Mappers (and back)
● BC is very database (SQL) centrico 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
o WSDataProvider - Web Serviceo ELDataProvider - Expression Languageo ResourceDataProvider - XML file from classpath
● Nesting DataProviderso Can manipulate dynamic parameters going into the
nested dataprovidero 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
o UnionFilter - Combines result from multiple providerso 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 elementso Calculated Attributeso Transient Attributeso Attribute Validationo Element Validationo Post Attribute Changeo Post Element Createdo 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