Best practise on showing payload on to adf ui

354 views
Skip to first unread message

rajonwebs

unread,
Aug 26, 2014, 5:45:37 PM8/26/14
to adf-met...@googlegroups.com
Hi everyone,

I would to know the best design strategy, to show payload which is an XML from soa human task to adf ui which integrated with oracle bpm. This is only a report data, hence no operations on form.


Now the existing form is designed in basic HTML and used JavaScript to bind those payload and display on the form. We used developer 11.1.7 as we are using soa.

Please give us valuable inputs to make more use of adf technology.


Thanks,
Rajesh.

BradW

unread,
Aug 28, 2014, 9:40:24 AM8/28/14
to adf-met...@googlegroups.com
This is pretty straight forward. You can create a data control ontop of a bean. Then use the bean on page or fragment. Im sure there ard examples in the fusion developers guide.

Best of luck,

BradW

Mahesh Kumar Reddy Y V

unread,
Aug 28, 2014, 12:03:24 PM8/28/14
to adf-met...@googlegroups.com
I have had a chance to work on integrating SOA with ADF earlier and I had to also change the payload elements. This is what I followed : 

1. You can create ADF task flow based on the Human task and it basically develops all part of UI based on the XSD of the payload. And you can change the UI according to your requirement. While you create ADF page from the human task flow, you get to select which details you want to show on ADF page. 

You may want to know that this UI will be displayed when you select the specific human task from the BPM worklist. 

The document link below gives a fair idea of the concepts involved but it may not be a step by step process. 


Good luck,
Mahesh



--
--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com

All content to the ADF EMG lies under the Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/).  Any content sourced must be attributed back to the ADF EMG with a link to the Google Group (http://groups.google.com/group/adf-methodology).

---
You received this message because you are subscribed to the Google Groups "ADF Enterprise Methodology Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adf-methodolo...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Thanks,
Mahesh.

Wilfred van der Deijl

unread,
Aug 29, 2014, 7:25:10 AM8/29/14
to adf-met...@googlegroups.com
It depends a bit on the way you want to get to this human task payload from ADF. I can think of a number of ways:
  1. Use the suggested Human Task datacontrol that gets generated when you generate a human task taskflow from the SOA part of JDeveloper. This is probably the easiest to setup but it is limited to human tasks. If you want to have more control over the payload, or are likely to handle other sorts of XML in your application (like webservices) you might opt for one solution to handle them all. Another downside of the Human Task DataControl is that is somewhat limited in handling certain datatypes. Things like dates, enumerations, booleans, base64 binary might cause issues although some of that might have been fixed in later versions.
  2. Get your hands on the raw XML of the human task payload, either by using the TaskQueryService/TaskService SOAP web services that are included with SOA/BPM or use the Java (EJB) Human Workflow API to access the human tasks.
If you go for the "raw XML" approach, again there are a number of ways to use this as an ADF datacontrol:
  1. ADF WebService DataControl (assuming you are using the SOAP task web services): I find this datacontrol hardly usable except for extremely simple services like getting the wether or stock quotes. Typically not suitable for complex XML
  2. Create JAX-WS Proxy for the webservice or JAXB objects that can parse the XML and use these in combination with the Bean DataControl. This gives you full flexibility but requires a lot of coding. The JAXB objects (JAX-WS also uses this) cannot be used directly in the Bean DataControl, so you would have to build your own Java object model and a set of mapper classes that can map from the JAXB objects to your own Java object model and back. Your own Java object model can than be made "friendly" to the Bean DataControl. Upside is that you have full control over what happens, but downside is the amount of work especially if the XML structure is going to change a lot during development
  3. Some people prefer to use so called "Programmatic Business Components". This is where you take ADF Business Components, and subclass some implementation java classes and override methods that normally handle database interaction and replace them with java code that invokes a service or retrieve/manipulate XML in some other way. I am not a fan of this approach. I've seen several projects struggling with this approach. The initial setup seems easy but in the long run you get into trouble with ADF BC being very database centric and having a lot of concepts that don't translate very well to XML and web services. How to handle things like commit/rollback, requeries, fault-in selects, etc. etc.
Luckily there is something great coming. At Oracle OpenWorld 2014 Richard Olrichs and myself will be presenting on the ADF EMG XML DataControl. This is a (free) open source project with a very powerful, yet easy, ADF DataControl to work with XML sources. This presentation will be part of the ADF EMG/ODTUG ADF Super Sunday. You can get a sneak peek at what is possible on the project wiki: https://adfxmldc.atlassian.net/wiki/display/XMLDC/Getting+Started+in+5+Minutes
The wiki is still work in progress and we will be sharing more details at OpenWorld. The 5 minutes getting started guide give a good idea on how simple it is to get started on a new project, but doesn't really show all the powerful ways in which you can extend the datacontrol with pluggable providers and java annotations. Those will be shown at OpenWorld and we will try to update the wiki as soon as possible.

In the end I would advice you either one of two approaches:
  1. Use the Human Workflow datacontrol if this is just one taskflow that has to show details on a single task (payload)
  2. In the event you are consuming (many) more XML sources, like (other) web services give the ADF EMG XML DataControl a try. In most projects I've done it isn't just a single human task payload, but you will typically need to invoke (many) more services in such taskflows

Good luck,
Wilfred

Reply all
Reply to author
Forward
0 new messages