Skip to main content

First European OPP / APEXposed

Last week the first European OPP / APEXposed ever was held in Brussels. And just like the US originals - which I actually never was able to attend - this also was a huge success, when you listen to all the positive feedback and comments issued in the hallways of the Brussel's Sheraton. 
In two days there were 9 sessions to attend in 4 to 5 tracks. And even which such a relative small number of tracks it was hard to pick just one...so many interesting presentations!
APEXposed kicked off with a keynote by Patrick Wolf, in which he addressed all the nice new APEX 4.0 features at a glance. All of these features deserved a presentation on their own, and luckily most of them got one during the conference. Next I attended a session by Steven Feuerstein (he did 8 ! in these two days) about PL/SQL for APEX Developers. The key thing here was: develop your application as it was a regular PL/SQL based application, so use packages, test thoroughly, handle your errors well and code as less PL/SQL as possible in the APEX front end itself. Next was John Scott's scalability presentation. I have seen that one before, but it's still impressive if you see how to reduce the number of HTTP calls from 46 to 3 and the size of an HTML page from almost 500 kB to less than 10kB, by just using standard APEX and Apache features, like browser cache and webserver compression! Then Carsten Czarksi came on stage to explain how Java - in the database - can come to the rescue when PL/SQL isn't capable of handling the requirements, like getting the contents of a directory in PL/SQL. The last one of the day was by Niels de Bruijn about Migrating Oracle Forms and MS Access to APEX. An interesting subject, as I see more customers asking for the (im)possibilities of this kind of migration. Migration as such doesn't cover the contents entirely, as Niels and his team just kept the database structure in tact and rewrote the front end completely in APEX - while trying to adhere as much as possible to the layout and look-and-feel of the originating application.
The second day for me started with two very good presentations by Lucas Jellema about SOA for PL/SQL Developers and Reaching out from PL/SQL. The last one was how you can use PL/SQL - and the standard database features - to serve your clients well, like providing a service to show information on data changes in a table in RSS format and API services as views and PL/SQL packages. Lucas even demoed an e-mail and a Google Talk interface to the database, which looked pretty slick. The first presentation was aimed at defining the importance of the database, and thus PL/SQL, in a SOA environment. According to Lucas, not the ESB is the cornerstone of a SOA solution, but the database! And from experience 80 to 90% of all interaction in a SOA environment run through the database. So that's were the work should be done. A very good reassurance for all PL/SQL developers in the room!
After - again a very good - lunch, Carsten did his second presentation. This time on Unstructured Data in the Database. He explained about SecureFiles, Oracle Database File System, Oracle Text and the MultiMedia features - like the ORDIMAGE datatype. Very interesting and lots of nice demo's. Then, almost the last session, I delivered my Google Visualizations in APEX presentation.Went ok, I guess: all demo's ran fine and I ended right on time! The plugin(s) are downloadable from apex-plugin.com. For those who are interested, but weren't able to attend (and cannot download the presentations), I uploaded my presentation to Slidehare.
The last session was a very funny APEX quiz, by John and Dimitri. 30 questions, some easy, some though, more or less about APEX. Peter Raganitsch was a clear winner - and I ended op 4th (thanks for the $25 Amazon voucher, ODTUG!).
All in all it was a very good two days worth of spending time. Met some old friends and made some new - also a very important aspect of these get-togethers. And worthwhile repeating in 2011!
Thanks Dimitri, Steven and ODTUG for organizing this!

Comments

Kees Vlek said…
I totally agree with you. This was a very good event. Too bad you got the 25 dollar check. I was happier if you would had got the PL/SQL book ;-)
Kees

Popular posts from this blog

Filtering in the APEX Interactive Grid

Remember Oracle Forms? One of the nice features of Forms was the use of GLOBAL items. More or less comparable to Application Items in APEX. These GLOBALS where often used to pre-query data. For example you queried Employee 200 in Form A, then opened Form B and on opening that Form the Employee field is filled with that (GLOBAL) value of 200 and the query was executed. So without additional keys strokes or entering data, when switching to another Form a user would immediately see the data in the same context. And they loved that. In APEX you can create a similar experience using Application Items (or an Item on the Global Page) for Classic Reports (by setting a Default Value to a Search Item) and Interactive Reports (using the  APEX_IR.ADD_FILTER  procedure). But what about the Interactive Grid? There is no APEX_IG package ... so the first thing we have to figure out is how can we set a filter programmatically? Start with creating an Interactive Grid based upon the good old Employ

apex_application.g_f0x array processing in Oracle 12

If you created your own "updatable reports" or your custom version of tabular forms in Oracle Application Express, you'll end up with a query that looks similar to this one: then you disable the " Escape special characters " property and the result is an updatable multirecord form. That was easy, right? But now we need to process the changes in the Ename column when the form is submitted, but only if the checkbox is checked. All the columns are submitted as separated arrays, named apex_application.g_f0x - where the "x" is the value of the "p_idx" parameter you specified in the apex_item calls. So we have apex_application.g_f01, g_f02 and g_f03. But then you discover APEX has the oddity that the "checkbox" array only contains values for the checked rows. Thus if you just check "Jones", the length of g_f02 is 1 and it contains only the empno of Jones - while the other two arrays will contain all (14) rows. So for

Stop using validations for checking constraints !

 If you run your APEX application - like a Form based on the EMP table - and test if you can change the value of Department to something else then the standard values of 10, 20, 30 or 40, you'll get a nice error message like this: But it isn't really nice, is it? So what do a lot of developers do? They create a validation (just) in order to show a nicer, better worded, error message like "This is not a valid department".  And what you then just did is writing code twice : Once in the database as a (foreign key) check constraint and once as a sql statement in your validation. And we all know : writing code twice is usually not a good idea - and executing the same query twice is not enhancing your performance! So how can we transform that ugly error message into something nice? By combining two APEX features: the Error Handling Function and the Text Messages! Start with copying the example of an Error Handling Function from the APEX documentation. Create this function