Skip to Main Content

Apex Upgrade 4.2 to 5.1

The Application Express Installation Guide and Release Notes provide you with information on Changed Behavior, Deprecated Features and Desupported Features. You can use this information to determine which parts of your applications need changes to work correctly with the new Apex version.

While these documents provide some clues on how to find all the parts that need attention, actually finding them is quite a lot of work.
Some time ago I performed an upgrade from Apex 4.2.2 to 5.1.4 for a number of applications. During that process (and later upgrades as well) I created some queries that made my life easier; you can find these below. Not complete by any means, but maybe it is of some use.

Some additional things that required attention during the upgrades can be found here.

Application Express Installation Guide 5.0
Application Express Release Notes 5.0
Application Express Release Notes 5.1
Application Express Release Notes 21.2
Other Findings

Installation Guide 5.0

1.2 Upgrading from a Previous Oracle Application Express Release

1.2.4 About Upgrading Existing Applications

  • Charts that use custom XML must be updated manually otherwise the custom XML will be lost.

Release Notes 5.0

4 Changed Behavior

4.1.3 Compatibility Mode Changes in Mode 5.0

  • Page items
The action column in the query below indicates what you need to change to fix this properly.
This is needed because you may have items that qualify, but should not have a Source Type 'Database Column' because there is no DML on the page that uses that setting.

4.19 Interactive Report Column ID and Header Value

4.24 Dynamic Action Set Value Action Set Type JavaScript Expression More Strict

6 Desupported Features

6.1 Desupported Interactive Report Attributes

6.2 Desupported Report Heading Sort Icons

6.3 Desupported Default Report Templates

6.5 Desupported Item Types

6.8 Desupport of Flash 3 Charts

Release Notes 5.1

1.5 Changed Behavior

1.5.5 Calendar Changed Behavior

Note that you can't make these changes before upgrading.

1.7 Desupported Features

1.7.5 Desupported Classic Report Attributes

1.7.6 Desupported Tabular Form Attributes

1.7.7 Desupported Region Attributes

1.7.8 Desupported Item Attributes

Note that you can't make these changes before upgrading.

1.7.9 Desupported Button Attributes

1.7.10 Desupported Condition Types

This is a bit tricky. I needed a query to create part of the next query :-)
Note that the Condition "Always' can be ignored, which might save a lot work.

1.7.11 Desupported Branch Attributes

1.7.13 Desupported Synchronous Ajax in Dynamic Actions

Fixing the "Before Page Submit" is a bit tricky. How to do this is explained here:
Basically, you need to convert the "Before Page Submit" Dynamic Action into one that is triggered some other way (e.g. when a button is clicked) and put both the original Dynamic Action code AND the Submit are done within the Dynamic Action itself. That way the Submit is triggered after the original code has been completed.

1.7.16 Desupported Rich Text Editor Attribute Values

1.7.19 Desupport of jsTree Implementation in Tree Region

Release Notes 21.2

5.1 Deprecated Features

5.1.1 Deprecated Page Positions

I changed these with a search-and-replace in an application export file.
Took only 3 minutes and worked perfectly (which saved a lot time, there were 189 hits in my application...)

5.1.2 Deprecated Region Positions

5.1.4 Legacy Substitution Strings Deprecated

These can be found by searching in the application itself, but I changed these with a couple of search-and-replace actions in an application export file.

Other Findings

Other things that needed attention during the upgrade from 4.2 to 5.x:
  • The apex_collection.update_member_attribute procedures (there are a few): parameters p_seq and p_attr_number were varchar2, they are now numbers. This may lead to "PLS-00307: too many declarations of 'UPDATE_MEMBER_ATTRIBUTE' match this call" errors.
  • The apex_application package does not contain global g_protected_page_ids (and a few others) anymore.
    If you need this global to create urls with checksums using apex_util.prepare_url, this link may be of interest.
  • The selected date of the "Easy Calendar" region is not highlighted anymore.
  • Buttons with a non-standard image specification can cause errors like "Error during rendering of page item P200_ITEM_NAME. ORA-06502: PL/SQL: numerieke fout of fout in waarde : character string buffer too small.".
  • You may need to configure your firewall/proxy to allow urls that use the (new) function wwv_flow.js_messages; e.g. in urls like this: https://[servername]/pls/apx/wwv_flow.js_messages?p_app_id=115&p_lang=nl&p_version=
  • Also for the firewall/proxy: urls like https://[servername]/pls/apx/wwv_flow_file_mgr.get_file?[...] now look like this: https://[servername]/pls/apx/r/[workspace]/files/static/ or https://[servername]/pls/apx/r/[workspace]/files/plugin/
  • If you use function [apex_050100.]wwv_flow_epg_include_mod_local to allow local procedures, this function will be overwritten during the upgrade. So you will have to fix/revert that afterwards.
  • The modernizr library version has changed, so any customized (page) templates that refer to /i/libraries/modernizr/2.5.3/modernizr.min.js have to be updated (for Apex 5.1.4. the new version is 2.6.2).
  • Pay attention to the wwv_flow_preferences$ table. It will be filled after the upgrade, while Oracle probably thinks it is empty and will therefore do a full table scan every time it is queried. And it is used a lot, so that could be very costly. To fix, make Oracle do an "analyse table".
  • This is a pre-5.1 issue, but for me it only surfaced after the ugrade so I include it here anyway: Using apex_collection.create_or_truncate_collection may result in this error: "ORA-00001: unique constraint (APEX_050100.WWV_FLOW_COLLECTIONS_UK) violated". See for a workaround.