Differences between APEX 20.2 and 21.1

Oracle APEX 21.1.0 was released on May 12, 2021.
Here is the shortcut link to the download: apex.oracle.com/download/ and don’t forget to apply the Patch Set Bundle for Oracle APEX 21.1

As you already know from my previous comparison posts (e.g. this one), I always start by looking at the changes on APEX View’s and API’s. This will reveal all the important fundamental changes.
Of course we won’t catch UI changes this way, but most features are based on Metadata/View/API changes, so this approach will give us a good overview of changes.

This will most likely be the last detailed blog post of version changes. I’m working on a new tool to list and visualize changes between APEX versions, which will be made public as a free service for everyone. Stay tuned…

General Changes

Several Views have been enhanced with a “comments” column for developer comments, helping us to document our work better.

The Data-Generator (Blueprint) feature already snuck into this release, although it isn’t documented, yet, and will be made public with APEX 21.2 (according to the APEX SOD).

Data Loading has been overhauled / replaced, thus we have some changed/new views and APIs.

And, of course, the fabulous map region was released with APEX 21.1.


Views

APEX_APPLICATIONS
+ created_by – APEX developer who created the application
+ created_on – Date of creation
+ referrer_policy – Determines the referrer-policy HTTP response header

APEX_APPLICATION_ITEMS
+ escape_on_http_output – If Yes values will be escaped when they are used in substitutions.

APEX_APPLICATION_PAGE_BUTTONS
+ grid_row_css_classes – Additional CSS classes which are substituted if the grid row template contains the substitution string #CSS_CLASSES#

APEX_APPLICATION_PAGE_DA_ACTS
+ client_condition_type – Identifies the client-side condition that can be used to control when the Action fires
+ client_condition_type_code – Internal code of CLIENT_CONDITION_TYPE
+ client_condition_element_type – Identifies the type of element used for the client-side Condition
+ client_condition_element – Identifies the element that will be used for the client-side Condition
+ client_condition_expression – Identifies the client-side condition expression used to control when the Action fires
+ server_condition_type – Identifies a server-side condition that must be met in order for this Action of a Dynamic Action to be processed
+ server_condition_type_code – Internal code of SERVER_CONDITION_TYPE
+ server_condition_expression1 – Specifies an expression based on the specific server condition type selected.
+ server_condition_expression2 – Specifies an expression based on the specific server condition type selected.
+ build_option – Dynamic Action will be processed if the Build Option is enabled
+ build_option_id – Foreign Key
+ authorization_scheme – An authorization scheme must evaluate to TRUE in order for this Action of a Dynamic Action to be processed
+ authorization_scheme_id – Foreign Key

removed: APEX_APPLICATION_PAGE_FLASH5

removed: APEX_APPLICATION_PAGE_FLASH5_S

APEX_APPLICATION_PAGE_IR_COL
+ rich_text_format – Identifies the format of a Rich Text column.

APEX_APPLICATION_PAGE_IR
+ lazy_loading – Identifies whether to defer getting initial set of data from the server until needed

APEX_APPLICATION_PAGE_ITEMS
+ grid_row_css_classes – Additional CSS classes which are substituted if the grid row template contains the substitution string #CSS_CLASSES#

APEX_APPLICATION_PAGE_REGIONS
+ grid_row_css_classes – Additional CSS classes which are substituted if the grid row template contains the substitution string #CSS_CLASSES#

APEX_APPLICATION_THEME_STYLES
+ css_classes – Identifies CSS classes to be applied to all pages

new: APEX_APPL_DATA_LOADS – Identifies Application Data Load definitions

APEX_APPL_DATA_PROFILES
+ csv_separator – The column delimiter character
+ csv_enclosed – The column enclosed by character
+ default_xlsx_sheet_name – The name of the XLSX worksheet to parse by default
+ skip_rows – The number of rows to skip from the first row when parsing
+ has_header_row – Indicates if the data contains column names in the first row
+ comments – Developer comments

APEX_APPL_DATA_PROFILE_COLS
+ column_type – Identifies the column type
+ decimal_char – Decimal character for NUMBER type
+ group_char – Group separator for NUMBER type
+ column_selector_type – Identifies if column expression is based on name or sequence for CSV and XLSX data format
+ transform_type – Identifies the type of column transformation rule
+ expression1 – Specifies an expression 1 based on the specific transformation type selected
+ expression2 – Specifies an expression 2 based on the specific transformation type selected
+ lookup_owner – Identifies the name of the schema to which the lookup table belongs to
+ lookup_table – Identifies the name of the table name for which the lookup will be defined
+ lookup_column1 – Identifies the first column name to be used to retrieve the return column from the lookup table
+ lookup_value1 – Identifies the data profile column that matches the first lookup table column value
+ lookup_column2 – Identifies the second column name to be used to retrieve the return column from the lookup table
+ lookup_value2 – Identifies the data profile column that matches the second lookup table column value
+ lookup_column3 – Identifies the third column name to be used to retrieve the return column from the lookup table
+ lookup_value3 – Identifies the data profile column that matches the third lookup table column value
+ lookup_key_column – Identifies the name of the return column in the lookup table
+ lookup_where_clause – Identifies the lookup where clause
+ comments – Developer comments

APEX_APPL_PAGE_FACETS
+ is_toggleable – Identifies whether end-users can toggle the visibility of the facet
+ is_initial_toggled – Identifies whether the facet is displayed by default

APEX_APPL_PAGE_ITEM_GROUPS
+ show_chart – Identifies whether the facet values can be shown as a chart.
+ initial_chart – Identifies whether the chart displaying facet values is initially shown.
+ is_toggleable – Identifies whether end-users can toggle the visibility of the facet group
+ is_initial_toggled – Identifies whether the facet group is displayed by default

new: APEX_APPL_PAGE_MAPS

new: APEX_APPL_PAGE_MAP_LAYERS

APEX_APPL_WEB_SRC_OPERATIONS
+ force_error_for_http_404 – Whether to always raise an error if the REST API responds with HTTP-404
+ comments – Developer comments

APEX_APPL_WEB_SRC_PARAMETERS
+ array_separator_char – Character to separate values when IS_ARRAY is enabled.
+ comments – Developer comments

new views (36!!) for APEX 21.2 (!) feature for Blueprints: APEX_DG_*

removed: APEX_INST_RESTADM_CLIENTS

removed: APEX_INST_RESTADM_CLIENT_ROLES

removed 10 views for deprecated Forms/APEX Migrations: APEX_MIGRATION_*

APEX_PATCHES
+ images_version – Identifies the version of the images for the patch

removed 6 views for deprecated Packaged Applications: APEX_PKG_*

APEX_REST_SOURCE_SYNC_LOG
+ synchronization_run_id – Internal ID of this synchronization run; used to group multiple synchronization steps

APEX_WORKSPACES
– allow_packaged_app_ins_yn – Controls availability of identified component


PL/SQL API’s

APEX_APPLICATION

  • removed: Apps_Only_Workspace
  • Js_Messages
    • remove p_operation

APEX_APP_SETTING

  • Get_Value / Set_Value
    • + p_raise_error

APEX_DATA_LOAD

  • removed: Validate_Plsql_Expressions

new: APEX_DATA_LOADING – Implementation for the new data loading process type

APEX_DATA_PARSER

  • new: Assert_File_Type

new: APEX_DG_DATA_GEN – not, yet, public feature for data generation (Enable intelligent generation of sample data) -> wait for APEX 21.2

new: APEX_DG_OUTPUT not, yet, public feature for data generation (Enable intelligent generation of sample data) -> wait for APEX 21.2

APEX_EXEC

  • new function overloads for add_filter, add_parameter, set_value
  • new: Get_Sdo_Geometry
  • new: Set_Current_Row

APEX_JSON

  • new: Get_Sdo_Geometry
  • new function overloads for Stringify and Write/Write_Raw

removed: APEX_MIG_PROJECTS_UPDATE

new: APEX_MARKDOWN – convert Markdown to HTML directly in the database

removed: APEX_PKG_APP_INSTALL

APEX_SPATIAL

  • new: Spatial_Is_Available

APEX_STRING

  • new: Plist_Get_Key

APEX_UTIL

  • Count_Click
    • + p_referrer_policy
  • new: Prn – to output a CLOB

WWV_FLOW_UTILITIES

  • new: Striphtml_Clob