1.1 About These Release Notes

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

2.1.1 Oracle Database Requirement

Oracle Application Express release 21.1 requires an Oracle Database release 12.1.0.2 or later, including Enterprise Edition (EE) and Express Edition (Oracle Database XE).

2.1.2 Browser Requirements

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

2.1.3 About Release Numbering Conventions

New releases of Oracle Application Express correlate to the calendar year.

In 2018 and starting with release 18.1 and 18.2, Oracle Application Express introduced correlating the release number to the calendar year.

In addition, Application Express now only offers full releases and no longer provides patch set releases (such as 5.1.1). Eliminating patch set releases reduces downtime when updating existing installations. Application Express architecture also enables developers to revert releases if necessary.

Patch set exceptions (PSEs) may still be delivered for major defects. To learn more about PSEs, visit the Oracle APEX 21.1 Known Issues page or the Prior Release Archives for earlier releases.

2.1.4 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.5 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, see "Upgrading from a Previous Oracle Application Express Release" in the Oracle Application Express Installation Guide.

2.1.6 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.8 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.1 Native Map Region Type

Visualize location data on a map with the new native Map Component.

  • Point, Line, Polygon, Heat Map, and 3D Polygon (Extruded Polygon) layer types.
  • Background maps from the Oracle Elocation Service. Ready to use, no API Key required.
  • Fully Interactive: Drag and Zoom, show details about objects on the map.
  • Oracle Spatial (SDO_GEOMETRY), GeoJSON, and simple numeric columns.
  • Leverages Oracle Spatial (Indexes, Coordinate Transformations), if available.
  • Visualize data from local SQL queries, REST Enabled SQL, or REST Data Sources.
  • Rich set of built-in marker icons and SVG shapes.
  • Built-in color schemes for thematic visualizations.
  • Faceted Search integration.
  • Dynamic Action support and JavaScript API.

3.1.2 Native Markdown Support

New public PL/SQL API APEX_MARKDOWN to convert Markdown into HTML on the server. APEX_MARKDOWN implements the Commonmark specification, v0.29.

  • Enhanced "Display Only" item type which supports Markdown.
  • New "Format" attribute.
  • Removed "Escape Special Characters" flag.
  • Renamed "Markdown" classic report column type to "Rich Text."
  • New "Rich Text" interactive report column type.
  • Markdown support added to HTML format of Data Export.
  • Changed the default of Rich Text and Rich Text Editor to use Markdown as secure "out-of-the-box."

3.1.3 Universal Theme Enhancements

  • Enhanced Redwood Light Theme Style which is more inline with the Redwood Design System.
  • New Row CSS Classes Page Designer attribute added to to Region, Page Item, and Item Buttons.
  • New Theme Style Page CSS Classes attribute added to Theme Styles (see Using Theme Styles).

3.1.4 Import Application Export as ZIP

App Builder now supports the import of an application export which has been created as a ZIP file.

  • Applications and components exported with the "Export as Zip" option can be re-imported.
  • Zip exports which have been extracted on a local file system can be re-compressed and imported.
  • Folder structures created with the APEXExport utility (using the -split option) can be compressed to a Zip file and imported.

3.1.5 Additional Lazy Loading Support

Classic and Interactive Reports now support Lazy Loading.

  • Enabling the Lazy Loading toggle improves initial page load speed, especially for pages containing reports with long running queries.

3.1.6 New Application Data Loading

New Application Data Loading functonality supports CSV, XLSX, XML and JSON formats.

  • Column Mapping at design time removes burden on end users.
  • Flexible column mappings based on simple names or regular expressions.
  • Data Conversion with Transformation Rules or Lookup Queries.
  • Super-Easy flow for end users: just upload the file, verify the preview, and load data.
  • CSV, XLSX, XML, and JSON data formats can be loaded to Tables or Collections.
  • Configure data loading to Append, Merge, or Replace data, with optional Error Handling.
  • Simple new Process Type Data Loading: customize Data Loading pages as you wish.
  • PL/SQL API APEX_DATA_LOADING available for custom processing.

3.1.7 Faceted Search Enhancements

Optional Facets with end user customization.

  • In Page Designer, Facets and Facet Groups now have two new Advanced attributes called Display Toggling and Initially Displayed.
  • When Display Toggling is enabled, end users can Show or Hide that facet from a new More Facets popup.
  • For example, you can now Hide some advanced and rarely used Facets out-of-the-box, but make them available on-demand.

3.1.8 New Date Picker Item Type

The new Date Picker is a modern, accessible item type based on the Oracle JET date components.

  • Supports different display modes: JET-based Popup and Inline, and also Native HTML (no-JET, and better mobile UX)
  • All display modes support both Date and Date and Time (time enabled through new dedicated attribute Show Time).
  • Ability to define dynamic Minimum/Maximum dates (for defining date ranges between items, such as "From" and "To").
  • Other new features include: improved UX (especially around year and month selection), additional appearance options (such as "Show Week" and "Days Outside Month") and other new attributes.

3.1.9 REST Data Sources

Support for CSV data.

  • Use Synchronization to schedule frequent loading of CSV data from the web to a local table.
  • Data conversions using Transformation Rules and Lookup Queries.
  • New Overview report on defined REST Data Synchronizations in Shared Components, REST Data Sources.

3.1.10 New Color Picker Item Type

The new Color Picker replaces the old one and adds new configuration options. It utilizes the Oracle JET Color Spectrum component.

  • Supports different display modes: Input + Popup, Color Only (button) + Popup, Inline, and also Native HTML color input.
  • Color presets: custom or from the theme.
  • Optional contrast checking.
  • Various value return formats: Hex, RGB/RGBA, HSL/HSLA, or any CSS color value.

3.1.11 Report Printing

Support for Complex Text layout languages, Hebrew, and Arabic when exporting to PDF.

3.1.12 Developer Experience

Monaco-based Code Editor upgraded.

  • New options for: Minimap, Show Suggestions, Show Line Numbers, Show Whitespace, Accessibility Mode (screen reader users no longer need to enable this every time they use Application Express).
  • References to non-existent page items are marked as such (restricted to items on the current and global page).
  • Shortcuts for the built-in Transform Case actions Ctrl + Alt + U/L (Upper/Lower).
  • New Transform Code Case action: Ctrl + Alt + C. Toggles between upper and lower case without affecting ' or " enclosed strings.

FullCalendar upgraded.

  • Lazy loading support
  • Faceted Search Integration

3.1.13 JavaScript Library Upgrades

  • Oracle JET 10.0.0
  • FullCalendar 5.5.1
  • CKEditor5 27.1.0
  • Monaco Editor 0.22.3
  • jQuery 3.5.1
  • jQuery Migrate plugin 3.3.2

3.1.14 Application and Page Checksum

View the application and page checksums to compare different application deployments and determine if the application or pages are different.

3.1.15 New JavaScript APIs

New functions and methods:

  • apex.item.isItem
  • apex.locale.toNumber
  • getModel method added to recordView widget
  • getModel and getPageInfo methods added to widgets tableModelViewBase, tableModelView, and grid

New widget options:

  • applyTemplateOptions, fixedRowHeight, and pagination.virtual options added to grid widget and tableModelView widget
  • applyTemplateOptions option added to recordView widget
  • aggregateTemplate, controlBreakTemplate, headerTemplate, persistSelection, showNullAs, stickyTop, and syncHeaderHScroll options added to tableModelView widget

Other changes:

  • Added pLocation parameter to apex.page.validate
  • The pFillValue parameter of grid widget fillSelection method can now be an object with v and d properties.
  • Added pLabel parameter to item instance method getValidationMessage
  • Added pCurrentTotal parameter to model method getTotalRecords
  • Widget tableModelView added substitution symbol APEX$VALIDATION_MESSAGE
  • New functionality for apex.lang.loadMessages. Key can end in %.
  • Change in behavior of apex.util.applyTemplate. Data substitutions now check for a model column before checking for a page item. For templates evaluated during model row processing, if you named your column P1_NAME (not a good practice) and also have a page item called P1_NAME now &P1_NAME. will substitute the column value. In previous releases it would have substituted the item value.
  • Previously the rows (array of jQuery objects) returned by or passed to the grid widget methods getSelection, setSelection, getRecords and in the event activateCell data.row$ could contain 2 elements per row: 1 frozen and 1 non-frozen. Now they always contain only one element because there is no separate frozen table.

3.1.16 FullCalendar Upgraded to v5

Upgraded calendar region to support the new version of the underlying JavaScript library FullCalendar v5. In previous versions of Application Express, this was FullCalendar v3.

Application Express now supports both v3 and v5, and Page Designer now contains additional settings and attributes to correspond to either version.

New settings:

  • Version (FullCalendar v3 or v5)

Deprecated settings not available in v5:

  • Google Calendar ID
  • REST Webservice (JSON)

3.1.17 Font APEX Icons

Search for and view Font APEX icons on the Font APEX page. Font APEX is the icon library for Oracle Application Express and the Universal Theme.

See Accessing Font APEX in the Oracle Application Express App Builder User’s Guide.

3.1.18 Miscellaneous

  • Interactive Grid supports variable height rows by setting the "Appearance: Fixed Row Height" property to Off.
  • The Number Field item type now does automatic formating according to the format mask and client-side validation.
  • Client-side validation messaging is more consistent with server validation messaging.
  • New Create Spatial Index wizard in SQL Workshop.
  • GeoJSON and SDO_GEOMETRY support in the APEX_JSON and APEX_EXEC packages.

4.1.1 New Page Designer attribute 'Row CSS Classes' (Layout)

New Page Designer attribute 'Row CSS Classes' (Layout) for Regions, Page Items, and Item Buttons which shows up if 'Start New Row' = On and the current Page Template contains the placeholder #CSS_CLASSES# in the 'Row Template' attribute.

This feature also improves the behavior of 'Column CSS Classes' and 'Column Attributes', which are currently not emitted if no grid gets rendered because 'Always Render Layout' = Off (Page Template attribute). Now, a grid rendering is forced as soon as one of the two attributes is specified. The same is true for the new 'Row CSS Classes'.

4.1.2 Runtime Developer Toolbar Changes

The Runtime Developer toolbar which displays at the bottom on editable applications now includes a new Customize menu with two options: Theme Roller and Edit Logo.

As in past releases, Theme Roller is a live CSS editor that enables you to quickly change the theme style, colors, and other application attributes. Edit Logo offers a quick way add or change the logo users see at runtime.

4.1.3 Theme Roller and Logo Editor Changes

  • The Show Common, Show All, and Help buttons on Theme Roller have been removed.
  • The Set as Current button has been replaced with Save and Save As buttons. Clicking either button now automatically triggers Set as Current behavior.
  • Theme Roller also includes integration with your Web browser’s developer console.
  • Theme Roller and Logo Editor dialogs have new styles applied to the user interface. The dialogs now use a Property Editor widget like in Page Designer.
  • Logo Editor information that was missing from the previous version has been restored.

4.1.4 Redwood Light Theme Style Updated

  • The new Redwood Light theme style replaces the previous version and is more inline with the Redwood Design System.
  • Redwood Light features new CSS class options that are editable in Theme Roller.

4.1.5 Interactive Grid and Cards Support True Virtual Scroll Pagination

The Interactive Grid variable row height feature as well as other fixes and improvements for grid, detail, and icon views and the Cards region resulted in changes in behavior for virtual scroll pagination.

In previous releases, virtual scroll pagination would only add rows or cards to the DOM. Now, when the Pagination Type is Scroll and Show Total Row Count is enabled, virtual scroll pagination can remove rows or cards from the DOM as needed.

This change improves performance and works around browser CSS grid limitations but can also impact browser features such as Find In Page and Copy To Clipboard. It also affects grid selection APIs that return jQuery objects.

These features and APIs only operate on records that are currently rendered in the DOM.

4.1.6 JavaScript API apex.message.showErrors Fix Changes

The JavaScript API apex.message.showErrors displays any errors passed via the pErrors parameter. Errors are passed as an error object, and this object contains a property 'unsafe', controlling whether or not the error message is escaped by the API. This was documented to work as follows:

  • If not passed or set to 'true', the API escapes the message.
  • If set to 'false', the API does not escape the message.

While there were two issues with this logic that have been fixed in this release, the fix also introduced the following changes of behavior:

  • When 'location' = 'page' and 'unsafe' is not passed: Prior to 21.1, this should have escaped the message because the default for 'unsafe' was 'true', however this did not happen. In 21.1, this now escapes the message. If you notice double escaping in any page-level messages displayed, this may be the cause. If you verify the message is already escaped prior to calling the API, change your API call to pass 'unsafe' = 'false' for this message.
  • When 'location' = 'inline': Prior to 21.1, this always escaped the message, irrespective of the 'unsafe' value. In 21.1, this does now respect the 'unsafe' value. In particular pay close attention to anywhere you had 'unsafe' set to 'false', because this will no longer escape in the API, so you should verify the message is already escaped.

4.1.7 JavaScript File URLs Require Syntax Change

Page attribute JavaScript: File URLs no longer require a file name after the [require jet] prefix. This allows using simple JET elements without having to create a JavaScript file.

For example, to use the oj-avatar element on a page, add the following page attributes:

  • In JavaScript: File URLs add: [require jet]
  • In JavaScript: Execute when Page Loads add: require(["ojs/ojavatar"], function() {});
  • In CSS: File URLs add: #JET_CSS_DIRECTORY#redwood/oj-redwood-notag-min.css

Now the oj-avatar element can be used without more JavaScript code.

In addition, the file libraries/apex/requirejs.jetConfig.js is automatically loaded anytime [require requirejs] is used (previously, it was only loaded when [require jet] was used).

4.1.8 Number Field Item Type Formatting Changes

Issue #1

The Number Field item type now formats automatically according to the format mask and client-side validation.

If you rely on implicit character to number conversions in calculations involving number field item values on either the client or server, this new automatic formatting could cause errors depending on the format mask.

Resolution

Use explicit number conversion.

On the server, use the to_number function passing in the format mask used for the item.

On the client, use the new apex.locale.toNumber function.

Issue #2

When automatic formatting is applied to numbers with more than about 16 or 17 digits of precision (depending on the number, including very large integers), they cannot be represented as JavaScript numbers and are considered invalid.

This issue does not usually affect entering ordinary numbers, but database key columns of number type often have very large numbers and are best treated as opaque strings on the client.

Resolution

Use a text field for very large numbers with more than around 16 digits of precision.

4.1.9 Interactive Grid Fixed Row Height

Interactive grids now support variable height rows by configuring Attributes, Appearance, Fixed Row Height in Page Designer.

If set to Yes, ellipses (...) display at the end of data for columns that are too narrow to display all of the data. If set to No, data wraps across multiple lines as necessary.

4.1.10 Client-side Validation Messaging Improvements

The user experience for client-side validation is now more consistent with server validation messaging.

  • The "Correct errors before saving" dialog was removed for form validation (although there are still instances where it is used with Interactive Grid).
  • Many client-side validations including value required and the new validations done by the number field, new date picker, and color picker use the same messages as the corresponding server validation.
  • The client validation message can use the #LABEL# placeholder in the message.

See also JavaScript API changes to apex.page.validate and item.getValidationMessage in New JavaScript APIs.

4.1.11 Dynamic Actions - Client-Side Conditions for Actions Changes

The "Action" of a Dynamic Action now displays the following additional attributes:

  • Client-side Condition
  • Server-side Condition
  • Authorization Scheme
  • Build Option

4.1.12 Based On = Display Value of List of Values Changes

Based On = Display Value of List of Values always renders as plain text, and HTML tags are always escaped.

4.1.13 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.

To fix this, Oracle recommends that you remove the manual JavaScript escaping from your report source and use of the native escaping.

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 / 18.1 / 18.2

In Oracle Application Express 18.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/18.1/18.2. 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.

In release 5.1, any Ajax-based Dynamic Actions where the "Wait for Result" attribute is set to Yes perform an asynchronous Ajax call. Prior to 5.1, such calls would be made synchronously.

Compatibility Mode Changes in Mode 19.1

In Oracle Application Express 19.1, the Rich Text editor now enforces validation of the Max Length item attribute. When the length of the HTML markup exceeds the Max Length value, the system produces an error message.

Compatibility Mode Changes in Mode 19.2 / 20.1 / 20.2 / 21.1

In Oracle Application Express 19.2, Classic Reports render empty column values as an empty cell instead of using a "non-breaking white-space" ( ).

4.1.14 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.

4.1.14.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 Application Express, and PDF report printing with BI Publisher.

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

  • Sending outbound mail in Application Express.

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

  • Consuming web services from Application Express.

  • Making outbound LDAP calls from Application Express.

  • PDF report printing with BI Publisher.

Note:

When upgrading Application Express on a database 12c or newer, based on the configuration of the old Application Express version the upgrade automatically configures Network Services.

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 an 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 Specifying the Database Compatibility Level in Oracle Multitenant Administrator's Guide.

See Also:

About Report Printing in Oracle Application Express App Builder User’s Guide.

4.1.14.2 Granting Connect Privileges Prior to Oracle Database 12c

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

The following example demonstrates how to grant connect privileges to any host for the APEX_210100 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_210100
  -- the "connect" privilege if APEX_210100 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_210100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'APEX_210100', 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_210100', 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_210100
  -- the "connect" privilege if APEX_210100 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_210100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'APEX_210100', 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_210100', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost');
END;
/
COMMIT;

4.1.14.3 Granting Connect Privileges in Oracle Database 12c or Later

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_210100 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_210100',
                           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_210100',
                           principal_type => xs_acl.ptype_db));
END;
/

4.1.14.4 Troubleshooting an Invalid ACL Error

Learn how to identify any 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_210100 user.

5.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 API, existing applications can still use the feature, but Oracle strongly recommends that developers start to modify their applications as described in this section. Use 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

5.1.1 Component View Tab Deprecated

The Component View tab in Page Designer is deprecated as of this release and will be removed in a future release.

5.1.2 Syntax {COLUMN_NAME}_LABEL in Interactive Grid Icon and Detail Views Deprecated

The &{COLUMN_NAME}_LABEL. syntax which is used to reference the column label in Interactive Grid Detail and Icon views is deprecated.

Instead use &{COLUMN_NAME}%LABEL.

5.1.3 Date Picker (jQuery) Deprecated

This release introduces a new Date Picker item type. The old Date Picker item type "Date Picker (jQuery)" is deprecated and should no longer be used. It will be removed in a future release.

Existing apps will not automatically switch to using the new date picker to preserve possible customizations that would no longer work. You can switch all the date pickers in your app to use the new date pickers by using Upgrade Application in the Utilities section of your application in App Builder.

See Upgrading an Application to Include New Components in the Oracle Application Express App Builder User’s Guide.

5.1.4 Based On - Output of PL/SQL Code attribute Deprecated

The selection Output of PL/SQL Code of the attribute Based On is now deprecated.

6.1 Deprecated in Previous Releases

The following section lists features which were deprecated in a previous release but have not been fully removed or desupported from Oracle Application Express.

Oracle strongly recommends that developers start to modify their applications as described in this section. Use Application Express Advisor to scan existing applications for deprecated attributes.

6.1.1 Deprecated JavaScript Functions

The following functions are deprecated as of this release:

Universal Theme JavaScript API function:

  • apex.theme42.util.mq (use apex.theme.mq instead)

6.1.2 jQuery UI Deprecated

As of this release, jQuery UI is deprecated. Oracle recommends that customers update third-party Application Express plug-ins and custom JavaScript code to remove any jQuery UI references.

Native Application Express components that use jQuery UI will continue to function, but support will be removed in a future release.

6.1.3 Post Calculation for Page Items Deprecated

The "Post Calculation" functionality of page items is deprecated.

This functionality remains for existing page items where it has been used, but you can no longer set it for new page items nor add it to existing page items where it has not been used in the past.

6.1.4 Show / Hide All Page Items On Same Line attributes Deprecated

In Dynamic Actions, the Show and Hide actions have attributes "Show all page items on same line" and "Hide all page items on same line," respectively. These attributes were designed for forms with a table-based layout. Because Universal Theme no longer uses table-based layout, these attributes are deprecated.

This functionality remains for existing Dynamic Actions where it was set to Yes, but developers cannot select it for new Dynamic Actions.

6.1.5 apex.server Plug-in and Process Function Async Option Deprecated

In a future release the async option will be ignored and all Ajax requests will be asynchronous.

6.1.6 apex.widget.initPageItem Function Deprecated

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

6.1.7 Popup LOV Template Deprecated

The Popup LOV template type is deprecated. A future release of Application Express will not use this template to render Popup LOV dialogs.

7.1.1 Websheets Desupported

Websheets (websheets.js) are now desupported and removed from Application Express as of this release.

7.1.2 Migration Workbench Desupported

The Migration Workbench (Application Migration / App 4400) is desupported as of this release.

7.1.3 REST Administration Interface Desupported

The REST Administration Interface is desupported and removed. Instead, use the Oracle APEX REST Endpoints (available with ORDS 20.1 or higher) in the Oracle REST Data Services API.

The following views are removed:

  • APEX_INST_RESTADM_CLIENT_ROLES
  • APEX_INST_RESTADM_CLIENTS

The following package is removed:

  • APEX_INSTANCE_REST_ADMIN

7.1.4 AnyChart, AnyMap, and AnyGantt charts Desupported

As of this release, the legacy AnyChart, AnyMap and AnyGantt charting components are desupported. Use the JET charting solution instead.

Resolution

Before upgrading to Application Express release 21.1, use the Upgrade Application wizard to switch your charts to JET charts. After upgrading to 21.1, any existing AnyChart charts will automatically switch to JET charts, but customizations defined via custom XML will not be handled.

AnyMap maps and AnyGantt gantt charts will not automatically switch to JET. For reference purposes, those regions will be switched to Static HTML regions, with the chart series saved as the region text, and a conditional display setting of 'Never'.

7.1.5 Productivity and Sample Applications Desupported

As of this release, Application Express no longer distributes Productivity and Sample Applications with the product. Existing Productivity Apps will automatically unlock and be available for updating.

The upload of custom applications to the Productivity and Sample Applications repository is also desupported. A collection of Starter Applications, Sample Applications, and Sample Plug-Ins are available for download online. See the Gallery for more details.

The following API and views are desupported:

  • APEX_PKG_APP_ACTIVITY
  • APEX_PKG_APP_AVAILABLE
  • APEX_PKG_APP_AUTHENTICATIONS
  • APEX_PKG_APP_INSTALL
  • APEX_PKG_APP_INSTALL_LOG
  • APEX_PKG_APP_INSTALLED
  • APEX_PKG_APPS

7.1.6 WWV_FLOW_EPG_INCLUDE_LOCAL for Web Entry Points Desupported

Changing the supported web entry points by compiling WWV_FLOW_EPG_INCLUDE_LOCAL is desupported as of this release.

Instead, use APEX_INSTANCE_ADMIN.ADD_WEB_ENTRY_POINT and APEX_INSTANCE_ADMIN.REMOVE_WEB_ENTRY_POINT to manage the list of supported entry points.

The default list in releases earlier than 20.2 contains several legacy entry points. These are now disabled by default. To enable these legacy entry points, you can set instance parameter ENABLE_LEGACY_WEB_ENTRY_POINTS to Y.

7.1.7 Download Interactive Report as RTF Desupported

Downloading an interactive report in Rich Text Format (RTF) is desupported as of this release.

7.1.8 History Table in Quick SQL Desupported

Quick SQL no longer generates a history table nor a trigger to log table data changes.

7.1.9 afterModify is Desupported

The apex.item callback afterModify is desupported.

7.1.10 apex.page.confirm pMessage Parameter is Desupported

The default value for the apex.page.confirm parameter pMessage is desupported.

7.1.11 apex.navigation.dialog.fireCloseHandler function is Desupported

The apex.navigation.dialog.fireCloseHandler function is desupported.

8.1 Fixed Bugs

The following section lists bugs fixed in this release.

Table - Fixed Bugs in Oracle Application Express 21.1

Bug Number Description
25374978 INTERACTIVE GRID DRAG REORDER COLUMN SOMETIMES DRAGS WRONG COLUMN
27028747 CLIENT SIDE VALIDATION PROBLEMS WITH RICH TEXT EDITOR AND REQUIRED=YES
28576530 PAGE DESIGNER: SYNCHRONIZE COLUMNS RESETS ATTRIBUTES
29894215 PAGE DESIGNER: STATIC LOV EDITOR DOESN'T WORK FOR EMPTY DISPLAY VALUE
30121469 ON PAGE IMPORT, INTERACTIVE GRID SAVED REPORT ARE LOST
30377039 DUPLICATING DYNAMIC ACTIONS, THE ACTIONS ARE NOT KEPT IN THE SAME ORDER
30478993 POPUP LOV THROWS JAVASCRIPT ERROR IF LOV COLUMN NAME CHANGED AFTER USER HAS RESIZED COLUMN
30876807 FACETED SEARCH: ZERO COUNT ENTRIES IS NOT RESPECTED WHEN CONDITIONAL FACET IS USED
31371568 STICKY HEADERS ON INTERACTIVE REPORT USING HTML TABLES
31713513 APEX_IR.GET_REPORT() / APEX_REGION.OPEN_QUERY_CONTEXT() RETURN WITH ORA-14551
31889080 DATA WORKSHOP > LOAD DATA INTO EXISTING TABLE > CONFIGURE MAPPINGS PAGE HAS ACCESSIBILITY ISSUES
31896154 INCREASE SESSION MAX IDLE TIMEOUT FROM 12H TO 24H
31907101 FORM REGION: ORA-00942 WHEN TABLE NAME CONTAINS SPECIAL CHARACTERS
31907310 STAR RATING ITEM DYNAMIC ACTION FIRES EVEN WHEN PSUPPRESSCHANGEEVENT IS SET TO TRUE
31917082 CARDS SCROLL PAGINATION ISSUE IF SHOW TOTAL ROW COUNT ENABLED
31926950 INTERACTIVE GRID: ROW INITIALIZATION DOES NOT WAIT FOR ASYNC DYNAMIC ACTION COMPLETION DURING COPY DOWN OR FILL
31964453 INCONSISTENT UX WITH CLIENT-SIDE AND SERVER-SIDE VALIDATIONS
31964488 COPY PAGE DOES NOT ADJUST PAGE ITEM NAMES USED AS WEB SOURCE PARAMETERS
31972564 INCREASED AMOUNT OF MARKUP FOR CLASSIC REPORT HEADERS CAN LEAD TO ORA-6502
31974748 TEAM DEVELOPMENT FEEDBACK STATUS CANNOT BE CHANGED ON FEEDBACK REPORT PAGE 4650:8000
31982833 CANNOT SET "SHOW CHART" AND "INITIAL CHART" ATTRIBUTES FOR FACET GROUPS
31983959 SQL WORKSHOP DATA LOADING REPORTS LOADING AS "FAILED INTERMITTENTLY" ALTHOUGH SUCCESSFUL
32006373 SQL WORKSHOP DATA LOADING CUTS COLUMN NAMES TO 27 CHARS ON 11.2 AND 12.1 DATABASES
32020595 LESS COMPILATION IGNORED AFTER THEME ROLLER IS CLOSED
32029693 CLASSIC REPORT PRINTING: COLUMN HEADINGS INCLUDED WHEN COLUMN HEADINGS TYPE=NONE
32030024 CLASSIC REPORT PRINTING: CSV DOWNLOAD FILENAME MODIFIED
32053541 APEX BUILDER FAILS HARD IF APEX_APP_SETTING API IS USED WITHIN A "PLSQL RETURNING SQL QUERY"
32063777 XLSX EXPORT: ERROR OPENING FILE IF IT CONTAINS ZERO ROWS (ONLY HEADERS)
32064659 CANNOT PROVISION NEW WORKSPACE WITH SCHEMAS NAMED PEOPLE OR SCHEDULER
32078291 APEX_DATA_PARSER: P_MAX_ROWS PARAMETER IS EXCLUSIVE FOR CSV
32078420 FORM REGION RAISES CONFUSING ERROR MESSAGE IF SQL UPDATE IS ATTEMPTED ON A NEW ROW
32083659 INTERACTIVE GRID ON WEB SOURCE MODULE WITH POST PROCESSING SQL THROWS ORA-1008 AFTER SAVE
32093889 ACCENTED CHARACTERS ARE NOT RENDERED PROPERLY IN BROWSE BY FACETS SEARCH
32100296 CARDS: COLUMN USED IN HTML EXPRESSION ISN'T DETECTED IF ONLY USED IN CASE STATEMENT
32106555 AUTOMATIONS: VALIDATION FAILS FOR THE ADDITIONAL PL/SQL CODE
32110682 INTERACTIVE GRID - COPY DOWN AND FILL NOT WORKING FOR LIST OF VALUE ITEMS
32122067 INTERACTIVE GRID > TEXT WITH AUTOCOMPLETE EDIT INPUT FIELD FILLS ONLY HALF THE CELL HEIGHT
32128117 APEX_DATA_PARSER PREFIXES COLUMN NAMES WITH "C_" WHEN JSON ATTRIBUTE CONTAINS BLANKS
32130016 AUTOMATION NEXT RUN DATE NOT UPDATED WHEN ONLY SCHEDULE EXPRESSION CHANGES
32141872 CREATING LEGACY WEB SERVICE REFERENCE, TEST BUTTON DOES NOT WORK.
32146719 LANGUAGE SELECTOR DISPLAYS INCORRECT TRANSLATED NAME FOR AFRIKAANS
32151091 COMPUTATIONS OF TYPE SQL EXPRESSION ARE INCORRECTLY MIGRATED
32151475 BROWSER HANGS WHEN MENU QUICKLY CLOSED WHILE SUB MENU IS OPEN
32179267 AUTHORIZATION SCHEME UTILIZATION REPORT THROWS "ORA-00923: MOT-CLÉ FROM ABSENT À L'EMPLACEMENT PRÉVU"
32190505 QUICK SQL TABLE COLUMNS STARTING WITH "IS" LETTERS RESULTS IN CREATION OF UNNECESSARY CHECK CONSTRAINT
32200076 APEX_APPLICATION_PAGE_REGIONS.PARENT_REGION_NAME COLUMN CONTAINS THE PARENT REGIONS STATIC_ID INSTEAD OF THE NAME
32216453 XLSX EXPORT: FORMAT MASKS DL AND PT NOT WORKING
32223181 RESIZABLE DIALOG CONTAINING INTERACTIVE REPORT OR INTERACTIVE GRID DOESN'T RESIZE AS EXPECTED
32229050 LOAD TO SODA COLLECTION THROWS "CHARACTER BUFFER TOO SMALL" FOR CUSTOM JSON SELECTOR
32232118 WORKSPACE PROVISIONING: A DECLINED REQUEST BLOCKS FUTURE REQUESTS WITH THE SAME NAME
32234337 AUTOMATIC TIME ZONE DETECTION FAILS FOR PUBLIC PAGE IF FRIENDLY URLS ARE TURNED ON
32243222 INTERACTIVE REPORT EMAIL DOWNLOAD CANNOT SEND TO MULTIPLE EMAIL ADDRESSES IF TOTAL ADDRESS LENGTH > 255
32251683 APEX INTERACTIVE GRID AND SWITCH ON NUMBER COLUMN DOES NOT SHOW DISABLED
32258504 CONDITION COLUMN CHANGED WHEN TABLE CONTAINS A BLOB COLUMN
32265289 APEX_JSON.WRITE - XMLTYPE: NOT ALL CHARACTERS ARE ESCAPED
32266787 A HIDDEN PAGE ITEM WITH $ IN THE NAME CAUSES ERROR ON SUBMIT
32284472 INTERACTIVE REPORT CONTROL BREAK HEADING COLUMN SPANS TOO MUCH AND CAUSES TO DISPLAY HORIZONTAL SCROLLBAR
32284612 APPLICATION PAGE GROUP IS NOT PART OF COMPONENT EXPORT
32292269 APEX 20.2 RICH TEXT EDITOR MISSING FEATURES
32297891 EDIT DATA LOAD DEFINITION PAGE OVERWRITES "#OWNER#" WITH HARD CODED SCHEMA NAME
32298147 ACL GROUP ASSIGNMENTS ARE REMOVED ON IMPORT IF APP ID IS DIFFERENT IN EXPORT FILE
32320466 ICON USED FOR TEXT WITH AUTOCOMPLETE ITEM IS DISPLAYED IN A NEW LINE
32355339 POPUP LOV REMAINS DISPLAYED ON PAGE AFTER MODAL DIALOG IS CLOSED
32385347 HTML EXPORTS: LINKS ARE NOT CLICKABLE
32397278 DATA EXPORT: EMPTY CLOB VALUES WHEN FORMAT IS PXML
32401639 FORM REGION THROWS ORA-1403 ON "CREATE" WHEN ROW VERSION COLUMN IS USED FOR LOST UPDATE DETECTION
32402355 APPLICATION EXPRESS VIEWS RESULTS PAGE IS LACKING PAGINATION CONTROLS
32408337 FORM REGION ERRORS WHEN "ROW VERSION COLUMN" IS USED IN COMBINATION WITH REMOTE SERVER
32413882 PREPARE_URL: WHEN CALLED FROM REGION PLUGIN AJAX CODE, DIALOG TRIGGERING ELEMENT STATIC ID IS NOT USED
32417732 CREATE REST DATA SOURCE: APEX TRIES TO CONNECT TO URL WHEN "CREATE MODULE MANUALLY" IS USED
32424444 HTML EXPORTS: HIDE SEARCH BOX WHEN PRINTING
32424822 XLSX EXPORT: BLANK CELLS SHOULD NOT HAVE A DATA TYPE
32435166 INTERACTIVE GRID EXPORTS: ERROR WHEN DOWNLOADING EXPORT WITH CELL HIGHLIGHT WHEN COLUMN IS EXCLUDED
32435362 ERROR WHEN DISPLAYING SINGLE ROW VIEW OF WORKSPACE ADMINISTRATION DEVELOPER LOGIN SUMMARY
32469275 NATIVE REST SOURCES THROW "WWV_FLOW_PLUGIN.NO_WSM_DML_FUNCTION" ON DML OPERATIONS
32478992 EDIT DATA LOAD DEFINITION PAGE CANNOT MAINTAIN LOOKUP TABLES WHEN TARGET TABLE IS IN OTHER SCHEMA
32484797 CSV ESCAPING: INSTANCE PARAMETER CSV_DOWNLOAD_ESCAPE_FORMULAS IGNORED WHEN REPORT HAS HINT
32504914 FACETED SEARCH: COUNT COMPUTATION AJAX REQUEST ONLY THROWS GENERIC ERROR MESSAGES
32523629 EXPOSE WWV_FLOW_EXEC.SET_ACTIVE_FOR TO APEX_EXEC - FOR PLUGIN DEVELOPERS
32540657 INTERACTIVE GRID SINGLE ROW VIEW DOESN'T SHOW REQUIRED FIELD INDICATOR
32550201 INTERACTIVE GRID "SEND AS EMAIL" DOWNLOAD EMITS INVALID HTTP RESPONSE
32553109 APEX_DATA_PARSER RETURNS NO ROWS FOR XML DOCUMENT CONTAINING MULTIPLE NAMESPACES
32555560 REST DATA SOURCE APEX_VIEWS LACK "COMMENTS" COLUMNS
32566830 PJSON EXPORT: HIGHLIGHTS AND FILTERS ARE MISSING
32566836 PJSON EXPORT: CONTROL BREAK LABELS ARE MISSING
32580540 PARAMETER GRID BECOMES EMPTY AFTER SORTING ON EDIT REST SOURCE SYNCHRONIZATION STEP PAGE
32588355 CARDS REGION COLLIDES WITH CLASSIC REPORT IF SAME COLUMN NAME EXISTS IN BOTH REGIONS
32589391 INVALID FILE REFERENCE ON WORKSPACE LOGIN PAGE 4550:20 CAUSING 404 ERRORS IN LOGS
32598000 REST SOURCE SYNC LOG NEEDS COLUMN WITH AN ID FOR THE SYNCHRONIZATION RUN
32599763 APEX.MESSAGE API : SHOWERRORS ESCAPING INCONSISTENCIES
32613825 CUSTOM APP ICON MISSING FROM 'TOP APPS' REGION THROWS 404 ERROR
32618550 "OCI" REST DATA SOURCE THROWS ORA-06502: PL/SQL: NUMERIC OR VALUE ERROR WHEN PAGINATION IS USED
32659496 INTERACTIVE GRID: GETTING CONSOLE ERROR UPON SCROLLING DOWN AND HITTING ON SUM VALUE FOR A REPORT HAVING FROZEN COLUMN AND CONTROL BREAK
32666782 PDF EXPORT: TABLE CELLS USE WRONG FONT FROM PAGE 3 AND ONWARDS
32680907 PJSON EXPORT: HIGHLIGHT NAMES FOR IG ARE MISSING
32694665 APEX_REGION.EXPORT_DATA IGNORES VIEW MODE FOR INTERACTIVE GRIDS
32699566 APEX_REGION.EXPORT_DATA EMITS CSS FOR INTERACTIVE REPORTS
32700044 CREATE APP AND PAGE WIZARD CANNOT CREATE FACETED SEARCH ON TABLES WITH NVARCHAR2 COLUMNS
32740310 VIEW BUTTON ON SEARCH RESULTS FOR CSS FILE URLS GOES TO NON-EXISTENT PAGE

9.1.1 Known Issue using 'Source Display' region type plug-in in previously installed Sample Apps

Issue

The Source Display region type plug-in that is used in a Sample App installed in a previous release of APEX no longer works. This issue is due to the removal of views associated with AnyChart charts and AnyMap map charts.

Resolution

  1. Open the application to edit it.
  2. Navigate to Shared Components, under Other Components select Plug-ins, and Source Display.
  3. Update the PL/SQL Code to remove the following lines of code (lines 35 - 48):
    union all
    select reg.source_type, fs.series_seq, fs.series_name, fs.series_query source
    from apex_application_page_regions reg,
        apex_application_page_flash5_s fs
    where reg.application_id = :APP_ID
        and reg.page_id = :APP_PAGE_ID
        and reg.static_id = d_region_static_id
        and fs.application_id = reg.application_id
        and fs.page_id = reg.page_id
        and fs.region_id = reg.region_id
        and reg.source_type in (
            'Flash Chart',
            'Map'
        )
  4. Click Apply Changes.

9.1.2 Known Issue for Item and Region Plug-in Visibility During Initialization

Developers should avoid reliance upon the current behavior of the Region Display Selector and Tabs Container template (tabs), where all the tab contents are visible briefly during page load.

This behavior will change in a future release.

9.1.3 Known Issues for JavaScript

  • The examples for apex.locale.toNumber are incorrect. For the following lines:
    • number = apex.locale.toNumber( "$1234.567", "FML999G999G990D00" );
    • number = apex.locale.toNumber( "€1234,567", "FML999G999G990D00" );
    the result is 1234.567 (not 1234.56).
  • The apex.locale.formatNumber pFormat parameter should state that if pFormat is not provided, the decimal separator is replaced with the locale-specific decimal separator.

9.1.4 Known Issue with New Version Date Picker in Universal Theme 1.5 and Earlier

Issue

There are display issues with the new date picker when used in combination with Universal Theme version 1.5 (shipped with Application Express 20.1) and older.

Resolution

If your app is using Universal Theme 1.5 or earlier, first refresh your Universal Theme to the latest version before using or migrating to the new date pickers.

9.1.5 Known Issue using Code Editor in Safari 13

Issue

There is a known issue with using the Code Editor in the Application Express development environment in Safari 13 where the editor is unusable. This affects all places where you can enter code, including SQL Commands.

Resolution

Upgrade to Safari 14 or use a different supported browser.

9.1.6 Known Issue Using Component View in Firefox

Issue

In Firefox, Component View may not appear after navigating away from it in the browser.

Resolution

In Page Designer, click Utilities (wrench), select Show, and select Component View. Reload the page if prompted. The tab appears before the page reloads, but disappears after reloading.

9.1.7 Known Issues for jQuery UI and jQuery Upgrade

jQuery 3.x breaks compatibility with earlier 2.x versions. For applications that still rely on removed 2.x functionality, you can use the jQuery Migrate plug-in (to include this plug-in, 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.5+ 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.

9.1.8 Known Issues for RESTful Services and Oracle REST Data Services (ORDS)

Customers using Oracle Application Express 18.1 and Oracle REST Data Services 18.1 may encounter the following issues when developing and deploying RESTful Services.

9.1.8.1 Issue when Workspace Name Differs From First Provisioned Schema Name

Issue

This issue affects all releases of Oracle REST Data Services except 17.4.1 and 18.2 or later and all releases of Application Express (ORDS services can be created by SQL Developer or an API). This issue exists for services created in the First Apportioned Schema of a workspace when the workspace name and schema name are different.

Due to an error in the way older releases of Oracle REST Data Services retrieve information about the Application Express environment, Oracle REST Data Services cannot serve ORDS Based RESTful Services if a given workspace name does not match the first provisioned schema name. This error was corrected in Oracle REST Data Services 17.4.1 but regressed in Oracle REST Data Services 18.1.

The following examples describe the issue:

  • A user has existing APEX Based RESTful Services and migrates them to Oracle REST Data Services, then modifies the ORDS Based RESTful Services definition. If the user calls the services and expects the new logic to perform, instead the older APEX Based RESTful Services are still called. If the user then goes to the APEX Based RESTful Services page, deletes the original service, and runs the service expecting to call the ORDS service, the user instead gets a 404 error.

  • If a user creates new ORDS Based RESTful Services in the first provisioned schema but does not have corresponding APEX Based RESTful Services, a 404 error results when the user calls the services.

There is no supported resolution at this time.

9.1.8.2 Issue when Migrating Application Express RESTful Services with a Null URI to ORDS

Issue

Prior to 5.1, the Application Express RESTful Services interface enabled users to create RESTful service modules with a null URI Prefix (users could also create multiple modules with null URI Prefixes). The URI templates in all modules had to be unique in order to share the null URI Prefix across the services.

Example - Module Definitions with Null URI Prefixes

Consider the following definitions:

Module 1
Name:          MyMod1
URI Prefix:    NULL

URI Templates: /Template1
               /Template2
Module 2
Name:          MyMod2
URI Prefix:    NULL

URI Templates: /Template3
               /Template4
In effect, these definitions create a single virtual service with four templates with null for the URI Prefix. These can be called in the following ways:
http://server.com/ords/mySchema/Template1
http://server.com/ords/mySchema/Template2
http://server.com/ords/mySchema/Template3
http://server.com/ords/mySchema/Template4

Where:

  • http://server.com - the server URL.
  • ords - the ORDS alias.
  • mySchema - the Path Prefix.
  • null - the null Module URI Prefix. Does not appear in the call, but is processed by the services.
  • Template1 - the URI Template.

While the ability to create null URI Prefixes was disabled in Application Express 5.1, legacy services that were defined in prior releases were migrated and functioned as long as they were not deleted. However, when migrating these services to Oracle REST Data Services, the ORDS-based data model does not accept multiple modules with duplicate URI Prefixes (including null prefixes).

The logic to migrate APEX-based RESTful Services to Oracle REST Data Services in Application Express 18.1 is a simple pass-through to an Oracle REST Data Services procedure (introduced in Oracle REST Data Services 17.4.1). However, the logic of that procedure fails to process multiple modules with a null base path. Users in this situation who try to migrate to Oracle REST Data Services encounter a "Duplicate Value" and throw an ORA-0001 error (Oracle bug 27916570).

Resolution

Logic added to the migration procedure merges all modules that have null URI Prefixes. The rules are as follows:

Oracle REST Data Services 18.2

All affected modules collapse into a single ORDS-based module named merged.apex.rest.services

If any of the APEX-based modules being merged are published, the new merged module publishes.

If none of the APEX-based modules being merged are published, the new merged module does not publish.

All roles associated with APEX-based modules being merged are assigned to the new merged module.

The pagination size of the merged module is set to the largest pagination size in the modules being merged.

For APEX-based modules with null URI Prefixes that also have duplicate URI templates, the following occurs:
  • The most recently updated template maintains the duplicate URI.
  • All other templates are given the prefix dup001_*
  • The comment for the template contains: 1) the original module name that it migrated from, and 2) the original Template URI.
Oracle Application Express 18.1

If you have one module or none with a null URI Prefix, the services migrate successfully regardless of your release of Oracle REST Data Services (the migration is only available in Oracle REST Data Services 17.4.1 or later).

If you have two or more modules with a null URI Prefix, one of the following occurs:
  • If you have Oracle REST Data Services 18.2 or later, the modules migrate using the rules above.

  • If your Oracle REST Data Services release is older than 18.2, a warning message displays and you cannot migrate your services to Oracle REST Data Services until you upgrade to 18.2 or later.

9.1.8.3 Issue when Using SQL Developer or SQL Scripts to Enable ORDS on an Application Express 18.1 or later Schema

Issue

This issue affects systems running ORDS 17.4 or prior and Oracle Application Express 18.1 or later.

This issue only affects schemas that are assigned to an Application Express workspace.

The issue occurs when you use SQL Developer or SQL Scripts (however, not RESTful Services in SQL Workshop) to enable ORDS for a schema, when that schema is also assigned to an Application Express Workspace.

RESTful Services ensures that the ORDS SCHEMA ALIAS and the APEX PATH PREFIX synchronize. However, when ORDS enables a schema using another method, the APEX PATH PREFIX does not sync. When these two items are out of sync, ORDS returns a 404 error when attempting to access ORDS services defined within the schema.

Resolution

To sync the APEX PATH PREFIX with the ORDS URI PREFIX:

  1. In Application Express, click SQL Workshop then RESTful Services.

  2. Click the Configure button to launch the ORDS Schema Attributes modal dialog.

  3. For Schema Alias, select the alias.

  4. Click the Save Schema Attributes button.

This sets the same value for both the ORDS SCHEMA ALIAS and the APEX PATH PREFIX.

9.1.9 Interactive Grid support for REST Enabled SQL

Issue

Oracle REST Data Services (ORDS) REST Enabled SQL has a limit of 1000 bind variables in a REST Enabled SQL request. As a result, when Interactive Grid DML sends more than 1000 column values, the following error displays: "Internal ORDS OUT Bind limits exceeded."

Solution

Reduce the amount of DML rows.

9.1.10 Group By Component Type mode prevents Default View

Issue

Due to the removal of "Sort by Processing Order" and "Group by Component Type" from Page Designer, developers may be stuck in "Group by Component Type" mode without a way to switch back to the default view ("Sort by Processing Order").

Resolution

  1. In Page Designer, open Developer Console in the browser, and run the following command:

    JavaScript:pageDesigner.saveBoolPref( "GROUP_BY_COMPONENT_TYPE", true );
  2. Refresh the page.

10.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.

11.1 Privacy Notice

This privacy notice describes what to expect when Oracle Application Express directly collects information about users of applications that you create or install. Note that all Application Express internal applications (such as Application Builder) are written in Application Express, so the same facts apply to developers and administrators who are using these applications. Oracle is not responsible for information collection of applications that were developed by customers.

Event Logging

Application Express provides extensive logging of user triggered events. For example, developers and administrators can use this data to find security and performance issues. The log data includes the user’s IP address and application username plus event specific information. Below is a brief list of event log types.

  •   Activity Log - Page views and Ajax requests. Can be disabled by developers and instance administrators.

  •   Login Access Log - Successful and failed login attempts.

  •   Debug Log - Application-specific instrumentation, such as internal variable values. Disabled by default, the debug log can be enabled by end users and developers.

  •   Click Count Log - Clicks on external links within applications.

  •   Web Service Activity Log - Requests to external web services from inside the database.

  •   Developer Activity Log - Changes to application components.

  •   SQL Workshop Log - History of SQL statements in the development environment's SQL Workshop.

Cookies and Related Technologies

Application Express does not use any third-party cookies, but it does use functional cookies (no tracking) and the browser’s SessionStorage and LocalStorage for maintaining the login session and for personalization. This is essential for application security, performance, and ease of use. Below are details about the cookie and storage names that Application Express uses and their intended use.

Session Cookies
  • ORA_WWV_USER_instance id - Security cookie for internal applications, like Application Builder.

  • ORA_WWV_APP_application id, ORA_WWV_APP_workspace cookie id, custom name - Security cookie for applications. Developers can choose custom cookie names in an application's authentication scheme.

  • ORA_WWV_RAC_INSTANCE - Session cookie for the Real Application Cluster (RAC) node instance number, for node pinning on the web server. Only sent when multiple RAC nodes are detected.

Persistent Cookies
  • ORA_WWV_REMEMBER_LANG - The user’s selected application language.

  • ORA_WWV_REMEMBER_UN - (Optional) Workspace and username of the previous login to the development environment login page. See check box "Remember workspace and username" on the development environment login page for details.

  • LOGIN_USERNAME_COOKIE - (Optional) Username of the previous login to developed applications. See check box "Remember username" on login pages of new applications for details. To make this cookie optional on login pages of existing applications, add a "Remember username" checkbox to the page. The API documentation for APEX_AUTHENTICATION.GET_LOGIN_USERNAME_COOKIE and APEX_AUTHENTICATION.SEND_LOGIN_USERNAME_COOKIE has examples for the PL/SQL process code to set the check box value and to only send the cookie when the check box is checked.

Session Storage
  • ORA_WWV_apex.builder.devToolbar.grid - This stores the current setting of the Development Toolbar’s Show Layout Columns option.

  • ORA_WWV_apex.builder.themeRoller.application id.* - This stores settings of the Development Toolbar’s Theme Roller popup.

  • .4000.4500.* - This stores the current tab in each of the tab sets of Page Designer.

  • APEX.userHasTouched - This is used to remember if the user has interacted with the application using touch (a touchstart event has been seen). It is used by some components to customize the user experience when using touch devices. 

  • .application id.page.*.activeTab - This remembers the last tab selected for Region Display Selector regions or regions using the Tabs Container template that have enabled the option to save the current tab

  • ORA_WWV_apex.Calendar.application id.page.region id.lastview - This remembers the last viewed calendar period.

  • .application id.page.*.preferenceForExpanded - This remembers the expanded state for collapsible regions.

  • ORA_WWV_apex.MED_*.splitterPosition - This stores the splitter bar position for various Interactive Grid settings dialogs.

Local Storage
  • ORA_WWV_apex.builder.devToolbar.options - This stores the Developer Toolbar user preference settings: Auto Hide, Show Icons Only, and Display Position.

  • ORA_WWV_apex.builder.pageDesigner.useComponentView - This stores the users preference for the Page Designer’s Component View tab.

  • ORA_WWV_apex.builder.pageDesigner.model.componentIds - This stores a pool of not yet used IDs for new components in Page Designer.

Check for Updates

When developers log in to the Application Express development environment, they get a notification when a new version is available. To get this version information, Application Express sends a request to an oracle.com server on a bi-weekly basis. It passes anonymized, statistical information about the development server (such as database version and Application Express component usage) that the Application Express product development team uses to make decisions about the products’ future. This check is enabled by default, but can be disabled by instance administrators. To learn more, review the CHECK_FOR_UPDATES parameter in "APEX_INSTANCE_ADMIN" in the Oracle Application Express API Reference.