Skip to main content


Showing posts from 2008

My UKOUG ratings

As a final message from the UKOUG I got the ratings for my session. And they are absolutely amazing (4 = Good; 5 = Very Good; 6 = Excellent):

OverallMy SessionTopic4.465.57Content4.315.46Presentation Skills4.405.37Quality of Slides4.205.43Value4.265.56
Some additional remarks: I wish my line manager (who has a Java background) had seen this presentation as he thinks Apex is too lightweight! Excellent!; Great; Fantastic session; Great!; Would like more. Just what I needed to know to solve some issues, but I've got no tech ability yet - off to read :-); Excellent demo - very interesting. Has shown the possibilities open to us!; lots of javascript is hard to follow.

So I am glad I was in this session ;-).
Thanks everybody who rated me for these great results. I hope I can keep up this level for the next events (O>Zone, ODTUG).

Abstract ODTUG accepted!

Yesterday evening I received an e-mail from the Speaker Coordinator of ODTUG's Kaleidoscope 2009 that my abstract on How to integrate APEX and Oracle Forms? has been accepted for presentation!
I'm looking forward to present and to meet again all the great people I met at the previous event in New Orleans. I have 'some' time to create the actual presentation - with some nice demo's of course - because the event is starting about half a year from now.
If you have any specific subject on this matter you would like to see during my presentation, please drop a comment!

Moving through tabular forms using the Up/Down arrow keys

Today there was a question on the Oracle APEX forum about How to Navigate through the rows of Report using up or down key. This question pop ups now and then and I decided to figure out how to do this. The solution is quite straight forward:

Set the Element Attributes of the columns of the tabular form to :
onkeyup="moveUpDown(this, event)"and create a that function in the HTML Header:

function moveUpDown(pThis, pEvent){
var keynum;
var current = document.getElementsByName( );
if(window.event) // IE
{ keynum = pEvent.keyCode; }
else if(pEvent.which) // Netscape/Firefox/Opera
{ keynum = pEvent.which; }
if (keynum == 40 || keynum == 38) // Key-Up or Key-Down
{ for (i=0;i < current.length;i++)
{ if ( current[i].id == ) // This is current row
{ if (keynum == 40) // Move down
{ current[Math.min(current.length - 1,i+1)].focus(); }
else // Move up
{ current[Math.max(0,i-1)].focus(); }
Check out the live example.
PS: C…

LOUD 2008

Yesterday evening Logica held the annual LOUD (Logica's Oracle Update Day) event. A tradition is that there is an award for 'Best Acting Consultant' (nothing to do with role playing ;-) ). And this year the winner is....(or are): Rutger and myself! We got the award for our continuous effor to spread the APEX gospel within - and outside - Logica. And of course a bottle of champagne came along...
Apart from that there was a keynote and 12 presentations in four tracks - Fusion, Development, Apps and DBA. Rutger and I also did a Live-Web-Application-Development-with-APEX session (for which we received an addtional bottle of wine....).
All in all a great evening, and it is always good to see so many colleagues (about 160) 1interested in the Oracle toolstack.

It is even more easy to replace the APEX with the jQuery calendar...

In a previous post I described how to replace the default APEX calendar with a better looking jQuery calendar. But one of the steps is that the "Display as" and "HTML Form Element Attributes" needed to be changed. But using jQuery more extensively that isn't even necessary. When you put the following code in an HTML Region on Page 0 (assuming you already included the jQuery stuff), all existing APEX calendar items are automagically 'converted' to jQuery calendar items. (No guarantee though: I didn't test it on all sorts of pages, may be dependent on your template). Look here for a live demo...

// Remove original Datepicker
$("td.datepicker + td" ).remove();
// Add jQuery Datepicker to all Datepicker input fields that are not hidden
$("td.datepicker > input[type!=hidden]" ).datepicker(
{ dateFormat : 'dd/mm/yy'
, closeText : 'X'
, clearText : ''
, showOn : &…

APEX : How to emphasis Required Fields...

In APEX there is no property to mark a field as a required field (at this moment, could be an enhancement request!). However you can mark the prompt of a field by using the 'Required' template - with or without help. So why not use the APEX Repository to enhance the look-and-feel of your application and show the user which fields are required? And of course we use jQuery to accomplish this.

This is how you do it:
Create an On Demand Application Process (lets call it getRequiredItems) and fire it onLoad - After Header:

CURSOR c_items IS
SELECT item_name
FROM apex_application_page_items
WHERE item_label_template LIKE 'Required%'
AND page_id = :APP_PAGE_ID;

item_list varchar2(32000) := '';
item_sep varchar2(1) := '~';

FOR r_item IN c_items LOOP
item_list := item_list||r_item.item_name||item_sep;
-- P0_REQUIRED_ITEMS is an hidden item on Page 0
:P0_REQUIRED_ITEMS := substr( item_list, 1, length( item_list ) -1);
END; This process returns the i…

How to replace the default APEX calendar with jQuery calendar...

One of the things I talked about during my presentations at OOW and UKOUG is how to replace the (not so good looking) default APEX calendar with a (much nicer) jQuery version. So here are the steps:
1. Download jQuery and jQuery UI from the jQuery website. Upload the jQuery javascript files to your webserver (or into your database if you are using the EPG). Or use GoogleCode...
2. Create a HTML Region on Page 0, containing the references to the uploaded stylesheets and javascript files. Something like this:

3. Set the "Display as" property of the date fields to 'Text Field" and set the "HTML Form Element Attributes" to : class="datefield".
4. Back in Page 0, add a function to the jQuery 'document ready' function to add the jQuery datepicker to all fields with that class:

// Attach a DatePicker icon and function to input fields with class="datefield"
{ dateFormat …

Oracle Designer Extension for SQL Developer

In SQL Developer there is an Application Express node. That is a great way to browse through the APEX Repository. And wouldn't it be great if you can use the same technique to browse your Designer repository?
Can we build it...yes we can...
Using User Defined Extensions you can create something like this:'Just' create an XML file to query the Repository and add it as an extension of the Navigator type. This XML file does what is shown in the pic above (it is not finished yet, and anyone who wants to contribute...feel free to add more subnodes/details!). Just click on 'expand source' to see the code.

SELECT 'Entities' name from dual
SELECT 'Functions' from dual

from ci_app_sys_entities a
, ci_entities b
where a.application_system_reference = :APP_ID
and = a.entity_reference
and 'Entities' = :SEL_NAME


UKOUG 2008 Report Back

This year I decided to do just one post about the UKOUG and not - as previous year - (try to) get out a post every day. Takes the pressure of me...
The first impression is that Birmingham was quite cold this time of year, the second is that the UKOUG seems less crowded this year. The first observation is quite right, the second one is wrong. Due to the shifted schedule of the session, they not all start and end at the same time, so the crowd is more scattered over the day. So no long lines for the food or traffic jams in the Exhibition Hall (the fact was that there where about 2,250 attendees, 'just' 5% less than next year - probably to do with the financial situation out there).
I won't list all the sessions I went to: See the previous post about my intentions - I didn't made all of them...

My personal top 3 this year (in order of appearance):

Beginners' Guide To Trouble-shooting by Jonathan Lewis
I had never seen Jonathan presenting before but it is good to get an int…

UKOUG is right around the corner!

In a few days I will pack my bags and head off to Birmingham for the 2008 version of the UKOUG. I am looking forward in meeting old friends and making new ones. And of course - attend some of the most interesting sessions available in Europe!
While I was setting up my agenda for the week I noticed that on every day the first session starts at 9:25. That makes it a lot easier to network at night...
My agenda contains a mix of Fusion, DBA, Development sessions and of course APEX (all though there is not that many APEX sessions). It is gonna be a busy week!MondayAdvanced SQL for PL/SQL Programmers
Oracle Application Express Now and in the Future

Oracle Forms: Features and Future
Building Your Business Services in Oracle ADF: A Case Study of Redeveloping an Oracle Forms Application
UKOUG 2008 Opening Party
TuesdayFollow up session to 'Oracle Exadata - Extreme Performance'
Beginners' Guide to Trouble-shooting
Extreme Reusability - New Features in Oracle ADF 11g (FTMS)
Designing and Build…

Integrate Oracle Forms with APEX

APEX 3.2 will contain functionality to migrate Oracle Forms to APEX. I am one of the (about) 10 lucky people that take part in testing the Limited Early Adopter release, so I know what it can and cannot do (I will blog about that later).
In 2007 Wilfred van der Deijl did a presentation at ODTUG about the integration of Oracle Forms with JSF, JSP and ADF Faces. This eventually resulted in a product OraFormsFaces. The technique he used is elaboratly described in this Step-by-step guide.
So I thought: Why not try to copy this technique and do this also in APEX?

So first I created a simple form showing Orders (all is based on the HR scheme). The second step is to incorporate this Form in an APEX region. So I created a page and within that page a PL/SQL region. The region source is a call to a database procedure APEX$CALL_FORM. This procedure has a couple of arguments, like formname, username and password. This procedure simply uses htp.p to put out the same tags that are used to show a form …

I am officially an APEX Pro now....

Today I received the silver medal on the OTN APEX Forum!

500 more to become an Expert...

Or should I go for an Ace of Spades....

Tom Kyte's prequel to Guru4Pro

Yesterday over 100 Pro's attended Guru Tom's session on '11 Things about 11g'. But in the hours before that session a small number (about 18) of persons had the honor of listening and discussing with the master himself. As a guide he used an extensive version of his 'Worst Practices' presentation. During - and after - the presentation there was a lot more Q&A than I've experienced in regular sessions - of course due to the small scale of this session.
On a question about the new features and enhancements of 11gR2 Tom told that there will be no export functionality anymore in R2 (import will be available though). For moving data from one instance to another you should use datapump or SQL Developer or APEX. Also he explained a little more about the Online Application Upgrade. This feature will use invisible indexes, cross edition triggers and (a maximum of) two versions of PL/SQL programs and views (tables are not versionable). It sounds like it is not a b…

Pro4Pro : Extreme RAD with APEX

Yesterday evening Rutger and I did a Pro4Pro session with the fascinating title "Extreme RAD : Live Web Application Development with Oracle Application Express". In this session we built an APEX application to manage a conference with different kinds of users like organizers, presenters and attendees. We had just a little preconfigured: the tables and views where there, we created a workspace and had set the UI defaults in advance. The rest was all live. During the 1,5 hour session we built all the screens, authentication and authorization to manage such and event. The last 15 minutes the audience had the opportunity to put forward some additional functionality and we (try to) build that also - we couldn't translate the whole application to another language in that time, but we showed the date and money localizations. At last we showed what such an application could look like if you spend a day or three on it - with up- and downloading presentations, dragging and droppin…

The saddest post

This is probably the saddest post I'll ever write. Just as many of you, today I also received the message that Carl Backstrom died in a tragic car accident last weekend. I met Carl on two events this year: ODTUG and OOW. He was a very nice and energetic guy to talk to, open to everyone who wants to talk to him.
Apart from the neverending fly whiskeys at the the bar in the hotel lobby and the visits to some Bourbon Street bars, I guess a lot of APEX'ers will remember him by his presentation on last ODTUG. Dan McGhan, as an ambassodor for that session, introduced Carl as The UI God. And Carl did his most nervous presentation ever I guess. He struggled with the mic because his hands were too shaky to get the clip fixed the right way. And everybody wondered why he could be so nervous as he knew so much and we knew so little. But that was typically to Carl: Although he knew everything about APEX, Javascript, jQuery and JSON, he still was a regular guy, happy to share his knowledge w…

My Presentation @ O>ZONE 2008

From November 26 to 28 Ordina, Oracle and Miracle are organizing the O>ZONE event in Zandvoort, The Netherlands. I received an invitation to present there, and if you take a look at the list of speakers, you can imagine I was quite honoured by that!
Together with Dimitri I have to fill in the APEX slots. I'm not quite sure what the exact title and contents of the presentation will be, but I guess it will be something around AJAX, JSON and jQuery. But I am open to suggestions!

Tom Kyte @ Logica

In the afternoon of November 3 Oracle guru Tom Kyte will talk about "11 Things about 11g" at the Logica office in Amstelveen (near Amsterdam). I have attended this presentation at ODTUG this year and I assure you it's worthwhile! After his presentation Tom will do an AskTom Live session. So a great opportunity to enhance your knowledge with everything you wanted to know about Oracle but you never dared to ask...
There is more info on the Logica site (in Dutch, but Tom will do his presentation in English ofcourse). You can also register ("aanmeldingsformulier") there.

OOW2008 Afterthoughts

As Oracle Open World 2008 is 1,5 week behind us, it is about time to finish up my posts on this subject - and get rid of my notes. So let's take a quick look on the sessions I didn't mention already.

Forms2APEX Migration
David Peake introduced the "soon-to-come" APEX 3.2 release. The most important new feature (or maybe the only new feature) is the support for migrating Oracle Forms to APEX. He emphasized that there is no need from an Oracle support perspective to move from Forms to APEX. You should only go for this route if there is a sufficient business justification for it. A migration from Forms to APEX has to be considered as a real project, consisting of Analysis, Design, Convert, Post Migration, Acceptance and Training. The Forms2APEX toolkit is in no way a silver bullet. There will be a lot of handcraft involved to achieve acceptable results. Especially for more complex Forms you'll need a lot of effort to get similar functionality in APEX. Luckily the tool…

APEX 4.0 New Features

At OOW some new features of the upcoming major release of APEX, version 4.0, were revealed - ofcourse with all the regular disclamers applied. Here a (non complete) list of the announced features - in a random order:
The option to use an Application Timestamp Format, next to the existing Application Date Format;The option to use the Client Time Zone;jQuery will be included in the APEX distribution;instead of the (horrible) HTML-calendars, the much better looking jQuery Calendar will be used;the jQuery Calendar will offer an Extensible Item Framework, to create your own calendar types;ofcourse the famous Websheets;an Oracle APEX Listener as a replacement for the MOD/PLSQL gateway;Improved Tabular Forms, thus reducing the need to build these manually;more JSON;Dynamic Recreation of Select List (from JSON), used - o.a. - for cascading LOV's;Namespaced apex.*.*, to reduce the risk of confusing variables in Javascript;Chainability;and last, but certainly not least, Dynamic Actions.At th…

The OOW Party

This year the Appreciation Event was held on Treasure Island, a piece of land between SF and Oakland, just below the Bay Bridge. When we arrived there - in one of the 300 buses - we were directly surprised by the all the carnival attractions. It was a really nice fair on a beautiful place - with a great view on San Francisco. And of course lots of good food and drinks, accompanied with really good music: o.a. Seal and Elvis Costello! Both were really, really good...

Yeah, Oracle surely knows how to throw a party!
And on the way back we didn't even have to wait for the bus!

SQL Developer Data Modeller definitely is the end of Designer

From the demo's I've seen of the SQL Developer Data Modeller the functionality exceeds the Designer modelling functionality by far. It's support physical and logical modelling as well as multi dimensional models (OLAP). You can import models from multiple sources - also from Designer. The functionality includes domains, glossaries, naming conventions and standards, abbreviations and even a process modeller. There are even more, newer, database types supported than Designer does. The metadata can be stored in a file based repository or in a database repository - that even will include versioning. The tool will (eventually) be available as a stand alone version, as a SQL Developer extension, viewer only and as a web-publishing version. So all in all it seems to be a complete solution for data modelling that can - and probably will - replace Designer... As the presenter said : You can still buy Designer [but]...
"Soon" the beta version of Data Modeller will be releas…

Larry goes eXtreme!

Two years after the moment that Oracle went into Operating Systems - Unbreakable Linux - today Larry announced that Oracle (partnering with HP) will sell hardware also. And it's not a simple commodity server... It's the HP Oracle Database Machine. This beast contains 8 database servers (with 64 cores in total) and 14 eXadata servers (with 112 cores). And an enormous amount of storage: 1400 times more than the largest iPod! I think it could contain all mp3's in the world...
An eXadata Server (officially known as the HP Oracle Exadata Programmable Storage Server) contains 2 processors with 8 cores each, 12 disks, Enterprise Linux and - and this is the coolest part - Parallel Query processing capability for every disk. By bringing processing capability close to the storage, the amount of data going through the wires from a storage server to a database server is dramatically reduced - because results are passed instead of datablocks. Because of this architecure the performance …


Moscone South Room 309, a really big (300 cap.) room with a stage and a giant screen. There were about 40 people attending my session and it went fairly well. I wasn't too nervous and I ended the presentation in 50 minutes, including some Q&A. After the session some people came up in front to ask some extra information and I also got some positive feedback from Francis and Raj. Most questions where related to Can I have to code? So here we go: For the explanation of the Drag & Drop feature I showed you can also take a look at Rutgers blog. That part of the application is also available If you use Firefox and Firebug it's easy to see the javascript that does all the work. If you want to have it in a single file, please leave a comment using your e-mail address or send me an e-mail directly (look at LinkedIn or my complete profile). I promise I will upload the generic LOV solution to next week - I'll write a post about is as well.

The X is coming,,,

I don't know who or what X is, but it surely has to do something with Larry's keynote. From a reasonable reliable source I heard that Larry is gonna announce something that will shock the world.... Tomorrow we will know what X is (and if my source is reliable)...

OOW2008 - Monday : What's buzzzzzing round here?

Today Charles Phillips and Chuck Rozwat created a new buzzzword : Oracle Beehive. The Beehive is all about Collaboration in a Web2.0 environment. Communication using e-mail, wiki's etc. and Coordination like calendars, contacts and tags. The goal is to move from fragmentation - different kinds of applications and servers - to integration, so reducing infrastructure (and infrastructural costs). Using the exitsing Oracle Infrastructure, Beehive is intergrated, secure and open, making users more productive. It seems alike a total new version of Oracle Collaboration Suite.

Let's see where this buzzzz is leading to. Oracle docs are online.

The keynote had even a small Dutch part; Jan Muchez, the CIO of KPN, spoke some words about the use of the Telco industry application within KPN.

OOW2008 - Sunday

Due to the jet lag this Sunday had a very early start. I was wide awake at 5:oo AM, so I had a long time to check my e-mail, take a shower and eat a full American breakfast. After registering for the conference it took about 5 minutes to walk into someone I's a small world after all.
For me the conference started with a Hands-on-Lab : Extending the APEX Framework with Web 2.0. To me there where just a few new features mentioned in the handbook, but I guess most people didn't finish all examples within an hour. The handbook will be available as an OBE within a couple of weeks. The next session was on Achieving ROI with Oracle Database 11g and APEX. It was about a new application Harvard Pilgrim needed to offer health insurance to individuals. Instead of taking 1000's of phone calls, they decided they needed an on line self service application - and built it in APEX. Another good example how you can build an application with APEX in less than a month. You can find t…

Green on Red

Sunday morning 6:00 AM and I'm wide awake in a nice hotel in San Francisco. That's what they call a jet lag. The Show is starting in a couple of hours, the first session is at 10:30. The whole conference is 'going Green', so no hand outs and as less paper and plastic bottles as possible. And during OOW San Francisco is going Red, with red Oracle banners on taxi's, buses, pavements and lamp posts.


My OOW Schedule

So it's gonna be a busy week.... visiting OOW is hard work ;-).

AMIS Pre-OOW session

Last Thursday AMIS organized a pre-OOW session for the major part of the Dutch presenters on the upcoming OOW. There were nine sessions, divided into three parallel tracks. In one of the tracks I had to go up first. It was actually the first time I did my presentation, and it went rather well. There were some useful comments on the evaluation form that I will use in the actual session next Monday at 13:00 (session S301752 - there are still some of the 300 seats available!). After a good dinner I attended the Designer2APEX migration session by Douwe Pieter van den Bos. He showed us what his company achieved on the migration path from Designer to APEX (if you can read Dutch, take a look at his blog). The last session I attended was by Marco Gralike about XML-DB. I'm not really into this subject, but it was interesting tough to see what problems and solutions he encountered using XML-DB. On the AMIS blog there is also a review of some presentations of that evening. AMIS, thank you fo…

"Pro Oracle Application Express" is shipped

This morning I received the message that the long awaited book Pro Oracle Application Express by John Scott and Scott Spendolini is shipped. I ordered it on December 28, 2007, and now, after nearly a year, I expect to get my hands on it soon. I hope it will be worth waiting for....

ODTUG Kaleidoscope 2009 : Call for Abstracts

While Kaleidoscope 2008 is just around the corner (at least, that's how it feels), you can submit an abstract for the 2009 version already! Kaleidoscope 2009 will be held in Monterey, June 21-25. Abstracts must be submitted before October 15, so you've got one month to come up with some creative lines of text. My recent experience is that Kaleidoscope is a great conference with very good content and a lot of opportunities to network with Oracle peers from all around the globe. Take a look at the Kaleidoscope website for all detailed information.

Chrome : Shiny and/or toxic?

Yesterday I installed Google's new toy: The Chrome webbrowser. The looks are very slim as it's using your full screen, nice fonts, no needless borders and I really like the tabs at the top! So it's shiny like chrome...
And Google claims that Chrome is also very fast. Indeed a lot of pages seems to render more quickly than FF or IE did. But I also noticed that on some sites pictures or other more advanced/heavy features are shown half or aren't loaded at all. That way it is easy to claim to have the fastest browser...
But remember how Google earns it's money! It sells adds on their search pages. The better the advertisements fits the fervour of the searcher, the higher the number of hits, the higher the fee. So Google looks for the adds based on your current search...and your previous searches. I think they also record the results you click on (if you look at the source code of a search result page, you can see that the links are not 'just links', but there is…

UKOUG 2008 agenda live

3 Months before the show starts, the agenda for the UKOUG 2008 is available on line. So you can view and pick the sessions you like on forehand. The organization committee probably will ask for 'ambassadors' for the sessions in a couple of weeks. That's a great opportunity to meet the presenters one-to-one. But be careful though, because last year I had to introduce Mr. Tom Kyte for an audience of about 1,000 people....
One shameless plug: My session, on '(Re)Developing a logistic application in APEX in the real world' is on Thursday at 15:05. You're welcome!

New Oracle Forums are and then

Last weekend the new version of the Oracle Forums went live - for the second time. I really like the new look, it's leaner and meaner than the old one. The most frequent posters lost all their (sometimes thousands) of 'post-points' and have to start all over again to reach the top. At the start all pigs are equal again! And now you only can earn points if your answer is marked as 'correct' or 'helpful' by the original poster. IMHO that is a good change, but the OP surely will 'forget' to reward the answers at the start.
The bad though is that the forums seem to be more down as up the last two days. Usually the 'sorry for this inconvenience' message appears. I hope Oracle will fix this soon, as a lot of users are solely dependent on these forums for support (e.g. APEX, XE, etc)!

My session at OOW

My session 'Developing a Real-World logistic application with Oracle Application Express' (S301752) is scheduled on Monday Sept 22 from 13:00 to 14:00 in Room 309 in Moscone South. It's a big room with nearly 300 seats, so don't hesitate to add this one to your schedule. There are 'only' 89 other sessions planned in this same time slot, so there is a lot of competition going on!

Presentation time!

I just came back from holiday and found not less than four (4!) invitations to present in my mailbox. The first one contained the good news that my suggested session for Oracle Open World got accepted! A big thank you to all who voted on Oracle Mix!
The second one was a 'Dutch OOW Preview Session' at AMIS (on 11th September) where a lot of Dutch OOW presenters will give a sneak preview of their sessions for the Dutch audience. A good time for a final practice!
The third one was the acceptance of my abstract for this years UKOUG, from 1st to 5th December, in Birmingham, which is great because I really do like this conference.
And finally the last one is Logica's PRO4PRO, probably somewhere in October, where my colleague Rutger and I will do a presentation with the catchy title "Extreme RAD : Live Web Application Development with Oracle Application Express".During this session we will build a web application from scratch....I know it is risky but should be a lot of fu…

The future of SQL Developer - the end of Designer?

Last month Oracle released a statement of direction for SQL Developer (here it is). Apart from the enhanced testing capabilities the most important feature will be the support of graphical logical and physical data modeling - just like you normally would do using Oracle Designer - using the acquired CDW4ALL extension. This modeling can be used offline (file-based, using XML files) or repository based. So Oracle seems to be moving (some) essential Designer features towards SQL Developer, therefore reducing the need for Designer - which is obviously in 'maintenance mode' (no new features added).
One thing that worries me a little is that this "functionality is delivered as an optional extension". That sounds a little like $$$...., but I'm not sure about that!

11th out of 233 OOW sessions in the mix

Out of the suggested 233 sessions for Oracle Open World 2008 on The Mix my suggestion on "(Re)developing a logistic application in the real world" ended on a joint 11th place. It is (officially) unknown how many sessions will make it to OOW, but there are rumors that it will be somewhere between 25 and 35.... So I expect to get an invitation from Oracle soon!
I'm really looking forward to present in San Fransisco!

Drag & Drop feature in APEX - The details

As I promised in an earlier post on Drag & Drop in APEX I would reveal the more technical ins and outs of this cool feature. But instead of blogging about it myself, I hereby refer to the blog of my colleague Rutger. He did a great job in explaining how we achieved this - with a link to an application on, so you can try it out yourself - , so please take a look there!

Reusable Module Components in APEX

When building a serious application you often need to repeat certain regions in a couple of pages, for instance customer or order information. In APEX you can ofcourse copy a region to another page, but that enhances your maintenance effort when changes are needed on this copied region. Another solution is to group all the pages that share this region in one application and define the region on the famous Page 0. But maybe there is a more elegant way to solve this....

As an example I use the 'My Favorite Tasks' region I described in the previous post. First we set the page alias to 'MYFAV', to circumvent a static reference to a page number. In the region header of 'My Favorite Tasks' we set a HTML tag '<snap>' and '</snap>' in the footer (this <snap> is just an example, it can be anything, as long as it isn't a regular HTML tag). Now define a new HTML region on the page where you need to 'reference' this 'My Fav…

Dynamic 'My Favorites' Links in your APEX Application

For a (even more) Web 2.0 like look-and-feel in your APEX application you can define a dynamic region 'My Favorite Tasks', that shows links to the pages you visit most frequently.
For these favorites we can query the APEX repository. Follow these steps to get this thing working:

Enable logging on Application Level. Enabling the logging will result in records in the view apex_workspace_activity_log.Create a Report Page with a region based on a SQL Query.Enter the query to show the links for the three most visited pages:select htf.anchor( 'f?p='||:APP_ID||':'||page_id||':'||:APP_SESSION
, page_name ) Task
select page_name
, page_id
, count(*)
from apex_workspace_activity_log
where application_id = :APP_ID
and apex_user = :APP_USER
and page_id <> :APP_PAGE_ID
group by page_name, page_id
order by 3 desc
where rownum <= 3 In a next post I will show how you can embed this report page in any other page in your application.

APEX 3.1.1 "broke my application" : This is the fix.

In APEX 3.1.1 all compound item types - items that contain HTML layout and multiple inputs - have been surrounded by a fieldset. The result is that some items that previously nicely aligned horizontally now wrap to the next line.

It mainly effects items with Post Element Texts or where a ColSpan > 1 is defined.

This unwanted effect is easily repaired by creating a new CSS file containing:


and referencing this CSS file in your template. The result then looks like it was before:

Drag & Drop feature in APEX

In a previous post I mentioned a Drag & Drop feature we created in APEX. Because there is a lot of interest for this subject, I created a small movie where I show the drag and drop function. The purpose is to load an Open Action (or Order) into a Truck for a specified day.

If you like to see this feature live at OOW - and on a somewhat bigger size screen - , or other nice things we created during our project, please vote for my session on Oracle Mix : (Re)developing-a-logistic-application-in-apex-in-the-real-world. You can register using your OTN account.

Extending SQL Developer with Designer data

Using the Preferences of SQL Developer you can register a User Defined Extension (UDE). This UDE is just a small XML file containing a command or query. If your Oracle Designer Repository is queriable by the user you use for your connection, you can show the Table Definitions in Designer alongside the definitions in the Oracle Database. You just have to create an XML file containing this code:

Register the file as an 'EDITOR' type in SQL Developer using Tools / Preferences / Database / User Defined Extensions. Restart SQLDev and the result is something like:

Is it usefull? Not really with this query, but you can extend the query with a lot of other data, for example to list the modules a table is used in or the column definitions of that table!

Travelling back from New Orleans

From the Sheraton to the airport I shared a cab with Carl Backstrom and arrived around 2 hours before the scheduled departure. I only had a 37 minute transfer time in Houston so I had picked a chair in the front of the plane - just after the business class. The plane left the gate exactly on time, but it stopped on the runway. Due to a thunderstorm the airport closed for 30 minutes....
So when I got out of the plane in Houston my transfer time was reduced to -2 minutes. The plane to Amsterdam was somewhere at the same pier - but that pier is really huge. So I started the 1 kilometer walk without any (positive) expectations. But to my suprise that plane was scheduled 45 to 60 minutes later! I've never been so happy with a delay....
The flight was o.k. In the 10 hours flight I snoozed a little and arrived in Amsterdam at the original scheduled time. My wife and daughters waited there for me, so it was a good homecoming!

ODTUG Kaleidoscope 2008 : Day 4 - ADF vs APEX and Wrap Up

The last morning of this years ODTUG was completely filled with one three hour session: APEX versus ADF 'shootout'. Although the presenters, Lucas and Dimitri, quickly stated that there was no violence to be expected, the audience was hoping for some clear statements.

Lucas and Dimitri both built an application using their favorite tool and demo'ed it to the audience. Both failed on one part - as live demo's tend to do - so it was 1-1 at mid time. After the break the match continued with some nice features shown on both sides. Both presenters where dared to say something positive on the other tools. For Dimitri this was the most difficult part: "I can't come up with anything nice to say about JDeveloper".

After a complete comparison, there was one clear winner: The audience!

Thanks to both of you guys for this joint effort!

So to wrap up: ODTUG is a great event. Not great in the sense that you're overwhelmed with 1,000's of people (there were about 70…

ODTUG Kaleidoscope 2008 : Day 3 - Experts Day

Building Advanced Tabular Forms was the first subject of the day. In APEX you can build tabular forms (a multi record update form) using a wizard or manually (with the APEX_ITEM API and processing with the APEX_APPLICATION API. Another option is using a collection which gives you full control on the processing - like distributing your data over multiple tables.

After that one Dimitri Gielis presented on Creating Advanced Charts with APEX. He showed the audience what you can do using the charting options of APEX. Impressive!

Next was the Oracle APEX Developer of the Year 2007, Patrick Wolf. His main message is that you can speed up your development process (even further!) when you use the right third party tools. The tools you can't do without as an APEX developer are - apart from Firefox itself:
Firebug - a great extension on FirefoxWeb Developer - another Firefox extensionYSlow - a performance monitor, again an Firefox extensionLive HTTP Header - to track traffic between the browser…

ODTUG Kaleidoscope 2008 : Day 2 - You can(’t) do THAT in a browser!

The first session of this day was APEX Development: Watch it live! by Bill Holtzman of the National Air Traffic Controllers Association. He built a Grievance Control system for the NATCA used by hundreds of users. Now he showed live how to build a football betting system in only 45 minutes (using some prefab SQL scripts). Another nice example how quick application development in APEX can be! After that Scott Spendolini came on stage with his presentation You can't do THAT in a browser! Although APEX contains a lot of really nice features, like Flash based charting, Export to PDF/Word./Excel and Tree Reports, sometimes you have the need to go a little bit further than that. He demoed how you can achieve MS Outlook integration for your Address Book (vCard) and Calendar (iCal). Then he showed how some third party products seamlessly integrate with APEX:DHTLMX Tree (DHTML eXtensions) : Consists of JS libraries to manage all aspects and uses an XML file as data source. You can create h…

ODTUG Kaleidoscope 2008 : Day 1

Today started off with a keynote of Vince Casarez about ‘Web 2.0 meets the enterprise'. He showed some really cool stuff included in Webcenter, like the carrousel (similar to the iTunes coverflow), dynamic charts that were refreshed using push technology. This is the stuff Oracle itself is using for their Fusion apps.

Next John Scott was on for his APEX Hints, Tricks and Best Practices. They were all very useful so I'll list them all 10.

Don't use the default SYSAUX tablespace for the APEX environment, but use dedicated tablespaces instead to make the installation more manageable.Create specific accounts for all developers, making QA and auditing easier. Always lock a page when you make changes and document these changes using the comment property.Use aliases for applications and pages, so f?p=SALES:HOME instead of f?p:117:17. Use the possibilities of APEX to support re-use of code, like Shared Components, Page 0, UI Defaults and Publish / Subscribe. A little explanation…