Oracle APEX 22.1にて新たに提供されたセッション・オーバーライドの機能を確認するため、以前に作成した翻訳済みアプリケーション(こちらのワークショップ)をOracle APEX 22.1で作り直してみました。
以下にAPEXのバージョンアップに関連して、変更が必要だった手順を記載します。
ログイン・ページに言語セレクタを作成する
Oracle APEX 22.1のアプリケーション作成ウィザードは、ログイン・ページ(ページ番号9999)に言語セレクタを作成してくれないようです。言語セレクタを手作業で作成する必要がありました。
ログイン名、パスワードを入力するページ・アイテムを含むリージョン(今回の例ではリージョン世界食堂)のサブ・リージョン(Sub Region)となるリージョンを作成します。
識別のタイトルを言語セレクタ、タイプとしてPL/SQL動的コンテンツを選択します。ソースのPL/SQLコードとして以下を記述します。
APEX_LANG.EMIT_LANGUAGE_SELECTOR_LIST;
レイアウトの親リージョンは世界食堂、位置はSub Regionsとします。外観のテンプレートとしてBlank with Attributesを選択し、リージョンのタイトルや枠の表示を省略します。
フォーム付きレポートの作成手順の変更
Oracle APEX 22.1ではページ作成ウィザードが簡素化され、ページの作成が簡単になっています。日時データとタイムゾーンの扱いを確認するために、表WR_ORDERSを扱うレポートとフォームのページを作成していますが、この手順が変わります。
新しいページ作成ウィザードによる手順は、以下になります。
ページ作成ウィザードを起動し、コンポーネントのクラシック・レポートを選択します。
ページ定義にて、
名前を
注文一覧、
ページ・モードとして
標準を選択します。
ページ・モードはレポートのページに適用されます。フォーム・ページを含めるを
ONにするとフォームのページも同時に作成されますが、
フォーム・ページはつねにモーダル・ダイアログになります。
フォーム・ページを含めるをONにし、フォーム・ページ名を注文とします。
データ・ソースの表/ビューの名前にWR_ORDERSを指定します。
ナビゲーションのブレッドクラムとナビゲーションをONにします。これらの設定はレポートのページに適用されます。フォーム・ページはつねにモーダル・ダイアログであるため、ブレッドクラムおよびナビゲーションは不要です。
以上の設定を行い、次に進みます。
主キー列1として、ID(Number)を選択します。ページの作成を実行します。
クラシック・レポートのページ注文一覧がページ番号2、フォームのページ注文がページ番号3として作成されます。表WR_ORDERSの列MENU_IDには表WR_MENUSのIDを参照する、外部キー制約が定義されています。そのため、共有コンポーネントのLOVとしてWR_MENUS.MENU_NAMEが、自動的に作成されます。
クラシック・レポートの列MENU_IDの識別のタイプとしてプレーン・テキスト(LOVに基づく)が選択され、LOVとして共有コンポーネントのWR_MENUS.MENU_NAMEが指定されています。
フォームに含まれるページ・アイテムP3_MENU_IDも同様に、識別のタイプとして選択リストが選択され、LOVとして共有コンポーネントのWR_MENUS.MENU_NAMEが指定されています。
自動的に作成された共有コンポーネントのLOVWR_MENUS.MENU_NAMEは、外部キー制約の定義を元にしています。そのため、表WR_MENUSがデータ・ソースになっています。
翻訳済みのビューWR_MENUS_VLが定義済みなので、ソースの表/ビューの名前をWR_MENUS_VLに置き換えることにより、選択リストがそれぞれの言語に翻訳されます。
自動タイムゾーンをONにする場合は、アプリケーションの別名に日本語を含まない
Oracle APEX 22.1でも、この点は修正されていないようです。
アプリケーション定義のグローバリゼーションの自動タイムゾーンをONにします。
このように設定した場合、
アプリケーションの別名には日本語を含まないようにします。
翻訳済みアプリケーションのインポート後はパブリッシュする
翻訳済みのアプリケーションをインポートしただけでは、翻訳が有効にならないようです。アプリケーションのインポート直後は、言語セレクタが表示されません。
共有コンポーネントのグローバリゼーションのアプリケーション翻訳を開きます。Oracle APEX 22.1からは、翻訳済みのアプリケーションの数も表示されます。アプリケーション世界食堂はメインの言語が日本語で、翻訳として英語、中国語(簡体)、韓国語を含んでいるため、その数は3になっています。
翻訳アプリケーションのパブリッシュを開きます。
翻訳済アプリケーションをすべて選択し、パブリッシュを実行します。
パブリッシュを実行した後にアプリケーションを実行すると、サインインの画面で言語セレクタが表示されます。
今回作成したアプリケーションを以下に起きました。
https://github.com/ujnak/apexapps/blob/master/exports/world-diners.zip
このアプリケーションを、Oracle APEX 22.1の新機能セッション・オーバーライドの説明に使用する予定です。
以上になります。
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完