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!
1 comment

Popular posts from this blog

Refresh selected row(s) in an Interactive Grid

In my previous post I blogged about pushing changed rows from the dabatase into an Interactive Grid. The use case I'll cover right here is probably more common - and therefore more useful!

Until we had the IG, we showed the data in a report (Interactive or Classic). Changes to the data where made by popping up a form page, making changes, saving and refreshing the report upon closing the dialog. Or by clicking an icon / button / link in your report that makes some changes to the data (like changing a status) and ... refresh the report.  That all works fine, but the downsides are: The whole dataset is returned from the server to the client - again and again. And if your pagination size is large, that does lead to more and more network traffic, more interpretation by the browser and more waiting time for the end user.The "current record" might be out of focus after the refresh, especially by larger pagination sizes, as the first rows will be shown. Or (even worse) while you…

Dockerize your APEX development environment

Nowadays Docker is everywhere. It is one of the main components of Continuous Integration / Continuous Development environments. That alone indicates Docker has to be seen more as a Software Delivery Platform than as a replacement of a virtual machine.

However ...

If you are running an Oracle database using Docker on your local machine to develop some APEX application, you will probably not move that container is a whole to test and production environments. Because in that case you would not only deliver a new APEX application to the production environment - which is a good thing - but also overwrite the data in production with the data from your development environment. And that won't make your users very excited.
So in this set up you will be using Docker as a replacement of a Virtual Machine and not as a Delivery Platform.
And that's exactly the way Martin is using it as he described in this recent blog post. It is an ideal way to get up and running with an Oracle database …

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 processing y…