Archive for July, 2009
Installing WebCenter 11g – Design Time and Run Time (and on Linux)
Jul 31st
Getting started with WebCenter 11g, released on July 1st 2009, is quite easy. What you have to do exactly depends on the environment you work in, the bits and pieces in WebCenter that you want to make use of and the other FMW components that are part of your technology stack. Note that most of the installation steps you have to go through for WebCenter 11g are the same as for SOA Suite 11g – both involve WebLogic 11g, the Repository (Creation Utility against an 11g database) and the creation of a dedicated domain on WebLogic.
If all you are looking for is fiddling around with WebCenter in an isolated development environment, there is a lot you can do by simply adding the WebCenter plugin to JDeveloper 11g (11.1.1.1.x). With the plugin installed, you can work with (most) WebCenter Services, ,most of the WebCenter Composer and Framework facilities – including run time page customization and consuming portlets. Just go to the Help Window in JDeveloper, select the Check for Updates option and select the WebCenter 11g extension to be installed. A JAR of some 150 Mb or so is downloaded, JDeveloper is restarted, the integrated WebLogic Server is extended with WebCenter functionality and you are ready for some WebCenter development.
You can also download the zip-file with the WebCenter extension for JDeveloper directly from the page at: http://www.oracle.com/technology/products/jdev/101/update/fmw_products.xml. You can then install the extension using the option ‘local file’ and selecting the zip file.
A very useful article was published yesterday by George Maggessy on the installation of WebCenter 11g on a Linux box – see http://georgemaggessy.blogspot.com/2009/07/installing-webcenter-suite-11g-on-linux.html. He explains – and demonstrates through many screenshots – what the steps are (by and large the same as on Windows by the way) and what choices you have to make during the installation process.
DELETE in the MERGE statement
Jul 29th
The Merge statement was introduced in Oracle 9i and improved upon in Oracle 10g. In Oracle 9i only the INSERT and UPDATE parts were supported, in Oracle 10g DELETE was added. The "merge_update_clause" and "merge_insert_clause" became optional. The basic syntax for the MERGE statement:
DELETE can only occur in the "merge_update_clause" of the above schema. This means that it must occur in the WHEN MATCHED THEN clause. Until recent, I missed this part of the description of the "merge_update_clause" concerning the DELETE operation. First I will show you what I thought, then I’ll show you where the behavior is documented.
Dutch Oracle Open World Preview 2009
Jul 27th
"Almost" Oracle Open World again…
AMIS, represented via Peter Ebell, Lucas Jellema and me (Marco Gralike), entered several abstracts for this years Oracle Open World Conference. Probably to our surprise, all of those were honored, and we are in the "luxurious" position to do our best on 7 presentations regarding various topics, like Cloud Computing, Oracle Coherence, building solutions via Oracle ADF Faces, 11gR2 features, XML DB, Oracle WebCenter and SOA…
I am also up/in for it again, although my fears about "Please! Not on Sunday Again ("Jet lag")…! ", became true… Both my sessions will be on Sunday. My first session will be in the Hilton Hotel at 11:45 and the next one on that day will be in Moscone at 15:30 hours. Grrr…
Report from presentation ‘JPA 2.0 – What’s new’
Jul 15th
The Java Specification Request 317 (JSR-317) aka JavaTM Persistence 2.0, (JPA 2.0) has finally reached the last stage, "Completion of Reference Implementation (RI) and Technology Compatibility Kit (TCK)", before it’s officially released. Therefore last week a KC was given with a presentation of the new functionality and differences compared to JPA 1.0 and some hands-on exercises. Read the rest of this entry »
ODTUG Kaleidoscope 2009
Jul 13th
Recently I presented for the fourth time at the annual ODTUG Kaleidoscope conference. It’s really a great conference that I recommend to every Oracle consultant. It features great presentations, discussion forums, hands-on labs on a broad range of subjects ranging from Oracle Forms to ADF, SOA, Apex, Essbase, PL/SQL, methodology etc. etc. But it’s not only the sesssions, but also the fun and discussions during breakfast, lunch, diner and other social activities and it’s very easy to meet the experts in the field. This makes the Kaleidoscope one of the most valuable conferences.
ADF 11g PanelDashboard; configure your own dashboard
Jul 9th
With the recent ADF release a new component is introduced: The panelDashboard component. A component that is easy to use and offers a very visual presentation. With this component we can quickly create a dashboard that consists of panelBox components that can each provide their own content. The dashboard lays these panelBoxes out in a grid – we can specify the number of columns in the grid. With a minimum of configuration (just by adding dropSource components) we can make the panelBoxes drag-and-droppable, allowing the user to reconfigure the dashboard. These re-configurations can be persisted at session level or (using MDS) across sessions. In this post I will explain some of the features of this panelDashboard component, and I will show some usages. Read the rest of this entry »
ADF 11gR1 – new Hierarchical Viewer for visually pleasing representation of data structures
Jul 7th
One of the data visualization tags required by the teams working on the Oracle Fusion Application Module for Human Resource Management, was a component capable of rendering organization charts. Hierarchical structures from CEO all the way down to the youngest trainee. In a pleasing, graphically interesting, somewhat animated fashion. And so the ADF team developed the Hierarchy Viewer. And since they developed it anyway, we can now make use of it as well. While it may not be the component you will most frequently use, it is certainly an interesting presentation option for special data structures. This component can work against the same tree data binding you would use for tree tables or trees, and can therefore be configured in a very simple, declarative fashion.
In this article some simple examples of how to use this new component. This article is the short summary of a presentation and demonstration I did at the recent ODTUG Kaleidoscope 2009 conference (late June, Monterey). It demonstrates how the conference’s session schedule can be represented in the Hierarchy Viewer.

Create, Deploy and Consume an ADF Task Flow with ADF Business Components inside
Jul 6th
I have discussed ADF Task Flows before in raving terms and with some simple example to prove my point. To be honest, I have never before really digged deep in any article into the use case of creating a bounded task flow that has ADF Business Components inside, deploying it to an ADF Library and reusing that Task Flow from that library in a completely different ADF application. That may not even have Business Components itself. Now is the time to remedy that omission. And also demonstrate how the consumed task flow – originating from somewhere in the Resource Catalog – can be integrated and synchronized with the consuming page.
It is not very difficult, but some steps must be observed to wire it together neatly.
Our objective in this article:
* Create a bounded task flow EmployeesList that uses ADF Business Components (in this particular case to display data from a database table called EMP, you may have hear it mention before)
* Deploy the task flow to an ADF Library to make it reusable in other ADF applications
* Create a new ADF Application in which the task flow EmployeesList is reused.
The steps we go through to accomplish this:
1. Create the Bounded Task Flow
2. Deploy the Bounded Task Flow to an ADF Library
3. Add the ADF Library to the Resource Catalog and then to the consuming application
4. Add the Task Flow to a page and wire it into it.
Introduction to ADF reusable task flows – consume a bounded task flow that gets synchronized with input parameter changes
Jul 4th
Task Flows are the primary mechanism in ADF 11g for organizing the workload in manageable chunks that can be developed in a decoupled fashion in relative isolation, then merged together in web pages that implement the desired functionality. Task Flows are also one of the key mechanisms for reuse – along with but for other purposes than Page Templates, Page Fragments and Declarative Components. Task Flows are the key vehicle for creating encapsulated, stand alone services with a User Interface that can be consumed in multiple pages in various applications.
Task Flows come with their own managed beans, navigation rules, data binding, user interface – behind a fairly well defined interface which consists of input parameters and input/output events.
A few things that might be added to even improve a little on task flows:
- a structured method for documentation and discovery, something like WSDL or JavaDoc to describe the meaning of the Task Flow and its input parameters
- support for facets through which additional content can be injected into (views of) the task flow
- support for page templates with facets predefined by the taskflow that can be associated with the views of the task flow
- ability to register listeners with a task flow for specific events (the contextual event framework is quite awkward)
In this article a simple example of using the Task Flow mechanism for the creation of a reusable service – text translation – that is developed as a bounded task flow that is deployed in an ADF Library to be reused in potentially many applications and pages.
Latest ADF 11g (11.1.1.1.0) Rich Client Demo is available
Jul 3rd
Today I came across a brief post on the OTN Forum for JDeveloper and ADF (http://forums.oracle.com/forums/thread.jspa?threadID=923587&tstart=0). The latest demo application (11.1.1.1.0) for ADF 11g Faces RC can be downloaded from http://download.oracle.com/otn/java/jdeveloper/111/extensions/adf-richclient-demo.war. It comes as a WAR file that can be deployed on WebLogic 11g.
Alternatively, we can turn the WAR file into a JDeveloper project, to inspect Source code. The steps are: Read the rest of this entry »



