Pre-General Availability: 2018-03-05

Oracle® Application Express

Release Notes

Release 18.1

E86878-02

March 2018

1.1 About These Release Notes

These release notes contain important information not included in the Oracle Application Express documentation.

2.1.1 About Checking for the Most Current Release

Oracle Application Express is released more frequently than the Oracle Database. To view information about or download a more current release, see:

http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html

2.1.2 About Upgrading to the Latest Oracle Application Express Release

If you already have Oracle Application Express installed, Oracle strongly recommends that you regularly upgrade to the latest version available. To learn more about see "Upgrading from a Previous Oracle Application Express Release" in Oracle Application Express Installation Guide.

2.1.3 About Determining Your Release Version

To determine which release of Oracle Application Express you are currently running, do one of the following:

  • View the release number on the Workspace home page:

    • Sign in to Oracle Application Express.

      The Workspace home page appears. The current release version displays in bottom right corner.

  • View the About Application Express page:

    1. Sign in to Oracle Application Express.

      The Workspace home page appears.

    2. Click the Help menu at the top of the page and select About.

      The About Application Express page appears.

See Also:

"About Accessing Your Development Environment" in Oracle Application Express App Builder User’s Guide

2.1.4 Important Information if Updating from a Previous Release

If you are updating from previous release of Oracle Application Express, see the "Changed Behavior" sections in the following documents:

2.1.5 Important Information if Using Oracle Workspace Manager in an Oracle Database

If your database uses Oracle Workspace Manager, you must download the patch for Bug 11061801 from My Oracle Support and apply it to your database prior to attempting the install. To locate this patch, search for 11061801 on the Patches tab.

2.1.6 Important Information if Upgrading from Oracle Database Version 12c CDB

If you are upgrading an Oracle Database 12c Release 1 (12.1) multitenant container database (CDB), you must download the patch for Bug 20618595 from My Oracle Support and apply it to your database. To locate this patch, search for 20618595 on the Patches tab.

3.1 Configuration Requirements

When configuring the mod_plsql Database Access Descriptor (DAD), you must set the value of the character set portion of PlsqlNLSLanguage to AL32UTF8 regardless of the underlying database character set.

The Database Access Descriptor now contains a parameter for PlsqlRequestValidationFunction. The purpose of this parameter is to limit the number of procedures which can be invoked through mod_plsql. By default, the only procedures permitted are the public entry points of Oracle Application Express. This can be extended using the validation functions shipped with Oracle Application Express. 

Enabling the PlsqlRequestValidationFunction for a Database Access Descriptor may cause existing applications which relied upon publicly executable procedures to fail. You may choose to either omit the PlsqlRequestValidationFunction from the Database Access Descriptor definition, or follow the recommended approach of extending the supplied validation function.

See Also:

"Restricting Access to Oracle Application Express by Database Access Descriptor (DAD)" in Oracle Application Express Administration Guide

4.1 New Features

Oracle Application Express release 18.1 includes a number of new features. These new features are not present in Oracle Application Express release 5.1 and earlier releases. For more information, visit the Application Express Early Adopter page.

4.1.1 Oracle JET Chart Types

Oracle Application Express release 18.1 introduces the following JET chart types:

Pyramid

Pyramid charts are useful for visualizing hierarchical, proportional and foundation-based relationships, process steps, organizational layers, or interconnections between topics. The area of a pyramid slice is proportional to its value for the corresponding stage.

Box Plot
Box plot charts (also known as Box and Whisker diagrams) are useful for analyzing the distribution of data, displaying the minimum, quartiles, median, and maximum values of groups of numerical data. Our declarative support requires the selection of a Label and Value column, and our underlying logic automatically handles the calculations for the various elements of the chart as follows:
  • High / Maximum Value – the highest value of the data set. Optionally, you can also select a High column to set the highest value to a specific value.

  • 1st Quartile – the 25th percentile of data; 25% of the data is below this value.

  • Median / 2nd Quartile – the middle of the data; 50% of the data is greater than this value.

  • 3rd Quartile – the 75th percentile of data; 25% of the data is above this value.

  • Low / Minimum Value – the lowest value of the data set. Optionally, you can also select a Low column to set the lowest value to a specific value.

  • Outliers – values that fall outside of the quartile ranges. The Upper Outliers are more than 3/2 of the 3rd Quartile. The Lower Outliers are less than 3/2 times the 1st Quartile.

Gantt

Gantt charts display project schedules, displaying bars that indicate the start and end date of tasks for a hierarchical data set.

4.1.2 Updated Font Awesome

Font Awesome used by Oracle Application Express release 18.1 has been updated to Font Awesome version 4.5.0. The previous version (4.2.0) has been removed.

4.1.3 REST Enabled SQL Support

This release enables developers to create a REST Enabled SQL service to execute SQL or PL/SQL defined in Oracle Application Express components on a remote Oracle database.

Key features include:

  • Create and maintain references to REST Enabled SQL instances (Oracle REST Data Services) in Shared Components.

  • Use a REST Enabled SQL Service and therefore a remote Oracle database as the data source for Classic Reports, Interactive Reports, Oracle JET Charts or CSS Calendar.

  • Execute PL/SQL page processes on a remote Oracle database.

  • Use the APEX_EXEC PL/SQL package to execute SQL Queries or PL/SQL blocks on a remote database, from within your custom PL/SQL code.

Note:

At this time, Application Express Remote Data Sources (REST Enabled SQL) does not support BLOB columns (Download or Display Image format masks).

4.1.4 REST Service Consumption

This release introduces a robust toolset for developers to take full advantage of the new REST support including the following features:

  • Create and maintain references to REST services (Web Source Modules) within Shared Components.

  • Leverage Oracle REST Data Services features like server-side filtering or pagination to fetch only required data from the REST service.

  • Use Simple HTTP for generic REST services, JSON or XML data feeds.

  • Have Application Express automatically discover and maintain the Data Profile; no manual SQL or PL/SQL coding is required for JSON or XML parsing.

  • Use Web Sources as the data source for Classic Reports, Interactive Reports, Oracle JET Charts or the CSS Calendar.

  • Use the APEX_EXEC PL/SQL package in order to invoke REST services from within custom PL/SQL code in Plug-Ins or page processes.

Note:

At this time, this feature contains the following restrictions:

  • When using a Classic Report with a REST service, Application Express does not support pagination schemes displaying the total row count (such as X to Y of Z). Selecting these pagination schemes in Page Designer results in an error message at runtime.

  • REST Services does not support the Compute Sum functionality in Classic Reports. If selected in Page Designer, an error message displays at runtime.

  • REST Services does not support BLOB columns (Download and Display Image) in Classic Reports on a TESTZ Service.

4.1.5 New Create App Wizard

The Create App Wizard is redesigned to generate apps quicker than before with the following updates:

  • New and improved user experience for creating applications.

  • Simpler wizards for creating pages.

  • Add Features (common frameworks) to applications such as activity reporting, access control, theme selection, and more.

  • Customize user interface options such as Theme Style, application icon, and page icons.

  • Leverage existing applications or UI defaults to default labels and form display types.

4.1.6 JavaScript API Documentation

  • Preview of JavaScript API documentation

4.1.7 Application Express Spotlight Search

This release introduces a powerful search function with the following features:

  • Provides quick navigation and unified search experience across Oracle Application Express

  • Activate by clicking search button from header, or using the keyboard shortcut Ctrl + '

  • You can navigate to most screens within Application Express builder

  • Quickly jump across applications and pages

  • Also works in Page Designer – can focus on page components

5.1.1 Browser Requirements

Oracle Application Express supports the current and prior major release of Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Internet Explorer, and Microsoft Edge.

Oracle Application Express requires a JavaScript-enabled browser and supports the current and prior major release of Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Internet Explorer, and Microsoft Edge

Note:

 Microsoft Internet Explorer 11 is the prior major release, with Microsoft Edge being the current Microsoft browser.

5.1.2 Compatibility Mode

The application attribute Compatibility Mode controls the compatibility mode of the Application Express runtime engine. Certain runtime behaviors change from release to release. You can use the Compatibility Mode attribute to obtain specific application behavior. This section lists Compatibility Mode changes by release. Note that all mode changes are inclusive in that all changes in older releases are included in newer releases.

Compatibility Mode Changes in Mode 4.1

In Oracle Application Express release 4.1, Automatic DML forms raised an error when rendering the page if the column name of the source of an item was invalid. Prior to Oracle Application Express release 4.1, an invalid column name of the source of an item would not raise an error when rendering the page but it would also not set session state of the item.

Also, in Oracle Application Express release 4.1, there are two new application Security Attributes to control Browser Security: Cache and Embed in Frames. Enabling the Cache attribute enables the browser to save the contents of your application's pages in its cache, both in memory and on disk. The Embed in Frames attribute controls if the browser displays your application's pages within a frame. Applications running in a Pre-4.1 Compatibility Mode function as if the Cache is enabled and as if Embed in Frames is set to allowed. Applications running in Compatibility Mode 4.1 or later respect the specific Browser Security attributes.

Also, in Oracle Application Express release 4.1, because of bug 12990445, the following changes were implemented for Automatic Row Processing (DML) process types. The code which performs the INSERT was changed to determine if the columns should be included in the INSERT statement. Note that these are the same checks which occur before an UPDATE. These new checks include:

  • Is the source type a DB Column?

  • Is the page item contained in the POST request? For example, if the page item is conditional it will not be contained in the POST request if the condition evaluates to FALSE during page rendering.

  • Is the page item not of type Display Only where Save State is set to No?

To enable these behaviors, set the Compatibility Mode to 4.1 or later. For behavior that matches earlier releases, set the Compatibility Mode to Pre-4.1.

Compatibility Mode Changes in Mode 4.2

In Oracle Application Express release 4.2 due to changes for the new grid layout, when a page is rendered, all regions in a certain display point are evaluated before rendering that display point, to find out if they should be displayed or not (so that the grid layout knows how many columns to render). The regions where the evaluation returned true will be executed and displayed. However, this will not work if a PL/SQL based region sets session state which is then used in a subsequent region condition to determine if the region should be displayed. In that scenario, the condition has already been checked before the display point is rendered. Use computations or PL/SQL processes to set session state before any region is displayed. In previous versions, the condition was evaluated right before each region was displayed.

In Oracle Application Express release 4.2, computations and processes with a processing point Before Region(s) do now fire before any region gets rendered. Computations and processes with a processing point After Region(s) fire after all regions have been rendered. In previous versions, the computations and processes fired just before and after the region display point Page Template Body (1-3).

Oracle Application Express Patch Set 4.2.2 added two new Compatibility Mode changes for Compatibility Mode 4.2:

  • Text areas were changed to always use the Maximum Width attribute to restrict text input.

  • Enhanced security for report column links, where the link contains both JavaScript and references to other report column substitutions, for example:

    javascript:alert( 'Delete #NAME#' );
    

    In the previous example, NAME is a column name in the report.

Prior to Oracle Application Express release 4.2.1, to protect against possible cross-site scripting vulnerabilities, you would have had to explicitly escape any column values in the report source, so that they could safely be used in JavaScript links. When running in Compatibility Mode 4.2, Oracle Application Express automatically JavaScript escapes column name substitutions referenced in JavaScript links if the column is defined to escape special characters.

See Also:

To learn more, see Oracle Application Express Patch Set Notes and search for Compatibility Mode.

Compatibility Mode Changes in Mode 5.0

In Oracle Application Express release 5.0, referencing a Static Application File with #WORKSPACE_IMAGES# no longer returns the application file. Instead, use #APP_IMAGES#.

The API calls to wwv_flow_custom_auth_std.logout, wwv_flow_custom_auth_std.logout_then_go_to_pagewwv_flow_custom_auth_std.logout_then_go_to_url, and apex_custom_auth.logout are desupported and will raise a runtime error instead of logging out from the Oracle Application Express session. Instead, use the apex_authentication.logout entry point.

Prior to release 5.0, developers using data upload did not have the option to choose a date format. Instead, a parser checked for the best format to match the user's entry or an end user could enter their own format. Oracle Application Express release 5.0 includes a new item that enables the user to choose an application date format or user entered format. Because applications created before release 5.0 do not have an item, a Compatibility Mode of 5.0 checks if the user has entered some data. If no data has been entered, it picks the application date format.

When a session timeout occurs and no timeout URL is specified, Oracle Application Express raises an error instead of redirecting to the application's home page. If the session setup for an Ajax requests fails, Oracle Application Express also raises an error. For Ajax requests that expect JSON, the response is a JSON string with members that describe the error. For other requests, the error appears on an error page.

Page items based on a database column where the attribute Source Used is set to Only when current value in session state is null will raise an error when the page item gets rendered. Using this setting for a database column is very dangerous and can result in accidentally overwriting data when viewing and saving multiple records. Always set the Source Used attribute to Always, replacing any existing value in session state.

Compatibility Mode Changes in Mode 5.1

In Oracle Application Express release 5.1, buttons where the Execute Validations attribute is set to Yes also perform some client-side validations (such as item required checks) and will not submit the page until all issues are fixed. In previous versions this flag was just used to determine if server-side validations should be executed.

Tip:

Please pay attention when changing the Compatibility Mode to 5.1. Buttons, such as Cancel or Previous, where the Execute Validation flag has incorrectly been set to Yes and which use an After Submit branch, never execute validations when the user clicks the button. You can address this issue by using the new client-side validations, or by setting Execute Validations to No.

Compatibility Mode Changes in Mode 18.1

5.1.3 Enabling Network Services in Oracle Database 11g or Later

You must enable network services in Oracle Database 11g or later versions to send outbound mail, use Web services, or use PDF report printing in Oracle Application Express.

5.1.3.1 When and Why Network Services Must be Enabled

Enabling network services enables support for sending outbound mail in Oracle Application Express, use of Web services in Oracle Application Express, and PDF report printing.

By default, the ability to interact with network services is disabled in Oracle Database 11g Release 1 or 2 or later. Therefore, if you are running Oracle Application Express with Oracle Database 11g Release 1 or 2 or later, you must use the new DBMS_NETWORK_ACL_ADMIN package to grant connect privileges to any host for the APEX_180100 database user. Failing to grant these privileges results in issues with:

  • Sending outbound mail in Oracle Application Express.

    Users can call methods from the APEX_MAIL package, but issues arise when sending outbound email.

  • Using Web services in Oracle Application Express.

  • PDF report printing.

Tip:

To run the examples described in this section, the compatible initialization parameter of the database must be set to at least 11.1.0.0.0. By default a 11g or 12c database will already have the parameter set properly, but a database upgraded to 11g or 12c from a prior version may not. For information about changing database initialization parameters, see "Creating and Configuring an Oracle Database" in Oracle Database Administrator’s Guide.

5.1.3.2 Granting Connect Privileges Prior to Oracle Database 12c

Demonstrates how to grant connect privileges to any host for the APEX_180100 database user.

The following example demonstrates how to grant connect privileges to any host for the APEX_180100 database user. This example assumes you connected to the database where Oracle Application Express is installed as SYS specifying the SYSDBA role.

DECLARE
  ACL_PATH  VARCHAR2(4000);
BEGIN
  -- Look for the ACL currently assigned to '*' and give APEX_180100
  -- the "connect" privilege if APEX_180100 does not have the privilege yet.
 
  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
 
  IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_180100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'APEX_180100', TRUE, 'connect');
  END IF;
 
EXCEPTION
  -- When no ACL has been assigned to '*'.
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
    'ACL that lets power users to connect to everywhere',
    'APEX_180100', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;

The following example demonstrates how to provide less privileged access to local network resources. This example enables access to servers on the local host only, such as email and report servers.

DECLARE
  ACL_PATH  VARCHAR2(4000);
BEGIN
  -- Look for the ACL currently assigned to 'localhost' and give APEX_180100
  -- the "connect" privilege if APEX_180100 does not have the privilege yet.
  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
   
  IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_180100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'APEX_180100', TRUE, 'connect');
  END IF;
  
EXCEPTION
  -- When no ACL has been assigned to 'localhost'.
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml',
    'ACL that lets users to connect to localhost',
    'APEX_180100', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost');
END;
/
COMMIT;

5.1.3.3 Granting Connect Privileges in Oracle Database 12c

Procedures CREATE_ACL, ASSIGN_ACL, ADD_PRIVILEGE and CHECK_PRIVILEGE in DBMS_NETWORK_ACL_ADMIN are deprecated in Oracle Database 12c. Oracle recommends to use APPEND_HOST_ACE.

The following example demonstrates how to grant connect privileges to any host for the APEX_180100 database user. This example assumes you connected to the database where Oracle Application Express is installed as SYS specifying the SYSDBA role.

BEGIN
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => '*',
        ace => xs$ace_type(privilege_list => xs$name_list('connect'),
                           principal_name => 'APEX_180100',
                           principal_type => xs_acl.ptype_db));
END;
/

The following example demonstrates how to provide less privileged access to local network resources. This example enables access to servers on the local host only, such as email and report servers.

BEGIN
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => 'localhost',
        ace => xs$ace_type(privilege_list => xs$name_list('connect'),
                           principal_name => 'APEX_180100',
                           principal_type => xs_acl.ptype_db));
END;
/

5.1.3.4 Troubleshooting an Invalid ACL Error

Learn how to identify a invalid ACL error by running the query.

If you receive an ORA-44416: Invalid ACL error after running the previous script, use the following query to identify the invalid ACL:

REM Show the dangling references to dropped users in the ACL that is assigned
REM to '*'.

SELECT ACL, PRINCIPAL
  FROM DBA_NETWORK_ACLS NACL, XDS_ACE ACE
 WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL AND
       NACL.ACLID = ACE.ACLID AND
       NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

Next, run the following code to fix the ACL:

DECLARE
  ACL_ID   RAW(16);
  CNT      NUMBER;
BEGIN
  -- Look for the object ID of the ACL currently assigned to '*'
  SELECT ACLID INTO ACL_ID FROM DBA_NETWORK_ACLS
   WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

  -- If just some users referenced in the ACL are invalid, remove just those
  -- users in the ACL. Otherwise, drop the ACL completely.
  SELECT COUNT(PRINCIPAL) INTO CNT FROM XDS_ACE
   WHERE ACLID = ACL_ID AND
         EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

  IF (CNT > 0) THEN

    FOR R IN (SELECT PRINCIPAL FROM XDS_ACE
               WHERE ACLID = ACL_ID AND
                     NOT EXISTS (SELECT NULL FROM ALL_USERS
                                  WHERE USERNAME = PRINCIPAL)) LOOP
      UPDATE XDB.XDB$ACL
         SET OBJECT_VALUE =
               DELETEXML(OBJECT_VALUE,
                         '/ACL/ACE[PRINCIPAL="'||R.PRINCIPAL||'"]')
       WHERE OBJECT_ID = ACL_ID;
    END LOOP;

  ELSE
    DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID;
  END IF;

END;
/

REM commit the changes.

COMMIT;

Once the ACL has been fixed, you must run the first script in this section to apply the ACL to the APEX_180100 user.

5.1.4 APEX_WORKSPACE_ACTIVITY_LOG.THINK_TIME is always NULL

As of this release, the value of THINK_TIME in view APEX_WORKSPACE_ACTIVITY_LOG is always null.

Previously, the computation of this column negatively impacted the view’s performance. It required an additional index, causing more I/O during page processing.

You can compute THINK_TIME by using the following example as a guide:

  select view_date,
         (view_date - lag(view_date) over (
                          partition by apex_session_id
                          order by view_date )) *60*60*24 think_time,
         application_id,
         page_id,
         apex_session_id,
         apex_user
    from apex_workspace_activity_log
   where workspace = 'EXAMPLE WORKSPACE'
     and view_date > sysdate-1
   order by 1, 2 desc

5.1.5 Internal engine changes for Classic Reports

Changes to the engine executing classic reports in order to support REST enabled SQL and REST Services includes the following:

  • When Compute Sum is enabled, the application now computes the sum using the SUM() SQL function with a windowing clause.

  • When Generic Columns and a PL/SQL function returning SQL Query is used, the generated SQL Query must have unique column names (no duplicate column names).

  • Oracle Application Express uses Bulk Row Fetching by default for better performance. For tabular forms, however, custom Javascript code may no longer function properly. To force Single Row fetching, add the comment /* APEX$SINGLE_ROW_FETCH*/ to your SQL query.

5.1.6 Page Designer Improvements

Property Editor

The following changes have been made to the Property Editor in Page Designer:

  • Updated UI to improve usability

  • Removed the Show Common, Show All, Collapse All, and Expand All functionality

  • Property groups glow when you select a property

  • Improved Go to Group functionality

Sticky Filters

Filter terms can now be pinned to the Property Editor search filter so you can click other components and retain the filter.

5.1.7 Interactive Grid Enhancements

Updates to interactive grid regions in this release include:

  • Expose additional events to Dynamic Actions

  • A new Selections sub-menu (within the Actions menu) with the following new features:

    • Copy Down support and range selection

    • Copy to Clipboard (for row or cell range selections)

5.1.8 Tree Region Enhancements

Updates to the tree region for this release include:

  • Oracle Application Express now supports the Advanced: JavaScript Initialization Code attribute. This attribute and the jsdoc make customizing the tree region easier (while also partially replacing jsTree).

  • Added Default Icon attribute. Allow Icon Type to be empty (without forcing a-Icon).

  • Improved Page Designer help text for all attributes.

  • Support for Dynamic Action Event Selection Change [Tree].

  • Advanced Config option (nodeSelector) to support checkbox selection.

  • Tree region now supports the apex.region API.

  • Copy selection to clipboard.

5.1.9 Developer Toolbar Improvements

This release introduces the following updates to the Developer Toolbar:

  • An indicator for when there is a JavaScript error on the page.

  • New Page Info menu which contains the Show Layout Columns and Show Page Timing features.

5.1.10 Advisor Improvements

Updates to the Oracle Application Express Advisor in this release include:

  • New Accessibility checks to check your apps for common accessibility issues

  • New Performance check for inclusion of compatibility JavaScript

5.1.11 Item Type Improvements

This release introduces the new Text with Autocomplete item type using Oracle JET.

5.1.12 Oracle JET and jQuery Library Updates

Updates to Oracle JET and jQuery library in this release include the following:

  • JET 4.2.0

  • jQuery 3.1.1

  • jQuery UI 1.12.0

  • FullCalendar 3.3.1

  • jsTree third party library is removed because it is incompatible with new versions. Tree regions will be converted to use the Application Express treeView widget.

If you have made JavaScript or CSS customizations that are specific to jsTree, you may need to re-implement them following removal and automatic conversion to treeView.

5.1.13 Text Message Substitutions

Text message substitution updates in this release include:

  • For a given text message MY_MESSAGE, you can now use v('APP_TEXT$MY_MESSAGE') to retrieve the message text.

  • Use APP_TEXT$MY_MESSAGE$XX to return the translation text for language XX (such as DE, FR, and so on).

  • Same syntax is supported on the client via the apex.util.applyTemplate API

    .

5.1.14 List View Region

The List View region from the deprecated mobile UI is supported on desktop UI. See the known issues for current limitations.

5.1.15 Ajax Error Message on Server and dynamic_actions_core JavaScript Modules Changed

The Oracle Application Express server and dynamic_actions_core JavaScript modules no longer call window.onerror when there is an Ajax error.

6.1 Deprecated Features

Deprecated features are features which Oracle plans to desupport or remove in a future release of Oracle Application Express. If a feature is related to application metadata or an APIs, existing applications can still use the feature, but Oracle strongly recommends that developers start to modify their applications as described in this section. Use Oracle Application Express Advisor to scan existing applications for deprecated attributes.

See Also:

"Running Advisor to Check Application Integrity" in the Oracle Application Express App Builder User’s Guide

6.1.1 jQuery Flot and Flot Plug-ins Deprecated

The jQuery Flot versions 0.7, 0.8, 0.8.2, and 0.8.3 are not used in Oracle Application Express and will be removed in a future release. Packaged Applications have also been updated to remove Flot Line, Flot Bar, and Flot Pie chart plug-ins. Remove any references in your application code and use our declarative chart solution, based on Oracle JET Data Visualizations.

6.1.2 APEX_ERROR.GET_ARIA_ERROR_ATTRIBUTES Deprecated

APEX_ERROR.GET_ARIA_ERROR_ATTRIBUTES is deprecated and will no longer be available in the next major release of Oracle Application Express. Developers should replace this functionality with apex_plugin_util.get_element_attributes, which provides better support with native functionality.

6.1.3 Deprecated / Desupported JavaScript Functions

We have an ongoing commitment to try to reduce the overall size of JavaScript that Oracle Application Express loads when rendering a page. We are gradually moving JavaScript functions that are no longer served on every page to a legacy JavaScript file (located in /i/libraries/apex/legacy.js).

Including legacy JavaScript functions is optional. To include them, use the Include Legacy JavaScript property on the User Interface Attributes page under the application’s Shared Components.

When including legacy JavaScript functions, Application Express migrates any existing applications automatically for backward compatibility. To exclude this legacy file, do the following:
  1. Review the functions listed in the legacy file (legacy.js).

  2. Search your application and associated JavaScript files for any references to those files.

If you exclude all references to these functions, you can disable inclusion of the entire legacy.js file (this also reduces the size of the library slightly).

Oracle recommends that you avoid using any of the functions in legacy.js to reduce your dependency on this legacy JavaScript for both new and existing application development.

6.1.4 External Processing in Classic Report Deprecated

The External Processing functionality of Classic Report has been deprecated and will be removed in a future release.

To use the External Processing function in the interim, your application must include the Deprecated or Desupported JavaScript file. To include this file in an application, locate User Interface Details in the application’s Shared Components, and for Include Deprecated or Desupported JavaScript Functions, select Pre 18.1.

See Also:

6.1.5 APEX_UTIL.STRING_TO_TABLE Function Deprecated

Since Oracle Application Express 5.1, APEX_UTIL.STRING_TO_TABLE is deprecated. Use APEX_STRING.STRING_TO_TABLE instead.

6.1.6 APEX_UTIL.TABLE_TO_STRING Function Deprecated

Since Oracle Application Express 5.1, APEX_UTIL.TABLE_TO_STRING is deprecated. Use APEX_STRING.TABLE_TO_STRING instead.

7.1.1 Removed Packaged Applications

The following packaged applications have been removed in this release of Oracle Application Express:

  • Packaged Applications:

    • Quick SQL

    • REST Client Assistant

Note:

Quick SQL is currently available at quicksql.oracle.com.

7.1.2 Removal of Outdated Third Party Libraries Versions

The following outdated third party library version have been removed:
  • jsTree 0.9.9

7.1.3 Desupported Condition Types

The following condition types of the following attributes are no longer supported in Oracle Application Express release 18.1.

For each desupported condition type, follow the proceeding Oracle recommended action to correct your application.

Attribute — Conditions

  • For Condition Types:
    • CGI_ENV: DAD_NAME =/!= Value

    • CGI_ENV: HTTP_POST =/!= Value

    • CGI ENV: SERVER_NAME =/!= Value

    Recommended Action:
    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('XYZ') API instead.

  • For Condition Types:
    • Client Browser is Microsoft Internet Explorer 7.0 or higher

    • Client Browser is Mozilla, Netscape 6.x/7x or higher

    • Client Browser is Other browsers (or older version)

    • Client Browser is XHTML / CSS capable browser

    Recommended Action:
    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('HTTP_USER_AGENT') instead.

    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('XYZ') API instead.

  • For Condition Types:
    • SQL Reports

    • Current Page =/!= Page Submitted (posted)

    • Text =/!= Value

    • Text is/ is NOT contained in Value/Item

    Recommended Action:
    • Use PL/SQL Expression or PL/SQL Function returning Boolean condition types.

  • For Condition Type:

    • Always

    Recommended Action:
    • By having no condition specified the same result will be achieved.

Attribute — Read Only Conditions

  • For Condition Types:
    • CGI_ENV: DAD_NAME =/!= Value

    • CGI_ENV: HTTP_POST =/!= Value

    • CGI ENV: SERVER_NAME =/!= Value

    Recommended Action:
    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('XYZ') API instead.

  • For Condition Types:
    • Client Browser is Microsoft Internet Explorer 7.0 or higher

    • Client Browser is Mozilla, Netscape 6.x/7x or higher

    • Client Browser is Other browsers (or older version)

    • Client Browser is XHTML / CSS capable browser

    Recommended Action:
    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('HTTP_USER_AGENT') instead.

    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('XYZ') API instead.

  • For Condition Types:
    • SQL Reports

    • Current Page =/!= Page Submitted (posted)

    • Text =/!= Value

    • Text is/ is NOT contained in Value/Item

    Recommended Action:
    • Use PL/SQL Expression or PL/SQL Function returning Boolean condition types.

Attribute — Server Cache Conditions

  • For Condition Types:
    • CGI_ENV: DAD_NAME =/!= Value

    • CGI_ENV: HTTP_POST =/!= Value

    • CGI ENV: SERVER_NAME =/!= Value

    Recommended Action:
    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('XYZ') API instead.

  • For Condition Types:
    • Client Browser is Microsoft Internet Explorer 7.0 or higher

    • Client Browser is Mozilla, Netscape 6.x/7x or higher

    • Client Browser is Other browsers (or older version)

    • Client Browser is XHTML / CSS capable browser

    Recommended Action:
    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('HTTP_USER_AGENT') instead.

    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('XYZ') API instead.

  • For Condition Types:
    • SQL Reports

    • Current Page =/!= Page Submitted (posted)

    • Text =/!= Value

    • Text is/ is NOT contained in Value/Item

    Recommended Action:
    • Use PL/SQL Expression or PL/SQL Function returning Boolean condition types.

  • For Condition Type:

    • Always

    Recommended Action:
    • By having no condition specified the same result will be achieved.

Attribute — Link Conditions

  • For Condition Types:
    • CGI_ENV: DAD_NAME =/!= Value

    • CGI_ENV: HTTP_POST =/!= Value

    • CGI ENV: SERVER_NAME =/!= Value

    Recommended Action:
    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('XYZ') API instead.

  • For Condition Types:
    • Client Browser is Microsoft Internet Explorer 7.0 or higher

    • Client Browser is Mozilla, Netscape 6.x/7x or higher

    • Client Browser is Other browsers (or older version)

    • Client Browser is XHTML / CSS capable browser

    Recommended Action:
    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('HTTP_USER_AGENT') instead.

    • Use a PL/SQL expression, such as SYS.OWA_UTIL.GET_CGI_ENV('XYZ') API instead.

  • For Condition Types:
    • SQL Reports

    • Current Page =/!= Page Submitted (posted)

    • Text =/!= Value

    • Text is/ is NOT contained in Value/Item

    Recommended Action:
    • Use PL/SQL Expression or PL/SQL Function returning Boolean condition types.

  • For Condition Type:

    • Always

    Recommended Action:
    • By having no condition specified the same result will be achieved.

7.1.4 Application Builder Component View Desupported

Component View has been designated as a legacy user interface for editing application pages and may be removed as soon as the next release. Oracle recommends developers use Page Designer instead of Legacy Component View.

Legacy Component View groups user interface elements and application logic by component type. Unlike Page Designer, Legacy Component View does not offer a visual representation of a page or support the dragging and dropping of page components. To preview the position of components on a page, you must run it.

As of Oracle Application Express release 5.1, Legacy Component View is disabled by default. To enable Component View, edit your user preferences and select Yes for Enable Legacy Component view. Once the Legacy Component View has been enabled, navigate back to Page Designer, click the Component View tab, and then click Legacy Component View [Deprecated]. Please note that some components, such as Interactive Grids and Oracle JET based Charts, can not be maintained using the Legacy Component View.

Tip:

To assist developers with the transition to Page Designer, Page Designer includes a Component View tab. Similar in appearance to Legacy Component View, the Page Designer Component View tab presents user interface elements and application logic by component type; however, when you click a component, the Property Editor highlights the corresponding attribute in the right pane and enables you to edit the component attributes.

7.1.5 APEX_UTIL.SET_CURRENT_THEME_STYLE Desupported

APEX_UTIL.SET_CURRENT_THEME_STYLE is desupported and is no longer available in the next major release of Oracle Application Express. Developers should replace this functionality with APEX_THEME.SET_CURRENT_STYLE.

7.1.6 Conditional File Loading for Microsoft Internet Explorer Desupported

Support for conditional file loading for Microsoft Internet Explorer in JavaScript File URLs and CSS File URLs attributes using [if IE]/mycss/ie.js is desupported.

7.1.7 Themes 1–26 and Theme 50 Deprecated

Older themes are considered legacy and are desupported. Applications using these themes must migrate to the Universal Theme. The Universal Theme (Theme 42) and the Mobile Theme (Theme 51) are the standard themes in Oracle Application Express.

To learn more about transitioning to Universal Theme, navigate to http://apex.oracle.com/ut and click Migration Guide.

7.1.8 apex.server Plugin and Process Function Async Option Desupported

As of this release, the async option is ignored and all Ajax requests are asynchronous.

7.1.9 apex.widget.initPageItem Function Desupported

The function apex.widget.initPageItem is desupported. Item plug-in creators must use apex.item.create instead.

7.1.10 jQuery Autocomplete and jsTree Plugins are Desupported

The jQuery jsTree plugin optionally used by the APEX Tree region and the jQuery autocomplete plugin used by the Text Field with Autocomplete item are desupported and do not work in this release of Oracle Application Express. The Tree region already has a replacement tree implementation called APEX Tree. You can migrate your apps to use the APEX Tree implementation.

In the future, a new implementation will provide the Text Field with Autocomplete with backwards compatibility. However, Oracle recommends that you do not use the jQuery autocomplete plugin directly in your app due to potential incompatibility.

A future release of Application Express will upgrade the jQuery library to the 3.x line. At that time, any jQuery plugins or custom code including JavaScript Dynamic Actions that rely on jQuery Migrate 1.4.x plugin will no longer function (including the jsTree and autocomplete plugins). Application Express will provide a declarative option to include the new jQuery Migrate 3.x plugin to support application code and plugins that work with jQuery 1.9+ but are incompatible with jQuery 3.x.

Oracle strongly recommends that you update your applications to work with jQuery 2.2.x without jQuery migrate 1.4.x. See the jQuery upgrade guides for details: https://jquery.com/upgrade-guide/

7.1.11 Old jQuery Versions Desupported

The jQuery versions 1.4.2, 1.6.2 and 1.7.1 are not used in Oracle Application Express and have been removed in this release. Remove any references in your application code and use the most current jQuery version which ships with Oracle Application Express.

7.1.12 Legacy Chart Components Desupported

Some legacy chart components are no longer supported (such as HTML Charts and SVG Charts) following the removal of Component View in Oracle Application Express 18.1.

Because these legacy charts are not supported in Page Designer, app developers may be left with regions that they cannot edit. Customers with existing HTML and SVG charts are automatically upgraded to the latest version of JET charts, in the following ways:

  • When you upgrade to Oracle Application Express 18.1

  • When you import an older app to Oracle Application Express 18.1

7.1.13 Desupport of jQuery Mobile and Mobile User Interface

The jQuery Mobile user interface has been deprecated. The last stable version of the jQuery Mobile open source library was released on 10/31/2014 and only provides support for jQuery versions 1.8 - 1.11 and 2.1, which no longer receive patches. Oracle Application Express release 18.1 ships with jQuery 3.2. All new application development targeted at mobile devices should be done using the responsive Universal Theme. Existing mobile applications should be migrated to the Universal Theme prior to upgrading to Oracle Application Express release 18.1.

7.1.14 Desupport of APEXExportSplitter

The APEXExport program for exporting workspaces, applications, and related files is no longer supported. Use the -split parameter instead without the program.

Note:

In Oracle Application Express release 5.1, APEXExport included a -split parameter to split exported applications into multiple files.

8.1 Open Bugs and Known Issues

This section describes bugs and known issues for Oracle Application Express release 18.1.

Tip:

This section is current as of the writing of this document. To view the most current listing of changed behavior, go to the Known Issues page:

http://www.oracle.com/technetwork/developer-tools/apex/downloads/apex-51-known-issues-3408261.html

8.1.1 Known Issues for JET, jQuery UI, jQuery Upgrade

jQuery 3.1.1 breaks compatibility with earlier 2.x versions. For applications that still rely on removed 2.x functionality, you can use the jQuery Migrate plugin (to include this plugin, set the Desktop User Interface Details attribute Include jQuery Migrate to Yes).

If your application relies on removed 1.x jQuery APIs, that functionality no longer works as of Oracle Application Express release 18.1. You must update the JavaScript to only use jQuery 3.1 APIs. See the jQuery migration guides to learn more:

jQuery UI 1.12.x has changed the folder structure and files that make up the library compared to version 1.10.4. If you have direct references to any of the old file filenames, you must update them to the new name. For example, if you previously referenced the tabs widget with #JQUERYUI_DIRECTORY#ui/#MIN_DIRECTORY#jquery.ui.tabs#MIN#.js, you must change it to #JQUERYUI_DIRECTORY#ui/widgets/#MIN_DIRECTORY#tabs#MIN#.js.

The Oracle Application Express specific bundle jquery-ui-apex[.min].js that loads by default for Application Express desktop UI pages (either as jquery-ui-apex.js or as part of desktop[_all].min.js) includes all the core files, the drop effect, and the following widgets:

  • button

  • checkboxradio

  • controlgroup

  • datepicker

  • dialog

  • draggable

  • droppable

  • resizable

  • selectable

  • sortable

  • tooltip

This is essentially the same set as in 1.10.4 with the addition of sortable. If you have a separate reference to sortable, you can remove it.

The jquery-ui-apex[.min].css file loads by default and includes all the jQuery UI CSS files. If you had references to individual jQuery UI css files, you can remove them.

8.1.2 Oracle JET Chart Legend in Large Chart Regions in Firefox Bug

Issue

In an Oracle JET Chart in Firefox, when the entire legend is not visible within the given chart region, and scrolling of the legend is required in order to view all entries, the user cannot scroll down to view the legend.

This issue is being tracked by Oracle JET bug #24675613.

Workaround

Scroll up instead of down to view the whole legend.

8.1.3.1 Inconsistent "Required" Attributes Emitted for Page Items

Issue

Some configurations of required attributes produce inconsistent emissions by screen readers, and may confuse users of assistive technology.

When specifying required page items in Oracle Application Express, developers can choose different configuration steps and options depending on the specifics of the validation:
  1. Developers must use the relevant label template (such as "Required") to show the required icon next to the label. Choosing this label template also means the label appends hidden text that is read by a screen reader, stating "(Value Required)."

  2. To validate the input, there are two main methods:
    • The most common method is to set the Value Required item attribute, which validates the input, and also emits "aria-required="true" required="" in the form item attributes.

    • The less common method is to use a not null page validation, which you may need to do if, for example, the validation needs to be done conditionally based on some other context (such as a page item storing TOTAL_SALES information is only required if JOB = SALES).

In this case, where a separate validation is used, the item does not contain the required attributes on the item emitted.

This can lead to inconsistencies in what is emitted, and possibly confuse a user of Assistive Technology.

This issue is tracked with Oracle bug 23761182.

Workaround

Instead of using the Value Required item attribute, create simple not null style validations on the items and set the Value Required attributes to no. Then, as long as developers have defined the appropriate label template for required items, this provides a consistent experience across all required items: the required information is conveyed in the label, and not in the item attributes.

8.1.3.2 Interactive Grid Single Row View Keyboard Issues with Links and Buttons

Issue

In the Single Row View of interactive grid, fields that are links, or fields with custom markup that contain one or more buttons or links, have the following issues:
  • Users cannot activate a column of type link or a column with a link defined with the keyboard in navigation mode.

  • A column that contains buttons or links has extra tab stops in edit or navigation mode.

This issue is tracked with Oracle bug 25245829.

Workaround

Use grid view, where links and buttons can be activated.

8.1.3.3 Interactive Grid Cell Buttons and Links Cannot Activate in Edit Mode

Issue

In an interactive grid, in grid view, users cannot press the space bar or Enter key to activate buttons or links that are contained in cells when the grid is in Edit Mode.

This issue is tracked with Oracle bug 25245887.

Workaround

Press the ESC key to exit Edit Mode and switch back to Navigation Mode, where the buttons and links can be activated as usual.

8.1.3.4 Interactive Grid Contains Additional Hidden Tab Stops After the Grid

Issue

Interactive grid has additional hidden tab stops when users tab past the grid section.

This issue is tracked with Oracle bug 25245934.

Workaround

After tabbing past the grid section, press the Tab key multiple times until you reach the next visibly focusable element on the page.

8.1.3.5 Universal Theme Page Notification Alerts are Ignored by Some Assistive Technology

Issue

Screen readers do not announce page notification alerts (such as interactive grid success messages) as intended. They are coded to WAI-ARIA alert guidelines, but screen readers fail to announce them.

This issue is tracked with Oracle bug 25245961.

Workaround

The notifications are still in a Heading tag, so screen reader users must scan the headings on the page to perceive the information conveyed in the alert.

8.1.3.6 Page Up and Page Down Navigation Links on Workspace Login Page Missing Link Text

Issue

On the workspace login page, down and up same page links that serve as a navigation aid to move between lower and upper content are missing link text. These links should have aria-label="Jump down" (or similar text), and likewise for the up link, for better accessibility.

This issue is tracked with Oracle bug 20796641.

Workaround

Use standard browser controls to navigate the page.

8.1.3.7 Page Designer, Property Editor, Display Group Headings Should Be Buttons

Issue

Currently in the Property Editor, the display groups are marked up as <div> elements that are focusable with the keyboard. When focused, users can navigate between display groups with the Up and Down arrow keys, which aids keyboard support of the Property Editor. However, when the <div> is focused, JAWS announces the display group title twice, and JAWS does not initially announced the ARIA expanded state when the display group first gets focus (however, it is announced upon expand or collapse).

This issue is tracked with Oracle bug 20693220.

Workaround

Users should be aware that the state is not announced upon first focus, and can either force announcement by pressing Enter and making the group expand or collapse, or alternatively by pressing Tab to go to the next focusable element, which will either be the first field in the group (if expanded), or the next display group (if collapsed).

8.1.3.8 Single Value / Item Check Boxes Render Unnecessary Fieldset and Legend Tags

Issue

Rendering a native check box item renders a FIELDSET tag that acts as a container for the group of check boxes and a LEGEND tag which gives the FIELDSET an accessible title. This works well for check boxes that have more than one check box in the group, but when the check box only has one check box, it is incorrect to render the FIELDSET and LEGEND.

This issue is tracked with Oracle bug 18188460.

Workaround

For single input check boxes, use the Simple Check box Item plug-in, available from Oracle Technology Network here: http://www.oracle.com/technetwork/developer-tools/apex/application-express/apex-plug-ins-182042.html

9.1 Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.


Oracle Application Express Release Notes, Release 18.1

E86878-02

Copyright © 2003, 2018, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.

This documentation is in pre-General Availability status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.