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...

Popular posts from this blog

Showing a success message after closing a modal dialog

APEX 5 comes with Modal Dialogs out of the box. Very neat. Especially for adding and changing data. And to minimise the number of time a user has to click, it could be useful to add a "Close Dialog" process after the actual data processing. When the data processing fails, the Dialog stays on top showing the error. When data processing runs fine, the Dialog is closed ... without any confirmation. And this might be scary for a shaky user.

So how can we provide the user some feedback? On Page 4 of the Sample Dialog Application you can see one solution: up on a Dialog Closed Event on the parent page it does a redirect to refresh the parent page appending the success message of the "Close Dialog" process. This has two drawbacks. First, it probably refreshes more than necessary. And second, if you're using multiple layers of dialogs (dialogs that open other dialogs) the message appears in the "parent dialog".
As an alternative you could follow these steps: 1…

APEX 5 New Static File Features

In APEX 4 you could upload files - like CSS files, JavaScript files, Images and whatever else you like - into the APEX Repository. When you navigate to Shared Components, there is a Files section that offers three different options:
CSS Files are always uploaded (and changed !) for the whole Workspace. For Images and Static Files (usually JavaScript) you could choose whether they should be available for the whole Workspace or for a specific Application only. And if you had a lot of files - e.g. a lot of images - then you had to go through the upload process one-by-one. But that's usually a one time only thing. If you make changes to the CSS and JavaScript files - and that's a continuous process in development - then you had to delete the existing file and upload the new one. Over and over again. And meanwhile fighting the cache of the webserver and your browser.  And another irritating issue: You couldn't use relative references in your CSS or JavaScript files as they just…

Using LDAP for Authentication and Authorization within APEX

One of my current customers would like to use their LDAP (Microsoft Active Directory) server for authentication and authorization of APEX applications. Of course we tried to set up a standard LDAP Authenication that's available within APEX. But we couldn't get that to work. Maybe it has to do with the fact that the client stored their Users within Groups within Groups within .... . Or maybe it doesn't do a full tree walk in the directory. Or maybe it is just because it is Microsoft - and not Oracle Internet Directory (OID). So we moved to a custom Authentication using the DBMS_LDAP functions (and some examples from the Pro Oracle Application Express book and Tim Hall - a.k.a. Oracle Base).

One of the issues we encountered that we wanted to use the user's login name, like "jdoe" and not his full name ("John Doe"). And the login name is stored in the "sAMAccountName" attribute. But authenticating using just "jdoe" didn't work. …