Upgrading from 5.0 to 5.1: Lessons Learned Part I

I am in the process of upgrading a set of applications currently in APEX 5.0 to APEX 5.1.  Some of these applications were initially created in version 4.2 and have been through one upgrade already, while others were initially created in version 5.0.  The main goal of the initial pass was to get the applications working as is in the new version without making major changes to functionality or taking advantage of the newer features.

The upgrade from 5.0 to 5.1 was easier than than upgrade from 4.2 to 5.0 and required only minor adjustments.  The biggest issue was that a couple of applications initially developed in 4.2 used the CSS Bar Chart Plug-in which survived the 5.0 upgrade but is no longer usable in 5.2  These charts were easily re-written using the HTML 5 Bar Chart Plug-in.  Other issues encountered:

  • In order for the help text to display for a page item, the Label attribute must be entered for the page item.  Most text items had this attribute entered already, but was missing from most of the radio buttons in my applications.  To easily find any page items that had help text but were missing labels, I queried the APEX_050100.APEX_APPLICATION_PAGES_ITEMS view in the database.

 

  • Modal pages that used the Skillbuilders SaveBeforeExit Plug-in to detect changes had to be altered to prevent the change detected warning from appearing a second time after the modal is closed.  In my modal pages in 5.0, the plug-in did not actually prompt the users – I used it only to detect a change and wrote a dynamic action to prompt users if a change was detected when the modal page was closed.   In the dynamic action that closes the modal I had to add an additional javascript action after the user was prompted to disable the warning :
$(document).apex_save_before_exit('disableWarning');

 

  • Custom link columns referencing a URL in tabular forms had to be modified.  Previously to reference a value in the row it would be referenced using #ITEM_NAME# but after the conversion I had to change the reference to &ITEM_NAME. in order for the link to work.

 

In a future pass I will address converting the tabular forms, where appropriate, to the new interactive grid.  I did a test conversion and found that too many adjustments would need to be made with how my applications are written to be able to tackle it in the time frame I had.  My initial impression of the new interactive grid is good though, and I look forward to playing with it.  I will detail this conversion in a future blog post.