But what does that mean on a more technical level? Which Views have changed, which API’s have changed?
The Setup was pretty easy. After installing that tool on a Windows VM i just started it and created a new compare project where i entered the connection details from my 2 databases where APEX 4.0 and APEX 4.1 is installed.
Now all you need to do is hit the “Compare Now” Button, wait a minute (which i think is pretty quick) and see the Result Overview:
Now you can zoom in and check the Details of each and every difference found:
As you can see this was just a matter of minutes and a pretty straight forward process.
For now I’m interested in the differences only and don’t want to use Schema Compare to generate a script to update my 4.1 database with the contents of my 4.0 database.
But if you’re about to move an application from dev to test or push it live, the tool can write the upgrade script and do the upgrade for you too, if you want.
Changes between APEX 4.0 and 4.1
After creating the Diff between 4.0 and 4.1 i browsed the Details and found some changes which were interesting to me.
Please note that this is not a complete evaluation of the differences, nor might it be important to anyone (but me).
Also note, that many objects are for internal use only, therefore i’ll mention names of Public Objects only (APEX*-Views).
New / Removed Objects
At first i compared the objects that were removed (exist only in APEX_040000 Schema) and the objects that were created new with APEX 4.1 (Schema APEX_040100).
Here we can find some objects dropped and more created which refer to the new Authorizations and Authentications, which are new Plugins in APEX 4.1 (read this one for details on those Plugins).
Other created Objects are used for the new Data Upload Wizard you can implement in an APEX Application.
The third new Cluster deals with the changed Errorhandling as described by Patrick over here.
But there are also things i didn’t expect, like new public Views for dynamic Translations and the Translation Table itself.
Changes in the previous existing 154 public Views and API’s can be clustered as:
- most (if not all) Views got a new column WORKSPACE_DISPLAY_NAME
- the security check in all relevant Views got enhanced by also checking the SYS_CONTEXT and the new Build-Status RUN_AND_HIDDEN
- Plugins got enhanced by new types (authentication and authorization) and have now up to 15 attributes instead of 10 before
- APEX_APPLICATION_AUTH and APEX_APPLICATION_AUTHORIZATION got rewritten to reflect that Authorizations/Authentications are Plugins now
- APEX_APPLICATION_LIST_ENTRIES do have a flag indicating if the entry should be translated, or not
- APEX_APPLICATION_LISTS can be static or dynamic now, reflected by the new columns LIST_CODE_TYPE and LIST_QUERY
- APEX_APPLICATION_PAGE_BUTTONS: Buttons now can be normal or “hot”, and both Button types (Region Button and Item Button) now have same functionality.
Another new Button feature is the Button Action “Defined by Dynamic Action” which basically does nothing at all (in APEX 4.0 you would use target URL “#” to achieve the same)
- Dynamic Actions can directly target Buttons which lead to new columns in APEX_APPLICATION_PAGE_DA
- new Errorhandling Function can be defined on Application or on Page Level, changes in APEX_APPLICATION_PAGES
- Validations for Tabular Form Columns have been enhanced: APEX_APPLICATION_PAGE_VAL
- some preperations for mobile Templates have been made, like the “Render Form Items in Table” Flag in APEX_APPLICATION_TEMP_REGION or special defaults for mobile templates in APEX_APPLICATION_THEMES
- APEX_APPLICATIONS has plenty of new and changed colums
- lots of minor changes like new columns in Views that have been missing before (e.g. Condition-Type in APEX_APPLICATION_BC_ENTRIES)
Of course there have been numerous changes in several API Packages, but this would be too much for a single blog post.
If you want to digg that deep, feel free to do a Diff or look directly at the Package Specs of interest.
Happy Coding, everyone !