始める前に
目的
このチュートリアルでは、Oracle Exadata Express Cloud ServiceでOracle Application Expressを使用してデータベース・アプリケーションを作成する方法を示します。
所要時間
約80分。
概要
Oracle Application Express (Oracle APEX)は、Oracle Database用の迅速なWebアプリケーション開発ツールです。Webブラウザと限られたプログラミングの経験のみを使用して、高速かつセキュアなプロフェッショナル用のアプリケーションを開発およびデプロイできます。Oracle Application Expressは、オンプレミスであってもOracle Cloud内にあってもOracle Databaseで使用できます。
このチュートリアルでは、Oracle Exadata Express Cloud Serviceを使用し、Oracle Application Express Release 5.0を使用してOracle Cloudでデータベース・アプリケーションを作成および実行します。
このチュートリアルの実行時には、次の各事項に注意してください。
- Exadata Express Cloud Service内のOracle Application Expressワークスペースへのログイン: Oracle Database Cloud Serviceについては、Oracleヘルプ・センターを参照してください。これを行うには、クラウド用のOracleヘルプ・センターに移動し、「パフォーマンスおよびインフラストラクチャ」を選択します。ここから、Database Cloud Serviceを選択すると、「スタート・ガイド」ページが開きます。
- アプリケーションID: このチュートリアルのスクリーンショットでは、ぼやけたアプリケーションIDが表示されます。自分のアプリケーションIDは、アプリケーションの作成時に自動的に割り当てられる任意の値です。
- 注意: このチュートリアルで説明するExadata Express Cloud Service内ではなく、オンプレミスOracleデータベース内のワークスペースにアクセスする場合は、Oracle Application Expressインスタンス管理者によってワークスペースに複数のスキーマが割り当てられていることがあります。
必要なもの
このチュートリアルを始める前に次の用意をする必要があります。
- ローカルの非クラウド・コンピュータ上のOracle Database 11g以降のリリースにアクセスできるようにする。
- files.zipファイルを作業ディレクトリにダウンロードして解凍する。
- 次のことを実行してデータベース環境を構成する。
- 次の環境設定手順を指定された順序で実行します。
- 『Oracle Application Express管理ガイド』の新規ユーザー・アカウントの作成に関する項の手順を参照してOracle Application Expressユーザーを作成します。
- files.zipを作業ディレクトリにダウンロードします。
- Oracle Application Expressホーム・ページから、「SQL Workshop」タブの横の下矢印をクリックし、「SQL Scripts」を選択します。
deinstall_database_obj.sql
をアップロードおよび実行して、アプリケーション環境をリセットします。install_database_obj.sql
をアップロードおよび実行して、これらのラボで使用する表およびデータを作成します。
データベース・アプリケーションの作成
-
Oracle Application Expressのホーム・ページで、「Application Builder」タブの横の下矢印をクリックし、「Database Applications」を選択します。
-
「Create」アイコンをクリックします。
-
「Desktop」を選択し、「Next >」をクリックします。
-
「Name」にProject Tasks Applicationと入力し、「Next >」をクリックします。
-
デフォルトでは、「Home」ページが作成されます。その他のページを追加するには、「Add Page」をクリックします。
-
「Page Type」で「Master Detail」を選択します。「Master Detail」では、2ページのレポートとフォームの組合せが作成されます。「Parent Page」で「Home(1)」を、「Master Table Name」で「OBE_PROJECTS」を、「Detail Table Name」で「OBE_TASKS」を選択します。「Add Page」をクリックします。
-
「Master Detail」ページが作成されます。「Next >」をクリックします。
-
デフォルトのままにして「Next >」をクリックします。
-
このアプリケーションへのアクセスに使用する認証のタイプを指定する必要があります。「Authentication Scheme」で、「Application Express Accounts」を選択します。
-
アプリケーション全体にわたり使用される日付形式を定義する必要があります。この日付形式は、アプリケーション内のページを表示または送信する前に、
NLS_DATE_FORMAT
データベース・セッション設定を変更するために使用されます。この形式は、日付を示すすべてのレポートで使用されます。また、Date Picker (use Application Date Format)タイプのフォーム・アイテムで選択されます。アプリケーションの「Application Date Format」として「DD-MON-YYYY」を選択し、「Next >」をクリックします。 - 「Create Application」をクリックします。
-
4ページを含むProject Tasks Applicationが正常に作成されます。「Run Application」アイコンをクリックします。
-
「Log In」画面が表示されたら、Oracle Application Expressの資格証明を入力し、「Log In」をクリックします。
注意: Application Expressホーム・ページで「Administration」ドロップダウン・メニューから「Manage Users and Groups」を選択することで、Application Expressユーザーを追加できます。 -
Project Tasks Applicationホーム・ページが表示され、ページの左側にナビゲーション・メニューが示されます。「Obe Projects」をクリックします。
-
プロジェクトのリストを含むレポートが表示されます。プロジェクトのいずれかの横にある「Edit」アイコンを選択し、「Master detail Form」を表示します。
-
「Master Detail Form」が表示されます。このページでは、ユーザーが、プロジェクトの詳細、およびプロジェクトに関連付けられているタスクの詳細を編集できます。また、ユーザーは、新しいタスクを現在のプロジェクトに追加できます。
マスター領域では、前ボタンと次ボタンを使用して、前のプロジェクトや次のプロジェクトに移動できます。たとえば、前の手順でPublic Websiteプロジェクトの横にある編集アイコンをクリックした場合は、前ボタンがここに表示されます。
詳細領域には、「Add Row」ボタンが表示されます。このボタンを使用すると、保留中の変更内容を保存してから、新しいタスクをプロジェクトに追加できるよう別の行が追加されます。「Delete Checked」ボタンも必要です。このボタンは、各タスクの左側にあるチェック・ボックスとともに使用します。「Delete Checked」ボタンをクリックすると、チェック・マークが付けられているタスクが削除されます。この機能を使用する場合は、削除確認が組み込まれていることに注目してください。これにより、進行前に削除を確認するメッセージが表示されます。
プロジェクトの名前を変更し、「Save」をクリックします。
アプリケーション・オブジェクトの編集
「Master-Detail」フォームは十分に機能的ですが、外観を改善できます。このトピックでは、ページ・タイトルと領域タイトルの名前を変更し、マスター・レポート上のアイテムの形式を変更します。最後に、ドラッグ・アンド・ドロップ機能を使用して、「Projects and Tasks」ページ内のアイテムの順序を変更します。次の手順を実行します。
-
最後に編集したプロジェクトの名前が変更されていることがわかります。開発者ツールバーにある「Edit Page<n>」リンクをクリックします。
-
「Rendering」タブ内の「Content Body」の下の「Columns」を展開します。
-
「PROJECT_DEADLINE」列をクリックし、ページの右側にあるプロパティ・エディタでそのプロパティを開きます。
-
PROJECT_DEADLINEの形式を変更するには、「Appearance」の下で「Format Mask」の「List of Values」アイコンをクリックします。
-
「12-JAN-2004」を選択します。
-
次は、ページのタイトルをPROJECTSに変更する必要があります。「Rendering」タブで「Page 2: obe Projects」を選択します。
-
「Identification」の下で、「Name」と「Title」にProjectsと入力します。「Save and Run Page」アイコンをクリックします。
-
PROJECT_DEADLINEの日付形式が変更されていることに注目してください。ただし、領域タイトルはまだObe Projectsになっています。開発者ツールバーで「Quick Edit」をクリックします。
-
クイック編集のために「Obe Projects」領域を選択します。
-
領域タイトルが変更されていないことがわかります。「Identification」の下で、「Title」にProjectsと入力します。「Run and Save Page」アイコンをクリックします。
-
現在はタイトルがProjectsに変更されていることがわかります。検索テキスト・ボックスにキーワードを入力することで、プロジェクトを検索できます。「Search」にemailと入力し、「Go」をクリックします。
-
関連する行のテキストが赤色で強調表示されていることを確認します。「Reset」をクリックします。
-
再度すべてのレコードが表示されます。Public Website Modifiedプロジェクトの行の前にある編集アイコンをクリックします。
-
Project、Project DeadlineおよびProject Priorityアイテム・ラベルの横に円で囲まれた小さい疑問符があることがわかります。「Project」の横にある円で囲まれた疑問符をクリックします。ヘルプ・ウィンドウが表示されます。それを編集することで、ヘルプ・テキストを追加できます。ヘルプ・ウィンドウを閉じます。
-
開発者ツールバーにある「Edit Page<n>」リンクをクリックします。
-
「Rendering」タブで、「Items」の下の「P3_PROJECT」を選択します。
-
そのプロパティ・エディタ内の「Help」の下で、「Help Text」にテキストを入力します。「Save and Run Page」アイコンをクリックします。
-
「Project」の横にある円で囲まれた疑問符をクリックします。ヘルプ・ウィンドウが開き、前の手順で入力したヘルプ・テキストが表示されます。
- ページ上のアイテムの順序を変更できます。開発者ツールバーで「Edit Page<n>」をクリックします。
-
このページ内のアイテムの順序を変更するには、アイテムを「Rendering」タブまたは「Grid Layout」内の新しい場所にドラッグ・アンド・ドロップします。「Rendering」タブで、「P3_PROJECT_ PRIORITY」アイテムをドラッグし、「P3_PROJECT_ DEADLINE」アイテムの上にドロップします。
-
「Save and Run Page」アイコンをクリックします。
-
「Master Detail」ページで「Project Deadline」の前に「Project Priority」が表示されることに注目してください。開発者ツールバーで「Application<n>」リンクをクリックします。
値リスト(LOV)の作成
アプリケーションの外観を改善するもう1つの方法は、値リストの作成です。このトピックでは、次のLOVを作成します。
EMPLOYEES | Employeesのリストを示す動的LOV。このLOVは、後で、「List of Tasks」内の「Assigned To」列に関連付けられます。 |
STATUSES | Statusesのリストを示す静的LOV。このLOVは、後で、「List of Tasks」内の「Status」列に関連付けられます。 |
PRIORITIES | Prioritiesのリストを示す静的LOV。このLOVは、後で、「Projects Master」領域内の「Priority」列に関連付けられます。 |
-
「3 - Master Detail」ページをクリックします。
-
ページのツリー・ビュー内の「Page Shared Components」タブをクリックします。
-
「Lists of Values」を右クリックし、「Create...」を選択します。
-
「Create List of Values」をデフォルト値「From Scratch」のままにし、「Next >」をクリックします。
-
「Name」にEMPLOYEESと入力し、「Type」で「Dynamic」を選択し、「Next >」をクリックします。
-
動的LOVの場合は、ページのレンダリング時に実行される、SQL問合せを入力する必要があります。そのSQL問合せを作成するには、「Create Dynamic List of Values」リンクをクリックします。
-
「Create Dynamic List of Values」ダイアログ・ウィンドウが表示されます。「Table or View」で「List of Values」アイコンをクリックします。
-
「OBE_EMPLOYEES」を選択します。
-
「Next >」をクリックします。
-
動的な値リスト内の「Display column」は、ユーザーに表示される列です。「Return column」は、データベースに格納される、対応する値です。適切な場合は、両方を同じ値にできます。
「Display Column」で「FIRST_NAME (Varchar2)」を、「Return Value」で「EMPLOYEE_ID (Number)」を選択し、「Next >」をクリックします。 -
SQL問合せが作成されます。「Finish」をクリックします。
-
名の後に姓を続けて、従業員名を表示する必要があります。次に示すようにSQL問合せを変更し、「Create List of Values」をクリックします。
select FIRST_NAME || ',' || LAST_NAME as ,
EMPLOYEE_ID as return_value
from OBE_EMPLOYEES
order by 1 -
LOVが作成されますが、「Page Shared Components」タブ内の「Lists of Values」の下には表示されません。これは、新しく作成したLOVをこのページに関連付けていないためです。それをこのページに関連付ける前に、さらに2つの静的LOVを作成する必要があります。「Lists of Values」を右クリックし、「Create...」をクリックします。
-
「Next >」をクリックします。
-
「Name」にSTATUSESと入力し、「Type」で「Static」を選択し、「Next >」をクリックします。
-
静的値のために次のエントリを入力し、「Create List of Values」をクリックします。
「Display Value」 「Return Value」 Closed
closed
Open
open
On Hold
on-hold -
別の静的LOVを作成するために、「Lists of Values」を右クリックし、「Create...」をクリックします。
-
「Next >」をクリックします。
-
「Name」にPRIORITIESと入力し、「Type」で「Static」を選択し、「Next >」をクリックします。
-
静的値のために次のエントリを入力し、「Create List of Values」をクリックします。
「Display Value」 「Return Value」 High
1
Medium
2
Low 3 -
次は、LOVとページを関連付けることができます。「Rendering」タブ内の「Obe Tasks」の下の「Columns」を展開します。
-
「Rendering」タブ内の「columns」の下の「ASSIGNED_TO」を選択します。
-
「Identification」の下の「Type」で「Select List」を選択します。「List of Values」の下の「Type」で「Shared Component」を、「List of Values」で「EMPLOYEES」を選択します。
-
「Rendering」タブ内の「columns」の下の「STATUS」を選択します。
-
「Identification」の下の「Type」で「Radio Group」を選択します。「List of Values」の下の「Type」で「Shared Component」を、「List of Values」で「STATUSES」を選択します。
-
それら2つのLOVが「Page Shared Components」タブ内の「Lists of Values」の下にリストされることに注目してください。「Save and Run Page」アイコンをクリックします。
-
「Assigned To」のドロップダウン・リストを選択します。動的LOVでEmployeesのリストが実行され表示されることがわかります。また、静的LOVの値を含む、Statusのラジオ・グループが作成されています。
-
次は、PRIORITIES LOVをページのマスター領域内のPriorityアイテムに割り当てる必要があります。開発者ツールバーで「Edit Page<n>」リンクをクリックします。
-
「Rendering」タブで、「Edit OBE_PROJECTS」領域内の「Columns」の下の「P3_PROJECT_PRIORITY」を選択します。
-
「Identification」の下の「Type」で「Radio Group」を選択します。「List of Values」の下のプロパティで次の値を選択し、「Save and Run Page」アイコンをクリックします。
プロパティ 値 Type Shared Component
List of Values PRIORITIES
Display Extra Values No
Null Display Value None -
これで「Priority」フィールドが、静的LOVの値が移入されているラジオ・グループとなります。開発者ツールバーで「Edit Page<n>」リンクをクリックします。
アイテム検証の追加
ユーザーが本日より前の日付を入力できないようにする必要があります。このタイプのチェックは、アイテム検証によって実行できます。次の手順を実行します。
-
「Processing」タブをクリックします。
-
「Validations」を右クリックし、「Create Validation」を選択します。
-
「Rendering」タブで新しい検証を選択し、プロパティ・エディタで次のようにプロパティを更新します。
プロパティ・グループ プロパティ 値 Identification Name P3_PROJECT_DEADLINE greater than today Validation Type SQL Expression Validation SQL Expression TO_DATE(:P3_PROJECT_DEADLINE,'DD-MM-YYYY') >= SYSDATE
Validation Always Execute No -
「Error」の下で、「Error Message」にDate needs to be greater than today! と入力し、「Display Location」で「Inline with Field and in Notification」を、「Associated Item」で「P3_PROJECT_DEADLINE」を選択します。「Save and Run Page」アイコンをクリックします。
-
「Project Deadline」を本日より前の日付に変更し、「Save」をクリックします。
-
アイテム(またはフィールド)エラー・メッセージ、およびページ通知メッセージを受信することに注目してください。これは、検証作成時に両方が送られるよう指定してあるためです。
-
開発者ツールバーで「Application<n>」リンクをクリックします。
まとめ
このチュートリアルでは、次の操作方法を学びました。
- データベース・アプリケーションの作成
- アプリケーション・オブジェクトの編集
- 値リスト(LOV)の作成
- 検証の作成およびテスト
詳細
クレジット
-
カリキュラム開発者: Richard Green
- その他の原本協力者: Anjani Pothula、Drue Swadener