Skip to main content

The buzz around APEX 4.0

During last weeks ODTUG Mike Hichwa presented APEX 4.0. This seemed to be the best attended session (apart from the 'real' keynotes) with over 200 attendees, so a lot of people wanted to know where their favorite development environment is heading!
Mike demoed some really cool new stuff - I will discuss these later on - and skipped (even more) nice features, with Declarative Tabular Forms, AJAX Client-Side Validations and Improved Error Handling make the top 3 of most interesting ones. See the pic of the slide for a complete list.

There has been more blogging about Websheets last year, even with movies. But every time you see it live, it is amazing. Just copy data from a CSV, paste it into the APEX Builder and you're done! No Tables, Triggers, Primary Keys, etc needed: everything is automatically managed in APEX$xxx tables. You can update the data in line (like a Tabular Form), you can do mass update, create an LOV on the fly and add columns. You can also add Attachments, Notes and Tags to a record. The history is automagically kept, so auditing is out-of-the-box. You can define the properties of a column, move columns up or down, define column groups and even validations: all at runtime! So the (already thin) line between the Builder and the Runtime version of an application will get more vague.
But even Websheets will have its limitations: The Page Flow is limited and also the control over the Look & Feel is less exhaustive as with 'normal' APEX Pages: No use of Themes and Templates (more or less similar with the Interactive Reports).

Dynamic Actions
With Dynamic Actions you can Enable/Disable and Show/Hide Items dependent on the values of other Items. Things you nowadays need to code in (one line) of Javascript, will be declarative. That means not only less manual code, but - more important - easier maintenance, because these declarations will be stored in the APEX Repository and thus be available through APEX Dictionary Views.

In APEX 4.0 all charts will use the - much better looking - AnyCharts 5.1 version. Not quite clear if also the new chart types (like Gantts) can be declaratively created.

REST Web Services
In APEX 4.0 you also the use of REST Webservices is declarative. There was a short - but impressive - demo how to use Yahoo Maps within APEX.

Another main new feature are the Plug-Ins (previously called 'Custom Item Types'). You can compare these Plug-Ins to Widgets or - in the good old Oracle Forms environment - Pluggable Java Components (PJCs). Just register it within the Repository and you can use it wherever you like. The idea is that there should be a central 'Plug-In Registry' where every APEX Developer can register his Plug-In and make it available for download (free or for a fee). Oracle has no plans of managing / checking / controlling that registry due to legal restrictions (although just referencing source files didn't help Napster or The Pirate Bay ;-) ). The demo showed just registering / uploading a sql file containing the Plug-In (an Amazon style star rating) and the absurd easy way to use that Plug-In in a Form. Soon Patrick will be blogging about the technical details.

Improved Application Builder
Also the APEX Application Builder itself is revamped. The navigation is more intuitive, Interactive Reports are used all over the place and there is a general 'Search' function. That'll make developing with APEX even more productive...

Improved Interactive Reports
And even the, already fantastic, Interactive Reports got a make-over, with added functionality, like e-mail notification, compound filter expression (so you can use brackets and OR's in a filter) and - one long lasting request - shared saved reports!

Release Date??
As I can see for the search terms that hit my blog, "APEX 4.0 Release Date" is a very hot topic. Of course the Oracle APEX posse didn't gave a fixed date. And if they did, there is always the 'safe harbor'/disclaimer page as the first slide of the presentation. But in one of the presentations a 'date' was mentioned: End of 2009! So I will set my expectation to 2010Q1...


Gary Myers said…
"But in one of the presentations a 'date' was mentioned: End of 2009! So I will set my expectation to 2010Q1... "
The Apex Statement of Direction says "new versions of Application Express will be released at least annually" and 3.2 was released in Feb 2009....
Johannes said…
Thanks for sharing Roel.
Roel said…
But what is the defintion of 'a new version'? We'll sure get something (even if it is 3.2.1) before Feb 2010...

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…

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…

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 …