2 New Features

Oracle APEX release 24.2 includes a number of new features. These new features are not present in APEX release 24.1 and earlier releases.

2.1 JSON Sources

JSON Sources in APEX consist of information about the owner and name of a database table. You can use a plain table with columns containing JSON data or a JSON collection table. After picking the table and column to use, APEX either determines the data profile from the actual data or uses an uploaded JSON Schema file.

JSON Sources are available to page components, including reports, charts, and forms, and shared components, including lists of values and automations. For more on using JSON Sources, see Managing JSON Sources in Oracle APEX App Builder User’s Guide.

JSON Sources are available on Oracle Database 19c and later.

2.2 JSON Duality Views

JSON-relational duality underpins collections of documents with relational storage: active, updatable, hierarchical documents based on a foundation of normalized relations. You can define a duality view using a local database or a REST Enabled SQL reference. After selecting a duality view, Oracle APEX retrieves a JSON schema from the database and builds a data profile. The data profile maps JSON attributes to columns with data types that APEX components can consume.

Duality views are available to page components, including reports, charts, and forms, and shared components, including lists of values and automations. For more on using Duality Views, see Managing Duality Views in Oracle APEX App Builder User’s Guide.

Duality Views are available on Oracle Database 23ai or later.

2.3 Vector Search

Vector Search is now available for APEX instances running on Oracle Database 23ai. Create a Search Configuration on top of a table with columns of the VECTOR data type, and configure details including index usage, distance metrics, maximum vector distance, or maximum results. APEX returns search results in order of vector similarity.

To configure Oracle Vector Search, you must set up a Vector Provider to convert search expressions into vectors. Vector Providers are configured at the workspace level, and available in all applications. For more information, see Managing Vector Providers in Oracle APEX App Builder User’s Guide.

2.4 REST Source Enhancements

Support for Token-Based Pagination in Simple HTTP REST Data Sources

The Simple HTTP REST Data Source type now supports REST services with token-based pagination, enhancing integration with APIs that use this pagination scheme.

Flexible Remote Servers

When editing a remote server, you can now use placeholders (for example, #tenant#) within the endpoint URL as well as within other attributes. At runtime, APEX can derive the placeholder values as well as the Base URL of a Remote Server object (used for REST Data Sources, REST Enabled SQL, and Authentication) dynamically with a PL/SQL Configuration Procedure. This allows APEX to invoke the endpoints dynamically based on the current application, tenant, or environment settings.

For more information on flexible remote servers, see About Flexible Remote Servers in Oracle APEX App Builder User’s Guide.

2.5 Workflow Enhancements

New Activity: Invoke Workflow

Use the new Invoke Workflow activity to invoke another workflow from a parent workflow.

You can now specify workflow parameter directions as In, Out, or In/Out. Out parameters can only be set when the workflow is used in the Invoke Workflow activity of another workflow. Out parameters do not show up when the workflow is used in a page process.

When adding or updating a workflow parameter, the component parameters in the workflow page process are automatically synchronized to reflect the changes. The Synchronize Parameters menu option from the Page Process is removed because the synchronization now happens automatically.

For existing workflows, you can regenerate the Workflow Details page from the Create Page wizard so that the To Parent Workflow button appears in the details of the invoked workflow.

CLOB Support for Variables and Parameters

Workflow parameters and workflow variables now support CLOB data types.

When a CLOB is displayed on the workflow details page, only the section of the CLOB that is accommodated within the VARCHAR2 limit for SQL displays.

If the value of the CLOB exceeds the VARCHAR2 limit, use apex_workflow.update_variables to update the variable instead of using the workflow details page.

Copy Workflow from Other Application

You can now copy a workflow from another application using Copy From Other App in Shared Components, Workflows and Automations.

When you copy a workflow, you also copy:
  • the workflow versions, parameters, activities, participants, and variables
  • other shared components referenced in the workflow, including email templates, tasks, and REST sources
  • all invoked workflows, if they are not already present in the current application

Resume Workflow at Any Activity

Suspended workflows can now resume at any activity by using the API APEX_WORKFLOW.RESUME. For more information on how to configure this, including an example of how to expose relevant information in the workflow detail page, see Resuming Suspended Workflows in Oracle APEX App Builder User’s Guide.

Support for Workflow and Human Task Runtime Instance Export

You can now export workflow and human task runtime instances when exporting an application. You can use this functionality to move instance data from one environment to another. For more information, see APEX_EXPORT.GET_APPLICATION Function in Oracle APEX API Reference.

2.6 Database Object Dependencies

The new Database Object Dependencies report makes it easy to scan and report database object dependencies for applications in your workspace. Scan the whole application at once or one page at a time to view the dependencies, including:
  • tables and table columns
  • views
  • packages, procedures, and functions
  • links to the component property of each dependency
  • system dependencies, including references to Oracle Database APIs and APEX Views
The report also contains a section for System Dependencies, including references to Oracle Database APIs and APEX Views. You can use the report to review application code that references any selected database object.
The new Database Object Dependencies report improves the APEX_APP_OBJECT_DEPENDENCY API introduced in APEX 24.1 with bug fixes and performance improvements. The Database Object Dependencies report can now detect dependencies from:
  • SQL expressions in report columns
  • REST Service queries (#APEX$SOURCE_DATA#)
  • Data Profile SQL expressions
For more information on the Database Object Dependencies report, see Viewing Database Object Dependencies in Oracle APEX App Builder User’s Guide.

2.7 Shared Component Utilization Reports

Shared Component utilization reports for Task Definitions, Email Templates, and REST Data Sources are now enhanced to show usage of workflows and tasks.

2.8 Support for Fusion Integration

You can now create an application from the Create Application Wizard with pre-configured integrations to Oracle Fusion Applications. This automates the manual steps previously necessary to set up federated authentication and identity propagation between APEX and Fusion.

Select Create Fusion Integration in the Create Application Wizard to create:
  • a starter application
  • a Remote Server, pre-configured to reference the base URL of your Fusion REST API endpoints
  • a Web Credential for the Authentication Scheme and the sample REST Data Source
  • a pre-configured Authentication Scheme
  • a sample REST Data Source

For more information, see Integrating APEX with Fusion Applications in Oracle APEX App Builder User’s Guide. You must have an OCI Database Tools Connection configured in order to see the Create Fusion Integration option.

2.9 BOSS REST Service Support

You can now easily use Fusion Apps REST APIs with URLs that contain /api/boss in any APEX region:
  • Discover all supported operations and attributes during REST Data Source creation.
  • Automatically delegate filtering and sorting to the BOSS service API.
  • Optimize performance by only retrieving and sending attributes the current region uses.
  • Work programmatically with BOSS endpoints using APEX_EXEC.
For more information on BOSS REST Service Support, see About Oracle Cloud Applications BOSS REST Services in Oracle APEX App Builder User’s Guide.

2.10 Document Generator Enhancements

When Document Generator is configured as print server, you can now also upload XLSX files. Document Generator now supports these additional output types:
  • DOCX to DOCX
  • XLSX to PDF
  • XLSX to XLSX

2.11 Dynamic Action: Generate Text with AI

You can now use the Dynamic Action Generate Text With AI to call the configured Generative AI Service and generate a one-time response based on user content. This action is ideal for tasks like summarizing or translating text, extracting keywords, or drafting emails. For more information on using this dynamic action, see Creating a Dynamic Action to Generate Text with AI in Oracle APEX App Builder User’s Guide.

2.12 Create Custom Data Models Using AI

A new SQL Workshop utility, Create Data Model using AI, uses AI to help you create your own schemas. The APEX Assistant generates a script to create tables, triggers, and constraints in either Oracle SQL or Quick SQL.

Before you can use this feature, you must create a Generative AI Service and enable the Used by App Builder setting. For more information, see Creating a Data Model Using AI in Oracle APEX SQL Workshop Guide.

2.13 AI Configurations and RAG Sources

AI Configuration is a reusable component that centralizes key Generative AI settings, including System Prompt, Welcome Message, and RAG (Retrieval-Augmented Generation) Sources, for use across AI-enabled features in APEX.

With this release, RAG Sources allow applications to dynamically add relevant data to AI responses, with flexible conditions to control inclusion based on user prompts or security settings. See Managing AI Configurations and RAG Sources in Oracle APEX App Builder User’s Guide.

2.14 Control Breaks for Template Components

APEX now supports control breaks (grouping) for Template Component Reports. You can configure groups declaratively for Template Component Report Regions in Page Designer.

APEX also supports grouping for:
  • the APEX_EXEC API
  • Content Row template components

2.15 Unlimited Attributes for Item Plug-ins

In APEX 24.1, the custom attribute limit for Region plug-ins was lifted. In 24.2, this is extended to Item plug-ins as well. New item plug-ins automatically have unlimited attributes.

Modifying Existing Plug-ins

To modify existing plug-ins to have unlimited attributes:
  1. Edit your item plug-in and set the API Interface attribute to Procedure.
  2. Update your custom attributes:
    -- old
    l_my_attribute varchar2(32767) := p_item.attribute_01;
    l_my_number    number          := p_item.attribute_02;
    l_my_boolean   boolean         := p_item.attribute_03 = Y; 
    
    -- new
    l_my_attribute varchar2(32767) := p_item.attributes.get_varchar2( 'attribute_01');
    l_my_number    number          := p_item.attributes.get_number  ( 'attribute_02');
    l_my_boolean   boolean         := p_item.attributes.get_boolean ( 'attribute_03', true);
  3. The Substitute Attribute Values switch is deprecated. When you move to the Procedure interface, this switch disappears. To perform substitutions on the attribute values, use new parameters in the get_varchar2 function:
    • p_do_substitutions
    • p_do_serveronly_substitutions
    • p_substitution_escape_mode
    procedure render (
        p_item   in            apex_plugin.t_item,
        p_plugin in            apex_plugin.t_plugin,
        p_param  in            apex_plugin.t_item_render_param,
        p_result in out nocopy apex_plugin.t_item_render_result )
    as
        -- Old
        l_my_attribute varchar2(32767) := p_item.attribute_01;
     
        -- NEW
        l_my_attribute varchar2(32767) := p_item.attributes.get_varchar2 (
                                          p_static_id                => 'my_static_id',
                                          p_do_substitution          => true,
                                          p_substitution_escape_mode => apex_session_state.c_escape_mode_html );
    begin
    ...
    ...
    end;

When upgrading to APEX 24.2, custom attributes receive the new Static ID when migrated. For example, an attribute with sequence 1 gets the ID "attribute_01", an attribute with sequence 2 gets ID "attribute_02", and so on. This simplifies your code migration.

Creating New Attributes

For new attributes created after moving to APEX 24.2, use whatever Static ID you wish. We recommend keeping the Static ID short, lowercase, and descriptive of the purpose. For example, "css_classes", "page_item_name", or "plsql_code".

The new attributes construct is also available for t_plugin in order to read application-scope attributes.

Public Dictionary Views

Public dictionary views are changed. Querying item plug-in attributes is now done by reading the attribute's JSON column.
select 
i.attributes.my_static_id
  from apex_application_page_items 
i
 where ...
This also applies when reading application-scope and Interactive Grid column attributes, Faceted Search filters, and Smart Filters filters.

2.16 Export App Enhancements

When you export a translated application, APEX checks the application to ensure that the translations are in sync. If the translations are out of sync, a warning message displays on the Application Export Page.

Select View Application Translations to check the translations for the application, and update them as needed. For more on translating applications, see Translating Messages in Oracle APEX App Builder User’s Guide.

2.17 Default RTL Direction Based on Language

The Document Direction attribute on the Application Globalization page and Translation Language Mappings page now defaults to Language Default instead of left-to-right. When an application set to Language Default runs, the direction is now derived from the language.

There is no change of functionality for existing applications.

2.18 Builder Extension Auto-Subscribe

Instance Administrators can now configure the Allow Hosting Extensions option to allow Automatic Subscription. When a workspace is set up for automatic subscription, APEX automatically publishes all extensions and extension menu entries to all other workspaces in the instance. Individual workspaces no longer have to subscribe and grant read access to extensions manually.

2.19 Text Messages Enhancements

Comments and Metadata

The Create/Edit Text Message dialog now includes Comments and Metadata.

Use the Comments text area field to capture developer comments associated with a specific text message.

Use the Metadata region to capture any additional data for the text message, including:
  • structured attributes that provide JSON name/value pairs to identify details about the text message related to an external central string repository
  • unstructured data that provides further context to the text message to assist with translation
The Metadata region is a Collapsible region that only displays if metadata has been loaded via the PL/SQL API. Otherwise, the region is not visible.

Display Text Message Values

In Page Designer, the new Text Messages Picker (Page Designer, Utilities, Show) controls the visibility of the Text Messages dialog buttons (globe icon). If enabled, this button opens a Text Messages dialog that lists all available Text Messages in the current application.

When a text message is used in these properties, APEX displays a preview of the content below the input field.

The available text messages also display in the Suggestion box after typing &{ in Code Editor.

This functionality requires the compatibility mode of the application to be set to 24.2 or higher.

2.20 New Substitution String

The new substitution string MAIN_APP_ID identifies the main application ID if the current application is a working copy. Otherwise, it shows the current application ID.
Reference Type Syntax
Bind variable :MAIN_APP_ID
PL/SQL NV('MAIN_APP_ID')
Substitution string &MAIN_APP_ID.

2.21 Application User Experience Data (OpenTelemetry)

You can now use OpenTelemetry for collecting user experience data, including page load times and user interactions. Configure OpenTelemetry through Workspace Utilities, and then add it to specific applications to make it easier to monitor and analyze how users engage with your app.

OpenTelemetry requires the latest version of Universal Theme.

2.22 Generative AI Configuration Screen Enhancements

The Generative AI Service Details page in Workspace Utilities now includes a Test Connection button that validates the information used for creating a Generative AI service connection. Test Connection performs a pre-validation of configuration parameters such as API keys, URLs, and model identifiers depending on the provider used. By running this check, you can quickly identify and edit any missing or incorrect fields before proceeding.

For more information, see Creating a Generative AI Service Object in Oracle APEX App Builder User’s Guide.

2.23 Improved Content-Security-Policy Support

The APEX runtime engine adheres more strictly to Content-Security-Policy (CSP) standards by minimizing the use of unsafe-inline directives:
  • Inline JavaScript: Inline event handlers are moved to external JavaScript files wherever possible. When not feasible, they are securely emitted using a unique identifier called a nonce.
  • Inline CSS: Inline styles are now either moved to external CSS files, replaced with placeholder strings, or securely emitted using a nonce.
  • Style Tags: <style> tags are securely emitted using a nonce.
  • Script Tags: <script> tags are securely emitted using a nonce.
These changes enhance security by reducing risks associated with inline code.

2.24 Improved Popup LOV Functionality

The appearance and behavior of Popup LOVs is now similar to searchable LOV items such as Select One, Select Many, and Combobox. This creates a unified and intuitive user experience when searching.

Popup LOVs have a new attribute Match Type, which you can set to Contains (default) or Starts With. There is also a control for Case-Sensitive Search.

2.25 Accessibility Improvements

Workflow Designer Keyboard Improvement

When navigating through Workflow Designer using keyboard shortcuts, the diagram viewport now follows the keyboard focus. It is no longer possible for the focused node to be outside the diagram viewport.

2.26 Theme Metadata Decoupled from Application Metadata

Starting with Universal Theme 24.2, theme metadata (templates, theme styles, template components, etc.) is now stored in a central workspace, decoupled from applications. This improves performance with faster application export/import, smaller file sizes, and optimized storage in version control systems.

Related updates include:
  • The Refresh Theme button is now on the Application Home Page for better visibility.
  • Outdated APEX Builder pages related to theme management have been updated or removed, simplifying the interface.
  • Active theme style selection has moved from the theme style level to the theme level.

Important:

If your app uses translations, republish them after refreshing your theme, or translations will not work.

2.27 Select Many Improvements

If you set Display Values As to Comma-separated List. there is now a counter icon on the item that displays the current number of selected values. Clicking on the counter opens the dropdown, displaying only the selected values.

2.28 Universal Theme Enhancements

Font APEX 2.4

Font APEX now includes 244 country flag icons to easily display flags within your APEX application. Display the new icons with .fa-flag-##, where ## is the country code.

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

Password Item Enhancements

Password type page items now include a Show Password button. Users can select Show Password to reveal the entered password, and select Hide Password to conceal the password again.

This button is enabled by default for all application using Universal Theme 24.2 and later. To disable this button, edit the template options for the Password item, and select Hide Password Visibility.

Other Changes

Other changes for Universal Theme 24.2 include:
  • new utility classes for Typography, Shadows, Flex Order, and Padding/Margin
  • support for grouping in Content Row (title and icon)
  • display for multiple Avatars in the Avatar Template Component
  • better support for mobile browsers with dynamic toolbars
  • miscellaneous updates to Redwood Light, including adjustment of page padding to be consistent with Vita

2.29 PL/SQL API Updates

APEX_APPLICATION_ADMIN

The new procedure APEX_APPLICATION_ADMIN.SET_REMOTE_SERVER changes the base URL of a Remote Server object after deployment of an application.

APEX_CREDENTIAL

The APEX_CREDENTIAL API is extended with a new procedure: SET_SCOPE. This procedure programmatically changes the "scope" attribute of a web credential.

APEX_LANG

The existing procedure CREATE_MESSAGE is enhanced with two new parameters:
  • p_comment, for developer comments or notes only visible in the App Builder
  • p_metadata, for additional data stored alongside the message

A new procedure, UPDATE_MESSAGE, can update all attributes of a text message.

APEX_PAGE

The GET_URL procedure has a new boolean parameter: p_absolute_url. When set to FALSE, the function determines whether an absolute URL is needed. When set to TRUE, the function always generates an absolute URL.

APEX_REGION

Many APEX API functions take p_region_id as an input. The new function GET_ID retrieves the region id from the APEX dictionary views.

APEX_SHARED_COMPONENT

The new APEX_SHARED_COMPONENT package contains two APIs for working with shared components: REFRESH and PUBLISH. This package is only available in full APEX installations, and does not apply to theme refresh and publish.

2.30 JavaScript API Updates

New and Updated APIs

This release contains new and updated APIs:
  • New apex.message namespace functions:
    • ariaAlertMessage
    • ariaMessage
  • New actions interface action property convertBindingArguments.
  • New syntax for text messages added to apex.util.applyTemplate. This syntax requires compatibility mode 24.2.
  • Interface region refresh method documents pKeepPagination parameter used by some regions.
  • Widget interactiveGrid now documents the text option including new property noParentSelected.
  • Changes to facetsRegion interface for new Faceted Search Add Filter feature:
    • Removed control property displayed and replaced it with new property displayAs.
    • Methods addChart, hideFacet, and showFacet only work when displayAs is "INLINE".
  • Changes related to reports based on grid or tableModelView widgets not clearing old content while fetching new content:
    • New model option delayClearData added to apex.model.create, which can also be set by model method setOption.
    • The check and clearData methods describe the new behavior related to delayClearData.
    • Interface model refresh notification has new changes property clearDataPending.
    • Interface model method forEachInPage pCallback function can receive a false value for the pError parameter.
  • Changes related to nested markup for control breaks
    • New model interface methods getControlBreakId and hasControlBreaks.
    • Interface model method insertNewRecord now initializes control break fields.
    • New model FieldMeta property controlBreakIndex.
    • Interface model method setSelectionState has a new value for pAction parameter.
    • Widget tableModelView adds options controlBreakAfterTemplate, controlBreakBeforeTemplate, and controlBreakSelector. Option controlBreakTemplate has new substitutions and now requires setting the controlBreakSelector option.
    • Widget tableModelView methods getCurrentItem, getCurrentItemValue, setCurrentItem apply when focus is on a group heading.

Updated Descriptions, Examples, or Typos Fixed

This release includes various improvements to descriptions and examples.

2.31 JavaScript Library Upgrades

  • @opentelemetry/api 1.9.0
  • @opentelemetry/core 1.26.0
  • @opentelemetry/instrumentation 0.53.0
  • @opentelemetry/instrumentation-document-load 0.39.0
  • @opentelemetry/instrumentation-fetch 0.53.0
  • @opentelemetry/instrumentation-xml-http-request 0.53.0
  • @opentelemetry/sdk-trace-base 1.26.0
  • @opentelemetry/sdk-trace-web 1.26.0
  • Cohere API Spec 7.9.5
  • cropperjs 1.6.2
  • DomPurify 3.1.6
  • FullCalendar 6.1.15
  • JavaScript Extension Toolkit (JET) 17.0.2
  • jquery-migrate 3.5.2
  • mapbox-gl-rtl-text 0.3.0
  • MapLibre GL 4.6.0
  • Marked 14.1.0
  • Monaco Editor 0.51.0
  • OpenAI Open AI Spec 2.0.0
  • Oracle Rich Text Library (ORTL) 2.0.1
  • Pako 2.1.0
  • Terser 5.31.3
  • Turndown 7.2.0