1.1 About These Release Notes
These release notes contain important information not included in the Oracle Application Express documentation.
2.1 Before You Begin
Review the following to ensure your readiness for this version of Oracle Application Express.
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:
-
Sign in to Oracle Application Express.
The Workspace home page appears.
-
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.7 Important Information if Updating from a Release Prior to 21.1
If you are updating from previous release of Oracle Application Express, see the "Changed Behavior" sections in the following documents:
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 New Features
Oracle Application Express release 21.1 includes a number of new features. These new features are not present in Application Express release 20.2 and earlier releases.
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 torecordView
widgetgetModel
andgetPageInfo
methods added to widgetstableModelViewBase
,tableModelView
, andgrid
New widget options:
applyTemplateOptions
,fixedRowHeight
, andpagination.virtual
options added togrid
widget andtableModelView
widgetapplyTemplateOptions
option added torecordView
widgetaggregateTemplate
,controlBreakTemplate
,headerTemplate
,persistSelection
,showNullAs
,stickyTop
, andsyncHeaderHScroll
options added totableModelView
widget
Other changes:
- Added
pLocation
parameter toapex.page.validate
- The
pFillValue
parameter of grid widgetfillSelection
method can now be an object withv
andd
properties. - Added
pLabel
parameter to item instance methodgetValidationMessage
- Added
pCurrentTotal
parameter to model methodgetTotalRecords
- Widget
tableModelView
added substitution symbolAPEX$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 eventactivateCell 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
andAPEX_EXEC
packages.
4.1 Changed Behavior
Changed behavior in this release includes:
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#
.
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.
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 Guide5.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
(useapex.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 Desupported Features
Desupported features are no longer available. If a desupported feature has to do with application metadata or APIs, then existing applications may not work as they did previously. Oracle recommends modifying the application to replace the feature.
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.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 Open Bugs and Known Issues
This section describes bugs and known issues for Oracle Application Express release 21.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:
https://www.oracle.com/tools/downloads/apex-downloads/apex-211-known-issues.html
- Known Issue using 'Source Display' region type plug-in in previously installed Sample Apps
- Known Issue for Item and Region Plug-in Visibility During Initialization
- Known Issues for JavaScript
- Known Issue with New Version Date Picker in Universal Theme 1.5 and Earlier
- Known Issue using Code Editor in Safari 13
- Known Issue Using Component View in Firefox
- Known Issues for jQuery UI and jQuery Upgrade
- Known Issues for RESTful Services and Oracle REST Data Services (ORDS)
- Interactive Grid support for REST Enabled SQL
- Group By Component Type mode prevents Default View
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
- Open the application to edit it.
- Navigate to Shared Components, under Other Components select Plug-ins, and Source Display.
- 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' )
- 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
apex.locale.formatNumber
pFormat
parameter should state that ifpFormat
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:
-
To migrate from 1.x to 2.x see http://jquery.com/upgrade-guide/1.9/
-
To migrate from 2.x to 3.5.x see https://jquery.com/upgrade-guide/3.5/
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.
See Also:
JET v4.2.0 Release Notes9.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:
Name: MyMod1
URI Prefix: NULL
URI Templates: /Template1
/Template2
Name: MyMod2
URI Prefix: NULL
URI Templates: /Template3
/Template4
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
:
-
In Application Express, click SQL Workshop then RESTful Services.
-
Click the Configure button to launch the ORDS Schema Attributes modal dialog.
-
For Schema Alias, select the alias.
-
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
-
In Page Designer, open Developer Console in the browser, and run the following command:
JavaScript:pageDesigner.saveBoolPref( "GROUP_BY_COMPONENT_TYPE", true );
- 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 forAPEX_AUTHENTICATION.GET_LOGIN_USERNAME_COOKIE
andAPEX_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.
Oracle Application Express Release Notes, Release 21.1
F38049-03
July 2021
Copyright © 2003, 2021, Oracle and/or its affiliates.
Primary Author: John Godfrey
Contributing Author: Terri Jennings