2021年4月27日火曜日

Oracle APEX 21.1で提供される新機能の紹介

4月24日のメンテナンス以降、apex.oracle.comが出荷前の21.1へアップグレードされました。リリースが予定されている新機能について、確認することができます。

https://apex.oracle.com/pls/apex/apex_pm/r/apex211/new-features

Oracle APEXのアプリケーションのエクスポートは、より低いバージョンへはインポートできません。ですので、これからAutonomous Databaseやダウンロード版の21.1がリリースされるまでは、apex.oracle.comからエクスポートしたアプリケーションは、他の環境にインポートできません。今までの実績では1ヶ月程度で、ADB上の新バージョンやダウンロード版がリリースされていますが、それまでは要注意です。

リストされている新機能について、日本語の説明(大体は元資料の翻訳)と補足を記述します。


新しいマップ・リージョン


マップ・リージョンという新しいコンポーネントが追加されました。

  • ポイント(英語はLine)、ポリゴンヒート・マップ押出しポリゴン(英語ではExtruded Plygonまたは3D Polygon)をレイヤーとして選択できます。マップ・リージョンのレイヤーは、チャート・リージョンのシリーズと似ています。
  • Oracle Elocation Serviceの地図を使用しています。使用にあたって、APIキーは不要です。
  • ズームやドラッグといった対話的な操作ができます。マップ上のオブジェクトの詳細を表示できます。
  • Oracle SpatialのSDO_GEOMETRYオブジェクト型GeoJSONおよび単純な数値列を扱うことができます。
  • 表示するデータとして、Oracle APEXの一般的なソースである、SQL問合せ、REST対応SQLおよびRESTデータ・ソースを扱うことができます。
  • 多数のマーカー用のアイコンとSVGの図形が含まれています。
  • ファセット検索と統合されています。
  • 動的アクションとJavaScript APIをサポートしています。
バックグラウンドで表示させる地図として、色調を除けば、以下の2種類が選択できました。

OpenStreetMap(コピーライトにはOpenMapTilesOpenStreetMapがクレジットされています)


    Oracle World Map(コピーライトにはOracle CorporationとHEREがクレジットされています)



    ネィティブ・マークダウン・サポート


    • 新しくAPEX_MARKDOWNパッケージがPL/SQL APIとして提供されています。マークダウンをHTMLに変換するTO_HTMLというファンクションにて、変換を行います。
    • 設定書式マークダウンが追加され、特殊文字をエスケープのフラグは無くなりました。
    • クラシック・レポートの列タイプマークダウンリッチ・テキストとなり、書式マークダウンを指定します。
    • 対話モード・レポートの列タイプにリッチ・テキストが追加されます。
    • データのエクスポート時に、HTMLに加えマークダウンを選択できます。
    • リッチ・テキスト・エディタのデフォルトがマークダウンになります。
    • HTMLテキストの代わりにマークダウンを扱うことにより、セキュリティ面で有利になります。

    今までに調べた範囲では、CommonMarkを扱い、GFMの拡張は実装していません。また埋め込みHTMLはサポートしていません。

    ユニバーサル・テーマの拡張


    • Redwood Liteのテーマ・スタイルが拡張され、よりオラクルのRedwoodデザイン・システムに沿うようになりました。
    • 行CSSクラスのプロパティが、リージョン、ページ・アイテム、ボタンに追加されました。レイアウト・モディファイアを行CSSクラスとして設定できます。
    • テーマ・スタイルCSSクラスがテーマ・スタイルに追加されました。こちらに記載したCSSクラスは、すべてのページのbodyタグのclass=に追加されます。

    ヘルプにはBODY_CSS_CLASSESに追加されるとありますが、正しくはPAGE_CSS_CLASSESです。今後のバージョンでヘルプの文章は修正される予定です。

    ZIP形式のエクスポートがインポート可能


    • アプリケーション・ビルダーからZIP形式でエクスポートしたファイルを、ZIP形式のままインポートできるようになりました。
    • ZIPをファイル・システムに一旦展開し、再度、ZIPに固めた後でもインポートが可能です。
    • APEXExportユーティリティにて出力されたファイル構成(-splitオプション付き)のまま、ZIPで固めてインポートすることができます。

    遅延ローディングの対象を追加


    • クラシック・レポートおよび対話モード・レポートが、遅延ローディングをサポートしました。
    • レポートのデータは、ページが表示されてから、またはタブが表示対象になってからロードされます。

    新しいデータ・ローディング


    • カラム・マッピングは開発時に定義します。エンド・ユーザーによる定義は不要になります。
    • カラム・マッピングには、名前による一致と、正規表現による一致が使えます。
    • トランスフォーメーション・ルールまたは表参照により、データを変換できます。
    • アップロードの操作がとても単純になります。アップロードするファイルを選択し、プレビューを確認し、データのロードを実行します。
    • CSV、XLSX、XMLとJSON形式のファイルを表またはコレクション(APEXのコレクションでSODAコレクションではありません)にロードできます。
    • データのロードとして、追加、マージ、置換のどれかを構成できます。エラー処理の有無も選択できます。
    • データのロードというプロセス・タイプが新規に追加されました。データのロードを行うページはカスタマイズ可能です。
    • PL/SQL APIのAPEX_DATA_LOADINGが利用可能です。
    以前のバージョンで利用できたデータ・ロード・ウィザードのページは、21.1からは作成できません。PL/SQL APIのAPEX_DATA_LOADINGが提供されることにより、パッケージAPEX_DATA_PARSERを使ったコーディングはしなくてもよくなりそうです。

    ファセット検索の拡張


    ファセットの構成をエンドユーザーがカスタマイズできるようになりました。
    • ファセットとファセット・グループの属性として、詳細以下に、表示の切替え初期表示の2つが追加されました。
    • 表示の切替えONの場合、エンドユーザーはファセットを増やすのポップアップ画面より、表示/非表示を切り替えることができます。
    • 普段は必要のない詳細なファセットを最初は非表示(初期表示OFF)とし、ユーザーが必要なときに利用可能にできます。

    新しい日付ピッカー

    jQueryの日付ピッカーがOracle JETのコンポーネントに置き換えられています。

    • 複数の表示モードが提供されています。JETベースのPopupInline、それとNative HTML(JETを使用しない - モバイルUX向け)です。
    • すべての表示モードで日付と日付と時間をサポートしています。時間は新設された属性、時間の表示で制御します。
    • 日付として設定可能な、最小日付最大日付静的(Static)な値、またはアイテムによって動的(Item)に指定できます。
    • その他にUXの向上(年の選択 - Year Picker、月の選択 - Month Picker)、表示を制御する追加の属性として週の表示(Show Week)、月の範囲外の日(Hidden, Selectable, Visible)などが追加されています。

    左から、Popup、Inline、Native HTMLの形式です。Inlineは日付ピッカー自体が設定値を表しています(そのため閉じることがありません)。


    Native HTMLは表示するデバイスによって、違いが出てくるはずです。


    RESTデータ・ソース


    • CSVデータのサポートが追加されます。同期の機能を使うと、リモートから取得したCSVデータとローカル表を定期的に同期することができます。
    • トランフォーメーション・ルールとルックアップを使用して、データの変換ができます。
    • 共有コンポーネントのRESTデータ・ソースに、登録されている同期化を一覧するレポートが追加されています。

    カラー・ピッカー


    カラー・ピッカーもOracle JETのColor Spectrumコンポーネントに置き換えられ、新たに構成オプションが追加されています。

    • 複数の表示形式:Popup、Inline、Color-only Popup、Native Color Picker
    • カラー・プリセット:Theme Style ColorまたはCustom Color
    • コントラスト対象:None、Page Item、Static Color
    • 戻り値の形式:Hex, rgb, rgb/rgba, hsl, hsl/hsla, Any CSS Value

    レポート印刷


    • アラビア語とヘブライ語のPDF出力をサポートしました。

    開発ツールの更新


    • Monacoをベースにしたエディタの更新
      • オプションの追加:ミニマップ、候補の表示、行番号の表示、空白の表示、アクセシビリティ・モード
      • 存在しないページ・アイテムへの参照が強調されます。
      • 大文字/小文字を変換するキーボード・ショートカット(Ctrl-Alt U/L 大文字/小文字)
      • 新しいアクション:Ctrl-Alt-Cにより、'または"で囲んである文字を除いて、大文字から小文字、小文字から大文字へ変換する。
    • FullCalendarのアップグレード (v5.6.0)
      • 遅延ローディングのサポート
      • ファセット検索で利用可能

    JavaScriptライブラリのアップデート


    • Oracle JET 10.0.0
    • FullCalendar 5.5.1
    • CKEditor5 25.0.0
    • Monaco Editor 0.22.3

    それ以外のアップデート


    • 対話グリッドのAttributesの外観の固定の行の高さOFFにすることにより、行の高さを可変(複数行表示)にできるようになりました。

    • 数値フィールドは書式マスクとクライアント側の検証の設定に従って、自動的にフォーマットされるようになりました(通貨マークやカンマ区切り)

    どちらも100(100をタイプします)を入力する例です。

    書式マスクはサーバーから取り出すときに適用されるため、入力がそのまま表示されます。


    クライアント側で変換されるようになります。

    • クライアント側の検証で発生するメッセージ(必須の値など)が、サーバー側の検証で発生するメッセージと一貫性を持つよう変更されました。

      元々の表示はこうです。


      以下に変更されました。

      • SQLワークショップにOracle Spatialの空間インデックスを作成するウィザードが追加されました。
      • APEX_JSONとAPEX_EXECパッケージが、GeoJSONとSDO_GEOMETRYをサポートしました。

      英語の資料に記載がないもの


      動的アクションのTrue/Falseアクションへの各種条件の追加


      クライアント側の条件サーバー側の条件認可スキームビルド・オプションを設定できるようになります。


      アプリケーション・ビルダーのユーティリティの追加


      フォントAPEXアイコンアプリケーション・チェックサムページ・チェックサムが追加されています。


      フォントAPEXアイコンは、ファセット検索を使ってフォントを探すユーティリティです。


      アプリケーション・チェックサムを呼び出すと、以下の画面が表示されます。アプリケーションが同じかどうかを確認するためにチェックサムを使用できます。


      ページ・チェックサムは、一覧が表示されます。


      以上になります。

      Oracle APEXのアプリケーション作成の参考になれば幸いです。