Differences between Oracle APEX 4.2 and 5.0

If you haven’t heard: APEX 5.0 is out !

And I finally got some time on my hands to do my usual “diff” between the new and previous version to point out all API and View changes.

To me this is a very valuable exercise to absorb all new information and to get to know all new Features of a version. Because everything I find in View and API changes, must also be reflected in the APEX UI (Builder, Settings, …), right?
Well, lets say this is right most of the time. Sometimes I also stumble across hidden gems, which makes this even more valuable to me.

For previous posts please see:

Carsten Czarski also published an interesting approach to find out what’s new in a version: https://twitter.com/cczarski/status/595855489197600769

General

  • This was the longest development cycle ever in the history of APEX, upcoming versions will be delivered sooner again
  • There is a wealth of new stuff in this release, the two biggest changes are the Page Designer and the Universal Theme, which aren’t reflected in View and API changes
  • Processes have been converted to use the Plugin Interface
  • New Region Display Point “Page Template Body”

Changed API’s

This section lists public API’s and changes that are of interest for everyone. I have omitted some changes which are meant to be internal, even though they are part of public packages.

APEX_APPLICATION

  • new function apps_only_workspace – returns true/false if the current workspace is used for Packaged Applications only
  • stores all page-meta-data now in component-specific arrays: e.g. g_items, g_buttons, …

APEX_APPLICATION_INSTALL

  • new option and corresponding functions to get/set a flag to automatically install supporting objects with the application

APEX_AUTHORIZATION

  • now supports dynamic groups which do not need to exist in the APEX repository

APEX_AUTHENTICATION

  • p_password in post_login is now defaulted to NULL and should be omitted anyways

APEX_COLLECTION

  • now uses algorithm defined in CHECKSUM_HASH_FUNCTION for creating “MD5” checksums

APEX_ERROR

  • type t_error now also show the statement where the error occured (in case of parsing error) and the original_message/info

APEX_ESCAPE

  • removed some constants (e.g. SPACE#, HASH#) but included those values in c_html_whitelist_tags
  • new functions to escape json, regular expressions and css selectors

APEX_INSTANCE_ADMIN

  • new functions to blacklist schemas using restrict_/unrestrict_schema, so that they cannot be assigned to a workspace
  • using create_schema_exception a restricted schema can be assigned to a workspace
  • add_workspace supports now the new workspace types through parameter p_workspace_type

APEX_IR

  • change_subscription_email allows to change the email address of a subscribed interactive report

new: APEX_JSON

  • create JSON from PL/SQL

APEX_LDAP

  • added support to search the LDAP repository

APEX_PAGE

  • get_page_mode returns NORMAL/MODAL/NON_MODAL
  • the new function get_url constructs an APEX url out of single parameters (p_application, p_page, p_session, …). It is a nice alternative to apex_util.prepare_url

APEX_PLUGIN

  • has now support for region columns (ie report columns)
  • Render-Region function now can return a navigable_dom_id
  • extended some record types

APEX_PLUGIN_UTIL

  • added p_escape_display_extra to all get_display_data functions
  • new helper functions get_html_attr, get_link, get_data2, get_attribute_as_number

APEX_REGION

  • purge_cache – new parameter p_current_session_only

removed: APEX_SITE_ADMIN_PRIVS

  • functionality moved to APEX_INSTANCE_ADMIN

new: APEX_SPATIAL

  • technically it was added with 4.2.5

APEX_UTIL

  • function feedback_enabled returns true/falls whether feedback is enabled
  • new function reset_password can be used to implement a custom change-password page in an application.
  • helper function get_hash can be used to compute a hash over an array of values
  • uncompress_int was now introduced as counterpart to the already existing compress_int
  • new function set_group_group_grants and set_group_user_grants
  • prepare_url – new parameters p_triggering_element and p_dialog – also checks if mentioned page-items exist and raise exception otherwise

APEX_WEBSERVICE

  • make_request and make_rest_request – new parameter p_scheme can be Basic or AWS
  • there is now make_rest_request_b returning a BLOB instead of a CLOB

new: APEX_ZIP

  • zip/unzip BLOBs within PL/SQL

WWV_FLOW_API

  • has been extended to reflect the meta-data changes in APEX 5.0
  • standing out there is function varchar2_to_blob which converts a varchar2 array to a BLOB

WWV_FLOW_UTILITIES (maybe not 100% public…)

  • several new help functions to deal with large strings in CLOB’s: push, split, append, join, wrap
  • is_email checks if a string looks like an email address
  • other new functions could indicate friendly APEX URLs in a future version: get_friendly_app_url, get_friendly_workspace_url
  • export_application_to_clob – new params export_pkg_app_mapping, with_original_ids, exclude_subscriptions

 Deprecated/Deleted Functions

  • APEX_CSS.new_css_repository_record – use wwv_flow_api.create_app_static_file and create_workspace_static_file instead
  • APEX_CSS.remove_css
  • APEX_PAGE.is_jqm_tablet_ui
  • APEX_UTIL.get_language_selector_list
  • APEX_UTIL.get_language_selector_ul
  • APEX_UTIL.get_language_selector_ul2
  • APEX_UTIL.reset_authorizations – use apex_authorization.reset_cache instead
  • APEX_UTIL.public_check_authorization – use apex_authorization.is_authorized instead
  • APEX_UTIL.export_application
  • APEX_UTIL.export_application_page
  • APEX_UTIL.export_application_component
  • APEX_UTIL.get_application_id_status
  • APEX_UTIL.get_application_name
  • WWV_FLOW_API.create_or_remove_file – use wwv_flow_api.create_app_static_file, create_workspace_static_file instead

Changed Views

APEX_APPLICATIONS

  • FILE_PREFIX
  • FILE_VERSION
  • RUNTIME_API_USAGE
  • REJOIN_EXISTING_SESSIONS
  • HTTP_RESPONSE_HEADERS
  • BOOKMARK_CHECKSUM_FUNCTION
  • Obsolete:
    • CONTENT_DELIVERY_NETWORK
    • JAVASCRIPT_FILE_URLS
    • INCLUDE_LEGACY_JAVASCRIPT
    • those columns now show NULL if more than one USER_INTERFACE is defined

APEX_APPLICATION_AUTH

  • RAS_MODE
  • RAS_DYNAMIC_ROLES
  • RAS_NAMESPACES

APEX_APPLICATION_PAGES

  • new columns for PAGE_MODE (NORMAL/MODAL/NON_MODAL) and some DIALOG settings (title, height, width, …)
  • also new settings to store navigation-list information
  • PAGE_CSS_CLASSES
  • PAGE_TEMPLATE_OPTIONS
  • CACHE_MODE
  • REJOIN_EXISTING_SESSIONS

APEX_APPLICATION_PAGE_DA

  • WHEN_SELECTION_TYPE_CODE

APEX_APPLICATION_PAGE_DA_ACTS

  • AFFECTED_ELEMENTS_TYPE_CODE

APEX_APPLICATION_PAGE_BUTTONS

  • BUTTON_TEMPLATE_OPTIONS
  • GRID_COLUMN_CSS_CLASSES
  • GRID_COLUMN_ATTRIBUTES
  • ICON_CSS_CLASSES
  • PRE_ELEMENT_TEXT           — Region and Page Item Buttons are now the same and stored in the same table !
  • POST_ELEMENT_TEXT
  • REQUEST_SOURCE_TYPE

APEX_APPLICATION_PAGE_FLASH5

  • EXTRA_Y_AXIS_MIN
  • EXTRA_Y_AXIS_MAX

APEX_APPLICATION_PAGE_IR

  • SHOW_PIVOT
  • FIXED_HEADER
  • FIXED_HEADER_MAX_HEIGHT

APEX_APPLICATION_PAGE_IR_COL

  • REGION_NAME
  •  ALLOW_PIVOT
  • STATIC_ID
  • CSS_CLASSES

APEX_APPLICATION_PAGE_IR_GRPBY

  • FUNCTION*07* and FUNCTION*08*
  • SORT*05* and SORT*06*

APEX_APPLICATION_PAGE_IR_RPT

  •  REGION_ID

APEX_APPLICATION_PAGE_ITEMS

  • ITEM_CSS_CLASSES
  • ITEM_TEMPLATE_OPTIONS
  • GRID_LABEL_COLUMN_SPAN
  • GRID_COLUMN_CSS_CLASSES
  • GRID_COLUMN_ATTRIBUTES

APEX_APPLICATION_PAGE_PROC

  • PROCESS_TYPE_PLUGIN_NAME

APEX_APPLICATION_PAGE_REGIONS

  • GRID_COLUMN_CSS_CLASSES
  • GRID_COLUMN_ATTRIBUTES
  • ICON_CSS_CLASSES
  • REGION_SUB_CSS_CLASSES
  • REGION_TEMPLATE_OPTIONS
  • COMPONENT_TEMPLATE_OPTIONS
  • SOURCE_TYPE_PLUGIN_NAME
  • FIXED_HEADER
  • FIXED_HEADER_MAX_HEIGHT
  • CACHE_DEPENDS_ON_ITEMS
  • LIST_ID
  • BREADCRUMB_ID

APEX_APPLICATION_PROCESSES

  • PROCESS_TYPE_PLUGIN_NAME

APEX_APPLICATION_TEMP_BC

  • DEFAULT_TEMPLATE_OPTIONS
  • PRESET_TEMPLATE_OPTIONS

APEX_APPLICATION_TEMP_BUTTON

  • DEFAULT_TEMPLATE_OPTIONS
  • PRESET_TEMPLATE_OPTIONS

APEX_APPLICATION_TEMP_LABEL

  • DEFAULT_TEMPLATE_OPTIONS
  • PRESET_TEMPLATE_OPTIONS
  • BEFORE_ELEMENT
  • AFTER_ELEMENT
  • HELP_LINK
  • ERROR_TEMPLATE

APEX_APPLICATION_TEMP_LIST

  • JAVASCRIPT_FILE_URLS
  • JAVASCRIPT_CODE_ONLOAD
  • CSS_FILE_URLS
  • INLINE_CSS
  • DEFAULT_TEMPLATE_OPTIONS
  • PRESET_TEMPLATE_OPTIONS
  • A01_LABEL … A20_LABEL

APEX_APPLICATION_TEMP_PAGE

  • DIALOG_JS_INIT_CODE
  • DIALOG_JS_CLOSE_CODE
  • DIALOG_JS_CANCEL_CODE
  • GRID_ALWAYS_EMIT
  • GRID_DEFAULT_LABEL_COL_SPAN
  • DIALOG_HEIGHT
  • DIALOG_WIDTH
  • DIALOG_MAX_WIDTH
  • DIALOG_CSS_CLASSES
  • DIALOG_BROWSER_FRAME
  • DEFAULT_TEMPALTE_OPTIONS
  • PRESET_TEMPLATE_OPTIONS
  • PAGE_TEMPLATE_ID

APEX_APPLICATION_TEMP_REGION

  • DEFAULT_TEMPLATE_OPTIONS
  • PRESET_TEMPLATE_OPTIONS

APEX_APPLICATION_TEMP_REPORT

  • DEFAULT_TEMPLATE_OPTIONS
  • PRESET_TEMPLATE_OPTIONS

APEX_APPLICATION_THEMES

  • Navgiation List/Bar changes
  • new DEFAULT*TEMPLATE columns
  • several columns for Icons and Icon-Library
  • JAVASCRIPT_FILE_URLS
  • CSS_FILE_URLS
  • FILE_PREFIX
  • FILES_VERSION

APEX_APPLICATION_THEME_STYLES

  • THEME_ROLLER_INPUT_FILE_URLS
  • THEME_ROLLER_CONFIG
  • THEME_ROLLER_OUTPUT_FILE_URL
  • THEME_ROLLER_READ_ONLY

APEX_APPLICATION_TRANSLATIONS

  • IS_JS_MESSAGE

APEX_APPL_LOAD_TABLES

  • SKIP_VALIDATION

APEX_APPL_PLUGINS

  • JAVASCRIPT_FILE_URLS
  • CSS_FILE_URLS
  • FILES_VERSION

APEX_APPL_PLUGIN_ATTRIBUTES

  • IS_COMMON
  • SHOW_IN_WIZARD
  • MIN_VALUE
  • MAX_VALUE
  • UNIT
  • SUPPORTED_UI_TYPES
  • DEPENDING_ON_COMP_PROP_ID
  • REFERENCE_SCOPE
  • EXAMPLES

APEX_APPL_PLUGIN_ATTR_VALUES

  • IS_QUICK_PICK
  • HELP_TEXT

APEX_APPL_TEMP_PAGE_DP

  • GLV_NEW_ROW

APEX_APPL_TEMP_REGION_DP

  • GLV_NEW_ROW

APEX_APPL_USER_INTERFACES

  • Navigation List/Bar settings
  • CONTENT_DELIVERY_NETWORK
  • JAVASCRIPT_FILE_URLS
  • CSS_FILE_URLS
  • INCLUDE_LEGACY_JAVASCRIPT
  • INCLUDE_JQUERY_MIGRATE

APEX_WORKSPACES

  • ALLOW_PACKAGED_APP_INS_YN
  • ALLOW_TEAM_DEV_FILES_YN
  • FILE_STORAGE_MAX
  • FILES_VERSION
  • EMAIL_MAXIMUM
  • TEAM_DEV_FS_LIMIT
  • MAXIMUM_SESSION_LIFE_SECONDS
  • MAXIMUM_SESSION_IDLE_SECONDS
  • MAX_WORKSPACE_REQUESTS
  • MAX_SESSION_REQUESTS
  • MAX_SESSION_KILL_TIMEOUT

APEX_WORKSPACE_ACTIVITY_LOG

  • PAGE_VIEW_TYPE
  • REQUEST_VALUE
  • DEBUG_PAGE_VIEW_ID

APEX_WORKSPACE_APEX_USERS + APEX_WORKSPACE_DEVELOPERS

  • PASSWORD_VERSION

APEX_WORKSPACE_FILES

  • TEMP_FILE_SESSION_ID

APEX_WORKSPACE_SESSIONS

  • REMOTE_ADDR
  • SESSION_IDLE_TIMEOUT_ON
  • SESSION_LIFE_TIMEOUT_ON
  • SESSION_MAX_IDLE_SEC

APEX_WS_DATA_GRID_COL

  • ALLOW_PIVOT

New Views

  • APEX_APPLICATION_LOCKED_PAGES
  • APEX_APPLICATION_PAGE_IR_PIVOT
  • APEX_APPLICATION_PAGE_IR_PVAGG
  • APEX_APPLICATION_PAGE_IR_PVSRT
  • APEX_APPLICATION_PAGE_REG_COLS
  • APEX_APPLICATION_STATIC_FILES
  • APEX_APPLICATION_THEME_FILES
  • APEX_APPL_CONCATENATED_FILES
  • APEX_APPL_DEVELOPER_COMMENTS
  • APEX_APPL_PAGE_CALENDARS
  • APEX_APPL_TEMPLATE_OPTIONS
  • APEX_APPL_TEMPLATE_OPT_GROUPS
  • APEX_WORKSPACE_GROUP_GROUPS
  • APEX_WORKSPACE_SESSION_GROUPS
  • APEX_WORKSPACE_STATIC_FILES
  • WWV_FLOW_TEMP_FILES

Deleted Views

  • APEX_APPLICATION_PAGE_FLASH_CH
  • APEX_APPLICATION_PAGE_FLASH_S

Deleted Settings / View Columns

APEX_APPLICATION_PAGE_IR

  • SORT_ASC_IMAGE*
  • SORT_DESC_IMAGE*
  • BUTTON_TEMPLATE returns NULL
  • ACTIONS_MENU_ICON returns NULL
  • FINDER_ICON returns NULL

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *