2 新機能

Oracle APEXリリース24.1には、多数の新機能が含まれています。次の新機能は、APEXリリース23.2およびそれ以前のリリースには存在しません。

2.1 生成AIのサポート

ヒント:

法的条件の詳細は、『Oracle APEXライセンス情報ユーザー・マニュアル』生成AIサービスを参照してください。

生成AI

APEXに生成AIを追加できるようになりました。生成AIはAPEXインスタンス・レベルで構成されており、APEXワークスペース・レベルでさらに構成できます。APEXでは、次のプロバイダがサポートされます:
  • Open AI
  • Cohere
  • OCI生成AI
ワークスペースで生成AIを有効にしたら、AIアシスタントを開く動的アクションを作成して、アプリケーションにAIを組み込みます。

生成AIの構成の詳細は、『Oracle APEXアプリケーション・ビルダー・ユーザーズ・ガイド』「APEXでの生成AIの管理」を参照してください。

AIチャット・ウィジェット

テキスト領域とメッセージ領域で構成される新しいチャット・ウィジェットを使用して、生成AIサービスでチャットのようなエクスペリエンスを提供します。システム・プロンプトを構成して、ユーザー入力を要求するAIコンテキストを指定します。AIアシスタントがユーザーに表示する「ようこそメッセージ」をカスタマイズすることもできます。

生成AIを使用したアプリケーションの作成

生成AIチャット・プロンプトから自然言語を使用して新しいAPEXアプリケーションを作成します。このオプションを使用するには、ワークスペース・ユーティリティで生成AIサービスを構成し、「アプリケーション・ビルダーで使用」属性を有効にします。

AIコード・エディタ

APEXアシスタントは、APEXビルダー内のコード・エディタに直接統合されるようになりました。コード・エディタでAIチャット・ウィジェットを使用するには、ワークスペース・ユーティリティで生成AIサービスを構成し、「アプリケーション・ビルダーで使用」属性を有効にします。

新しいAIボタンはエディタ・ツールバーで使用でき、ユーザーは任意のコード・エディタ内からAIチャット・ウィジェットにシームレスにアクセスできます。

2.2 ドキュメント・ジェネレータ・サービスの統合

OCIのドキュメント・ジェネレータ・サービスが、新しいリモート・プリント・サーバー・タイプとしてAPEXに統合されました。出力テンプレートはMicrosoft Wordで開発でき、PDFエンジンがテンプレートとアプリケーション・データを組み合せて最終出力をレンダリングします。

ドキュメント・ジェネレータを使用すると、次のことができます:
  • ドキュメント・ジェネレータのオブジェクト・ストレージ・バケットの構成
  • レポート問合せおよびレポート・レイアウトを使用した文書の生成
  • クラシック・レポートおよび対話モード・レポートのドキュメント・ジェネレータ・レポート・レイアウトの有効化
  • 新しいページ・プロセス・タイプ「レポートの印刷」を使用して、レポート・リージョンではなくレポート問合せをデータ・ソースとして使用
ドキュメント・ジェネレータ・サービスを使用するには、APEXインスタンスがDBMS_CLOUDがインストールされているデータベースで実行されている必要があります。OCIの「事前構築済ファンクション」ページでドキュメント・ジェネレータ関数を構成します。

ヒント:

レポート出力の構成の詳細は、『Oracle APEX管理ガイド』「レポート出力の構成の概要」を参照してください。

DBMS_CLOUD資格証明の構成の詳細は、『Oracle APEXアプリケーション・ビルダー・ユーザーズ・ガイド』「Web資格証明の理解」を参照してください。

ドキュメント・ジェネレータをリモート・プリント・サーバーとして構成する方法の詳細は、Oracle Cloud Infrastructureドキュメントドキュメント・ジェネレータ関数を参照してください。

2.3 新しい「1つ選択」および「複数選択」アイテム・タイプ

新しいLOVベースのアイテム・タイプ「1つ選択」および「複数選択」では、選択リストと同様に、データ・セットに含まれるエントリのみが許可されます。これらのアイテム・タイプでは次がサポートされます:
  • テンプレート・ディレクティブを使用した選択肢のカスタムHTML
  • アイコン
  • グループ
  • 複数列を検索し表示する
「複数選択」では、次のものもサポートされます:
  • フォーカスが「複数選択」アイテムにない場合の区切りリストとしてのチップの表示
  • JSONセッション・ステート
  • ユーザーが複数のオプションを選択でき、ドロップダウンが開いたままの複数選択

2.4 テンプレート・コンポーネントの機能強化

テンプレート・コンポーネントのスロット

以前は表示ポイントと呼ばれ、位置に名前が変更されましたが、これらの配置はスロットと呼ばれるようになりました。APEXにより、開発者は常に、ページ位置やリージョン位置内にリージョン、アイテムおよびボタンを配置できるようになりました。このリリースでは、開発者はページ・スロットリージョン・スロットまたはテンプレート・コンポーネント・スロットにリージョン、アイテムおよびボタンを配置できるようになりました。

スロットは、テンプレート・コンポーネント編集ページで定義できます。テンプレート・コンポーネント・スロットでは、複数のコンポーネントをネストできます。これは、階層化されたUI設計を使用して高度なテンプレート・コンポーネントを作成するために不可欠です。また、テンプレート・コンポーネント・スロットで許可されるコンポーネントのタイプを制限して、一貫性のある外観を実現するための強力なテンプレート・ガードレールを作成することもできます。

テンプレート・コンポーネント・レポートの宣言選択サポート

この機能により、テンプレート・コンポーネント・レポートの選択サポートが有効になります。テンプレート・コンポーネントでは、単一選択と複数選択、およびフォーカス・ナビゲーションと選択のための標準のキーボード・ショートカットがサポートされるようになりました。新しい属性「現在の選択のページ・アイテム」は、選択された行の値をサーバー上で処理するためにページ・アイテムに入れます。複数選択の場合は、新しい「すべてのページ・アイテムの選択」属性を使用してすべてのアイテムを選択します。

テンプレート作成者は、新しいプレースホルダAPEX$SELECTORを使用して、行にチェック・ボックスまたはラジオ・セレクタを追加できます。

データ・ソースなしのテンプレート・コンポーネント - 静的値

データ・ソースが添付されていないテンプレート・コンポーネントを作成できるようになりました。かわりに、静的値の設定を指定し、アイテムまたは値の置換を含めます。

テンプレート・コンポーネントのレンダリング

テンプレート・コンポーネント・レンダリングのパフォーマンスが向上しました。

テンプレート・コンポーネントおよびテンプレート・ディレクティブ実行の新しい#APEX$DOM_ID#プレースホルダ

テンプレート・コンポーネントおよびテンプレート・ディレクティブの実行ごとに、新しいプレースホルダ#APEX$DOM_ID#を使用できます。このプレースホルダは一意のランダムDOM IDを提供し、テンプレート・ディレクティブ内の動的DOM IDのシームレスな使用を促進します。

例2-1 #APEX$DOM_ID#の使用

<h1 id="#APEX$DOM_ID#_heading">#HEADING#</h1><someelement aria-labelledby="#APEX$DOM_ID#_heading">

2.5 コンポーネント・グループ

コンポーネント・グループは、他の共有コンポーネントのコレクションです。コンポーネント・グループを作成して、アプリケーション内の特定の機能または要件に関連する一連の共有コンポーネントを管理します。コンポーネント・グループを使用すると、グループ内のすべてのコンポーネントを1つのアクションで簡単にコピー、サブスクライブまたはリフレッシュできます。

サブスクリプションをサポートするすべての共有コンポーネントは、現在サポートされていないテーマおよびテンプレートを除いて、コンポーネント・グループに追加できます。

2.6 リージョンの無制限の属性

23.2では、テンプレート・コンポーネントのカスタム属性制限が解除されました。このリリースでは、これはリージョン・プラグインに拡張されています。新しいリージョン・プラグインでは、アプリケーション・スコープ属性を読み取るためにt_pluginで使用可能な新しい属性構成など、新しいインフラストラクチャをすぐに利用できます。リージョン・プラグインに列がある場合は、t_region_columnも使用できます。

既存のプラグインを利用するには、開発者はプラグインにいくつかの変更を加える必要があります。

既存のプラグインの更新

既存のプラグインを編集するには:
  1. リージョン・プラグインを編集し、APIインタフェース属性をProcedureに変更します。

    ノート:

    「代替属性値」スイッチは非推奨になりました。プロシージャ・インタフェースに移動すると、このスイッチは表示されなくなります。属性値に対して置換を実行するには、apex_plugin_util.replace_substitutionsを使用します。
  2. レンダリング関数とajax関数のシグネチャを次のように変更します:
    -- old
    function render (
        p_plugin              in apex_plugin.t_plugin,
        p_region              in apex_plugin.t_region,
        p_is_printer_friendly in boolean )
        return apex_plugin.t_region_render_result 
    
    -- new
    procedure render (
        p_plugin in            apex_plugin.t_plugin,
        p_region in            apex_plugin.t_region,
        p_param  in            apex_plugin.t_region_render_param,
        p_result in out nocopy apex_plugin.t_region_render_result )
    
    -- Note that p_is_printer_friendly is now available under p_param.is_printer_friendly 
    
    -- old
    function ajax (
        p_region in apex_plugin.t_region,
        p_plugin in apex_plugin.t_plugin )
        return apex_plugin.t_region_ajax_result 
    
    -- new
    procedure ajax (
        p_plugin in            apex_plugin.t_plugin,
        p_region in            apex_plugin.t_region,
        p_param  in            apex_plugin.t_region_ajax_param,
        p_result in out nocopy apex_plugin.t_region_ajax_result ) 

    ノート:

    ダミーのp_resultを返す必要がなくなり、コードがさらに簡略化されます。
  3. カスタム属性の読取りを次のように更新します:
    -- old
    l_my_attribute varchar2(32767) := p_region.attribute_01;
    
    -- new
    l_my_attribute varchar2(32767) := p_region.attributes.get_varchar2( 'attribute_01'
            );

    ノート:

    新しいget_varchar2関数は、カスタム属性の静的IDをパラメータとして受け取ります。

APEX 24.1へのアップグレード

APEX 24.1にアップグレードすると、新しい静的IDを受け取るようにカスタム属性が移行されます。順序1の属性はID attribute_01を取得し、属性2はID attribute_02を取得します。これにより、コードの移行が簡略化されます。24.1への移行後に作成する新しい属性には、任意の静的IDを使用できます。

ノート:

静的IDを短く、小文字にし、目的を説明するものにすることをお薦めします。たとえば、css_classespage_item_nameplsql_codeなどです。

パブリック・ディクショナリ・ビューの変更

追加の属性に対応するために、パブリック・ビューが変更されました:
  • リージョン・プラグイン属性の問合せは、JSON属性列を読み取ることによって行われるようになりました。よりわかりやすいJSONドット表記法を利用するために、必ずビューに別名を付けてください。
    select r.attributes.my_static_id
      from apex_application_page_regions r
     where ...
  • attribute 01...25列は廃止され、nullが返されます。
  • アプリケーション・スコープおよびリージョン列属性の読取りは、JSON属性列を読み取ることによって行われるようになりました。
    select s.attributes.my_static_id
      from apex_appl_plugin_settings s
     where ... 
    
    select c.attributes.my_static_id
       from apex_application_page_reg_cols c
     where ...

2.7 ワークフローの機能強化

ワークフロー・ダイアグラム・リージョン

ワークフロー・ダイアグラムは、選択したワークフロー・インスタンスを視覚的に表示する新しいリージョンです。このリージョンでは、インスタンスが通過したノードとリンクがハイライトされ、ユーザーはワークフロー・ルートを明確に把握できます。リージョンは読取り専用です。

アーカイブ・パージの機能強化

パージ可能なワークフローおよびタスクが、次のビューで表示されるようになりました:
  • ワークフロー:
    • APEX_PURGEABLE_WORKFLOWS (ワークフロー・インスタンス)
    • APEX_PURGEABLE_WF_ACTIVITIES (ワークフロー・アクティビティ・インスタンス)
    • APEX_PURGEABLE_WF_VARIABLES (ワークフロー変数値)
    • APEX_PURGEABLE_WF_PARTICIPANT (ワークフロー参加者値)
    • APEX_PURGEABLE_WF_AUDIT (ワークフロー監査ログ)
  • タスク:
    • APEX_PURGEABLE_TASKS (タスク・インスタンス)
    • APEX_PURGEABLE_TASK_HISTORY (タスクのライフサイクル中に実行される操作)
    • APEX_PURGEABLE_TASK_COMMENTS (タスク・インスタンスのコメント)
    • APEX_PURGEABLE_TASK_PARAMETERS (タスク・パラメータおよびパラメータ・ランタイム値)

新しいビューに加えて、APEX_APPROVALおよびAPEX_WORKFLOW APIには、次回のパージ実行のタイムスタンプを取得するget_next_purge_timestamp関数が含まれるようになりました。

非同期アクティビティ・プラグインの終了ファンクション

アクティビティとして使用するカスタム・プロセス・タイプ・プラグインの終了ファンクションを指定できるようになりました。終了ファンクションは、ワークフロー・インスタンスが終了すると実行されます。

新しいワークフロー・ダッシュボード・ページ

ワークフロー・コンソール・ページを作成するときに、ワークフロー・ダッシュボード・ページを作成するオプションが追加されました。ワークフロー・ダッシュボード・ページには、特定のレポート・コンテキスト内のすべてのワークフローの分析(状態別ワークフロー、アクティブなワークフロー、失敗したワークフロー、ワークフローの平均完了時間など)が表示されます。

デバッグ・メッセージで使用可能なワークフロー・インスタンスID

デバッグ・メッセージでワークフロー・インスタンスIDを表示できるようになりました。これにより、特定のデバッグ・メッセージに対応するワークフロー・インスタンスを特定できます。

2.8 ヒューマン・タスクの機能強化

承認コンポーネント: イニシエータがタスクを承認または否認できるようにする

新しい「イニシエータは完了できます」オプションを使用すると、承認タスク・イニシエータは承認タスクを完了できます。このオプションは、タスク定義エディタでスイッチとして、およびページ・デザイナとワークフロー・デザイナのヒューマン・タスク - ページの作成プロセスでエントリYesおよびNoを含む選択リストとして使用できます。タスク定義エディタでのスイッチのデフォルトの動作は、Offです。ヒューマン・タスク - ページの作成プロセスでは、「イニシエータは完了できます」選択リストはデフォルトで選択解除されています。

タスクの休暇ルール

実行時にタスク参加者の置換を可能にする、タスクの休暇ルールを定義するためのプロシージャを使用できるようになりました。休暇ルールは、その特定のタスク定義のタスク定義レベルで追加することも、そのアプリケーションのすべてのタスク定義のアプリケーション定義レベルで追加することもできます。

APEXは、タスクの新規インスタンスを作成するとき、およびタスク・インスタンスが委任されるときに休暇ルールのプロシージャを評価します。

2.9 アプリケーションの作業用コピーの機能強化

APEX 23.2では、アプリケーションの作業用コピーが導入されました。作業用コピー機能セットはAPEX 24.1で拡張され、次の変更が含まれています:
  • ページ・デザイナのビジュアル・インジケータは、アプリケーションの別のコピーでページが変更またはロックされた場合に表示されます
  • メイン・アプリケーションを使用しているときに通知されるようになりました
  • ページ・デザイナでページをメインと比較ユーティリティを使用できるようになりました
  • 新しいレポートは、ページが変更またはロックされている作業用コピーを示し、作業用コピーとメインの差分を表示するオプションを提供します
  • YAML差分エディタに最終更新日が表示されるようになりました
  • 作業コピー名の40バイトの制限が引き上げられました

2.10 アクセシビリティの改良

ページ・デザイナの新しいアクセシビリティ・ヘルプ・テキスト

ページ・デザイナ・ヘルプ内のキー属性にアクセシビリティ・ヘルプ・テキストが組み込まれました。これにより、よりアクセスしやすいAPEXアプリケーションを作成するための明確で実用的なガイダンスが開発者に提供されます。アクセシビリティ・ヘルプ・テキストは、代替テキスト、色のコントラスト、レポートの行ヘッダー、ラベル、説明、その他の重要な機能など、アクセシビリティの重要な側面をカバーしています。

アクセシビリティに焦点を当てたヘルプ・テキストをページ・デザイナに直接組み込むと、アクセシビリティ・プロセスが簡略化され、これらの属性の重要性が強調されます。提供されているガイダンスには、ベスト・プラクティスと推奨事項が含まれており、開発者は包括的なアプリケーションを作成するための実践的なサポートを受けることができます。たとえば、ランドマーク・ラベルのヘルプ・テキストに、ラベルの長さや目的など、適切なラベルの定義に関するガイダンスが含まれるようになりました。

アクセシビリティ・ヘルプ・テキストは、開発者が包括的なアプリケーションの作成に優先順位を付け、すべてのユーザーのアクセシビリティを向上させるための一貫したリマインダとして機能します。

開発環境の改善

このリリースには、APEXのコア機能に対する次のような複数のアクセシビリティの改良が含まれています:
  • リージョン・ランドマークの改善
  • リージョン・ヘッダーの改善
  • すべてのレポート・リージョンの適切な行ヘッダー列
  • ページ・タイトルの改善

アイテムの読取り専用処理

アプリケーション定義の編集時に、「アクセス可能な読取り専用アイテム」という新しいスイッチを使用できます。オンにすると、APEXは従来のSPANベースの要素ではなく、readonly入力要素またはtextarea要素として要素をレンダリングします。これらの要素は、スクリーン・リーダーのユーザーがフォーカス可能で、より簡単に検出できるようになりました。

この属性は、下位互換性のために「オフ」に設定され、新しいアプリケーションでは「オン」に設定されているため、新しいアプリケーションではすぐに改善されたアクセシビリティ・サポートを利用できます。

2.11 組込みのOracle Text検索ファンクション

APEX_SEARCHは、検索エンジンエキスパート検索の2つのOracle Text問合せファンクションで拡張されました。これらのファンクションにより、ファジー検索や近接検索などの高度な全文検索機能が有効になります。これらのファンクションには、APEX_SEARCH.QUERY_SEARCH_ENGINEおよびAPEX_SEARCH.QUERY_EXPERT_SEARCHを使用してプログラムでアクセスできます。

詳細は、『Oracle APEXアプリケーション・ビルダー・ユーザーズ・ガイド』「検索構成の編集」または『Oracle APEX APIリファレンス』「APEX_SEARCH」を参照してください。

2.12 「複数の値」アイテム・タイプJSONおよびカスタム・セパレータのサポート

「複数の値」アイテム・タイプでは、セッション・ステート値のJSONまたはカスタム・セパレータがサポートされるようになりました。「シャトル」、「複数選択」、「選択リスト」、「コンボボックス」、「リスト・マネージャ」および「ポップアップLOV」では、区切りリスト文字列値またはJSON配列値のカスタム・セパレータ文字がサポートされるようになりました。プラグイン開発者は、独自の複数の値アイテム・プラグインに同じ機能を追加できます。

2.13 ファセット検索およびスマート・フィルタでの日付ピッカーのサポート

APEXでは、ファセット検索およびスマート・フィルタ・リージョンの入力ファセットおよび手動範囲入力に対して日付ピッカーがサポートされるようになりました。日付表現に独自の書式マスクを設定して使用することもできます。

2.14 宣言BLOB/CLOBファイルのダウンロード・サポート

APEXでは、BLOBおよびCLOBファイルのダウンロードがサポートされるようになりました。新しいダウンロード動的アクションおよび新しいダウンロード・プロセス・タイプにより、複数のファイルをzipアーカイブとしてダウンロードできるようになりました。これにより、CLOBおよびVARCHAR2データ型がファイル・コンテンツとしてサポートされます。ファイルを添付ファイルとして表示し、ファイルをダウンロードするか、ブラウザ内でファイルをインラインで表示するようにユーザーに求めることもできます。

2.15 SAML認証のマルチドメイン・サポート

APEXでは、SAML認証で"AssertionConsumerServiceIndex"属性がサポートされるようになりました。管理者は、複数のドメインに対してSAMLコールバックを構成できます。『Oracle APEX管理ガイド』の「セキュリティ」、「SAML認証」または「SAMLサインインの構成」にあるインスタンス管理設定のサポートされるコールバックURLを参照してください。

2.16 アプリケーションおよびページ・データベース・オブジェクトの依存性API

新しいAPI APEX_APP_OBJECT_DEPENDENCYを使用して、APEX表参照、表の依存関係、表およびデータベース・オブジェクト参照をページとアプリケーション別に分析およびレポートできるようになりました。

詳細は、『Oracle APEX APIリファレンス』APEX_APP_OBJECT_DEPENDENCYを参照してください。

2.17 ビルダー拡張機能の機能強化

ワークスペースが拡張機能をホストするように構成されている場合は、そのワークスペースからAPEXアプリケーションを起動し、同じインスタンス上の他のワークスペースでそれを使用できるようになりました。起動するワークスペースによって読取りアクセス権が付与されている場合、起動するワークスペースのアプリケーション・メタデータ(ビュー)にアクセスすることもできます。

その他の機能強化は次のとおりです:
  • 開発者がユーザー名/パスワードでサインインしなくても、APEXセッションから拡張機能アプリケーションを開くことができる、新しいビルダー拡張サインイン認証スキーム。
  • 拡張機能メニューを使用して拡張アプリケーションを公開するオプション
  • サブスクリプションの更新により、ワークスペースが拡張機能ワークスペースから拡張機能メニューにサブスクライブし、公開された拡張機能を起動することが可能
  • APEXセッション・コンテキストの自動化またはPL/SQLで拡張ワークスペースへの読取りアクセス権を付与されたワークスペースのリポジトリ・データにアクセスできるようにする新しいAPIパッケージAPEX_EXTENSION.SET_WORKSPACE
詳細は、『Oracle APEX管理ガイド』「「拡張機能」メニューにあるリンクの管理」および『Oracle APEXアプリケーション・ビルダー・ユーザーズ・ガイド』「ビルダー拡張機能サインイン」を参照してください。

2.18 共有コンポーネントのサブスクリプションの改善

APEX 23.2では、サブスクリプション機能にいくつかの新機能が追加されました。これらの機能には、サブスクライブされたコンポーネントの読取り専用動作、自動依存性解決、サブスクリプション・ステータス列、および一括リフレッシュのオプションが含まれています。次の共有コンポーネントで、これらの新機能を使用できるようになりました:
  • リスト
  • データ・ロード定義
  • RESTデータ・ソース
  • 認証スキーム
  • 認可スキーム
  • LOV
  • プラグイン
  • ショートカット
  • 構成の検索
  • データ・プロファイル

ノート:

APEX 24.1にアップグレードすると、サブスクライブされた共有コンポーネントの「サブスクリプション・ステータス」「判断できなかったためリフレッシュが必要です」と表示されます。ステータスを「最新」に変更するには、共有コンポーネントを公開またはリフレッシュします。

2.19 アプリケーション・ビルダーの機能強化

スポットライト検索の機能強化

スポットライト検索が拡張されました。ファジー検索のおかげで、検索結果の表示がかつてないほど高速になりました。結果はカテゴリにきちんと整理され、見つけやすくなりました。APEXでは、検索の一致を含む検索文字列がハイライトされるようになり、可視性が向上しました。

異なるワークスペースおよびアプリケーション間でのコンポーネントのエクスポート

コンポーネントのインポートでは、異なるワークスペースまたはアプリケーションへのコンポーネントのインポートおよびエクスポートのサポートが導入されました。以前は、これはコマンドラインからのみ実行できました。詳細は、『Oracle APEXアプリケーション・ビルダー・ユーザーズ・ガイド』コンポーネントのエクスポートのインポートを参照してください。

2.20 サーバー側のジオコーディング

Oracle APEX Autonomous Databaseインスタンスでは、新しいプロセス・タイプであるサーバー側のジオコーディングを使用できます。これにより、ユーザーは郵便宛先住所をUIから独立してサーバー上の座標に変換できます。サーバー側のジオコーディングは、ページ・プロセス、自動化アクション、タスク定義アクションおよびワークフロー・アクティビティでサポートされています。

2.21 RESTソースの階層JSONサポート

このリリースでは、階層型RESTソース・データ・プロファイルのサポートが導入されています。APEXコンポーネントは、すべての階層レベルでRESTソースからのデータを消費できるようになり、"フラット"なJSONレスポンスを返すREST APIに制限されなくなりました。配列列および階層は、RESTソース・カタログでもサポートされています。この機能により、RESTソース・データ・プロファイルでJSONレスポンスの階層を表すことができる配列列が追加されます。RESTソースを使用するAPEXコンポーネント(レポート、チャートおよびフォームを含む)では、リクエストされた階層レベルのデータを操作するために配列列も指定されます。

APEX_EXEC PL/SQL APIを使用して、配列列を使用したDMLリクエストの作成をサポートし、RESTソースから階層データをプログラムでフェッチします。

2.22 RESTソース・インフラストラクチャの改善

データ・プロファイル列定義で新しい「共通」属性を使用できます。これにより、ページの作成ウィザードでは、新しいページの作成時に重要な属性に焦点を当てることができます。

RESTデータ・ソース上に構築された詳細対話グリッドでは、新しい「親列」パラメータ・タイプを使用して、親グリッドの主キー値をRESTソース・パラメータの値として使用できます。

2.23 データベース資格証明のサポート

Web資格証明は、データベース資格証明を参照してクライアントIDおよびクライアント・シークレットを格納できるようになりました。Web資格証明タイプは、「基本認証」または「OAuth2クライアント資格証明」である必要があります。この機能は、Oracle Database 23aiまたはAutonomous Databaseリリース19c以降でのみ使用できます。

データベース資格証明はデータベースによって完全に保持され、APEXは格納されているシークレットにアクセスできません。詳細は、『Oracle APEXアプリケーション・ビルダー・ユーザーズ・ガイド』「Web資格証明でのデータベース資格証明の使用」を参照してください。

2.24 判読可能なエクスポートの機能強化

アプリケーション・エクスポートに、YAML形式での判読可能で差異を簡単に確認可能なバージョンがあります。APEX 24.1では、このエクスポートが複数の機能強化を追加して拡張されました。

判読可能な形式での個々のページのエクスポート

アプリケーション・ビルダーの「ページのエクスポート」オプションまたはsqlcl/コマンドラインを使用して、判読可能なYAML形式でページをエクスポートできるようになりました。この方法を使用すると、ページの異なるバージョンを判読可能な形式で比較できます。

差分分析の改善

判読可能な形式でエクスポートすると、「元のID」「はい」にデフォルト設定されるようになりました。これにより、コンポーネントの主キー(ID)値が元の値を保持し、異なるバージョンを比較するときに差分として表示されなくなります。

アプリケーション・レベルの判読可能なエクスポート

「読取り可能な形式」スイッチを「オン」に設定することで、判読可能なエクスポートのみを許可するようにアプリケーションを構成できます。

判読可能なエクスポートに監査情報を含める

エクスポートされた日付やエクスポートを実行するユーザーの名前などの監査情報をオプションでエクスポート・ファイルに含めることができるようになりました。

2.25 ユニバーサル・テーマの機能強化

ユニバーサル・テーマのContent-Security-Policyの改善

ユニバーサル・テーマ24.1には、Content-Security-Policyをより適切にサポートするための次の改善が含まれています:
  • エラー・ページ・テンプレートに.a-Error-back jsハンドラを追加
  • インラインイベントハンドラを削除
  • 必要に応じて、スクリプト・タグに#APEX_CSP_NONCE_ATTRIBUTE#を追加
  • PopupLOV onload="first_field()"を削除し、かわりにネイティブ自動フォーカスを使用
  • #APEX_CSP_DISPLAY_NONE#置換文字列のサポートを追加し、style=display:none;を使用
  • 8つのテンプレートで#APEX_CSP_DISPLAY_NONE#への参照を追加
  • ボタン・テンプレートに#ONCLICK#置換文字列のサポートを追加
  • ボタンのインラインJavaScriptクリック・イベント・ハンドラ(onclick属性)をページレベルのスクリプト・イベント登録に移動

    注意:

    この変更により、ユニバーサル・テーマ24.1以降のボタンからonclick属性が削除されます。詳細は、「onclickの変更」を参照してください。

Redwood Lightの機能強化

このリリースには、アバター、バッジ、コンボボックスおよびLOVチップのファイル・ドロップ・トレイン(ウィザード)、入力フォーカス・スタイル、対話グリッドおよび対話モード・レポートのフィルタとチップ、およびページ・ヘッダーのマイナーUI機能強化が含まれています。

2.26 動的アクションの機能強化

新しい入力動的アクション・イベント

動的アクションの構成時に入力ブラウザ・イベントを使用できるようになりました。イベントは、フォーム要素の値が変更されるたびに起動されます。これは、値がコミットされたとき(たとえば、[Enter]キーを押したり、オプションのリストから値を選択したとき)にのみ起動する変更イベントとは異なります。

JavaScriptが要素の値をプログラムで変更した場合、入力イベントは起動されません。

動的アクションの新しいクイック選択オプション

クイック選択オプションから「JavaScriptコードの実行」および「サーバー側のコードを実行」を使用できるようになりました。

2.27 ウクライナ語およびベトナム語へのランタイム・メッセージの翻訳

APEXでランタイム・メッセージのウクライナ語およびベトナム語への翻訳がサポートされ、言語サポートが34言語に拡張されました。

APEXでサポートされている言語は、アラビア語、ポルトガル語(ブラジル)、クロアチア語、チェコ語、デンマーク語、オランダ語、フィンランド語、フランス語、フランス語(カナダ)、ドイツ語、ギリシャ語、ヘブライ語、ハンガリー語、アイスランド語、イタリア語、日本語、韓国語、ノルウェー語、ポーランド語、ポルトガル語(ポルトガル)、ルーマニア語、ロシア語、セルビア語(キリル文字)、セルビア語(ラテン文字)、簡体字中国語、スロバキア語、スロベニア語、スペイン語、スウェーデン語、タイ語、繁体字中国語、トルコ語、ウクライナ語、ベトナム語です。

詳細は、『Oracle APEXインストレーション・ガイド』「言語変換されたバージョンのAPEXのインストール」を参照してください。

2.28 処理される最大電子メール数の定義

管理サービスの「ワークスペースごとに処理される最大電子メール数」属性を使用して、ORACLE_APEX_MAIL_QUEUEスケジューラ・ジョブを呼び出すたびにキューから処理される、ワークスペース当たりの電子メール・メッセージの数を定義できるようになりました。

2.29 対話モード・レポートの代替ラベル

対話モード・レポートに、「ヘッダー」、「代替ラベル」という新しい属性が追加されました。ヘッダーにHTMLタグなどの正しく表示されない余分な書式設定が含まれる場合に代替ラベルを使用します。APEXでは、ダイアログおよびすべての列ヘッダーで代替ラベルが使用されます。

2.30 統合された権限管理

管理サービスでワークスペースにスキーマを割り当てる場合、「APEX権限を付与」という新しいスイッチがあります。有効にすると、APEXはAPEX_GRANTS_FOR_NEW_USERS_ROLEの権限をスキーマに付与します。プロシージャAPEX_INSTANCE_ADMIN.ADD_SCHEMAに同等のパラメータが存在します。

2.31 成功メッセージの自動終了

「成功メッセージの自動終了」属性をオンにして、すべてのアプリケーション成功メッセージを自動的に終了するように設定できるようになりました。属性は、アプリケーションのユーザー・インタフェース設定にあります。

また、新しいapex.message.setDismissPreferences APIを使用して、メッセージのタイミングを制御し、自動終了のオン/オフを切り替えることもできます。

2.32 PL/SQL APIの更新

APEX_AUTOMATION

新しいTERMINATE関数は、現在実行中の自動化を終了します。これにより、既存のABORTファンクションは非推奨になります。

APEX_EXEC

新しいDESCRIBE_QUERY関数は、データ・ソース(ローカル、RESTソースまたはREST対応SQL)の列とデータ型を記述します。

APEX_INSTANCE_ADMIN

APEX_INSTANCE_ADMINには複数の変更があります:
  • SET_WORKSPACE_PARAMETERおよびGET_WORKSPACE_PARAMETERとともに使用するための新しいパラメータEXPIRE_FND_USER_ACCOUNTSMAX_LOGIN_FAILURESおよびACCOUNT_LIFETIME_DAYSを追加して、実行時専用インスタンスのアカウント・ロックを制御します。
  • ワークスペース・スキーマを追加するときに、ADD_SCHEMAプロシージャに新しいp_grant_apex_privilegesパラメータを追加します。
  • 1つのパラメータp_usernameを受け入れるCREATE_OR_UPDATE_ADMIN_USERプロシージャのシグネチャ2を追加します。これにより、インスタンス管理ユーザー・アカウント(INTERNALワークスペース内のユーザーなど)を作成します。アカウントがすでに存在する場合は、このプロシージャによってロック解除されます。これにより、ランダム・パスワードを使用してアカウントが作成または更新されます。これは、ビルダー認証がデータベース・アカウントの場合には必要ありません。

APEX_PLUGIN_UTIL

新しいPRINT_READ_ONLY APIは、読取り専用アイテムのレンダリングを処理します。この新しいAPIは、既存のapex_plug_util.print_display_onlyのかわりに使用する必要があります。

2.33 JavaScript APIの更新

新しいインタフェース、イベント、オプションおよび関数

このリリースには、次の新しいインタフェース、イベント、オプションおよび関数が含まれています:
  • 新しいインタフェース:
    • cardsRegion
    • templateReportRegion
  • apexネームスペースの新しいイベント:
    • apexcurrentrowchange
    • apexselectionchange
  • 新しいアイテム・インタフェース・メソッド:
    • getMultiValueStorage
    • getSeparator
  • apex.item.createに追加された新しいオプション:
    • storageType
    • separator
  • 新しい関数: apex.message.setDismissPreferences
  • apex.message.setThemeHooksに追加された新しいオプション: successMessageContainerSelector

選択に関連する変更および追加

このリリースには、modelインタフェースおよびtableModelViewBasetableModelViewおよびgridウィジェットでの選択に関連する次の変更および追加が含まれています:
  • tableModelViewウィジェットの新しいオプション:
    • accLabelColumn
    • allowCopy
    • clipboardValue
    • entityTitlePlural
    • entityTitleSingular
    • itemNavigationMode
    • itemSelector
    • loadIncompleteSelection
    • multiple
    • selectAll
    • selectAllId
    • selectionStateItem
    • updateStatus
  • tableModelViewウィジェットの新しいイベント: currentitemchange
  • tableModelViewウィジェットの新しいメソッド:
    • fetchAllData
    • getCurrentItem
    • getCurrentItemValue
    • getSelectedValues
    • selectAll
    • setCurrentItem
    • setCurrentItemValue
    • setSelectedValues
  • gridウィジェットの新しいオプション:
    • constrainNavigation
    • entityTitlePlural
    • entityTitleSingular
    • loadIncompleteSelection
    • selectionStateItem
    • updateStatus
  • gridウィジェットの新しいイベント: currentcellchange
  • gridウィジェットの新しいメソッド:
    • fetchAllData
    • getColumnForCell
    • getCurrentCell
    • setCurrentCell
  • modelインタフェースの新しいメソッド:
    • getSelectionState

その他の変更点

このリリースに含まれているその他のJavaScript APIの変更点:
  • 日付サポートがfacetsRegionに追加されました。dataTypeプロパティに、"DATE""TIMESTAMP""TIMESTAMP WITH TIME ZONE""TIMESTAMP WITH LOCAL TIME ZONE"および新しいプロパティformatMaskが含まれるようになりました。
  • apex.util.toArrayへの変更: pSeparator argはオブジェクトにできるようになりました。

更新された説明、例または誤入力の修正

このリリースには、次の領域で更新された様々な説明、例または誤入力の修正が含まれています:
  • apex.message
  • apex.page.confirm
  • navigation.openInNewWindow
  • apex.util.toArray
  • apex.locale.toNumber
  • apex.util.applyTemplateループ・ディレクティブ
  • numberFieldItem
  • item
  • item.getValue
  • tableModelViewBase
  • tableModelView
  • grid
  • recordView
  • model
  • iconList
  • $v
  • $v_CheckValueAgainst
  • apex.widget.waitPopup
  • treeView
  • treeNodeAdapter
  • mapRegion

2.34 JavaScriptライブラリのアップグレード

  • Backbone 1.6
  • cropperjs 1.6.1
  • DOMPurify 3.1.4
  • FullCalendar 6.1.11
  • Less.js 4.2.0
  • MapLibre 4.0.1
  • Marked.js 12.0.1
  • Monaco Editor 0.47.0
  • Oracle JET 16.0.1
  • Oracle Rich Text Library(ORTL) 1.0.2
  • terser 5.30.3
  • TinyMCE 6.8.3
  • Turndown 7.1.3