2020年10月30日金曜日

ドロップゾーンの見栄えを良くする

Philipp Hartenfellerさんが彼のブログで、Oracle APEX 20.2で新しく追加されたコンポーネントである、ドロップゾーン(ファイルをドラッグ&ドロップで選択させるページ・アイテム - ファイル参照)の見栄えを良くするCSSを公開していました。彼の記事APEX 20.2: improve Dropzone UX with CSSこちらです。

試しにCSSを設定した結果はこちらです。


元々はこんな感じです。


CSSを設定する場所はページ・プロパティのインラインCSSです。

設定するCSSについては、Philipp HartenfellerさんのGitHubを参照してください。

2020年10月28日水曜日

Oracle APEX アプリケーションの翻訳方法の紹介

 先日、Oracle Groundbreakers APAC Virtual Tour 2020のセッションとして、Oracle APEXアプリケーションを翻訳する方法について紹介しました。

セッションの元記事は、こちらです。セッションそれ自体は45分間なので、ブログの記事よりも内容が絞られています。

また、セッションではアプリケーションの翻訳に、XLIFF翻訳ファイルを使っていますが、そこで使用しているアプリケーションの説明はこちらです。

Oracle APEXがあらかじめ保持している翻訳済みのメッセージは、WWV_FLOW_MESSAGES$表に含まれています。それらの翻訳済みメッセージを利用するため、以下のSQLでコピーしています。

insert into cwr_messages(name, message_language, message_text) select name, message_language, message_text from APEX_200200.wwv_flow_messages$; 

スキーマのAPEX_200200の部分は、インストールされているAPEXのバージョンで変わります。20.1のデータを使って構成しているアプリケーションは、こちらからアクセスできます。ユーザー名とパスワードが同じ文字であればログインできます。例えばtranslate/translateです。

Autonomous Databaseなどは、APEXの製品スキーマへの直接アクセスが制限されているので、手元のVirtual Boxなどに一旦Oracle APEXをインストールし、そこで一旦コピーします。コピー結果は、データワークショプのXMLエクスポート/インポートの機能を使うことで、Cloud上のAPEXへインポートすることができます。

最後にセミナー動画です。資料を表示する代わりに、実際にアプリケーション・ビルダーによる操作を行っています。


声がとても小さいです。


2020年10月12日月曜日

Oracle APEX 20.2で予定されている新機能の紹介

apex.oracle.comが20.2.0.00.19へバージョンアップされています。

それに伴い、Oracle APEXのProduct ManagerのChaitanya Koratamaddi(@chaitanya_in)がOracle APEX 20.2の新機能を紹介しています。

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

日本語に翻訳してみました。全ての機能を確認してはいないので、翻訳に不備はあるかもしれません。そのときは実際にapex.oracle.comで確認してみてください。

個別の機能についてはPatrick Wolf(@patrickwolf)がTwitterに発信しています。

カード・リージョンなどはhttps://apex.oracle.com/utとして提供される情報が公開されています。

https://apex.oracle.com/pls/apex/apex_pm/r/icons/card-regions


APEX 20.2 新機能


カード・リージョン


軽量なレポート・リージョンとしてカード・リージョンが新規に追加されます。カード・リージョンでは、レポート項目のレイアウト、外観、アイコン、バッジ、メディアおよびアクションを属性として指定し、カスタマイズすることができます。レポートの一項目であるカードとして、BLOBカラム、URL、またはiFrameを使ったビデオを埋め込めます。カードは様々な情報を小さな領域に便利にまとめることができます。それぞれのカードは、より詳しい情報へ案内するために、アクションに紐づけられた複数のボタン、およびリンクを含むことができます。



オートメーション


オートメーションは検索した結果によって実行される、PL/SQLによって記述された一連の処理です。データの変更をモニターし、適切な処理を実行します(受け付けた要求を自動的に承認したり、電子メールをアラートとして送信したり、といった処理が例としてあげられます)。オートメーションは、スケジュール(定期的に呼び出す)、もしくは、オンデマンド(APEX_AUTOMATIONパッケージの呼び出しによる)の2つの方法で呼び出されます。検索方法として指定できるのは以下です。


  • 表/ビュー、SQL問合せ、SQL文を返すPL/SQLファンクション
  • ローカル・データベースまたはREST対応SQL
  • RESTデータ・ソース(これまではWebソース・モジュールと呼ばれていた)


ファセット検索の拡張


  • バー/パイ・チャートによるファセットの個数の表示。ダイアログまたは'ダッシュボード'領域に、ファセットの個数をチャート表示します。
  • 真偽値をもつカラムをまとめて、チェックボックスにて表示。'yes'または'true'を含むカラムを、真偽値を持つカラムとして検出します。
  • 入力フィールド・ファセットでの、ユーザーが入力した値とファセット・カラムの型の比較。距離(数値)を入力して、その距離内の商店を探すか、または、入力した文字列を含んだ列を取り出す、といった実装が可能になります。
  • 個別値を持つファセットのパフォーマンス向上。


レポート出力


  • 対話モード・レポート、対話グリッドおよびクラシック・レポートに、PDF印刷およびExcel形式のダウンロードが組み込まれます。
  • 対話モード・レポート - 電子メール送信: すべてのダウンロード・フォーマットをアタッチできるようになります。
  • BI Publisherとの統合強化。
  • 新規にAPEX_REGION.EXPORT_DATAおよびAPEX_DATA_EXPORT APIが提供され、これらを使用したプログラミングによるPDF、CSV、Excel、HTML、JSONおよびXMLファイルの生成が可能になります。
  • PDF出力で、中国語、日本語、韓国語の印刷がサポートされます。


RESTデータ・ソース同期


RESTデータ・ソース(以前のWebソース・モジュール)とローカル・データベースのデータ同期がサポートされます。スケジュール(定期的)とオンデマンド(APEX_REST_SOURCE_SYNCパッケージの呼び出しによる)が選択できます。開発者は、RESTサービスからローカル表へデータをコピーするために、PL/SQLのコードを記述する必要はなく、APEXの機能を使って設定することができます。


  • コピーを保存する表をRESTデータ・ソースの属性に基づき、自動的に作成することができます。
  • RESTデータ・ソースから取得したデータの扱いとして、ローカルの表への追加、またはマージ、のどちらかを選択できます。ローカル表のデータを完全に置き換えることも可能です。
  • RESTデータ・ソースを利用しているコンポーネントを、ローカル表に置き換えるように構成できます。
  • HTTPリクエストの制限(おそらく、1リクエストあたりで取得する行数 - ORDSが提供しているページングの設定)、コミット周期、データの置き換え時に使用するデータの削除方法などは調整可能です。


RESTデータ・ソース・コネクタ・プラグイン


APEXプラグイン・インフラストラクチャとして、新たにコネクタ・プラグインが追加されます。 外部のREST APIをRESTデータ・ソースとして扱うプラグインを作ることができます。これによりAPEXが扱える、検索結果のページネーションサーバー側のフィルタリングを、ORDS以外のサード・パーティのRESTサービスやOracle Fusion SaaSサービスなどで活用することが可能になります。


  • 開発者はRESTデータ・ソースのタイプとなるプラグインを作成します。
  • プラグインのコードにより、RESTサービスに依存したページネーションやフィルタ条件のREST APIへの指定を行います。
  • APEXがRESTデータ・ソースを呼び出すとき(例えば、レポートの印刷)、APEXのエンジンは必要な情報とともに、プラグインのコードを呼び出します。
  • プラグインのコードは、1回もしくは複数回のHTTPリクエストを発行し、その結果をAPEXエンジンに返却します。
  • APEXはプラグインから得られたRESTの応答を処理します。


新しいWeb資格証明のタイプ


APEX 20.2では、新しくURL問合せ文字列、および、HTTPヘッダーというWeb資格証明のタイプが追加されます。これにより、例えばURLにAPIキーの挿入を必要としているRESTサービスのために、その認証情報を暗号化して安全に保存する機能が開発者に提供されます。APEXは、これらの秘匿する必要がある情報を、実行ログやデバッグログに書き出されないように保証します。


Web資格証明はURLパターンによって保護することが可能になります。特定のパターンの文字列で開始するURLのみがWeb資格証明を使用できます。それ以外はエラーになります。URLパターンを変更するには、Web資格証明の秘匿部分を再度入力する必要があります。


Redwood UI


ユニバーサル・テーマがRedwood Lightテーマ・スタイルをサポートします。テーマ・ローラから指定可能です。既存のアプリケーションを最新のユニバーサル・テーマでリフレッシュすると、この新しく追加されたテーマ・スタイルを使用することができるようになります。


開発者向け機能拡張


  • ページ・デザイナに含まれるプロパティ・エディタが複数のタブをサポートするよう拡張されます。リージョンの属性などがタブになり、アクセスがより容易になります。
  • 開発環境で使用されている全てのコード・エディタが新しく置き換えられ、コードの記述がとても容易になります。新しいコード・エディタには、コードの補完機能の強化、シンタックス・ハイライト、アクセシビリティの大幅な強化が含まれます。
  • 埋込みコード(Embedded Code)というユーティリティが追加され、APEXアプリケーションに埋め込まれているSQL、PL/SQLおよびJavaScriptのコードを一覧することができるようになります。この機能により、開発者による、コード・レビュー、セキュリティ評価、アプリケーションのチューニングといった作業をはるかに効率的に実施することが可能になります。一覧されたコードはアプリケーション・ビルダーまたはAPEX_EXPOPTパッケージを使って、ファイルとして保存することができます。
  • クイックSQLによる記述を、モデルの保存として保存することができるようになります。また、カラムのデフォルト値を用いた主キー値の自動生成をサポートします。


アイテムの追加と拡張


  • 新しいチェックボックス・アイテム・タイプ。切替え(Switch)と同様に、真偽値に対応するチェックボックスになります。編集可能かどうかにかかわらず、対話グリッドでも利用可能です。以前のチェックボックスはチェックボックス・グループと名称が変更されます。
  • ファイル参照(File Browse)・アイテム・タイプはドロップ・ゾーンとして表示され、アップロード対象のファイルをドラッグ&ドロップで指定することが可能になります。
  • リッチ・テキスト・エディタ・アイテム・タイプはCKEditor 5にアップグレードされ、マークダウンの出力が追加されます。
  • テキスト・フィールド・アイテム・タイプは、テキストの大文字/小文字の設定が追加されます。入力値を大文字/小文字に変換することができます。
  • テキスト・フィールドの、空白の切捨て、テキストの大文字/小文字、およびテキスト領域の空白の切り捨ては、サーバー側だけでなくクライアント側でも適用されるようになります。


その他


  • ツリー・リージョン・タイプにて、遅延ロードおよびリージョンのリフレッシュがサポートされます。
  • 対話グリッドでの、保存されたレポートの静的IDの扱いについて
    • レポートへのリンクとして、レポート名ではなく、保存されたレポートの静的IDが使用されます。
    • 対話グリッドにリンクする場合、APEX_IG APIはレポート名ではなく、保存されたレポートの静的IDを使います。
  • Webソース・モジュールはRESTデータ・ソースと名称が変更されます。


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


  • Oracle JET 9.1.0
  • jQuery 3.5.1
  • CKEditor 5
  • Monaco Editor 0.20.0