このチュートリアルでは、プロジェクトに関連する問題の割当て、ステータスおよび進捗を追跡するアプリケーションを作成およびデプロイする方法を説明します。このチュートリアルでは、堅牢な問題追跡アプリケーションの作成に必要なすべてのステップを実際に行います。この章で説明されているステップを実行する前に、第14章「問題追跡アプリケーションの設計方法」で説明されているプロジェクトの計画、基礎となるデータベース・オブジェクトの作成およびデモンストレーション・データのロードを完了しておく必要があります。
Oracle Technology Networkで、完成したIssue Trackerアプリケーションのサンプルおよび補助スクリプトを入手できます。次の場所に移動し、「パッケージ・アプリケーション」にナビゲートしてから「Issue Tracker」を選択します。
http://www.oracle.com/technology/products/database/application_express/index.html
|
注意: Issue Trackerアプリケーションを作成する前に、第14章「問題追跡アプリケーションの設計方法」を完了しておく必要があります。このチュートリアルを完了するには、2、3時間かかります。特定の演習を試す前に、資料に慣れるため、最初にドキュメント全体を通して読むことをお薦めします。 |
この項の内容は次のとおりです。
この項では、このチュートリアルで設計して実装するIssue Trackerアプリケーションの概要を示します。このアプリケーションを作成する前に、次のことを理解しておくと役に立ちます。
Issue Trackerのユーザー・インタフェースは、問題、プロジェクトおよびユーザーの追跡と管理をサポートできるように設計されています。アプリケーションのページは、図15-1「Issue Trackerのユーザー・インタフェース」に示すように構成されます。
このアプリケーションを作成すると、ページが15作成されます。Issue Trackerアプリケーションの「アプリケーション・ビルダー」ホームページは、図15-2「Issue Trackerのページ」のように表示されます。
ページごとに、表15-1「Issue Trackerの各ページの概要」に示されている特定の追跡機能があります。
表15-1 Issue Trackerの各ページの概要
| 名前および番号 | 親ブレッドクラム・エントリ | 用途 | このページの作成方法を示す項 |
|---|---|---|---|
|
1 - Home |
最上位のページ(「Projects」、「Users」、「Issues」、「Reports」および「Dashboard」)にリンクするアプリケーションの「Home」ページ。 |
|
|
|
2 - Projects |
Home |
プロジェクトの表示および検索に使用するプロジェクト・レポート・ページ。「Project Details」ページにリンクされています。 |
|
|
3 - Project Details |
Projects |
特定のプロジェクトの詳細の表示、プロジェクトの追加、削除および編集に使用するプロジェクトの詳細フォーム。 |
|
|
4 - Users |
Home |
ユーザーの表示および検索に使用するユーザー・レポート・ページ。「User Information」ページにリンクされています。 |
|
|
5 - User Information |
Users |
特定のユーザーの情報の表示、ユーザーの追加、編集および削除に使用するユーザー情報フォーム。 |
|
|
6 - Issues |
Home |
問題の表示および検索に使用する問題レポート・ページ。「Issue Details」ページにリンクされています。 |
|
|
7 - Issue Details |
Issues |
特定の問題の情報の表示、問題の追加、編集および削除に使用する問題の詳細フォーム。 |
|
|
8 - Assign Open Issues |
Reports |
すべての未割当ての問題を表示し、ユーザーへの割当て、関連プロジェクトの特定、ステータスの変更および優先順位の変更を行うことができます。 |
|
|
9 - Issue Summary by Project |
Reports |
プロジェクトごとに様々な問題パラメータのレポートが提供されます。 |
|
|
10 - Resolved by Month Identified |
Reports |
月ごとの解決された問題の数が図示されます。 |
|
|
11 - Target Resolution Dates |
Reports |
各解決目標日にエントリが示されているカレンダが表示されます。 |
|
|
12 - Average Days to Resolve |
Reports |
各ユーザーが問題の解決に要した平均日数が棒グラフで示されます。 |
|
|
14 - Reports |
Home |
このページが、すべてのサマリー・レポート(「Assign Open Issues」、「Issue Summary by Project」、「Resolved by Month Identified」、「Target Resolution Dates」および「Average Days to Resolve」)の開始ページとなります。 |
|
|
18 - Dashboard |
Home |
「Overdue Issue」、「Unassigned Issues」、「Recently Opened Issues」および「Open Issues by Project」のスナップショットが表示されます。 |
|
|
101 - ログイン |
アプリケーションのログイン・ページ。 |
|
第14章「問題追跡アプリケーションの設計方法」の説明に従ってアプリケーションをサポートするオブジェクトを作成し、デモンストレーションのデータをロードした後、ユーザー・インタフェースを作成します。この演習では、アプリケーション・ビルダーで「アプリケーションの作成」ウィザードを使用してアプリケーションを作成した後で、「計画およびプロジェクト分析」で説明したデータ管理およびデータ表示の機能をサポートするページを作成します。
この項の内容は次のとおりです。
ユーザーがレポートを表示したり、選択した表のデータをスキーマ内に作成することができるページを含むアプリケーションを作成するには、「アプリケーションの作成」ウィザードを使用します。また、先にアプリケーションを作成し、その後、ページを追加することもできます。概要ページのカスタマイズがアプリケーション要件に含まれているため、この演習では、後者の方法を使用します。
この項の内容は次のとおりです。
アプリケーションを作成するには、次のステップを実行します。
Oracle Application Expressにログインします。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」をクリックします。
「作成」をクリックします。
「方法」で、「アプリケーションの作成」を選択して「次へ」をクリックします。
「名前」で、次のステップを実行します。
「名前」に、Issue Trackerと入力します。
「アプリケーションの作成」で、「最初から」を選択します。
「スキーマ」で、ロードしたITデータ・オブジェクトが含まれているスキーマを選択します。
「次へ」をクリックします。
「ページの追加」で、次のステップを実行します。
「ページ・タイプの選択」で、「空白」を選択します。
「ページ名」に、Homeと入力します。
「ページの追加」をクリックします。
「次へ」をクリックします。
「タブ」で、デフォルトの「1レベルのタブ」を選択して「次へ」をクリックします。
「共有コンポーネント」で、デフォルトの「いいえ」を受け入れて「次へ」をクリックします。
「属性」で、次のステップを実行します。
「日付書式」で、DD-MON-YYYYと入力するか、または選択リストから「12-JAN-2004」を選択します。
「次へ」をクリックします。
「ユーザー・インタフェース」で、「テーマ20」を選択して「次へ」をクリックします。
「作成」をクリックします。
アプリケーションにIssue Trackerのロゴを追加するには、次のステップを実行します。
「共有コンポーネント」をクリックします。
「アプリケーション」で、「定義」リンクをクリックします。
「定義」ページで、上部にある「ロゴ」タブをクリックします。
「ロゴ・タイプ」で、「テキスト (Application Express 2.2以上が必要です)」を選択します。
「ロゴ」に、Issue Tracker 1.0と入力します。
「ロゴ属性」で、ドロップ・ダウン・リストから「白色のテキスト」を選択します。
「変更の適用」をクリックします。
アプリケーションを表示するには、次のステップを実行します。
「アプリケーション」ホーム・ブレッドクラム・リンクをクリックします。
「アプリケーションの実行」アイコンをクリックします。
プロンプトが表示されたら、ワークスペースのユーザー名およびパスワードを入力して、「ログイン」をクリックします。詳細は、「アプリケーション認証の概要」を参照してください。
この認証は、新しく作成したアプリケーションのデフォルトのセキュリティの一部です。図15-3に示すとおり、ホームページが表示されます。
ページにコンテンツはありませんが、「アプリケーションの作成」ウィザードによって次のアイテムが作成されていることに注意してください。
ロゴ: 左上にIssue Tracker 1.0のロゴが表示されます。
ナビゲーション・リンク: ページの左上にナビゲーション・バーのエントリが表示されます。「ログアウト」によって、ユーザーはアプリケーションからログアウトできます。
開発者リンク: ページに「開発者」ツールバーが表示されます。これらのリンクは、開発者としてログインした場合にのみ表示されます。アプリケーションの実行権限のみを持つユーザーには、これらのリンクは表示されません。
「開発者」ツールバーの「アプリケーション」をクリックして、「アプリケーション」ホームページに戻ります。
「アプリケーションの作成」ウィザードによって「ログイン」ページも作成されていることに注意してください。
基本的なアプリケーション構造を作成した後、「Home」ページにコンテンツを追加します。
次に、アプリケーションの最上位のページに、ユーザーがナビゲートする場合に役立つ、横のイメージ・リストを追加する必要があります。
この項を完了すると、「Home」ページは図15-4のようになります。
|
注意: 各イメージの下のナビゲーション・リンクは、対応する最上位の各ページを作成するまでは機能しません。たとえば、「プロジェクトを管理するためのページの追加」の項のステップを完了すると、「Projects」リンクに「Projects」ページが表示されます。 |
この項の内容は次のとおりです。
ナビゲートに使用する横のイメージ・リストを作成するには、次のステップを実行します。
「アプリケーション」ホーム・ブレッドクラムをクリックします。
「共有コンポーネント」をクリックします。
「ナビゲーション」で、「リスト」をクリックします。
「作成」をクリックします。
「リスト」で、次の変更を行います。
「名前」に、Main Menuと入力します。
「リスト・テンプレート」で、「ラベル・リスト付きの横のイメージ」を選択します。
「作成」をクリックします。
リストに、「Dashboard」、「Projects」、「Issues」、「Reports」および「Users」のイメージを追加するには、次のステップを実行します。
「リスト・エントリを作成 」をクリックします。
「エントリ」の下に「Dashboard」イメージを追加するには、次の変更を行います。
「順序」に、5と入力します。
「イメージ」に、menu/dashboard_bx_128x128.pngと入力します。
「リスト・エントリ・ラベル」に、Dashboardと入力します。
「ターゲット」で、「ページ」に18と入力します。
「作成後、別のものを作成」をクリックします。
「エントリ」の下に「Projects」イメージを追加するには、次の変更を行います。
「順序」に、10と入力します。
「イメージ」に、menu/globe_bx_128x128.pngと入力します。
「リスト・エントリ・ラベル」にProjectsと入力します。
「ターゲット」で、「ページ」に2と入力します。
「作成後、別のものを作成」をクリックします。
「エントリ」の下に「Issues」イメージを追加するには、次の変更を行います。
「順序」に、20と入力します。
「イメージ」に、menu/shapes_bx_128x128.pngと入力します。
「リスト・エントリ・ラベル」に、Issuesと入力します。
「ターゲット」で、「ページ」に6と入力します。
「作成後、別のものを作成」をクリックします。
「エントリ」の下に「Reports」イメージを追加するには、次の変更を行います。
「順序」に、30と入力します。
「イメージ」に、menu/folder_bx_128x128.pngと入力します。
「リスト・エントリ・ラベル」に、Reportsと入力します。
「ターゲット」で、「ページ」に14と入力します。
「作成後、別のものを作成」をクリックします。
「エントリ」の下に「Users」イメージを追加するには、次の変更を行います。
「順序」に、100と入力します。
「イメージ」に、menu/addresses_bx_128x128.pngと入力します。
「リスト・エントリ・ラベル」に、Usersと入力します。
「ターゲット」で、「ページ」に4と入力します。
「作成」をクリックします。
イメージ・リストを表示するためのリージョンを「Home」ページに作成します。デフォルトの「Home」リージョンを削除し、イメージの「Main Menu」リストを含む別のタイプのリストを作成する必要があります。
イメージ・リストを含めるリージョンの作成
「アプリケーション」ホーム・ブレッドクラムをクリックします。
「Home」ページのアイコン「1 - Home」をクリックします。
「リージョン」で、「Home」リージョンを選択します。
「削除」をクリックします。
確定するには、「リージョンの削除」をクリックします。
「リージョン」で、「作成」アイコンを選択します。
リージョン・タイプで、「リスト」を選択して「次へ」をクリックします。
「表示属性」で、次の変更を行います。
「タイトル」に、Homeと入力します。
「リージョン・テンプレート」で、「テンプレートなし」を選択します。
「順序」に、3と入力します。
「次へ」をクリックします。
「ソース」で、「リスト」に「Main Menu」を選択します。
「リスト・リージョンの作成」をクリックします。
「リージョン」で、「Home」リージョンをクリックします。
「ヘッダーおよびフッター」までスクロールします。「リージョン・ヘッダー」に、次のように入力します。
<p>Use this application to track issues as they arise for projects within your organization.<p>
「変更の適用」をクリックします。
「Home」ページにイメージ・リストを表示するには、アプリケーションのホームページの「アプリケーションの実行」アイコンをクリックします。「Home」ページが図15-5「ナビゲーション・イメージ・リストが表示された「Home」ページ」のようになります。
次に、ユーザーがプロジェクト・データを表示したり、表に追加できるページを作成する必要があります。これを行うには、「レポート付きの表のフォーム」ウィザードを使用します。このウィザードでは、IT_PROJECTS表にレポート・ページおよびフォーム・ページを作成します。
この項の内容は次のとおりです。
作成されるレポート・ページは「Projects」ページで、フォーム・ページは「Project Details」ページです。この項を完了すると、プロジェクト・ページは、図15-6「「Projects」ページ」に示されている「Projects」ページおよび図15-7「プロジェクト追加時の「Project Details」ページ」と図15-8「プロジェクト編集時の「Project Details」ページ」に示されている「Project Details」ページのようになります。
このページは、データベースのすべてのプロジェクトのレポートです。このページには、次のコンポーネントが含まれています。
Project Name: プロジェクトの名前。
Start Date: プロジェクトの開始日。
Target End Date: プロジェクトの終了予定日。
Actual End Date: プロジェクトの実際の終了日。
検索リージョン: 検索条件を選択して「実行」ボタンをクリックすると、フィルタ処理されたレポートを取得できます。
編集アイコン: プロジェクト情報を編集するには、プロジェクト名の左にある編集アイコンをクリックします。「Project Details」ページに、選択したプロジェクトの情報が表示されます。
「Add Project」ボタン: データベースに新しいプロジェクトを追加するには、このボタンをクリックします。特定のプロジェクト情報を入力するための空の「Project Details」ページが表示されます。
このフォームで、プロジェクトの詳細の編集およびデータベースへの新しいプロジェクトの追加を行うことができます。「Projects」ページの「Add Project」ボタンまたは編集アイコンをクリックすると、この詳細ページが表示されます。すべてのフィールドが空で、新しいプロジェクトの追加時には「Audit Information」は含まれていません。このページには、次のコンポーネントが含まれています。
取消: 未適用の変更を送信せずに「Projects」ページに戻ります。
削除: 削除確認メッセージからOKのレスポンスを受信した後で、データベースからプロジェクトを削除します。このボタンは、プロジェクトの編集時に表示され、プロジェクトの追加時には表示されません。
変更の適用: データベースにプロジェクトの変更をコミットします。このボタンは、プロジェクトの編集時に表示され、プロジェクトの追加時には表示されません。
作成: データベースにプロジェクトを追加します。このボタンは、プロジェクトの追加時に表示され、プロジェクトの編集時には表示されません。
Project Details: このリージョンで、プロジェクトの詳細を入力できます。
Audit Information: このリージョンを展開すると、プロジェクトの監査情報が表示されます。監査情報は編集できません。プロジェクトを作成または変更すると、監査情報はこのプロジェクトに対して自動的に更新されます。このリージョンは、プロジェクトの編集時にのみ表示されます。
アプリケーションの作成時に、デフォルトのタブ・セットTS1が作成されています。次に、それぞれの新しいページを作成する場合に使用されるように、このタブ・セットの名前を変更します。
タブ・セットの名前を変更するには、次のステップを実行します。
「アプリケーション」ホーム・ブレッドクラムをクリックします。
「共有コンポーネント」をクリックします。
「ナビゲーション」で、「タブ」を選択します。
右パネルの「標準タブ・セット名の変更」リンクをクリックします。
「TS1」をクリックします。
「新しいタブ・セット名」にIssue Trackerと入力して、「次へ」をクリックします。
確定するには、「タブ・セット名の変更」をクリックします。
これで、「ページの作成」ウィザードで新しいページを追加するたびに「Issue Tracker」タブ・セットにタブが追加されます。
IT_PROJECTS表を管理するためのページを作成するには、次のステップを実行します。
「アプリケーション」ホームページで、「ページの作成」をクリックします。
「フォーム」を選択して「次へ」をクリックします。
「レポート付きの表のフォーム」を選択して「次へ」をクリックします。
「表/ビューの所有者」で、適切なスキーマを選択して「次へ」をクリックします。
「表/ビューの名前」で、「IT_PROJECTS」を選択して「次へ」をクリックします。
「レポート・ページの定義」で、次のステップを実行します。
「実装」で、「対話モード」を選択します。
「ページ番号」に、2と入力します。
「ページ名」に、Projectsと入力します。
「リージョン・タイトル」に、Projectsと入力します。
「リージョン・テンプレート」で、「テンプレートなし」を選択します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「ブレッドクラム・エントリの作成」セクションが表示されます。
「エントリ名」に、Projectsと入力します。
「親エントリの選択」で、「Home」リンクを選択します。
残りのデフォルトを受け入れて「次へ」をクリックします。
「タブ・オプション」で、「既存のタブ・セットを使用して、そのタブ・セット内に新しいタブの作成」を選択します。
「新しいタブ・ラベル」フィールドが表示されます。
「タブ・セット」で、「Issue Tracker(Home)」を選択します。
「新しいタブ・ラベル」にProjectsと入力して、「次へ」をクリックします。
「列の選択」で、「PROJECT_ID」、「PROJECT_NAME」、「START_DATE」、「TARGET_END_DATE」および「ACTUAL_END_DATE」を選択して、「次へ」をクリックします。
プロジェクト名は一意で、プロジェクトを識別します。外部キーを簡略化し、カスケード更新を有効にするためにIDが追加されています。
「リンク・イメージの編集」で、最初のオプションを選択して「次へ」をクリックします。
「フォーム・ページの作成」の「フォーム・ページの定義」で、次のステップを実行します。
「ページ」に、3と入力します。
「ページ名」に、Project Detailsと入力します。
「リージョン・タイトル」に、Project Detailsと入力します。
「リージョン・テンプレート」で、「フォーム・リージョン」を選択します。
「ブレッドクラム・エントリの作成」の「フォーム・ページの定義」で、次のステップを実行します。
「エントリ名」に、Project Detailsと入力します。
「次へ」をクリックします。
「主キー」で、デフォルトの「PROJECT_ID」を受け入れて「次へ」をクリックします。
「主キー列のソースの定義」で、デフォルトの「既存のトリガー」を受け入れて「次へ」をクリックします。
「列の選択」で、「PROJECT_NAME」、「START_DATE」、「TARGET_END_DATE」および「ACTUAL_END_DATE」を選択して、「次へ」をクリックします。
「プロセス・オプションを指定」で、「挿入」、「更新」および「削除」のデフォルト値を受け入れて「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
「Projects」ページのフィールドを編集し、「作成」ボタンを「Add Project」に変更する必要があります。
フィールドを編集するには、次のステップを実行します。
「開発者」ツールバーで「アプリケーション」をクリックします。
「アプリケーション」ホームページで、「2 - Projects」をクリックします。
「リージョン」で、「Projects」の横にある「対話モード・レポート」をクリックします。
PROJECT_IDの「表示テキスト」で、「非表示」を選択します。
「ページ区切り」までスクロールして、「データが見つからなかった場合のメッセージ」にNo projects foundと入力します。
ページ上部の「変更の適用」をクリックします。
ボタンを変更するには、次のステップを実行します。
ページ2の編集ページの「ボタン」で、「作成」ボタンを選択します。
「テキスト・ラベル/代替」を「作成」から「Add Project >」に変更し、「変更の適用」を選択します。
「ページの実行」アイコンをクリックします。
図15-9に示すとおり、新しく作成されたレポートにデモ・データが表示されます。
次に、「Project Name」フィールドを拡大し、日付のフィールドを縮小するには、「プロジェクトの詳細」ページをカスタマイズする必要があります。プロジェクトの編集時にのみ表示する「Audit Information」リージョンおよび終了予定日と実際の終了日が開始日後であるかどうかを確認する検証を追加する必要があります。
「Project Name」フィールドを拡大し、日付フィールドを縮小するには、次のステップを実行します。
ページ3 (「Project Details」)の「ページ定義」に移動します。
「開発者」ツールバーで、「アプリケーション」をクリックします。
「3 - Project Details」をクリックします。
「アイテム」で、「すべて編集」アイコンをクリックします。
「すべて編集」アイコンは、鉛筆が付いた小さいグリッドに似ています。
右にスクロールし、「幅」列を設定するには、次のステップを実行します。
「Project Name」に、60と入力します。
「Start Date」に、12と入力します。
「Target End Date」に、12と入力します。
「Actual End Date」に、12と入力します。
「変更の適用」をクリックします。
ページ定義に戻ります。右上にある「ページの編集」アイコンをクリックします。「ページの編集」アイコンは、小さな緑色の紙と鉛筆に似ています。
「Project Details」ページの下部に「Audit Report」リージョンを追加するには、次のステップを実行します。
ページ3の編集ページの「リージョン」で、「作成」ボタンを選択します。
「レポート」を選択して「次へ」をクリックします。
「SQLレポート」を選択して「次へ」をクリックします。
「タイトル」に、Audit Informationと入力します。
「リージョン・テンプレート」で、「非表示と表示のリージョン」を選択して「次へ」をクリックします。
「SQL問合せ、またはSQL問合せを戻すPL/SQLファンクションを入力」に、次のように入力します。
SELECT
CREATED_ON, CREATED_BY, MODIFIED_ON, MODIFIED_BY
FROM #OWNER#.IT_PROJECTS
WHERE PROJECT_ID = :P3_PROJECT_ID
「リージョンの作成」をクリックします。
ページ3の編集ページの「リージョン」で、「Audit Information」をクリックします。
「条件付き表示」までスクロールして、「式1のアイテムの値がNOT NULL」を選択します。
「式1」に、P3_PROJECT_IDと入力します。
上部の「レポート属性」タブをクリックします。
「レイアウトおよびページ区切り」で、次の変更を行います。
「レポート・テンプレート」で、「デフォルト: 縦のレポート、look 1(NULL列を含む)」を選択します。
「ページ区切りスキーム」で、「- ページ区切りが選択されていない -」を選択します。
「部分ページ・リフレッシュの有効化」で、「いいえ」を選択します。
他のすべてのデフォルト値を受け入れ、「変更の適用」をクリックします。
「レポート付きの表のフォーム」ウィザードによって、「Name」、「Start Date」および「End Date」のNOT NULL検証が作成されました。「Actual End Date」が「Start Date」以降であることを確認する別の検証を手動で作成する必要があります。
「Actual End Date」の検証を追加するには、次のステップを実行します。
「ページ・プロセス」の「検証」で、「作成」アイコンをクリックします。
「レベル」で、デフォルトの「アイテム・レベルの検証」を受け入れて「次へ」をクリックします。
「アイテム」で、「Project Details: 50.P3_ACTUAL_END_DATE (Actual End Date)」を選択して「次へ」をクリックします。
「検証方法」で、次のステップを実行します。
「PL/SQL」を選択して「次へ」をクリックします。
デフォルトの「PL/SQL式」を受け入れて、「次へ」をクリックします。
「順序と名前」で、次のステップを実行します。
「順序」に、50と入力します。
「検証名」に、P3_END_AFTER_STARTと入力します。
残りのデフォルトを受け入れて「次へ」をクリックします。
「検証」で、次のステップを実行します。
「検証」に、次のように入力します。
to_date(:P3_ACTUAL_END_DATE,:APP_DATE_FORMAT) >= to_date
(:P3_START_DATE,:APP_DATE_FORMAT)
「エラー・メッセージ」に、次のように入力します。
Actual End Date must be same or after Start Date.
「次へ」をクリックします。
「条件」で、次のステップを実行します。
「条件タイプ」で、「式1のアイテムの値がNOT NULL」を選択します。
「式1」に、P3_ACTUAL_END_DATEと入力します。
「作成」をクリックします。
新しい「Projects」ページおよび「Project Details」ページを表示するには、ページの右上にある「ページの実行」アイコンをクリックします。
「アプリケーション」ホーム・ブレッドクラムをクリックします。
「アプリケーションの実行」アイコンをクリックします。図15-10に示すように、Issue Trackerホームページがイメージ・リンクのリストともに表示されます。
2番目のイメージの下の「Projects」リンクをクリックします。「Projects」ページが図15-11のようになります。
詳細を表示するには、「Email Integration」プロジェクトの横の編集アイコンをクリックし、「Audit Information」の横の+記号をクリックします。表示される「Project Details」ページは、図15-12のようになります。
図15-12 「Email Integration」プロジェクトの「Project Details」ページ

|
注意: 図15-12「「Email Integration」プロジェクトの「Project Details」ページ」では、「Project Name」フィールドが空のために「Audit」リージョンが表示されています。「Audit Information」リージョンは展開されています。 |
最初の「Projects」ページが完了した後で、ユーザーを管理するためのページを作成します。これを行うには、「レポート付きの表のフォーム」ウィザードを使用します。このウィザードでは、IT_PEOPLE表にレポート・ページおよびフォーム・ページを作成します。
この項の内容は次のとおりです。
この項のを完了すると、図15-13「「Users」ページ」および図15-14「George Hurstの「User Information」ページ」に示されているように「Users」ページおよび「User Information」ページが表示されます。
「Home」ページの「Users」リンクをクリックすると、「Users」ページにナビゲートすることができます。「Users」ページで、編集アイコンまたは「Add User」ボタンをクリックして「User Information」ページを表示します。
このページは、アプリケーションへのアクセス権を持つすべてのユーザーのレポートです。このページには、次のコンポーネントが含まれています。
Person Name: ユーザーの名前。
Person Email: ユーザーの電子メール・アドレス。
Person Role: このユーザーのロール。後続の項で、各ロールに対して、アプリケーションへの異なるレベルのアクセス権を付与します。
Username: このアプリケーションにアクセスできるユーザーの名前。
Assigned Project: このユーザーに割り当てられているプロジェクト。
検索リージョン: 検索条件を選択して「実行」ボタンをクリックすると、フィルタ処理されたレポートを取得できます。
編集アイコン: ユーザー情報を編集するには、ユーザー名の左にある編集アイコンをクリックします。「User Information」ページに、選択したユーザーの情報が表示されます。
「Add User」ボタン: このボタンをクリックすると、このアプリケーションに対して新しいユーザーをプロビジョニングできます。特定のユーザーの詳細を入力するための空の「User Information」ページが表示されます。
このフォームで、既存のユーザー情報の編集および新しいユーザーの追加を行うことができます。「Users」ページの「Add User」ボタンまたは編集アイコンをクリックすると、この情報ページが表示されます。このページには、次のコンポーネントが含まれています。
取消: 未適用の変更を送信せずに「Users」ページに戻ります。
削除: 削除確認メッセージからOKのレスポンスを受信した後で、データベースからユーザーを削除します。このボタンは、ユーザーの編集時に表示され、ユーザーの追加時には表示されません。
変更の適用: ユーザーの変更をデータベースにコミットします。このボタンは、ユーザーの編集時に表示され、ユーザーの追加時には表示されません。
作成: データベースにユーザーを追加します。このボタンは、ユーザーの追加時に表示され、ユーザーの編集時には表示されません。
User Information: このリージョンで、ユーザーの詳細を入力できます。
Audit Report: このリージョンを展開すると、ユーザーの監査情報が表示されます。監査情報は編集できません。ユーザーを追加するかまたはユーザー情報を編集すると、このユーザーに対して自動的に更新されます。
IT_PEOPLE表を管理するためのページを作成するには、次のステップを実行します。
「アプリケーション」ブレッドクラムをクリックします。
「ページの作成」をクリックします。
「フォーム」を選択して「次へ」をクリックします。
「レポート付きの表のフォーム」を選択して「次へ」をクリックします。
「表/ビューの所有者」で、適切なスキーマを選択して「次へ」をクリックします。
「表/ビューの名前」で、「IT_PEOPLE」を選択して「次へ」をクリックします。
「レポート・ページの定義」で、次のステップを実行します。
「実装」で、「対話モード」を選択します。
「ページ番号」に、4と入力します。
「ページ名」に、Usersと入力します。
「リージョン・タイトル」に、Users.と入力します。
「リージョン・テンプレート」で、「テンプレートなし」を選択します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「ブレッドクラム・エントリの作成」セクションが表示されます。
「エントリ名」に、Usersと入力します。
「親エントリ」で、「Home」リンクを選択します。
残りのデフォルトを受け入れて「次へ」をクリックします。
「タブ・オプション」で、「既存のタブ・セットを使用して、そのタブ・セット内に新しいタブの作成」を選択します。
「タブ・セット」で、「Issue Tracker」を選択します。
「新しいタブ・ラベル」にUsersと入力して、「次へ」をクリックします。
「列の選択」で、「PERSON_ID」、「PERSON_NAME」、「PERSON_EMAIL」、「PERSON_ROLE」、「USERNAME」および「ASSIGNED_PROJECT」を選択して、「次へ」をクリックします。
「リンク・イメージの編集」で、最初のオプションを選択して「次へ」をクリックします。
「フォーム・ページの作成」の「フォーム・ページの定義」で、次のステップを実行します。
「ページ」に、5と入力します。
「ページ名」および「リージョン・タイトル」に、User Informationと入力します。
「エントリ名」に、User Informationと入力します。
「ブレッドクラム・エントリの作成」の「フォーム・ページの定義」で、次のステップを実行します。
「エントリ名」に、User Informationと入力します。
「次へ」をクリックします。
「主キー」で、デフォルトの「PERSON_ID」を受け入れて「次へ」をクリックします。
「主キー列のソースの定義」で、デフォルトの「既存のトリガー」を受け入れて「次へ」をクリックします。
「列の選択」で、「PERSON_NAME」、「PERSON_EMAIL」、「PERSON_ROLE」、「USERNAME」および「ASSIGNED_PROJECT」を選択して、「次へ」をクリックします。
「挿入」、「更新」および「削除」で、デフォルト値を受け入れて「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
ページのプレビューを表示するには、「ページの実行」をクリックします。図15-15に示すとおり、新しく作成されたレポートにデモ・データが表示されます。
ユーザーを追加または編集するためのページをプレビューするには、左端の列の「編集」アイコンをクリックします。「User Information」ページが図15-16「「User Information」ページ」のように表示されます。
次に、次のステップを実行して「Users Information」を変更します。
ページ4 (「Users」)のページ定義に移動します。
「開発者」ツールバーで「アプリケーション」をクリックします。
「アプリケーション」ホームページで、「4 - Users」をクリックします。
「リージョン」で、「Users」の横にある「対話モード・レポート」をクリックします。
PERSON_IDの「表示テキスト」で、「非表示」を選択します。
ページ上部の「変更の適用」をクリックします。
「作成」ボタンを「Add User>」ボタンに変更するには、次のステップを実行します。
ページ4の編集ページの「ボタン」で、「作成」ボタンを選択します。
「テキスト・ラベル/代替」を「作成」から「Add User >」に変更し、「変更の適用」を選択します。
「ページの実行」アイコンをクリックします。
「Users」ページの列の順序を変更するには、次のステップを実行します。
図15-17に示すように、実行中の「Users」ページで、「アクション」アイコンをクリックします。
「列の選択」を選択します。
「レポートに表示」ボックスの横の上下矢印を使用して、列の順序付けを行います。
「適用」をクリックします。変更に応じて列が並べ替えられた「Users」ページが表示されます。
Projects表への結合が含まれるように問合せを変更するには、次のステップを実行します。
ページ4 (「Users」)のページ定義に移動します。
実行中のフォームを表示している場合は、「開発者」ツールバーの「アプリケーション」をクリックします。
「アプリケーション」ホームページで、「4 - Users」をクリックします。
「リージョン」で、「Users」をクリックします。
「ソース」までスクロールします。
「リージョン・ソース」で、既存の問合せを次と置き換えます。
SELECT "IT_PEOPLE"."PERSON_ID" as "PERSON_ID",
"IT_PEOPLE"."PERSON_NAME" as "PERSON_NAME",
"IT_PEOPLE"."PERSON_EMAIL" as "PERSON_EMAIL",
"IT_PEOPLE"."PERSON_ROLE" as "PERSON_ROLE",
"IT_PEOPLE"."USERNAME" as "USERNAME",
"IT_PROJECTS"."PROJECT_NAME" as "ASSIGNED_PROJECT"
FROM "#OWNER#"."IT_PEOPLE" "IT_PEOPLE",
"#OWNER#"."IT_PROJECTS" "IT_PROJECTS"
WHERE "IT_PEOPLE"."ASSIGNED_PROJECT"="IT_PROJECTS"."PROJECT_ID" (+)
プロジェクトの割当てはオプションであるため、外部結合が必要であることに注意してください。
「変更の適用」をクリックします。
「対話モード・レポートのリージョン変更の確認」で、「変更の適用」をクリックします。
行った変更を表示するには、ページの右上にある「ページの実行」アイコンをクリックします。開発者としてアプリケーションを実行して一部の列を表示し、図15-18に示すように並べ替える必要がある場合があります。
次に、LOVを追加して「User Information」ページをカスタマイズし、ユーザーが「Role」または「Assigned Project」を簡単に選択できるようにします。
「Projects」のLOVを追加するには、次のステップを実行します。
ページ5 (「User Information」)のページ定義に移動します。
フォームを表示している場合は、「開発者」ツールバーの「アプリケーション」をクリックします。
「アプリケーション」ホームページで、「5 - User Information」をクリックします。
「共有コンポーネント」で、「LOV」を検索して「作成」アイコンをクリックします。
「ソース」で、デフォルトの「最初から」を受け入れて「次へ」をクリックします。
「名前およびタイプ」で、次のステップを実行します。
「名前」に、PROJECTSと入力します。
「タイプ」で、「動的」を選択します。
「次へ」をクリックします。
「問合せ」で、既存の文を次と置き換えます。
SELECT project_name d, project_id r FROM it_projects ORDER BY d
「LOVの作成」をクリックします。
「Roles」のLOVを追加するには、次のステップを実行します。
「共有コンポーネント」で、「LOV」を検索して「作成」アイコンをクリックします。
「ソース」で、デフォルトの「最初から」を受け入れて「次へ」をクリックします。
「名前およびタイプ」で、次のステップを実行します。
「名前」に、ROLESと入力します。
「タイプ」で、「静的」を選択します。
「次へ」をクリックします。
表15-2に示す表示値と戻り値の組合せを入力します。
「LOVの作成」をクリックします。
P5_PERSON_ROLEの表示属性を編集するには、次のステップを実行します。
ページ5の「ページの編集」アイコンをクリックします。
「アイテム」で、「P5_PERSON_ROLE」をクリックします。
「名前」セクションの「表示形式」リストから、「ラジオ・グループ」を選択します。
「ラベル」までスクロールします。
「ラベル」をRoleに変更します。
「要素」で、「フォーム要素オプション属性」に次のように入力します。
class="instructiontext"
これによって、各ラジオ・グループ・オプションに関連付けられたテキストがページの他のアイテムと同じサイズになるように指定されます。
「LOV」までスクロールします。
「名前付きLOV」リストから「ROLES」を選択します。
「変更の適用」をクリックします。
P5_ASSIGNED_PROJECTの表示属性を編集するには、次のステップを実行します。
「アイテム」で、「P5_ASSIGNED_PROJECT」をクリックします。
「名前」セクションの「表示形式」リストから、「選択リスト」を選択します。
「LOV」までスクロールします。
「LOV」で、次のステップを実行します。
「名前付きLOV」リストから「PROJECTS」を選択します。
「NULLを表示」で、「はい」を選択します。
「NULL表示値」に、次のように入力します。
- None -
「変更の適用」をクリックします。
フィールドおよびフィールド・ラベルの表示を変更するには、次のステップを実行します。
「アイテム」で、「すべて編集」アイコンをクリックします。
P5_PERSON_NAMEに対して、次のステップを実行します。
「プロンプト」に、Nameと入力します。
「幅」に、60と入力します。
P5_PERSON_EMAILに対して、次のステップを実行します。
「プロンプト」に、Email Addressと入力します。
「幅」に、60と入力します。
P5_USERNAMEに対して、次のステップを実行します。
「順序」に、35と入力します。
「幅」に、60と入力します。
P5_PERSON_ROLEに対して、次のステップを実行します。
「幅」に、7と入力します。
「P5_ASSIGNED_PROJECT」の「順序」に、50と入力します。
「変更の適用」をクリックします。
右上にある「ページの編集」アイコンをクリックして、ページ5のページ定義に戻ります。
「User Information」の下部に「Audit Report」リージョンを追加するには、次のステップを実行します。
ページ5の編集ページの「リージョン」で、「作成」アイコンを選択します。
「レポート」を選択し、「次へ」をクリックします。
「SQLレポート」を選択して「次へ」をクリックします。
「リージョンの作成」で、次の変更を行います。
「タイトル」に、Audit Reportと入力します。
「リージョン・テンプレート」で、「非表示と表示のリージョン」を選択します。
「次へ」をクリックします。
「SQL問合せ、またはSQL問合せを戻すPL/SQLファンクションを入力」に、次のように入力します。
SELECT CREATED_ON, CREATED_BY,
MODIFIED_ON, MODIFIED_BY
FROM IT_PEOPLE
WHERE PERSON_ID = :P5_PERSON_ID
「リージョンの作成」をクリックします。
「リージョン」で、「Audit Report」の横にある「レポート」をクリックします。
「レイアウトおよびページ区切り」で、次の変更を行います。
「レポート・テンプレート」で、デフォルトの「デフォルト: 縦のレポート、look 1(NULL列を含む)」を受け入れます。
「ページ区切りスキーム」で、「- ページ区切りが選択されていない -」を選択します。
「部分ページ・リフレッシュの有効化」で、「いいえ」を選択します。
「行数」に、15と入力します。
「行カウント最大値」に、500と入力します。
「変更の適用」をクリックします。
「レポート付きの表のフォーム」ウィザードによって、「Name」、「Email」、「Role」および「Username」のNOT NULL検証が作成されました。リーダーおよびメンバーにプロジェクトが割り当てられ、CEOおよびマネージャには割り当てられないようにするには、別の検証を手動で作成する必要があります。通常は、高速の組込み検証タイプを使用することをお薦めします。ただし、この複合タイプの検証では、PL/SQL検証を作成します。
適切なユーザーがプロジェクトに割り当てられていることを確認する検証を追加するには、次のステップを実行します。
「ページ・プロセス」の「検証」で、「作成」アイコンをクリックします。
「レベル」で、デフォルトの「アイテム・レベルの検証」を受け入れて「次へ」をクリックします。
「アイテム」で、「User Information: 50.P5_ASSIGNED_PROJECT(Assigned Project)」を選択して「次へ」をクリックします。
「検証方法」で、次のステップを実行します。
「PL/SQL」を選択して「次へ」をクリックします。
デフォルトの「PL/SQL式」を受け入れて、「次へ」をクリックします。
「順序と名前」で、次のステップを実行します。
「順序」に、60と入力します。
「検証名」に、PROJECT_MAND_FOR_LEADER_AND_MEMBERと入力します。
残りのデフォルトを受け入れて「次へ」をクリックします。
「検証」で、次のステップを実行します。
「検証」に、次のように入力します。
(:P5_PERSON_ROLE IN ('CEO','Manager') AND
:P5_ASSIGNED_PROJECT = '%'||'null%') OR
(:P5_PERSON_ROLE IN ('Lead','Member') AND
:P5_ASSIGNED_PROJECT != '%'||'null%')
Oracle Application Expressでは、NULLは%null%として渡されます。また、データの処理時に%null%はNULLと置換されます。このため、検証に含めるには、文字列が認識および置換されないように分割する必要があります。
「エラー・メッセージ」に、次のように入力します。
Leads and Members must have an Assigned Project. CEO and Managers cannot have an Assigned Project.
「次へ」をクリックします。
「作成」をクリックします。
新しい「Users」ページおよび「User Information」ページを表示するには、ページの右上にある「ページの実行」アイコンをクリックします。
「アプリケーション」ホーム・ブレッドクラムをクリックします。このチュートリアルでこれまで作成したページ(「Users」、「User Information」ページなど)が表示されます。
「アプリケーションの実行」アイコンをクリックします。図15-19に示すように、「Home」ページにイメージ・リンクのリストが表示されます。
右端にある「Users」リンクをクリックします。「Users」ページが図15-20「「Users」ページ」のように表示されます。
Carla Downingの左にある「編集」アイコンをクリックします。「Users Information」ページが図15-21のように表示されます。
「Lead」ロールまたは「Member」ロールを持つユーザーにプロジェクトが割り当てられていることを確認する検証プロセスをテストします。
「Assigned Project」で、「- なし -」を選択して「変更の適用」をクリックします。「User Information」ページにエラー・メッセージが表示されます。
次に、Issue Trackerアプリケーションに新しいユーザーを追加します。
「Users」ブレッドクラムをクリックして「Users」ページに戻ります。
「Add User>」ボタンをクリックします。図15-22「「Add User」ページ」に示すように、「User Information」フォームが表示されます。
新しいユーザーの名前、電子メール・アドレスおよびユーザー名を入力してロールを選択します。ロールが「Lead」または「Member」でないかぎり、プロジェクトを割り当てないでください。
|
注意: 検証プロセスでは、CEOまたはManagerにはプロジェクトが割り当てられていないこと、およびLeadまたはMemberにはプロジェクトが割り当てられていることが確認されます。検証プロセスをテストするために、これらの条件のいずれかに違反して「作成」をクリックします。エラー・メッセージが表示されます。 |
「作成」をクリックします。「Users」ページに新しく追加されたユーザーが表示されます。
次に、IT_ISSUESから問題の情報を取得するためのページを作成する必要があります。
この項の内容は次のとおりです。
このアプリケーションには、「Issues」の複数のビューが必要です。これらのビューは、1つのレポートとして作成するか、または別々のレポートとして作成することができます。この演習では、「Issues」メンテナンス・フォームを含む複雑なレポートを作成します。このメンテナンス・フォームを複数の場所にリンク付けします。最終的に、問題を発見したユーザー、プロジェクト、割り当てられたユーザー、ステータスまたは優先順位ごとの問題が「Issues」レポートに表示されます。
この項を完了すると、図15-23「「Issues」ページ」および図15-24「Issue Details」に示す「Issues」ページと「Issue Details」ページがアプリケーションに含まれます。
このページには、システムに入力された問題が一般的な問題情報とともにレポートされます。このページには、次のコンポーネントが含まれています。
Issue Summary: 問題についての簡単な説明。
Identified Date: 問題の発生日。
Status: 問題のステータス(「Open」、「Closed」または「On-hold」)。
Priority: 問題の優先度(「High」、「Medium」または「Low」)。
Target Resolution Date: この問題を終結する必要がある日。
Progress: この問題の進捗の簡単な説明。
Actual Resolution Date: この問題を終結した日。
Identified By: この問題を発見したユーザー。
Project Name: この問題が発生したプロジェクト。このプロジェクトは、システムにすでに指定されているLOVです。
Assigned To: この問題の解決を割り当てられたユーザー。このユーザーは、システムにすでに入力されているユーザーである必要があります。
検索リージョン: 検索条件を選択して「実行」ボタンをクリックすると、フィルタ処理されたレポートを取得できます。
編集アイコン: ユーザー情報を編集するには、ユーザー名の左にある編集アイコンをクリックします。「User Information」ページに、選択したユーザーの情報が表示されます。
「Add Issue」ボタン: このボタンをクリックすると、新しい問題を追加できます。特定の問題の詳細を入力するための空の「Issue Details」ページが表示されます。
このフォームで、既存の問題情報の編集および新しい問題の追加を行うことができます。「Issues」ページの「Add Issue」ボタンまたは編集アイコンをクリックすると、この詳細ページが表示されます。このページには、次のコンポーネントが含まれています。
取消: 未適用の変更を送信せずに「Issues」ページに戻ります。
削除: 削除確認メッセージからOKのレスポンスを受信した後で、データベースから問題を削除します。このボタンは、問題の編集時に表示され、問題の追加時には表示されません。
変更の適用: 問題の変更をデータベースにコミットします。このボタンは、問題の編集時に表示され、問題の追加時には表示されません。
作成: データベースに問題を追加します。このボタンは、問題の編集時には表示されず、問題の追加時に表示されます。
Issue Details: このリージョンで、特定の問題情報を入力できます。
Audit Report: このリージョンを展開すると、問題の監査情報が表示されます。監査情報は編集できません。問題を追加するか、または問題の詳細を編集すると、この問題に対する監査情報が自動的に更新されます。
IT_ISSUESを管理するためのレポートを作成するには、次のステップを実行します。
「開発者」ツールバーで「アプリケーション」をクリックします。
「ページの作成」をクリックします。
「フォーム」を選択して「次へ」をクリックします。
「レポート付きの表のフォーム」を選択して「次へ」をクリックします。
「表/ビューの所有者」で、適切なスキーマを選択して「次へ」をクリックします。
「表/ビューの名前」で、「IT_ISSUES」を選択して「次へ」をクリックします。
「レポート・ページの定義」で、次のステップを実行します。
「実装」で、「対話モード」を選択します。
「ページ番号」に、6と入力します。
「ページ名」に、Issuesと入力します。
「リージョン・タイトル」に、Issuesと入力します。
「リージョン・テンプレート」で、「テンプレートなし」を選択します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「ブレッドクラム・エントリの作成」セクションが表示されます。
「エントリ名」に、Issuesと入力します。
「親エントリの選択」で、「Home」リンクを選択します。
残りのデフォルトを受け入れて「次へ」をクリックします。
「レポート・ページの定義」タブ設定で、次の変更を行います。
「タブ・オプション」で、「既存のタブ・セットを使用して、そのタブ・セット内に新しいタブの作成」を選択します。
「タブ・セット」で、「Issue Tracker」を選択します。
「新しいタブ・ラベル」に、Issuesと入力します。
「次へ」をクリックします。
「タブ・セット」で、「Issue Tracker」を選択して「次へ」をクリックします。
「新しいタブ・ラベル」にIssuesと入力し、「次へ」をクリックします。
「列の選択」で、[Ctrl]キーを押しながら次の列を選択します。
ISSUE_ID
ISSUE_SUMMARY
IDENTIFIED_BY_PERSON_ID
IDENTIFIED_DATE
RELATED_PROJECT_ID
ASSIGNED_TO_PERSON_ID
STATUS
PRIORITY
TARGET_RESOLUTION_DATE
PROGRESS
ACTUAL_RESOLUTION_DATE
「次へ」をクリックします。
「リンク・イメージの編集」で、最初のオプションを選択して「次へ」をクリックします。
「フォーム・ページの定義」で、次のステップを実行します。
「ページ番号」に、7と入力します。
「ページ名」に、Issue Detailsと入力します。
「リージョン・タイトル」に、Issue Detailsと入力します。
「リージョン・テンプレート」で、「フォーム・リージョン」を選択します。
「ブレッドクラムの作成」エントリの「エントリ名」に、Issue Detailsと入力します。
「次へ」をクリックします。
「主キー」で、デフォルトの「ISSUE_ID」を受け入れて「次へ」をクリックします。
「主キー列のソースの定義」で、デフォルトの「既存のトリガー」を受け入れて「次へ」をクリックします。
「列の選択」で、「CREATED_ON」、「CREATED_BY」、「MODIFIED_ON」および「MODIFIED_BY」以外のすべての列を選択して「次へ」をクリックします。
後続のステップの「監査」リージョンの作成時に、CREATED_ON、CREATED_BY、MODIFIED_ONおよびMODIFIED_BY列がページ7 (「Issue Details」)に追加されます。
「挿入」、「更新」および「削除」で、デフォルト値「はい」を受け入れて「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
「ページの編集」をクリックします。
このページの外観を、図15-24「Issue Details」のように変更する必要があります。列およびフィールドの表示方法の変更、同様の情報のリージョンへのページの再構成および新しい問題を順次作成するためのボタンの作成を行う必要があります。
次に、「Status」、「Priorities」および「People」のLOVを追加する必要があります。「Status」のLOVを追加するには、次のステップを実行します。
ページ7 (「Issue Details」)のページ定義に移動します。
「共有コンポーネント」の「LOV」で、「作成」アイコンをクリックします。
「LOVの作成」で、デフォルトの「最初から」を受け入れて「次へ」をクリックします。
「LOVの作成」で、次の変更を行います。
「名前」に、STATUSと入力します。
「タイプ」で、「静的」を選択します。
「次へ」をクリックします。
表15-3に示す表示値と戻り値の組合せを入力します。
「LOVの作成」をクリックします。
「Priorities」のLOVを追加するには、次のステップを実行します。
「LOV」ページで、「作成」をクリックします。
「LOVの作成」で、デフォルトの「最初から」を受け入れて「次へ」をクリックします。
「LOVの作成」で、次の変更を行います。
「名前」に、PRIORITIESと入力します。
「タイプ」で、「静的」を選択します。
「次へ」をクリックします。
表15-4に示す表示値と戻り値の組合せを入力します。
「LOVの作成」をクリックします。
「People」のLOVを追加するには、次のステップを実行します。
「LOV」ページで、「作成」をクリックします。
「LOVの作成」で、デフォルトの「最初から」を受け入れて「次へ」をクリックします。
「LOVの作成」で、次の変更を行います。
「名前」に、PEOPLEと入力します。
「タイプ」で、「動的」を選択します。
「次へ」をクリックします。
「問合せ」で、既存の文を次と置き換えます。
SELECT person_name d, person_id r FROM it_people ORDER BY 1
「LOVの作成」をクリックします。
ページ7のページ定義に移動します。
次に、個々のアイテムを編集します。P7_IDENTIFIED_BY_PERSON_IDを編集するには、次のステップを実行します。
ページ7の「ページ定義」の「アイテム」で、「P7_IDENTIFIED_BY_PERSON_ID」をクリックします。
「名前」に、P7_IDENTIFIED_BYと入力します。
「名前」セクションの「表示形式」リストから、「選択リスト」を選択します。
「ラベル」の「ラベル」に、Identified Byと入力します。
「LOV」で、次の変更を行います。
「名前付きLOV」で、「PEOPLE」を選択します。
「NULLを表示」で、「はい」を選択します。ベース列は必須ですが、リストの最初の名前がデフォルトの値にならないようにする必要があります。
「NULL表示値」に、次のように入力します。
- Select Person -
ページの上部にある「次へ」ボタン(>)をクリックして、次のアイテムP7_IDENTIFIED_DATEに移動します。
「ページ・アイテムの編集」ページが表示されます。
P7_IDENTIFIED_DATEを編集するには、次のステップを実行します。
「デフォルト」までスクロールして、次のステップを実行します。
「デフォルト値」に、次のように入力します。
to_char(sysdate,:APP_DATE_FORMAT);
「デフォルト値のタイプ」で、「PL/SQL式」を選択します。
ページの上部にある「次へ」ボタン(>)をクリックして、次のアイテムP7_RELATED_PROJECT_IDに移動します。
「ページ・アイテムの編集」ページが表示されます。
P7_RELATED_PROJECT_IDを編集するには、次のステップを実行します。
「名前」に、P7_RELATED_PROJECTと入力します。
「名前」セクションの「表示形式」リストから、「選択リスト」を選択します。
「ラベル」に、Related Projectと入力します。
「LOV」までスクロールします。「LOV」で、次のステップを実行します。
「名前付きLOV」で、「PROJECTS」を選択します。
「NULLを表示」で、「はい」を選択します。
「NULL表示値」に、次のように入力します。
- Select Project -
ページの上部にある「次へ」ボタン(>)をクリックして、P7_ASSIGNED_TO_PERSON_IDに移動します。
P7_ASSIGNED_TO_PERSON_IDを編集するには、次のステップを実行します。
「名前」に、P7_ASSIGNED_TOと入力します。
「名前」セクションの「表示形式」リストから、「選択リスト」を選択します。
「ラベル」に、Assigned Toと入力します。
「LOV」までスクロールします。「LOV」で、次のステップを実行します。
「名前付きLOV」で、「PEOPLE」を選択します。
「NULLを表示」で、「はい」を選択します。
「NULL表示値」に、次のように入力します。
- Select -
ページの上部にある「次へ」ボタン(>)をクリックして、P7_STATUSに移動します。
P7_STATUSを編集するには、次のステップを実行します。
「名前」セクションの「表示形式」リストから、「ラジオ・グループ」を選択します。
「ラベル」で、「ラベル」フィールドに次のように入力します。
Status:
「要素」で、「フォーム要素オプション属性」フィールドに次のように入力します。
class="instructiontext"
「デフォルト値」で、「デフォルト値」にOpenと入力します。
「LOV」で、次のステップを実行します。
「名前付きLOV」で、「STATUS」を選択します。
「列の数」に、3と入力します。
この選択は、3つの有効な値が存在しているということを反映しています。
ページの上部にある「次へ」ボタン(>)をクリックして、P7_PRIORITYに移動します。
P7_PRIORITYを編集するには、次のステップを実行します。
「名前」セクションの「表示形式」リストから、「ラジオ・グループ」を選択します。
「ラベル」で、「ラベル」フィールドに次のように入力します。
Priority:
「要素」で、「フォーム要素オプション属性」フィールドに次のように入力します。
class="instructiontext"
「デフォルト」で、「デフォルト値」にLowと入力します。
「LOV」で、次のステップを実行します。
「名前付きLOV」で、「PRIORITIES」を選択します。
「列の数」に、3と入力します。
この選択は、3つの有効な値が存在しているということを反映しています。
「変更の適用」をクリックします。
検証を編集するには、次のステップを実行します。
ページ7の編集ページの「検証」で、「P7_IDENTIFIED_BY_PERSON_ID not null」を選択します。
「名前」に、P7_IDENTIFIED_BY not nullと入力します。
「検証式1」に、P7_IDENTIFIED_BYと入力します。
「エラー・メッセージ」までスクロールします。
「エラー・メッセージ」に、次のように入力します。
Identified By must have some value.
「P7_RELATED_PROJECT_ID not null」の編集ページが表示されるまで、ページの上部にある「次へ」アイコン(>)をクリックします。
「名前」に、P7_RELATED_PROJECT not nullと入力します。
「検証式1」に、P7_RELATED_PROJECTと入力します。
「エラー・メッセージ」までスクロールします。
「エラー・メッセージ」に、次のように入力します。
Related Project must have some value.
「変更の適用」をクリックします。
ページ7の「実行」アイコンをクリックします。「Issue Details」ページが図15-25のように表示されます。
現在、すべてのアイテムが1つの大きいリージョンにグループ化されています。論理グループにアイテムを表示すると、ユーザーはデータ・エントリを簡単に行うことができます。このため、次に、「Buttons」、「Progress」、「Resolution」および「Audit Information」という4つの新しいリージョンを作成します。また、既存のリージョンの名前を変更します。
新しいリージョンを作成してアイテムをグループ化するには、次のステップを実行します。
ページ下部の「ページの編集7」リンクをクリックします。
「リージョン」で、「作成」アイコンをクリックします。
「複数のHTML」を選択して、「次へ」をクリックします。
最初の行では、次の操作を行います。
「順序」に、15と入力します。
「タイトル」に、Progressと入力します。
「テンプレート」で、「フォーム・リージョン」を選択します。
2番目の行では、次の操作を行います。
「順序」に、20と入力します。
「タイトル」に、Resolutionと入力します。
「テンプレート」で、「フォーム・リージョン」を選択します。
「リージョンの作成」をクリックします。
「リージョン」で、「作成」アイコンをクリックします。
「レポート」を選択し、「次へ」をクリックします。
「SQLレポート」を選択して「次へ」をクリックします。
「タイトル」に、Audit Informationと入力します。
「タイトル」に、Audit Informationと入力します。
「リージョン・テンプレート」で、「非表示と表示のリージョン」を選択します。
「順序」に、40と入力します。
「次へ」をクリックします。
「SQL問合せ、またはSQL問合せを戻すPL/SQLファンクションを入力」に、次のように入力します。
select "IT_ISSUES"."CREATED_ON" as "CREATED_ON",
"IT_ISSUES"."CREATED_BY" as "CREATED_BY",
"IT_ISSUES"."MODIFIED_ON" as "MODIFIED_ON",
"IT_ISSUES"."MODIFIED_BY" as "MODIFIED_BY"
from "IT_ISSUES" "IT_ISSUES"
where ISSUE_ID = :P7_ISSUE_ID
「リージョンの作成」をクリックします。
「Audit Information」リージョンの横にある「レポート」をクリックします。
「レイアウトおよびページ区切り」で、次の変更を行います。
「レポート・テンプレート」で、デフォルトの「デフォルト: 縦のレポート、look 1(NULL列を含む)」を受け入れます。
「ページ区切りスキーム」で、「- ページ区切りが選択されていない -」を選択します。
「部分ページ・リフレッシュの有効化」で、「いいえ」を選択します。
「行数」に、15と入力します。
「行カウント最大値」に、500と入力します。
「変更の適用」をクリックします。
次に、各アイテムを適切なリージョンに移動します。一部のアイテムの幅を変更する必要もあります。
アイテムを適切なリージョンに移動するには、次のステップを実行します。
「アイテム」で、「すべて編集」アイコンをクリックします。
「ページ・アイテム」サマリー・ページが表示されます。
「リージョン」で、次のアイテムの「Progress」を選択します。
P7_ASSIGNED_TO
P7_STATUS
P7_PRIORITY
P7_TARGET_RESOLUTION_DATE
P7_PROGRESS
「リージョン」で、次のアイテムの「Resolution」を選択します。
P7_ACTUAL_RESOLUTION_DATE
P7_RESOLUTION_SUMMARY
「幅」で、次のように編集します。
P7_ISSUE_SUMMARYに、80と入力します。
P7_ISSUE_DESCRIPTIONに、80と入力します。
P7_IDENTIFIED_DATEに、12と入力します。
P7_TARGET_RESOLUTION_DATEに、12と入力します。
P7_PROGRESSに、80と入力します。
P7_ACTUAL_RESOLUTION_DATEに、12と入力します。
P7_RESOLUTION_SUMMARYに、80と入力します。
「順序」で、次のように編集します。
P7_ISSUE_IDに、168と入力します。
P7_ISSUE_SUMMARYに、169と入力します。
P7_ISSUE_DESCRIPTIONに、170と入力します。
P7_IDENTIFIED_BYに、173と入力します。
P7_IDENTIFIED_DATEに、174と入力します。
P7_RELATED_PROJECTに、172と入力します。
P7_ASSIGNED_TOに、159と入力します。
P7_STATUSに、160と入力します。
P7_PRIORITYに、161と入力します。
P7_TARGET_RESOLUTION_DATEに、162と入力します。
P7_PROGRESSに、164と入力します。
P7_ACTUAL_RESOLTUTION_DATEに、165と入力します。
P7_RESOLUTION_SUMMARYに、167と入力します。
「変更の適用」をクリックします。
ページ7の「実行」アイコンをクリックします。「Issue Details」ページが図15-26のように表示されます。
これらの列の表示方法を変更するには、次のステップを実行します。
ページ下部の「ページの編集7」リンクをクリックします。
「アイテム」で、「P7_ISSUE_SUMMARY」をクリックします。
「表示形式」で、「テキスト領域」を選択します。
「ラベル」の「横/縦の位置合せ」で、「上部」を選択します。
「要素」で、次の変更を行います。
「最大幅」に、200と入力します。
「高さ」に、2と入力します。
ページ上部の「次へ」アイコンを選択して、P7_ISSUE_DESCRIPTIONのページ・アイテムの編集を表示します。
「ラベル」の「横/縦の位置合せ」で、「上部」を選択します。
「要素」で、次の変更を行います。
「最大幅」に、2000と入力します。
「高さ」に、4と入力します。
「変更の適用」をクリックします。
「アイテム」で、「P7_PROGRESS」をクリックします。
「ラベル」の「横/縦の位置合せ」で、「上部」を選択します。
「要素」で、「最大幅」に2000と入力します。
「変更の適用」をクリックします。
「アイテム」で、「P7_RESOLUTION_SUMMARY」をクリックします。
「ラベル」の「横/縦の位置合せ」で、「上部」を選択します。
「要素」で、「最大幅」に2000と入力します。
「変更の適用」をクリックします。
ページの上部の「ページの実行7」アイコンをクリックします。図15-27に示すように、「Issue Details」ページのテキスト領域の上に「Issue Summary」、「Issue Description」および「Progress」ラベルが表示されます。
次に、各リージョンに「HTML表の停止および開始」アイテムを追加します。これによって、リージョン内のすべてのアイテムが左揃えになります。
「開発者」ツールバーで、「ページの編集7」リンクをクリックします。
「アイテム」で、「作成」アイコンをクリックします。
「表の停止および開始」を選択して「次へ」をクリックします。
「Related Project」、「Identified By」および「Identified Date」の位置を変更するには、「表示および位置名」で次の変更を行います。
「アイテム名」に、P7_3_0と入力します。
「順序」に、171と入力します。
「リージョン」で、「Issues Identification (1) 10」を選択します。
「アイテムの作成」をクリックします。
「アイテム」で、「作成」アイコンをクリックします。
「表の停止および開始」を選択して「次へ」をクリックします。
「Assigned To」、「Status」、「Priority」および「Target Resolution Date」の位置を変更するには、「表示および位置名」で次の変更を行います。
「アイテム名」に、P7_4_0と入力します。
「順序」に、163と入力します。
「リージョン」で、「Progress (1) 15」を選択します。
「アイテムの作成」をクリックします。
「アイテム」で、「作成」アイコンをクリックします。
「表の停止および開始」を選択して「次へ」をクリックします。
「Actual Resolution Date」の位置を変更するには、「表示および位置名」で次の変更を行います。
「アイテム名」に、P7_1_0と入力します。
「順序」に、166と入力します。
「リージョン」で、「Resolution (1) 20」を選択します。
「アイテムの作成」をクリックします。
「ページの実行7」アイコンをクリックします。これで、次に示すように「Issue Details」ページのすべてのアイテムが適切な位置に表示されます。
「監査」列は、表示可能かつ編集不可にする必要があるため、表示専用にします。次の演習では、「監査情報」リージョンの条件を作成します。結果として、「監査情報」リージョンは、ユーザーが既存の問題を編集する場合は表示されますが、新しい問題を作成する場合は表示されなくなります。
「監査情報」リージョンの条件を作成するには、次のステップを実行します。
ページ下部の「ページの編集7」リンクをクリックします。
「リージョン」で、「監査情報」をクリックします。
「条件付き表示」までスクロールします。
「条件タイプ」で、「式1のアイテムの値がNULL」を選択します。
「式1」に、次のように入力します。
P7_ISSUE_ID
「変更の適用」をクリックします。
この「Issue Details」ページは複数の場所からコールされるため、ユーザーは、表示を終了すると、コール元ページに戻る必要があります。これを行うには、「Issue Details」ページにアイテムを作成してブランチを変更します。「Issue Details」ページがコールされるたびに、コール元ページの番号を指定してアイテムを設定する必要があります。
非表示アイテムを作成するには、次のステップを実行します。
「アイテム」で、「作成」アイコンをクリックします。
「アイテム・タイプの選択」で、「非表示」を選択して「次へ」をクリックします。
「非表示のアイテム・タイプ」で、「非表示」を選択して「次へ」をクリックします。
「表示位置および名前」で、次のステップを実行します。
「アイテム名」に、次のように入力します。
P7_PREV_PAGE
「順序」に、175と入力します。
「リージョン」で、「Issue Details」を選択します。
「次へ」をクリックします。
「デフォルト」に、1と入力します。
「アイテムの作成」をクリックします。
ページ7のページ定義が表示されます。
次に、P7_PREV_PAGEに格納されているページ番号に戻るように「取消」ボタンを編集します。
「取消」ボタンを編集するには、次のステップを実行します。
「ボタン」で、「取消」をクリックします。
「オプションのURLリダイレクト」までスクロールします。
「ページ」に、次のように入力します。
&P7_PREV_PAGE.
末尾のピリオドに注意してください。
「このページのページ区切りをリセット」を選択します。
「変更の適用」をクリックします。
ブランチを編集するには、次のステップを実行します。
「ブランチ」で、「プロセスの後」ブランチ、「ページに移動」、「6」および「条件なし」を選択します。
「アクション」で、次の変更を行います。
「このページのページ区切りをリセット」を選択します。
「プロセスの成功メッセージを含める」を選択解除します。
「キャッシュのクリア」に、7と入力します。
「次のアイテムを設定」に、「P7_PREV_PAGE」と入力します。
「変更の適用」をクリックします。
次に、ユーザーが一度に複数の問題を追加できる機能を追加します。これを行うには、まず新しいボタンを追加し、次に新しいブランチを作成します。
新しいボタンを追加するには、次のステップを実行します。
「ボタン」で、「ボタン」セクションの右上にある「すべて編集」アイコンと「作成」アイコンの間の「「コピー」ボタン」アイコンをクリックします。「コピー」アイコンは、図15-29のようになります。
コピーする「ボタン」に、CREATEと入力します。
「ターゲット・ページ」で、デフォルトの「7」を受け入れて「次へ」をクリックします。
「新しいボタン」で、次のステップを実行します。
「ボタン名」で、CREATE_AGAINと入力します。
「ラベル」に、作成後、別のものの作成と入力します。
残りのデフォルトを受け入れて「「コピー」ボタン」をクリックします。
次に、「作成」ページでユーザーを保持するブランチを作成します。
ページのキャッシュが消去されるとそのアイテムの値が失われるため、このブランチによって、P7_PREV_PAGEの再設定も行われることに注意してください。この新しいブランチの順序は0になります。順序を0に設定すると、「作成後、さらに作成」ボタンが使用されている場合のみ、このブランチはデフォルトのブランチの前に起動されます。
「作成」ページでユーザーを保持するブランチを作成するには、次のステップを実行します。
「ページ・プロセス」の「ブランチ」で、「作成」アイコンをクリックします。
「ポイントおよびタイプ」で、デフォルトを受け入れて「次へ」をクリックします。
「ターゲット」で、次の変更を行います。
「ページ」に、7と入力します。
「このページのページ区切りをリセット」を選択します。
「キャッシュのクリア」に、7と入力します。
「次のアイテムを設定」に、次のように入力します。
P7_PREV_PAGE
「次の値を使用」に、次のように入力します(ピリオドを含めます)。
&P7_PREV_PAGE.
「次へ」をクリックします。
「ブランチ条件」で、次の変更を行います。
「順序」に、0と入力します。
「対象ボタン」で、「CREATE_AGAIN」(作成後、さらに作成)を選択します。
「ブランチの作成」をクリックします。
変更を表示するには、「ページの実行」アイコンをクリックします。新しいフォームが、図15-30「Issue Detailsの調整」のように表示されます。
作成したブランチによって、P7_PREV_PAGEの値が検索されます。このページは別のページからコールされなかったため、値は設定されていません。次に、これを修正する必要があります。
次に、問合せの動的変更がサポートされるように「Issues」レポート・ページを調整します。これを行うには、次の操作を実行する必要があります。
「Add Issue」ボタンから「Issue Details」ページをコールするには、次のステップを実行します。
ページ6(「Issues」)のページ定義に移動します。
「ボタン」で、「作成」ボタンをクリックします。
「テキスト・ラベル/代替」に、Add Issue>と入力します。
「オプションのURLリダイレクト」で、次の変更を行います。
「次のアイテムを設定」に、P7_PREV_PAGEと入力します。
「次の値を使用」に、6を入力します。
「変更の適用」をクリックします。
次に、IDではなく、ユーザーおよびプロジェクトの実際の値が表示されるように問合せを変更した後、レポートの表示をクリーンアップします。
SQL問合せを変更するには、次のステップを実行します。
「リージョン」で、「Issues」を選択します。
「ソース」までスクロールします。
SQLを次のように置き換えます。
SELECT "IT_ISSUES"."ISSUE_SUMMARY" as "ISSUE_SUMMARY",
"IT_PEOPLE"."PERSON_NAME" as "IDENTIFIED_BY",
"IT_ISSUES"."IDENTIFIED_DATE" as "IDENTIFIED_DATE",
"IT_PROJECTS"."PROJECT_NAME" as "PROJECT_NAME",
decode("IT_PEOPLE_1"."PERSON_NAME",NULL,'Unassigned',
"IT_PEOPLE_1"."PERSON_NAME")
as "ASSIGNED_TO",
"IT_ISSUES"."STATUS" as "STATUS",
"IT_ISSUES"."PRIORITY" as "PRIORITY",
"IT_ISSUES"."TARGET_RESOLUTION_DATE" as "TARGET_RESOLUTION_DATE",
"IT_ISSUES"."PROGRESS" as "PROGRESS",
"IT_ISSUES"."ACTUAL_RESOLUTION_DATE" as "ACTUAL_RESOLUTION_DATE",
"IT_ISSUES"."ISSUE_ID" as "ISSUE_ID",
"IT_ISSUES"."RELATED_PROJECT_ID" as "PROJECT_ID"
FROM "IT_PEOPLE" "IT_PEOPLE_1",
"IT_PROJECTS" "IT_PROJECTS",
"IT_PEOPLE" "IT_PEOPLE",
"IT_ISSUES" "IT_ISSUES"
WHERE "IT_ISSUES"."IDENTIFIED_BY_PERSON_ID"="IT_PEOPLE"."PERSON_ID"
AND "IT_ISSUES"."ASSIGNED_TO_PERSON_ID"="IT_PEOPLE_1"."PERSON_ID"(+)
AND "IT_ISSUES"."RELATED_PROJECT_ID"="IT_PROJECTS"."PROJECT_ID"
「変更の適用」をクリックします。
確定するために、「変更の適用」をクリックします。
列属性を編集するには、次のステップを実行します。
「リージョン」で、「対話モード・レポート」を選択します。
ISSUE_IDの「表示テキスト」で、「非表示」を選択します。
ISSUE_SUMMARYの左にある「編集」アイコンをクリックします。
「ヘッダーの位置合せ」で、「左」を選択します。
ページの上部に戻って「次へ」アイコン(>)をクリックします。IDENTIFIED_DATEの「レポート属性」ページが表示されます。
「ヘッダーの位置合せ」で、「左」を選択します。
ページの上部に戻って、IDENTIFIED_BYの「レポート属性」ページが表示されるまで「次へ」(>)アイコンをクリックします。
「ヘッダーの位置合せ」で、「左」を選択します。
ページの上部に戻って「次へ」アイコン(>)をクリックします。PROJECT_NAMEの「レポート属性」ページが表示されます。
「ヘッダーの位置合せ」で、「左」を選択します。
ページの上部に戻って「次へ」アイコン(>)をクリックします。ASSIGNED_TOの「列属性」ページが表示されます。
「ヘッダーの位置合せ」で、「左」を選択します。
ページの上部に戻って「次へ」アイコン(>)をクリックします。PROJECT_IDの「列属性」ページが表示されます。
「表示テキスト」で、「非表示」を選択します。
「変更の適用」をクリックします。
データが見つからなかった場合のメッセージおよびリンク列の詳細を追加するには、次のステップを実行します。
「ページ区切り」までスクロールします。
「データが見つからなかった場合のメッセージ」に、次のように入力します。
No issues found.
「リンク列」までスクロールし、「アイテム2」の「名前」に、P7_PREV_PAGEと入力します。
「アイテム2」の「値」に、6と入力します。
「変更の適用」をクリックします。
「Issues」タブを「Projects」タブと「Users」タブの間に移動します。
タブの順序を変更するには、次のステップを実行します。
「アプリケーション」ホーム・ブレッドクラムをクリックします。
「共有コンポーネント」をクリックします。
「ナビゲーション」で、「タブ」を選択します。
「標準タブのタスク」の下の右パネルにある「表示順序の変更」リンクをクリックします。
「順序」列で、次の変更を行います。
「Projects」の「順序」に、15と入力します。
「Users」の「順序」に、30と入力します。
「Issues」の「順序」に、20と入力します。
「変更の適用」をクリックします。
新しい「Issues」ページおよび「Issue Details」ページを表示するには、ページの右上にある「ページの実行」アイコンをクリックします。
「アプリケーション」ホーム・ブレッドクラムをクリックします。このチュートリアルでこれまで作成したページ(新しく追加した「Issues」、「Issue Details」ページなど)が表示されます。
「アプリケーションの実行」アイコンをクリックします。図15-31に示すように、「Home」ページにイメージ・リンクのリストが含まれています。
「Issues」リンクをクリックします。「Issues」ページが表示されます。一部の列の名前を変更したため、このページを初めて実行した場合、「Identify By」、「Project Name」および「Assigned To」列が表示されない場合があります。この場合、このページを実行して表示する列を指定することで、レポートの表示をさらにカスタマイズできます。
表示する列を指定するには、次のステップを実行します。
実行中の「Issues」ページで、「実行」ボタンの右にある「アクション」メニュー・ドロップ・ダウン(図15-32に示す)をクリックします。
「列の選択」を選択します。ページは、図15-33のようになります。
「表示しない」リストと「レポートに表示」リストの間の「すべて移動」アイコン(>>)をクリックします。欠落している3つの列が「レポートに表示」リストに移動されます。
「列の選択」領域の右下にある「適用」をクリックします。「Issues」ページが図15-34のようになります。
次に、いずれかの問題の「Issue Details」を表示します。
問題の左にある「編集」アイコンをクリックします。「Issue Details」ページが図15-35のように表示されます。
「Issues」ブレッドクラムをクリックして「Issues」ページに戻ります。
「Add Issue>」ボタンをクリックします。空の「Issue Details」が表示されます。
次に示す個々のレポートにリンクするサマリー・レポート・ページを追加します。
「Assign Open Issues」レポート
「Issue Summary by Project」レポート
「Resolved by Month Identified」レポート
「Target Resolution Dates」レポート
「Average Days to Resolve」レポート
この項の内容は次のとおりです。
この演習を完了すると、図15-36「サマリー・レポート・ページ」のようなサマリー・レポート・ページおよび個々のサマリー・レポート用の個別のレポート・ページを使用できます。サマリー・レポート・ページの各イメージは、図15-37「「Issue Summary By Report」および「Assign Open Issues」」および図15-38「「Target Resolution Dates」および「Average Days to Resolve」」に示す個別のサマリー・レポートにリンクされています。
図15-37 「Issue Summary By Report」および「Assign Open Issues」

図15-38 「Target Resolution Dates」および「Average Days to Resolve」

サマリー・レポート・ページを作成する前に、サマリー・レポート・ページとリンクする各レポートのイメージ・エントリを指定したイメージ・リストを作成する必要があります。
イメージ・リストを作成するには、次のステップを実行します。
「アプリケーション」ホーム・ブレッドクラム・リンクをクリックします。
「共有コンポーネント」をクリックします。
「ナビゲーション」で、「リスト」をクリックします。
「作成」をクリックします。
「名前」に、Reportsと入力します。
「リスト・テンプレート」で、「ラベル・リスト付きの横のイメージ」を選択します。
「作成」をクリックします。
次に、イメージ・リストを作成します。
「リスト・エントリを作成 」をクリックします。
「エントリ」で、次の変更を行います。
「順序」に、10と入力します。
「イメージ」に、次のように入力します。
menu/address_book_bx_128x128.png
「リスト・エントリ・ラベル」に、次のように入力します。
Issue Summary<br/> by Project
「ターゲット」で、「ページ」に9と入力します。このページが、この項の後半で作成する「Issue Summary」レポート・ページになります。
「作成後、別のものを作成」をクリックします。
「エントリ」で、次の変更を行います。
「順序」に、15と入力します。
「イメージ」に、次のように入力します。
menu/eba_checklist_bx_128x128.png
「リスト・エントリ・ラベル」に、次のように入力します。
Assign Open<br/>Issues
「ターゲット」で、「ページ」に8と入力します。このページが、この項の後半で作成する「Assign Open Issues」ページになります。
「作成後、別のものを作成」をクリックします。
「エントリ」で、次の変更を行います。
「順序」に、20と入力します。
「イメージ」に、次のように入力します。
menu/calendar_bx_128x128.png
「リスト・エントリ・ラベル」に、次のように入力します。
Target Resolution<br/>Dates
「ターゲット」で、「ページ」に11と入力します。このページが、この項の後半で作成する「Target Resolution Dates」ページになります。
「作成後、別のものを作成」をクリックします。
「エントリ」で、次の変更を行います。
「順序」に、30と入力します。
「イメージ」に、次のように入力します。
menu/piechart_bx_128x128.png
「リスト・エントリ・ラベル」に、次のように入力します。
Average Days<br/>to Resolve
「ターゲット」で、「ページ」に12と入力します。このページが、この項の後半で作成する「Average Days to Resolve」ページになります。
「作成後、別のものを作成」をクリックします。
「エントリ」で、次の変更を行います。
「順序」に、40と入力します。
「イメージ」に、次のように入力します。
menu/generate_bx_128x128.png
「リスト・エントリ・ラベル」に、次のように入力します。
Issues Resolved<br/>by Month
「ターゲット」で、「ページ」に10と入力します。このページが、この項の後半で作成する「Issues Resolved By Month」ページになります。
「作成」をクリックします。
イメージ・リストを参照する「Reports」ページを追加するには、次のステップを実行します。
「アプリケーション」ホーム・ブレッドクラムをクリックします。
「ページの作成」をクリックします。
「空白ページ」を選択して「次へ」をクリックします。
「ページ番号」に14と入力して、「次へ」をクリックします。
「名前」に、Reportsと入力します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「親エントリ」で、「Home」を選択します。
「次へ」をクリックします。
「タブ」で、「はい - 既存のタブ・セットを使用して、そのタブ・セット内に新しいタブを作成する。」を選択して、「次へ」をクリックします。
「既存のタブ・セット」で、「Issue Tracker (Home, Projects, Issues...)」を選択して「次へ」をクリックします。
「タブ・ラベル」にReportsと入力し、「次へ」をクリックします。
「終了」をクリックします。
「アプリケーション」ホーム・ブレッドクラムをクリックします。
「共有コンポーネント」をクリックします。
「ナビゲーション」で、「タブ」をクリックします。
「レポート」タブをクリックします。
「編集」アイコンをクリックします。
「順序」に25と入力して、「変更の適用」をクリックします。
「アプリケーション」ホーム・ブレッドクラムをクリックします。
「Reports」ページをクリックします。
「リージョン」で、「作成」ボタンをクリックします。
「リスト」を選択して「次へ」をクリックします。
「タイトル」に、Reportsと入力します。
「リージョン・テンプレート」で、「テンプレートなし」を選択して、「次へ」をクリックします。
「リスト」で、「レポート」を選択します。
「リスト・リージョンの作成」をクリックします。
編集ページの上部にある「実行」アイコンをクリックして、「Reports」のページ14を実行します。図15-40に示すとおり、「Reports」ページにイメージ・リストが表示されます。
|
注意: この時点では、チュートリアルのすべてのレポートが作成されているわけではないため、各イメージの下のレポート・リンクは機能しません。各レポートが作成されると、これらのリンクは適切なレポートにナビゲートされます。 |
現時点で、「Issues Details」ページで問題を編集して割り当てることができます。次に、「Assign Open Issues」という新しいページを追加して、ユーザーによる複数の問題の一括割当ておよび「Related Project」、「Status」および「Priority」の変更を可能にします。
表形式フォームの作成
複数の問題の割当てをサポートする新しいページを追加するには、次のステップを実行します。
「アプリケーション」ホームページに移動します。
「ページの作成」をクリックします。
「フォーム」を選択して「次へ」をクリックします。
「表形式フォーム」を選択して、「次へ」をクリックします。
「表/ビューの所有者」で、次のステップを実行します。
「表/ビューの所有者」で、適切なスキーマを選択します。
「実行可能な操作」で、「更新のみ」を選択します。
この演習では、ユーザーが問題を作成または削除できるようにすることではなく、問題を割り当てたり既存のレコードを更新できるようにすることをこのフォームの目的としています。
「次へ」をクリックします。
「表/ビューの名前」で、「IT_ISSUES」を選択して「次へ」をクリックします。
「表示列」で、次のステップを実行します。
[Ctrl]キーを押しながら、次の列を選択します。
ISSUE_SUMMARY
IDENTIFIED_BY_PERSON_ID
IDENTIFIED_DATE
RELATED_PROJECT_ID
ASSIGNED_TO_PERSON_ID
STATUS
PRIORITY
「次へ」をクリックします。
「主キー」で、デフォルトの「ISSUE_ID」を受け入れて「次へ」をクリックします。
「主キーのソース」で、デフォルトの「既存のトリガー」を受け入れて「次へ」をクリックします。
「更新可能な列」で、次のステップを実行します。
[Ctrl]キーを押しながら、次の列を選択します。
RELATED_PROJECT_ID
ASSIGNED_TO_PERSON_ID
STATUS
PRIORITY
「次へ」をクリックします。
「ページおよびリージョン属性」で、次のステップを実行します。
「ページ」に、8と入力します。
「ページ名」に、Assign Open Issuesと入力します。
「リージョン・タイトル」に、Assign Issuesと入力します。
「リージョン・テンプレート」で、「テンプレートなし」を選択します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「エントリ名」に、Assign Open Issuesと入力します。
「親エントリ」で、「Reports」を選択します。
「次へ」をクリックします。
「タブ・オプション」で、「既存のタブ・セットを使用して、そのタブ・セット内の既存のタブを再利用」を選択します。
「タブ・セット」で、「Issue Tracker (Home, Dashboard, Projects...)」を選択します。
「次へ」をクリックします。
「タブを使用」で、「T_REPORTS」を選択して「次へ」をクリックします。
「ボタン・ラベル」で、次のステップを実行します。
「「取消」ボタン・ラベル」で、デフォルトを受け入れます。
「「送信」ボタン・ラベル」に、変更の適用と入力します。
「次へ」をクリックします。
「ブランチ」で、「「取消」ボタンがクリックされたらこのページにブランチ」に14と入力して「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
初期表形式フォームを作成した後、問題を簡単に選択するためにLOVを追加する必要があります。また、未割当ての問題のみが表示されるように問合せを制限する必要があります。
LOVを追加するには、次のステップを実行します。
「成功」ページで、「ページの編集」をクリックします。
ページ8(「Assign Open Issues」)のページ定義が表示されます。
「リージョン」で、「Assign Issues」をクリックします。
「ソース」の「リージョン・ソース」で、既存の文を次と置き換えます。
SELECT
"ISSUE_ID",
"ISSUE_SUMMARY",
"IDENTIFIED_BY_PERSON_ID",
"IDENTIFIED_DATE",
"RELATED_PROJECT_ID",
"ASSIGNED_TO_PERSON_ID",
"STATUS",
"PRIORITY"
FROM "#OWNER#"."IT_ISSUES"
WHERE assigned_to_person_id IS NULL
レポート属性を編集するには、次のステップを実行します。
ページ上部の「レポート属性」タブを選択します。
ISSUE_SUMMARYの「ヘッダー」フィールドに次のように入力します。
Summary
ISSUE_IDでソートするには、次のステップを実行します。
ISSUE_ID以外のすべての列で、「ソート」を選択します。
IDENTIFIED_DATEの「ソート順序」で、「1」を選択します。これによって、問題が古い順に表示されます。
IDENTIFIED_BY_PERSON_IDの次の属性を編集します。
IDENTIFIED_BY_PERSON_IDの左にある「編集」アイコンをクリックします。
「列の定義」で、「列ヘッダー」にIdentified Byと入力します。
「表形式フォームの要素」の「表示形式」で、「テキストとして表示(LOVに基づき、状態は保存しない)」を選択します。
「LOV」までスクロールします。
「名前付きLOV」で、「PEOPLE」を選択します。
ページの上部にある「次へ」ボタン(>)をクリックして、IDENTIFIED_DATEに移動します。
IDENTIFIED_DATEの次の属性を編集します。
「列の書式」で、「数値/日付書式」にDD-MON-YYYYと入力します。
ページの上部にある「次へ」ボタン(>)をクリックして、RELATED_PROJECT_ID列に移動します。
RELATED_PROJECT_IDの次の属性を編集します。
「列の定義」で、「列ヘッダー」にRelated Projectと入力します。
「表形式フォームの要素」の「表示形式」で、「選択リスト(名前付きLOV)」を選択します。
「LOV」の「名前付きLOV」で、「PROJECTS」を選択します。
ページの上部にある「次へ」ボタン(>)をクリックして、ASSIGNED_TO_PERSON_ID列に移動します。
ASSIGNED_TO_PERSON_IDの次の属性を編集するには、次のステップを実行します。
「列の定義」で、「列ヘッダー」にAssigned Toと入力します。
「表形式フォームの要素」の「表示形式」で、「選択リスト(名前付きLOV)」を選択します。
「LOV」で、次のステップを実行します。
「名前付きLOV」で、「PEOPLE」を選択します。
「NULLを表示」で、「はい」を選択します。
「NULL表示値」に、ハイフン(-)を入力します。
ページの上部にある「次へ」ボタン(>)をクリックして、STATUS列に移動します。
STATUSの次の属性を編集するには、次のステップを実行します。
「表形式フォームの要素」の「表示形式」で、「選択リスト(名前付きLOV)」を選択します。
「LOV」の「名前付きLOV」で、「STATUS」を選択します。
ページの上部にある「次へ」ボタン(>)をクリックして、PRIORITY列に移動します。
PRIORITYの次の属性を編集するには、次のステップを実行します。
「表形式フォームの要素」の「表示形式」で、「選択リスト(名前付きLOV)」を選択します。
「LOV」で、次のステップを実行します。
「名前付きLOV」で、「PRIORITIES」を選択します。
「NULLを表示」で、「はい」を選択します。
「NULL表示値」に、ハイフン(-)を入力します。
「変更の適用」をクリックします。
「レポート属性」ページが表示されます。
「メッセージ」で、「データが見つからなかった場合のメッセージ」に次のように入力します。
No Unassigned Issues.
「変更の適用」をクリックします。
ウィザードによって、不要な「取消」ボタンが作成されています。
この「取消」ボタンを削除するには、次のステップを実行します。
ページ8のページ定義で、「ボタン」セクションにある「取消」をクリックします。
「削除」をクリックします。
「OK」をクリックして選択を確認します。
これで、表形式フォームの作成は完了です。新しいフォームを表示するには、「ページの実行」アイコンをクリックします。「Assign Open Issues」フォームが図15-41のように表示されます。
問題を割り当てるには、「Assigned To」リストから選択して「変更の適用」をクリックします。問題が割り当てられると、その問題は表示されなくなることに注意してください。
問題のサマリーを示すレポートを使用すると、プロジェクトを選択し、そのプロジェクトに関連する問題のサマリーを表示できます。このレポートには、次のサマリー情報が含まれています。
最初に問題が発見された日付
最後に問題が終結した日付
問題の合計数
ステータス別の問題数
優先順位の未解決の問題数
ステータス別の割当て
このレポートを作成するには、情報を2つのSQL文でコーディングします。1つ目の文は単一の結果を持つ情報を収集し、2つ目の文は複数の結果を持つ情報を収集します。
プロジェクト別の問題サマリーのレポートを追加するには、次のステップを実行します。
「アプリケーション」ホームページに移動します。
「ページの作成」をクリックします。
「レポート」を選択し、「次へ」をクリックします。
「SQLレポート」を選択して「次へ」をクリックします。
「ページ属性」で、次のステップを実行します。
「ページ」に、9と入力します。
「ページ名」に、Issue Summary by Projectと入力します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「親エントリ」で、「Reports」リンクを選択します。
「次へ」をクリックします。
「タブ・オプション」で、「既存のタブ・セットを使用して、そのタブ・セット内の既存のタブを再利用」を選択します。
「タブ・セット」で、「Issue Tracker (Home, Dashboard, Projects...)」を選択して「次へ」をクリックします。
「タブを使用」で、「T_REPORTS: label="Reports"」を選択して「次へ」をクリックします。
「SQL問合せ」で、次のステップを実行します。
次のSQL SELECT文を入力します。
SELECT MIN(identified_date) first_identified,
MAX(actual_resolution_date) last_closed,
COUNT(issue_id) total_issues,
SUM(DECODE(status,'Open',1,0)) open_issues,
SUM(DECODE(status,'On-Hold',1,0)) onhold_issues,
SUM(DECODE(status,'Closed',1,0)) closed_issues,
SUM(DECODE(status,'Open',decode(priority,null,1,0),0))
open_no_prior,
SUM(DECODE(status,'Open',decode(priority,'High',1,0),0))
open_high_prior,
SUM(DECODE(status,'Open',decode(priority,'Medium',1,0),0))
open_medium_prior,
SUM(DECODE(status,'Open',decode(priority,'Low',1,0),0))
open_low_prior
FROM it_issues
WHERE related_project_id = :P9_PROJECT
「次へ」をクリックします。
「レポート属性」で、次のステップを実行します。
「リージョン・テンプレート」で、「アイコン付きのリスト・リージョン(チャート)」を選択します。
「レポート・テンプレート」で、「デフォルト: 縦のレポート、look 1(NULL列を含む)」を選択します。
「リージョン名」に、Summary.と入力します。
残りのデフォルトを受け入れて「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
1つ目の問合せを作成したら、ヘッダーを編集し、関連するプロジェクトを制御するアイテムを作成する必要があります。最初に、レポートの上に表示されるリージョン(プロジェクト・パラメータが含まれる)を作成します。
レポートの上に表される新しいリージョンを作成するには、次のステップを実行します。
「成功」ページで、「ページの編集9」をクリックします。
ページ9(「Issue Summary by Project」)のページ定義が表示されます。
「リージョン」で、「作成」アイコンをクリックします。
「HTML」を選択して「次へ」をクリックします。
リージョン・コンテナとして「HTML」を選択し、「次へ」をクリックします。
「表示属性」で、次のステップを実行します。
「タイトル」に、Issue Summary Report Parametersと入力します。
「リージョン・テンプレート」で、「レポート・フィルタ - 単一行」を選択します。
「表示ポイント」で、「ページ・テンプレート・ボディ (2. リージョン・コンテンツより下のアイテム)」を選択します。
「順序」に、5と入力します。
残りのデフォルトを受け入れて「次へ」をクリックします。
「リージョンの作成」をクリックします。
プロジェクト・アイテムを作成するには、次のステップを実行します。
「アイテム」で、「作成」アイコンをクリックします。
「アイテム・タイプの選択」で、「選択リスト」を選択して「次へ」をクリックします。
「リスト制御タイプの選択」で、デフォルトの「選択リスト」を受け入れて「次へ」をクリックします。
「表示位置および名前」で、次のステップを実行します。
「アイテム名」に、P9_PROJECTと入力します。
「順序」に、31と入力します。
「リージョン」で、「Issue Summary Report Parameters (1) 5」を選択します。
「次へ」をクリックします。
「LOV」で、次のステップを実行します。
「名前付きLOV」で、「PROJECTS」を選択します。
「NULLテキスト」に、次のように入力します。
- Select -
「NULL値」に、次のように入力します。
-1
「次へ」をクリックします。
「アイテム属性」で、デフォルト値を受け入れ、「次へ」をクリックします。
「デフォルト」に、-1と入力します。
「アイテムの作成」をクリックします。
問合せを実行する「Go」ボタンを作成するには、次のステップを実行します。
「ボタン」で、「作成」アイコンをクリックします。
「ボタン・リージョン」で、「Issue Summary Report Parameters」を選択して「次へ」をクリックします。
「ボタン位置」で、「このリージョン・アイテムで表示されるボタンの作成」を選択して「次へ」をクリックします。
「ボタン属性」で、次のステップを実行します。
「ボタン名」に、P9_GOと入力します。
「順序」に、33と入力します。
「ラベル」に、Goと入力します。
「リクエスト」に、Goと入力します。
「ボタン・スタイル」で、「テンプレート・ベースのボタン」を選択します。
「テンプレート」で、「ボタン」を選択します。
「ボタンの作成」をクリックします。
次に、デフォルトの「Issue Summary by Report」ページを再表示するための「Reset」ボタンおよび「Reset」ブランチを作成します。
問合せを消去する「Reset」ボタンを作成するには、次のステップを実行します。
「ボタン」で、「作成」アイコンをクリックします。
「ボタン・リージョン」で、「Issue Summary Report Parameters」を選択して「次へ」をクリックします。
「ボタン位置」で、「このリージョン・アイテムで表示されるボタンの作成」を選択して「次へ」をクリックします。
「ボタン属性」で、次のステップを実行します。
「ボタン名」に、P9_RESETと入力します。
「順序」に、32と入力します。
「ラベル」に、Resetと入力します。
「リクエスト」に、Resetと入力します。
「ボタン・スタイル」で、「テンプレート・ベースのボタン」を選択します。
「テンプレート」で、「ボタン」を選択します。
「ボタンの作成」をクリックします。
「Reset」ブランチを作成するには、次のステップを実行します。
「ブランチ」で、「作成」アイコンを選択します。
デフォルトを受け入れて「次へ」をクリックします。
「ターゲット」で、次の変更を行います。
「ページ」に、9と入力します。
「このページのページ区切りをリセット」で、チェック・ボックスを選択します。
「キャッシュのクリア」に、9と入力します。
「次へ」をクリックします。
「対象ボタン」で、「*P9_RESET」を選択します。
「ブランチの作成」をクリックします。
レポートの下に表示される新しいリージョンを作成するには、次のステップを実行します。
「リージョン」で、「作成」アイコンをクリックします。
「レポート」を選択し、「次へ」をクリックします。
リージョン・コンテナとして「SQLレポート」を選択し、「次へ」をクリックします。
「表示属性」で、次のステップを実行します。
「タイトル」に、Assignments by Statusと入力します。
「リージョン・テンプレート」で、「テンプレートなし」を選択します。
「順序」に、20と入力します。
残りのデフォルトを受け入れて「次へ」をクリックします。
「SQL問合せ、またはSQL問合せを戻すPL/SQLファンクションを入力」に、次のように入力します。
SELECT p.person_name,i.status,
COUNT(i.issue_id) issues
FROM it_issues i, it_people p
WHERE i.related_project_id = :P9_PROJECT
AND i.assigned_to_person_id = p.person_id
GROUP BY person_name, status
「次へ」をクリックします。
「ページごとの行数」に20と入力して、「次へ」をクリックします。
「条件付き表示」で、次のステップを実行します。
「条件タイプ」で、「式1のアイテムの値!=式2」を選択します。
「式1」に、P9_PROJECTと入力します。
「式2」に、-1と入力します。
「リージョンの作成」をクリックします。
ヘッダーおよびレポート設定を編集するには、次のステップを実行します。
「リージョン」で、「Assignments by Status」の横にある「レポート」をクリックします。
「ヘッダー・タイプ」で、「カスタム」を選択します。
PERSON_NAMEのヘッダーをAssigned Toに変更します。
ISSUESのヘッダーをNumber of Issuesに変更します。
ISSUESの末尾の上矢印をクリックして、STATUSの上に移動します。
ISSUESの「列の位置合せ」を「右」に変更します。
PERSON_NAME、ISSUESおよびSTATUSの「ヘッダーの位置合せ」で、「中央」を選択します。
PERSON_NAME、ISSUESおよびSTATUSの「ソート」チェック・ボックスを選択解除します。
PERSON_NAME、ISSUESおよびSTATUSの「ソート順序」で、「-」を選択します。
「レイアウトおよびページ区切り」までスクロールします。「ページ区切りスキーム」で、「選択リストの1から15 16から30の範囲の行(ページ区切りあり)」を選択します。
「メッセージ」までスクロールします。「データが見つからなかった場合のメッセージ」に、次のように入力します。
No issues found.
「変更の適用」をクリックします。
次に、レポート・リージョンのヘッダーおよびレポート設定を編集する必要があります。また、ユーザーがプロジェクトを選択している場合に、条件に合わせて表示するレポート・リージョンを設定する必要もあります。
ヘッダーおよびレポート設定を編集するには、次のステップを実行します。
「リージョン」で、「Summary」の横にある「レポート」をクリックします。
「ヘッダー・タイプ」で、「カスタム」を選択します。
「列属性」で、次のステップを実行します。
FIRST_IDENTIFIEDのヘッダーを次のように変更します。
First Issue Identified:
LAST_CLOSEDのヘッダーを次のように変更します。
Last Issue Closed:
TOTAL_ISSUESのヘッダーを次のように変更します。
Total Issues:
OPEN_ISSUESのヘッダーを次のように変更します。
Open Issues:
ONHOLD_ISSUESのヘッダーを次のように変更します。
On-Hold Issues:
CLOSED_ISSUESのヘッダーを次のように変更します。
Closed Issues:
OPEN_NO_PRIORのヘッダーを次のように変更します。
Open Issues with No Priority:
OPEN_HIGH_PRIORのヘッダーを次のように変更します。
Open Issues of High Priority:
OPEN_MEDIUM_PRIORのヘッダーを次のように変更します。
Open Issues of Medium Priority:
OPEN_LOW_PRIORのヘッダーを次のように変更します。
Open Issues of Low Priority:
「レイアウトおよびページ区切り」までスクロールします。次のように指定します。
「NULL値の表示形式」に、ハイフン(-)を入力します。
「ページ区切りスキーム」で、「- ページ区切りが選択されていない -」を選択します。
ページ上部の「リージョン定義」タブを選択します。
「条件付き表示」までスクロールします。「条件タイプ」で、次の変更を行います。
「条件タイプ」で、「式1のアイテムの値!=式2」を選択します。
「式1」に、P9_PROJECTと入力します。
「式2」に、-1と入力します。
「変更の適用」をクリックします。
新しく作成したレポートを表示するには、「ページの実行」アイコンをクリックします。最初は、プロジェクトが選択されていないため、データは表示されません。プロジェクトを選択して「実行」をクリックします。図15-42のようなレポートが表示されます。
「Resolved by Month Identified」レポートは、折れ線グラフです。このレポートは、最初に、終結した各問題の解決にかかった日数を計算し、その問題が発見された月ごとに平均値を計算して、最後に、月別に表示します。
このレポート・ページを追加するには、次のステップを実行します。
「アプリケーション」ホームページに移動します。
「ページの作成」をクリックします。
「チャート」を選択して、「次へ」をクリックします。
「Flashチャート」を選択して「次へ」をクリックします。
「ページ属性」で、次のステップを実行します。
「ページ番号」に、10と入力します。
「ページ名」に、Resolved by Month Identifiedと入力します。
「リージョン・テンプレート」で、「テンプレートなし」を選択します。
「リージョン名」に、Resolved by Month Identifiedと入力します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「エントリ名」に、Resolved by Month Identifiedと入力します。
「親エントリ」で、「Reports」リンクをクリックします。
「次へ」をクリックします。
「タブ・オプション」で、「既存のタブ・セットを使用して、そのタブ・セット内の既存のタブを再利用」を選択します。
「タブ・セット」で、「Issue Tracker (Home, Dashboard, Projects...)」を選択して「次へ」をクリックします。
「タブを使用」で、「T_REPORTS」を選択して「次へ」をクリックします。
「チャート・タイプ」で、「3D列」を選択します。
「チャート・アニメーション」で、「スケール」を選択します。
「バックグラウンド・タイプ」で、「グラデーション」を選択します。
「バックグラウンド・カラー1」に、#FFFFCCと入力します。
「バックグラウンド・カラー2」に、#FFCC66と入力します。
「グラデーションの角度」に、45と入力します。
「カラー・スキーム」で、「Look 5」を選択します。
「X軸のタイトル」に、Month Identifiedと入力します。
「Y軸のタイトル」に、Days to Resolveと入力します。
他のすべてのデフォルト値を受け入れ、「次へ」をクリックします。
「問合せ」で、次のステップを実行します。
「SQL」に次の内容を入力します。
SELECT NULL l,
TO_CHAR(identified_date,'Mon RR') month,
AVG(actual_resolution_date-identified_date) days
FROM it_issues
WHERE status = 'Closed'
GROUP BY TO_CHAR(identified_date,'Mon RR')
この問合せにはリンクはありません(つまり、l列です)。発見された日付から月が抽出されるため、データを月別にグループ化できます。最後に、その月に発見された問題を終結するためにかかった平均日数が計算されます。
「データが見つからなかった場合のメッセージ」に、次のように入力します。
No Closed Issues found.
「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
次に、45度の角度で表示されるようにX軸の月ラベルを変更します。
チャートを編集するには、次のステップを実行します。
「成功」で、「ページの編集」を選択します。
ページ10(「Resolved by Month Identified」)のページ定義が表示されます。
「リージョン」で、「Resolved by Month Identified」の横にある「Flashチャート」を選択します。
「表示設定」で、「ラベルの回転」に45と入力します。
「変更の適用」をクリックします。
「Target Resolution Dates」レポートは、終結していない問題と、問題の解決目標日となっている日に割り当てられたユーザーが表示されるカレンダです。
解決目標日のカレンダを作成するには、次のステップを実行します。
「アプリケーション」ホームページに移動します。
「ページの作成」をクリックします。
「カレンダ」を選択して、「次へ」をクリックします。
「SQLカレンダ」を選択して「次へ」をクリックします。
「ページ属性」で、次のステップを実行します。
「ページ番号」に、11と入力します。
「ページ名」に、Target Resolution Datesと入力します。
「リージョン・テンプレート」で、「テンプレートなし」を選択します。
「リージョン名」に、Target Resolution Datesと入力します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「親エントリ」で、「Reports」リンクを選択します。
「次へ」をクリックします。
「タブ・オプション」で、「既存のタブ・セットを使用して、そのタブ・セット内の既存のタブを再利用」を選択します。
「タブ・セット」で、「Issue Tracker (Home, Dashboard, Projects...)」を選択して「次へ」をクリックします。
「タブを使用」で、「T_REPORTS」を選択して「次へ」をクリックします。
「表/ビューの所有者」で、次のステップを実行します。
「SQL問合せを入力」に、次のように入力します。
SELECT I.TARGET_RESOLUTION_DATE,
I.ISSUE_SUMMARY ||' ('||nvl(P.PERSON_NAME,'Unassigned') ||') ' disp,
I.ISSUE_ID
FROM IT_ISSUES I, IT_PEOPLE P
WHERE I.ASSIGNED_TO_PERSON_ID = P.PERSON_ID (+)
AND (I.RELATED_PROJECT_ID = :P11_PROJECT OR :P11_PROJECT = '-1')
AND I.STATUS != 'Closed'
「次へ」をクリックします。
次のことに注意してください。
target_resolution_dateは、問題が表示される日です。
issue_summaryは、割り当てられたユーザーと連結しています。
issue_idは、表示されませんが、ユーザーが問題を表示して編集できるようにするリンクの作成に使用されます。
「日付列」および「表示列」で、次のステップを実行します。
「日付列」で、「TARGET_RESOLUTION_DATE」を選択します。
「表示列」で、「DISP」を選択します。
「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
カレンダの上に表示される新しいリージョンを作成するには、次のステップを実行します。
「成功」ページで、「ページの編集」をクリックします。
ページ11(「Issue Summary by Project」)のページ定義が表示されます。
「リージョン」で、「作成」アイコンをクリックします。
「HTML」を選択して「次へ」をクリックします。
リージョン・コンテナとして「HTML」を選択し、「次へ」をクリックします。
「表示属性」で、次のステップを実行します。
「タイトル」に、Target Resolution Parametersと入力します。
「リージョン・テンプレート」で、「レポート・フィルタ - 単一行」を選択します。
「表示ポイント」で、「ページ・テンプレート・ボディ (2. リージョン・コンテンツより下のアイテム)」を選択します。
「順序」に、5と入力します。
残りのデフォルトを受け入れて「作成」をクリックします。
ユーザーが1つのプロジェクトまたはすべてのプロジェクトを検索できるようにするには、アイテムを追加する必要があります。
プロジェクトの検索をサポートするアイテムを追加するには、次のステップを実行します。
「アイテム」で、「作成」アイコンをクリックします。
「アイテム・タイプ」で、「選択リスト」を選択して「次へ」をクリックします。
「リスト制御タイプの選択」で、「選択リスト」を選択して「次へ」をクリックします。
「表示位置および名前」で、次のステップを実行します。
「アイテム名」に、P11_PROJECTと入力します。
「順序」に、30と入力します。
「リージョン」で、「Target Resolution Parameters (1) 5」を選択します。
「次へ」をクリックします。
「LOV」で、次のステップを実行します。
「名前付きLOV」で、「PROJECTS」を選択します。
「NULLオプションの表示」で、「はい」を選択します。
「NULLテキスト」に、次のように入力します。
- All -
「NULL値」に、次のように入力します。
-1
「次へ」をクリックします。
「アイテム属性」で、デフォルト値を受け入れ、「次へ」をクリックします。
「ソース」で、「デフォルト」に、次のように入力します。
-1
「アイテムの作成」をクリックします。
問合せを実行する「実行」ボタンを作成するには、次のステップを実行します。
「ボタン」で、「作成」アイコンをクリックします。
「ボタン・リージョン」で、「Target Resolution Parameters (1) 5」を選択して「次へ」をクリックします。
「ボタン位置」で、「このリージョン・アイテムで表示されるボタンの作成」を選択して「次へ」をクリックします。
「ボタン属性」で、次のステップを実行します。
「ボタン名」に、P11_GOと入力します。
「順序」に、40と入力します。
「表示」で、「新しいフィールドで開始」を選択します。
「ラベル」に、Goと入力します。
「リクエスト」に、Goと入力します。
「ボタン・スタイル」で、「テンプレート・ベースのボタン」を選択します。
「テンプレート」で、「ボタン」を選択します。
「ボタンの作成」をクリックします。
次に、デフォルトの「Target Resolution Dates」ページを再表示するための「Reset」ボタンおよび「Reset」ブランチを作成します。
問合せを消去する「Reset」ボタンを作成するには、次のステップを実行します。
「ボタン」で、「作成」アイコンをクリックします。
「ボタン・リージョン」で、「Target Resolution Parameters (1) 5」を選択して「次へ」をクリックします。
「ボタン位置」で、「このリージョン・アイテムで表示されるボタンの作成」を選択して「次へ」をクリックします。
「ボタン属性」で、次のステップを実行します。
「ボタン名」に、P11_RESETと入力します。
「順序」に、30と入力します。
「表示」で、「新しいフィールドで開始」を選択します。
「ラベル」に、Resetと入力します。
「リクエスト」に、Resetと入力します。
「ボタン・スタイル」で、「テンプレート・ベースのボタン」を選択します。
「テンプレート」で、「ボタン」を選択します。
「ボタンの作成」をクリックします。
「Reset」ブランチを作成するには、次のステップを実行します。
「ブランチ」で、「作成」アイコンを選択します。
デフォルトを受け入れて「次へ」をクリックします。
「ターゲット」で、次の変更を行います。
「ページ」に、11と入力します。
「このページのページ区切りをリセット」で、チェック・ボックスを選択します。
「キャッシュのクリア」に、11と入力します。
「次へ」をクリックします。
「対象ボタン」で、「*P11_RESET」を選択します。
「ブランチの作成」をクリックします。
カレンダ・ボタンを検索リージョンに移動して変更するには、次のステップを実行します。
「ボタン」で、「すべて編集」アイコンをクリックします。
各ボタンに対して次の変更を行います。
「リージョン」で、「Target Resolution Parameters」を選択します。
「位置合せ」で、「右」を選択します。
「位置」で、「リージョン・テンプレートの位置#CREATE#」を選択します。
「変更の適用」をクリックします。
最後に、カレンダ属性を変更して、問題を表示し、その問題を編集するためのリンク・サポートを追加する必要があります。これを実行するには、ページ7(「Issue Details」)をコールし、そのページからすべてのデータを消去し、コール元のページはページ11であるということを指定して、現行の問題のIDに渡す必要があります。その後で、問合せが終結した問題を除外する際に表示するコメントを追加する必要があります。
カレンダ属性を変更するには、次のステップを実行します。
「ページ11」ブレッドクラムをクリックします。
「リージョン」で、「Target Resolution Dates」の右にある「カレンダ」をクリックします。
「列リンク」までスクロールし、次のように入力します。
「ターゲットは」で、「URL」を選択します。
「URLターゲット」に、次のように入力します。
f?p=&APP_ID.:7:&SESSION.::&DEBUG.:7:P7_ISSUE_ID,P7_PREV_PAGE:#ISSUE_ID#,11
ページ上部の「リージョン定義」タブを選択します。
「ヘッダーおよびフッター」までスクロールします。
「リージョン・フッター」に、次のように入力します。
This excludes Closed issues.
「変更の適用」をクリックします。
新しく作成したカレンダを表示するには、「ページの実行」アイコンをクリックします。「週」または「日」をクリックすると、対応するカレンダ表示で見ることができます。「Issues」ページを実行して「Target Resolution Dates」を検索することができます。その後、この「Target Resolution Dates」ページを実行し、「< 戻る」および「次 >」ボタンを使用して解決目標日の月にナビゲートします。図15-44の2008年1月13日(日)に示されているような問題が表示されます。
また、問題について表示されたテキストをクリックすると、「Edit Issue」ページも表示できます。カレンダに戻るには、「取消」をクリックします。
|
注意: データの挿入スクリプトは、ハード・コードされているわけではなく、システムの日付に関連して設定されるため、表示される日付は異なります。日付は、スクリプトが挿入されるたびに異なります。 |
「Average Days to Resolve」レポートは、終結した各問題を解決するために要した日数を計算し、その数の平均値を担当者別に計算して棒グラフに表示します。
「Average Days to Resolve」レポートを追加するには、次のステップを実行します。
「アプリケーション」ホームページに移動します。
「ページの作成」をクリックします。
「チャート」を選択して、「次へ」をクリックします。
「Flashチャート」を選択し、「次へ」をクリックします。
「ページ属性」で、次のステップを実行します。
「ページ」に、12と入力します。
「ページ名」に、Average Days to Resolveと入力します。
「リージョン・テンプレート」で、「テンプレートなし」を選択します。
「リージョン名」に、Average Days to Resolveと入力します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「エントリ名」に、Average Days to Resolveと入力します。
「親エントリ」で、「Reports」リンクを選択します。
残りのデフォルトを受け入れて「次へ」をクリックします。
「タブ・オプション」で、「既存のタブ・セットを使用して、そのタブ・セット内の既存のタブを再利用」を選択します。
「タブ・セット」で、「Issue Tracker (Home, Dashboard, Projects...)」を選択して「次へ」をクリックします。
「タブを使用」で、「T_REPORTS」を選択して「次へ」をクリックします。
「チャート・プレビュー」で、次のステップを実行します。
「チャート・タイプ」で、「水平2D列」を選択します。
「X軸」に、Daysと入力します。
「次へ」をクリックします。
「問合せ」で、次のステップを実行します。
「SQL問合せ、またはSQL問合せを戻すPL/SQLファンクションを入力」に、次のように入力します。
SELECT NULL l,
NVL(p.person_name,'None Assigned') person,
AVG(i.actual_resolution_date-i.identified_date) days
FROM it_issues i, it_people p
WHERE i.assigned_to_person_id = p.person_id (+)
AND i.status = 'Closed'
GROUP BY p.person_name
前述のSELECT文の内容は、次のとおりです。
1番目に選択されるアイテムはリンクです。このレポートは他のページにリンクしないため、NULLが選択されています。
2番目のアイテムはユーザーの名前です(assigned_toがNULLの場合はNone Assigned)。
3番目に選択されるアイテムは、そのユーザーがすべての問題の解決にかかった平均日数です。問題のステータスは、終結を示しています。
「データが見つからなかった場合のメッセージ」に、No issues with status 'Closed'と入力します。
残りのデフォルトを受け入れて「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
詳細ページがすべて完成したら、「Dashboard」を作成し、「Dashboard」にコンテンツを追加してすべてのページを結び付ける必要があります。この項では、図15-46「Dashboard」に示す「Dashboard」を作成して次の情報を表示します。
この項の内容は次のとおりです。
「Dashboard」では、重要な問題追跡の統計の簡単なスナップショットが提供されます。このページはレポート専用なので、変更または新しいエントリを追加することはできません。「Dashboard」に表示される情報は、次のとおりです。
期限切れの問題
未割当ての問題
最近発見された問題
プロジェクト別の未解決の問題のチャート
この項のステップを完了すると、アプリケーションに図15-46「Dashboard」のような「Dashboard」ページが含まれます。
「Dashboard」ページを追加するには、次のステップを実行します。
「アプリケーション」ホームページに移動します。
「ページの作成」をクリックします。
「空白ページ」を選択して「次へ」をクリックします。
「ページ番号」に18と入力して、「次へ」をクリックします。
「ページの作成」で、次の変更を行います。
「名前」に、Dashboardと入力します。
「タイトル」に、Dashboardと入力します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「エントリ名」に、Dashboardと入力します。
「親エントリ」で、「Home」リンクを選択します。
「次へ」をクリックします。
「はい - 既存のタブ・セットを使用して、そのタブ・セット内の既存のタブを再利用する。」を選択して、「次へ」をクリックします。
「既存のタブ・セット」で、「Issue Tracker (Home, Dashboard, Projects...)」を選択して「次へ」をクリックします。
「このページのカレント・タブとして指定するタブを選択」で、「T_HOME: label="Home"」を選択して「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
「アプリケーション」ホームページ・ブレッドクラムを選択します。
「共有コンポーネント」を選択します。
「ナビゲーション」で、「タブ」を選択します。
「Home」タブの左にある「編集」アイコンをクリックします。
「タブ名」に、T_DASHBOARDと入力します。
「タブ・ラベル」に、Dashboardと入力します。
「他にカレントになっているページの番号」で、「タブ・ページ」に18と入力します。
「変更の適用」をクリックします。
次に、「Dashboard」にコンテンツを追加します。この演習では、期限切れの問題を表示するレポートを追加します。このレポートの問合せによって、未解決のすべての問題と、過ぎてしまった解決目標日が取得されます。
期限切れの問題を表示するレポートを追加するには、次のステップを実行します。
「アプリケーション」ホームページ・ブレッドクラムをクリックします。
「18 - Dashboard」をクリックします。
「リージョン」で、「作成」アイコンをクリックします。
「レポート」を選択し、「次へ」をクリックします。
「レポート実装」で、「SQLレポート」を選択して「次へ」をクリックします。
「表示属性」で、次のステップを実行します。
「タイトル」に、Overdue Issuesと入力します。
「リージョン・テンプレート」で、「レポート・リージョン、代替1」を選択します。
「順序」に、5と入力します。
「次へ」をクリックします。
「ソース」で、「SQL問合せの入力」に、次の文を入力します。
SELECT i.issue_id, i.priority, i.issue_summary,
p.person_name assignee, i.target_resolution_date, r.project_name
FROM it_issues i, it_people p, it_projects r
WHERE i.assigned_to_person_id = p.person_id (+)
AND i.related_project_id = r.project_id
AND i.target_resolution_date < sysdate
AND i.status != 'Closed'
割当てはオプションであるため、外部結合が必要です。
「次へ」をクリックします。
「レポート・テンプレート」で、「template: 20. Standard」を選択します。
「リージョンの作成」をクリックします。
リージョンを作成したら、ヘッダーを編集し、サマリーに問題の詳細を表示するリンクを作成する必要があります。
列ヘッダーを編集するには、次のステップを実行します。
「リージョン」で、「Overdue Issues」の横にある「レポート」をクリックします。
「ヘッダー・タイプ」で、「カスタム」を選択します。
ISSUE_SUMMARYの「ヘッダー」に次のように入力します。
Summary
ASSIGNEEで、ヘッダーを次のように変更します。
Assigned To
TARGET_RESOLUTION_DATEに対して、次のステップを実行します。
Target
各列の右端にある上下の矢印を使用して、列をISSUE_ID、ASSIGNEE、TARGET_RESOLUTION_DATE、PROJECT_NAME、PRIORITY、ISSUE_SUMMARYの順序に並べ替えます。
ISSUE_IDで、「表示」を選択解除します。
これによって、問合せはリンクに渡されますが、表示はされなくなります。
ASSIGNEE、TARGET_RESOLUTION_DATEおよびPROJECT_NAMEに対してのみ「ソート」を選択します。その他に対しては「ソート」を選択解除します。
TARGET_RESOLUTION_DATEの「ヘッダーの位置合せ」で、「左」を選択します。
TARGET_RESOLUTION_DATE以外のすべての列の「ヘッダーの位置合せ」で、「中央」を選択します。
TARGET_RESOLUTION_DATEの「ソート順序」で、「1」を選択します。
ISSUE_IDの「ソート順序」で、「-」を選択します。
ISSUE_SUMMARYの列属性を編集するには、次のステップを実行します。
ISSUE_SUMMARYの左にある「編集」アイコンをクリックします。
「列リンク」までスクロールして、次のステップを実行します。
「リンク・テキスト」に、次のように入力します。
<table width="200" style=size:9><tr><td>#ISSUE_SUMMARY#</td></tr></table>
「リンク属性」に、次のように入力します。
title="Click to edit"
「ページ」で、「7」を選択します。
「キャッシュのクリア」で、「7」を選択します。
「アイテム1」に、次の名前を入力します。
P7_ISSUE_ID
「アイテム1」に、次の値を入力します。
#ISSUE_ID#
「アイテム2」に、次の名前を入力します。
P7_PREV_PAGE
「アイテム2」に、次の値を入力します。
18
「変更の適用」をクリックします。
「メッセージ」で、「データが見つからなかった場合のメッセージ」に次のように入力します。
No Overdue Issues.
「変更の適用」をクリックします。
「ページの実行」アイコンをクリックして、アプリケーションを実行します。「Overdue Issues」リージョンが追加された「Dashboard」ページが図15-47のように表示されます。
次に追加するレポートは、未割当て(未解決)の問題を表示します。このレポートは、「Overdue Issues」と非常に似ています。これは手動で作成せずに、「Overdue Issues」レポートをコピーしてから変更できます。
既存のレポートをコピーして新しいレポートを作成するには、次のステップを実行します。
ページ下部にある「開発者」ツールバーの「ページの編集18」リンクをクリックします。
「リージョン」で、「コピー」アイコンをクリックします。
Name列で、「Overdue Issues」をクリックします。
「コピー先ページ」でデフォルトの「18」を受け入れ、他のすべてのデフォルトも受け入れて「次へ」をクリックします。
「リージョン名」に、Unassigned Issuesと入力します。
「順序」に10と入力して、「リージョンのコピー」をクリックします。
問合せを変更し、レポート・リージョンを編集するには、次のステップを実行します。
「リージョン」セクションで、「Unassigned Issues」をクリックします。
「リージョン・ソース」で、既存の文を次と置き換えます。
SELECT i.issue_id,
i.priority,
i.issue_summary,
i.target_resolution_date,
r.project_name,
p.person_name identifiee
FROM it_issues i,
it_people p,
it_projects r
WHERE i.assigned_to_person_id IS NULL
AND i.status != 'Closed'
AND i.related_project_id = r.project_id
AND i.identified_by_person_id = p.person_id
ページ上部の「レポート属性」タブを選択します。
以前に定義した列には、変更された属性が保持されていることに注意してください。
IDENTIFIEEの「列属性」に、次のヘッダーを入力します。
Identified By
「メッセージ」で、「データが見つからなかった場合のメッセージ」に次のように入力します。
No Unassigned Issues.
右端にある上下矢印を使用して、列をISSUES_ID、IDENTIFIEE、TARGET_RESOLUTION_DATE、PROJECT_NAME、PRIORITY、ISSUE_SUMMARYの順序に並べ替えます。
「変更の適用」をクリックします。
「ページの実行」アイコンをクリックして、アプリケーションを実行します。「Dashboard」が表示されます。ページの下部までスクロールします。「Unassigned Issues」リージョンが図15-48のように表示されます。
次に、最近発見された問題のレポートを追加します。基礎となる問合せによって、過去1週間以内に発見された問題が5つ表示されます。
既存のレポートをコピーして、最近発見された問題のレポートを作成するには、次のステップを実行します。
ページ下部の「開発者」ツールバーのページの編集18リンクをクリックします。
「リージョン」で、「コピー」アイコンをクリックします。
「名前」で、「Unassigned Issues」を選択します。
「コピー先ページ」でデフォルトの「18」を受け入れ、残りのデフォルトも受け入れて「次へ」をクリックします。
「リージョン名」に、Recently Opened Issuesと入力します。
「順序」に、5と入力します。
「列」で、「2」を選択します。
「リージョンをコピー」をクリックします。
問合せを変更し、レポート・リージョンを編集するには、次のステップを実行します。
「リージョン」セクションで、「Recently Opened Issues」をクリックします。
「リージョン・ソース」で、既存の文を次と置き換えます。
SELECT issue_id,
priority,
issue_summary,
assignee,
target_resolution_date,
project_name,
identifiee
FROM
(SELECT i.issue_id,
i.priority,
i.issue_summary,
p.person_name assignee,
i.target_resolution_date,
r.project_name,
p2.person_name identifiee
FROM it_issues i,
it_people p,
it_people p2,
it_projects r
WHERE i.assigned_to_person_id = p.person_id (+)
AND i.related_project_id = r.project_id
AND i.identified_by_person_id = p2.person_id
AND i.created_on > (sysdate - 7)
ORDER BY i.created_on desc)
WHERE rownum < 6
ページ上部の「レポート属性」タブを選択します。
すべての列に対して、次のステップを実行します。
「ソート」を選択解除して、ソートを無効にします。
「ソート順序」を-に設定します。
ASSIGNEEで、ASSIGNEEがISSUE_SUMMARYの前に表示されるまで「ソート順序」列の右にある上矢印をクリックします。
ASSIGNEEで、ヘッダーを次のように変更します。
Assigned To
「レイアウトおよびページ区切り」セクションまでスクロールします。「ページ区切りスキーム」で、「- ページ区切りが選択されていない -」を選択します。
「メッセージ」で、「データが見つからなかった場合のメッセージ」に次のように入力します。
No Recently Opened Issues.
「変更の適用」をクリックします。
アプリケーションを実行し、「Issues Details」ページを使用して問題をデータベースに追加します。新しい問題の追加後、「Dashboard」タブをクリックします。ページの右上に、新しく追加された問題が示された「Recently Opened Issues」リージョンが図15-49のように表示されます。
次に、「Open Issues by Project」を表示する円グラフを追加します。
円グラフを追加するには、次のステップを実行します。
ページ下部の「開発者」ツールバーのページの編集18リンクをクリックします。
「リージョン」で、「作成」アイコンをクリックします。
「チャート」を選択して、「次へ」をクリックします。
「Flashチャート」を選択し、「次へ」をクリックします。
「表示属性」で、次の変更を行います。
「タイトル」に、Open Issues by Projectと入力します。
「リージョン・テンプレート」で、「チャート・リージョン」を選択します。
「順序」に、10と入力します。
「列」で、「2」を選択します。
「次へ」をクリックします。
「チャート・プレビュー」で、次の編集を行います。
「チャート・タイプ」で、「3D円」を選択します。
「次へ」をクリックします。
「ソース」で、「SQL」に次の文を入力します。
SELECT 'f?p=&APP_ID.:6:&SESSION.:::CIR:IREQ_STATUS,
IREQ_PROJECT_ID:Open,'||r.project_id LINK,
NVL(r.project_name,'No Project') label,
COUNT(r.project_name) value
FROM it_issues i, it_projects r
WHERE i.status = 'Open' AND i.related_project_id = r.project_id
GROUP BY NULL, r.project_name, r.project_id
ORDER BY r.project_name, r.project_id
「データが見つからなかった場合のメッセージ」に、No open issuesと入力します。
「リージョンの作成」をクリックします。
チャートを編集するには、次のステップを実行します。
「リージョン」で、「Open Issues by Project」の横にある「Flashチャート」を選択します。
「チャート設定」で、「チャート幅」に550と入力します。
「チャート高さ」に、325と入力します。
「チャートのマージン: 下」に、25.と入力します。
「チャートのマージン: 右」に、50.と入力します。
「表示設定」で、「値の表示」を選択解除します。
「変更の適用」をクリックします。
更新されたページを表示するには、「ページの実行」アイコンをクリックします。図15-50「すべてのリージョンが追加された最終的な「Dashboard」」では、3つの期限切れの問題が「Dashboard」に移動される前に終結されています。
アプリケーションが完全に機能するようになったら、計画およびプロジェクト分析段階で示した拡張機能を追加することができます。
この項の内容は次のとおりです。
計画およびプロジェクト分析フェーズでは、2つの電子メール要件が作成されました。
問題がユーザーに割り当てられた際に、ユーザーに通知します。
問題が期限切れになった際に、プロジェクト・リーダーに通知します。
この項の内容は次のとおりです。
このトピックに関するその他の例は、次に示すOracle by Examples (OBE)を参照してください。
Oracle Application Express 3.1での電子メール添付ファイルの送信
http://www.oracle.com/technology/obe/apex/apex31nf/apex31email.htm
Oracle Application Expressアプリケーション内からメールを送信するには、提供されているAPEX_MAILパッケージをコールするPL/SQLプロセスを作成します。
電子メールはすぐには送信されず、DBMS_JOBによってキューがプッシュされるまで、一時キューに格納されます。DBMS_JOB は、SMTPホスト・アドレスおよびSMTPホスト・ポートというプリファレンスを使用して、キュー内のメールを送信します。デフォルトでは、これらのプリファレンスはlocalhostおよび25に設定されています。Oracle Application ExpressがSMTPサービス用に構成されない場合は、「電子メールの環境設定」を変更する必要があります。
|
関連項目: 電子メールの環境設定の構成については、『Oracle Database Application Expressユーザーズ・ガイド』の「アプリケーションからの電子メールの送信方法」を参照してください。 |
APEX_MAILパッケージのSENDプロシージャの定義を次に示します。
PROCEDURE SEND Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- P_TO VARCHAR2 IN P_FROM VARCHAR2 IN P_BODY VARCHAR2 or CLOB IN P_BODY_HTML VARCHAR2 or CLOB IN DEFAULT P_SUBJ VARCHAR2 IN DEFAULT P_CC VARCHAR2 IN DEFAULT P_BCC VARCHAR2 IN DEFAULT P_REPLYTO VARCHAR2 IN
最初に、ユーザーが新しく割り当てられた際のそのユーザーへの通知を追加します。割当ての作成または変更は、2つの異なるページ(「Issue Details」および「Assign Open Issues」)から実行できます。
「Issue Details」ページでは、初期値を格納し、すべての変更に対してその初期値を確認して、割当てが作成または変更されたかどうかを確認できます。「Assign Open Issues」は表形式フォームであるため、古い値と新しい値を確認する方法はありません。このため、通知を実装する最適な方法は、IT_ISSUESでBEFORE INSERTおよびBEFORE UPDATEトリガーを使用することです。SQLワークショップを使用すると、このトリガーをプログラムによって作成できます。
IT_ISSUESにBEFORE INSERTおよびBEFORE UPDATEトリガーを作成するには、次のステップを実行します。
「ワークスペース」ホームページで、「SQLワークショップ」をクリックして、「オブジェクト・ブラウザ」をクリックします。
「作成」をクリックします。
「作成するデータベース・オブジェクトのタイプの選択」で、「トリガー」をクリックします。
「表名」で、「IT_ISSUES」を選択して「次へ」をクリックします。
「定義」で、次のステップを実行します。
「トリガー名」に、IT_ISSUES_AIU_EMAILと入力します。
「実行ポイント」で、「後」を選択します。
「オプション」で、「挿入」と「更新」を選択します。
「トリガー本体」に、次のように入力します。
IF (INSERTING AND :new.assigned_to_person_id IS NOT NULL)
OR
(UPDATING AND (:old.assigned_to_person_id IS NULL OR :new.assigned_to_person_id != :old.assigned_to_person_id) AND :new.assigned_to_person_id IS NOT NULL) THEN
FOR c1 IN
(SELECT person_name, person_email
FROM it_people
WHERE person_id = :new.assigned_to_person_id)
LOOP
IF c1.person_email IS NOT NULL THEN
FOR c2 IN
(SELECT project_name
FROM it_projects
WHERE project_id = :new.related_project_id)
LOOP
APEX_MAIL.SEND(
p_to => c1.person_email,
p_from => c1.person_email,
p_body =>
'You have been assigned a new issue. ' ||chr(10)||
'The details are below. ' ||chr(10)||
chr(10)||
' Project: '|| c2.project_name ||chr(10)||
' Summary: '||:new.issue_summary ||chr(10)||
' Status: '||:new.status ||chr(10)||
'Priority: '||nvl(:new.priority,'-'),
p_subj => 'New Issue Assignment');
END LOOP;
END IF;
END LOOP;
END IF;
p_toおよびp_fromを、独自の有効な電子メール・アドレスと置き換えます。
「次へ」をクリックします。
コードを確認するには、「SQL」の矢印を展開します。
「終了」をクリックします。
このトリガーは、次の方法でテストできます。
有効な電子メール・アドレスを持ついずれかのユーザーを変更する方法
未割当ての問題をこのユーザーに割り当てる方法
有効な電子メール受信ボックスで通知電子メールを確認する方法
新しいトリガーをテストするには、次のステップを実行します
Issue Trackerアプリケーションを実行します。
「ユーザー」タブをクリックします。
Carla Downingの横にある「編集」アイコンをクリックします。
「Email Address」に、有効な電子メール・アドレスを入力します。
「変更の適用」をクリックします。
「レポート」タブをクリックします。
「Assign Open Issues」リンクをクリックします。
「Assigned To」で、「Carla Downing」を選択します。
「変更の適用」をクリックします。
数分待機してから、送信先の電子メール受信ボックスを確認します。図15-51「電子メール通知の本文」に類似した本文が含まれている、件名が「New Issue Assignment」の電子メールが表示されます。
2つ目の電子メール通知では、問題が期限切れになるとプロジェクト・リーダーに通知されます。解決目標日が過ぎると、問題は期限切れになりますが、終結はしていません。問題の期限が切れたかどうかの判別にユーザーは介入しないため、ページ上で、またはトリガーで期限切れを確認することはできません。
期限切れの問題を確認する最適な方法は、IT_ISSUES表を問い合せるパッケージを記述することです。パッケージは、期限切れの問題を検出すると、プロジェクト・リーダーに電子メールを送信します。このプロシージャは、プロジェクト別に問題を確認するため、プロジェクト・リーダーが受信する電子メールは、各問題で1つではなく、すべての期限切れの問題で1つのみです。パッケージは、dbms_jobによって1日に1回コールされます。
オブジェクトの作成機能は、次のいずれかの方法で使用できます。
SQLワークショップ内からパッケージおよびパッケージ本体を作成する。
SQLコマンド・プロセッサを使用して、createコマンドを実行する。
パッケージを作成するには、次のステップを実行します。
「ワークスペース」ホームページで「SQLワークショップ」をクリックして、「SQLコマンド」をクリックします。
SQLコマンドが表示されます。
表示されるフィールドに次の文を入力します。
CREATE OR REPLACE package it_check_overdue_issues
AS
PROCEDURE email_overdue;
END;
/
「実行」をクリックします。
パッケージ本体を作成するには、次のステップを実行します。
「ワークスペース」ホームページで「SQLワークショップ」をクリックして、「SQLコマンド」をクリックします。
SQLコマンドが表示されます。
表示されるフィールドに次の文を入力します。
CREATE OR REPLACE PACKAGE BODY it_check_overdue_issues
AS
PROCEDURE email_overdue
IS
l_msg_body varchar2(32000) := null;
l_count number := 0;
BEGIN
FOR c1 IN
(SELECT pr.project_id,
pr.project_name,
pe.person_name,
pe.person_email
FROM it_projects pr,
it_people pe
WHERE pr.project_id = pe.assigned_project
AND pe.person_role = 'Lead')
LOOP
FOR c2 IN
(SELECT i.target_resolution_date,
i.issue_summary,
p.person_name,
i.status,
i.priority
FROM it_issues i,
it_people p
WHERE i.assigned_to_person_id = p.person_id (+)
AND i.related_project_id = c1.project_id
AND i.target_resolution_date < SYSDATE
AND i.status != 'Closed'
ORDER BY i.target_resolution_date, i.issue_summary)
LOOP
IF l_count = 0 THEN
l_msg_body :=
'As of today, the following issues '||
'are overdue:'||chr(10)||
chr(10)||
' Project: '|| c1.project_name ||chr(10)||
chr(10)||
' Target: '||c2.target_resolution_date ||chr(10)||
' Summary: '||c2.issue_summary ||chr(10)||
' Status: '||c2.status ||chr(10)||
' Priority: '||c2.priority ||chr(10)||
'Assigned to: '||c2.person_name;
ELSE
l_msg_body := l_msg_body ||chr(10)||
chr(10)||
' Target: '||c2.target_resolution_date ||chr(10)||
' Summary: '||c2.issue_summary ||chr(10)||
' Status: '||c2.status ||chr(10)||
' Priority: '||c2.priority ||chr(10)||
'Assigned to: '||c2.person_name;
END IF;
l_count := l_count + 1;
END LOOP;
IF l_msg_body IS NOT NULL THEN
-- APEX_MAIL.SEND(
-- p_to => c1.person_email,
-- p_from => c1.person_email,
-- p_body => l_msg_body,
-- p_subj => 'Overdue Issues for Project '||
c1.project_name);
END IF;
l_count := 0;
END LOOP;
END email_overdue;
END it_check_overdue_issues;
/
このトリガーをご使用の環境で機能させるには、APEX_MAIL.SENDのコメントをはずし、p_toおよびp_fromを、独自の有効な電子メール・アドレスと置き換えます。
「実行」をクリックします。
次に、従業員の有効な電子メール・アドレスを含むデモンストレーション・データを更新します。
有効な電子メール・アドレスを含むデモンストレーション・データを更新するには、次のステップを実行します。
「ワークスペース」ホームページで、「SQLワークショップ」をクリックして、「オブジェクト・ブラウザ」をクリックします。
ページの左側にある「オブジェクト」リストから、「表」を選択します。
IT_PEOPLE表を選択します。
「データ」タブを選択します。
各ユーザーの電子メール・アドレスを編集します。
「編集」アイコンをクリックします。
「Person Email」を有効な電子メール・アドレスに変更します。
「変更の適用」をクリックします。
IT_PEOPLE表内のすべてのユーザーについて、ステップ5を繰り返します。
「ホーム」ブレッドクラム・リンクをクリックして、「ワークスペース」ホームページに戻ります。
次に、新しく作成されたパッケージを、指定した時間間隔で実行するDBMS_JOBを作成します。
DBMS_JOBを作成するには、次のステップを実行します。
次に、新しく作成されたパッケージを実行するDBMS_JOBの例を示します。ただし、これを有効なDBMS_JOBにするには、適切に間隔を設定してSQLワークショップ内でSQLコマンドを使用して実行する必要があります。
DECLARE
jobno number;
BEGIN
DBMS_JOB.SUBMIT(
job => jobno,
what => 'BEGIN it_check_overdue_issues.email_overdue; END;',
next_date => SYSDATE,
interval => desired_interval);
COMMIT;
END;
/
このDBMS_JOBで、desired_intervalを適切な間隔に置き換えます。たとえば、毎日1回このジョブを実行するには、desired_intervalを次と置き換えます。
'TRUNC(SYSDATE)+(25/24)'
|
関連項目: Application Expressアプリケーションから電子メールを送信する方法については、OTNを参照してください。
|
計画およびプロジェクト分析フェーズでは、2つのセキュリティ要件が作成されました。
CEOおよびマネージャのみが、プロジェクトおよびユーザーを定義および管理できます。
割り当てられた後は、割り当てられたユーザーまたはプロジェクト・リーダーのみがその問題に関するデータを変更できます。
Oracle Application Express内で、認可スキームを定義できます。認可は、ユーザー権限に基づいて、特定のコントロールおよびコンポーネント(検証、プロセス、ブランチなど)へのユーザーのアクセスを制御します。定義した後で、アクセスを制限するページ、リージョンまたはアイテムに認可スキームを関連付けることができます。各認可スキームは必要なときにのみ実行され、ページ・ビューごとに1回検証するか、セッションごとに1回検証するかを定義します。
この項の内容は次のとおりです。
このトピックに関するその他の例は、次に示すOracle by Examples (OBE)を参照してください。
アプリケーションへのセキュリティの追加
http://www.oracle.com/technology/obe/hol08/apexintro/apex3.1.1_d/apex3.1.1_d_otn.htm
1つ目の要件は、CEOおよびマネージャのみが、プロジェクトおよびユーザーを定義および管理できることです。この要件に対処するには、次のステップを実行します。
認可スキームを作成して、カレント・ユーザーのロールを確認します。
認可スキームを、「Project Details」ページおよび「User Information」ページにナビゲートする「Projects」および「Users」レポートのアイテムと関連付けます。
認可スキームを「Project Details」ページおよび「User Information」ページそのものと関連付けて、ユーザーがターゲット・ページへのURLを手動で編集し、セキュリティを回避しないようにします。
カレント・ユーザーを参照するには、セッション変数:APP_USERを使用します。このセッション変数は、ユーザーの電子メール・アドレス(ワークスペースまたはワークスペース名と同じ)と比較されます。このタイプのセキュリティをコーディングする場合は、常に、すべてのセキュリティを通過できるユーザーでコーディングする必要があります。このユーザーは、開発およびテストで非常に役に立ちます。この方法を実行できない場合は、自分をCEOまたはマネージャとして定義しないかぎり、制限付きページにアクセスすることはできません。
認可スキームの作成
次のステップで作成する認可スキームを適用する前に、ユーザー名がHOWTOのユーザーを作成します。HOWTOユーザーは、「Projects」および「Issues」ページの編集リンクを表示する認可を受けています。その後で、HOWTO2という別のユーザーを作成します。このユーザーは、リンクを表示不可能である必要があります。
認可スキームを作成するには、次のステップを実行します。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」をクリックします。
Issue Trackerアプリケーションを選択します。
「共有コンポーネント」をクリックします。
「セキュリティ」で、「認可スキーム」をクリックします。
「作成」をクリックします。
「認可スキームを作成」で、デフォルトの「最初から」を受け入れて「次へ」をクリックします。
「認可スキーム」の「名前」に、次のように入力します。
USER_CEO_OR_MANAGER
「認可スキーム」で、次のステップを実行します。
「スキーム・タイプ」で、「EXISTS SQL問合せ」を選択します。
「式1」に、次のように入力します。
SELECT '1'
FROM it_people
WHERE (upper(username) = UPPER(:APP_USER) AND
person_role IN ('CEO','Manager')) OR
(UPPER(:APP_USER) = 'HOWTO')
「スキームの違反時に表示されるエラー・メッセージを指定」に、次のように入力します。
You are not authorized to access this function.
「評価ポイント」までスクロールします。「認可スキームを検証」で、「セッションごとに1回」を選択します。
通常、割り当てられたロールは指定されたセッション内では変更されないため、このインスタンスでは、この選択で十分です。
「作成」をクリックします。
次に、認可スキームを適切なオブジェクトと関連付ける必要があります。
「Projects」レポートのオブジェクトの関連付け
認可スキームを「Projects」レポートと関連付けるには、次のステップを実行します。
右上にある「ページの編集」アイコンをクリックします。「ページの編集」アイコンは、小さな緑色の紙と鉛筆に似ています。
「ページ」に、2と入力して「実行」をクリックします。
ページ2(「Projects」)のページ定義が表示されます。
「リージョン」で、「Projects」の横にある「対話モード・レポート」をクリックします。
「リンク列」までスクロールし、「認可スキーム」で「USER_CEO_OR_MANAGER」を選択します。
「変更の適用」をクリックします。
認可スキームを「Projects」レポートの「作成」ボタンと関連付けるには、次のステップを実行します。
ページ2のページ定義の「ボタン」で、「Add Project>」リンクをクリックします。
ページ・ボタンの編集ページが表示されます。
「認可」で、認可スキームの「USER_CEO_OR_MANAGER」を選択します。
「変更の適用」をクリックします。
オブジェクトと「Project Details」フォームの関連付け
認可スキームを「Project Details」ページと関連付けるには、次のステップを実行します。
「次のページ」(>)ボタンをクリックして、ページ3に移動します。
ページ3 (「Project Details」)のページ定義が表示されます。
「ページ」で、「ページ属性の編集」アイコンをクリックします。
「ページ属性」ページが表示されます。
「セキュリティ」で、認可スキームの「USER_CEO_OR_MANAGER」を選択します。
「変更の適用」をクリックします。
オブジェクトと「Users」レポートの関連付け
認可スキームを「Users」レポートと関連付けるには、次のステップを実行します。
「次のページ」(>)ボタンをクリックして、ページ4に移動します。
ページ4 (「Users」)のページ定義が表示されます。
「リージョン」で、「Users」の横にある「対話モード・レポート」をクリックします。
「リンク列」までスクロールし、「認可スキーム」で「USER_CEO_OR_MANAGER」を選択します。
「変更の適用」をクリックします。
認可スキームを「Users」レポートの「Add User」ボタンと関連付けるには、次のステップを実行します。
「次のページ」(>)ボタンをクリックして、ページ5に移動します。
ページ5のページ定義が表示されます。
「ボタン」で、「作成」リンク(アイコンでない)をクリックします。
ページ・ボタンの編集ページが表示されます。
「認可」で、認可スキームの「USER_CEO_OR_MANAGER」を選択します。
「変更の適用」をクリックします。
オブジェクトと「User Information」フォームの関連付け
認可スキームを「User Information」ページと関連付けるには、次のステップを実行します。
「ページ」で、「ページ属性の編集」アイコンをクリックします。
「ページ属性」ページが表示されます。
「セキュリティ」で、認可スキームの「USER_CEO_OR_MANAGER」を選択します。
「変更の適用」をクリックします。
2つ目の要件は、問題が割り当てられた後で、割り当てられたユーザー(またはプロジェクト・リーダー)のみが問題に関するデータを変更できることです。この要件は、すべての問題に対して変更を行うため、多少複雑です。
現在、ユーザーが問題を変更できるページは、「Issue Details」ページと「Assign Open Issues」ページの2つです。「Assign Open Issues」ページで表示される問題は、未割当ての問題のみです。問題が未割当てのため、セキュリティは必要ありません。
他のユーザーはデータを変更することはできませんが、進捗および解決を表示できるように、問題に関するすべての詳細データをユーザーが表示できるようにする場合があります。この要件の場合、最適な方法は、ページ・ビューごとに1回評価される認可スキームを作成することです。
認可スキームを、「Issue Details」ページの「変更の適用」および「削除」ボタンの両方と関連付けます。この方法では、認可されていないユーザーは、すべての詳細を表示できますが、変更を行っても、その変更を保存することはできません。
追加したセキュリティでは、IT_ISSUESで挿入、更新および削除を行うプロセスと認可スキームを関連付けることもできます。これによって、アプリケーションでは、他のユーザーによる変更の適用プロセスをコールするためのURLの変更を防ぐことができます。変更できない理由をユーザーに知らせるには、認可に失敗した際に説明が表示されるHTMLリージョンを追加できます。このスキームのSQLはP7_ISSUE_IDを参照する必要があるため、「Issues Details」ページに固有である必要があります。また、評価される時点で、必要なデータはセッション・ステートで使用できないため、データベースからデータを取得する必要があります。使用可能なアイテムは、リンクによって渡されるP7_ISSUE_IDのみです。
認可スキームの作成
認可スキームを作成するには、次のステップを実行します。
「アプリケーション」ホームページに移動します。
「共有コンポーネント」をクリックします。
「セキュリティ」で、「認可スキーム」をクリックします。
「作成」をクリックします。
「作成メソッド」で、デフォルトの「最初から」を受け入れて「次へ」をクリックします。
「認可スキーム」の「名前」に、次のように入力します。
P7_ASSIGNED_OR_PROJECT_LEAD
「認可スキーム」で、次のステップを実行します。
「スキーム・タイプ」で、「ブールを戻すPL/SQLファンクション」を選択します。
「式1」に、次のように入力します。
DECLARE
l_related_project integer;
l_assigned_to integer;
l_person_id integer;
l_person_role varchar2(7);
l_assigned_project integer;
BEGIN
-- User is HOWTO or new Issue
IF :APP_USER = 'HOWTO' OR
:P7_ISSUE_ID is null THEN
RETURN true;
END IF;
FOR c1 IN (SELECT related_project,
assigned_to_person_id
FROM it_issues
WHERE issue_id = :P7_ISSUE_ID)
LOOP
l_related_project := c1.related_project;
l_assigned_to := c1.assigned_to_person_id;
END LOOP;
-- Issue not yet assigned
IF l_assigned_to is null THEN
RETURN true;
END IF;
FOR c2 IN (SELECT person_id,
person_role,
assigned_project
FROM it_people
WHERE upper(person_email) = upper(:APP_USER))
LOOP
l_person_id := c2.person_id;
l_person_role := c2.person_role;
l_assigned_project := c2.assigned_project;
END LOOP;
-- User is lead of related project
IF l_person_role = 'Lead' AND
l_assigned_project = l_related_project THEN
RETURN true;
-- User is assigned to issue
ELSEIF l_assigned_to = l_person_id THEN
RETURN true;
ELSE
RETURN false;
END IF;
END;
「スキームの違反時に表示されるエラー・メッセージを指定」に、次のように入力します。
This issue is not assigned to you, nor are you the Project Lead. Therefore you are not authorized to modify the data.
「評価ポイント」の「認可スキームを検証」で、「ページ・ビューごとに1回」を選択します。
それぞれ問題で結果が異なる場合があるため、この選択は必要です。
「作成」をクリックします。
次に、認可スキームを「Issue Details」ページの適切なオブジェクトと関連付ける必要があります。
オブジェクトと「Create/Edit Issue」レポートとの関連付け
認可スキームをボタンおよびプロセスと関連付けるには、次のステップを実行します。
「アプリケーション」ホームページに移動します。
ページ「7 - Issue Details」を選択します。
「ボタン」で、「削除」をクリックします。
「認可」で、認可スキームの「P7_ASSIGNED_OR_PROJECT_LEAD」を選択します。
「変更の適用」をクリックします。
「ボタン」で、「変更の適用」をクリックします。
「認可」で、認可スキームの「P7_ASSIGNED_OR_PROJECT_LEAD」を選択します。
「変更の適用」をクリックします。
「ボタン」で、「作成」をクリックします。
「認可」で、認可スキームの「P7_ASSIGNED_OR_PROJECT_LEAD」を選択します。
「変更の適用」をクリックします。
「ボタン」で、「作成後、別のものの作成」をクリックします。
「認可」で、認可スキームの「P7_ASSIGNED_OR_PROJECT_LEAD」を選択します。
「変更の適用」をクリックします。
「ページ・プロセス」の「プロセス」で、「IT_ISSUESの行を処理」を選択します。
「認可」で、認可スキームの「P7_ASSIGNED_OR_PROJECT_LEAD」を選択します。
「変更の適用」をクリックします。
HTMLリージョンの作成
最後に、認可に失敗した際に説明を表示する新しいリージョンを作成します。
新しいリージョンを作成するには、次のステップを実行します。
「リージョン」の下の「ページ7」で、「作成」アイコンをクリックします。
「リージョン」で、デフォルトの「HTML」を受け入れて「次へ」をクリックします。
リージョン・コンテナとして「HTML」を選択し、「次へ」をクリックします。
「表示属性」で、次のステップを実行します。
「タイトル」に、Not Authorizedと入力します。
「表示ポイント」で、「ページ・テンプレート・ボディ (2. リージョン・コンテンツより下のアイテム)」を選択します。
「順序」に、30と入力します。
「次へ」をクリックします。
「ソース」で、「HTMLテキスト・リージョン・ソースの入力」に次のように入力して「次へ」をクリックします。
You are not authorized to modify the data for this issue because<br>you are not the Project Lead nor is the issue assigned to you.
「認可スキーム」で、「P7_ASSIGNED_OR_PROJECT_LEADでない」を選択します。これを選択すると、認可スキームが失敗したときにのみ、リージョンが表示されるようになります。
「リージョンの作成」をクリックします。
図15-52「認証の失敗を表示する新しいリージョン」に、認証に失敗したユーザーが実行している「Issue Details」ページを示します。新しいリージョンはページの上部に表示され、表示されるボタンは「取消」のみです。
このセキュリティ要件に対しては、問題の詳細を表示する別のページを作成することがより効果的です。issue_idとカレント・ユーザーを取得し、表示専用または編集用のフラグを渡すプロシージャが必要となります。このプロシージャへのコールに基づいて「ビュー」ページまたは「編集」ページのいずれかをコールする、すべてのレポートのリンクを動的に構築できます。リンクを使用しないで編集ページにアクセスするユーザーを回避するために、挿入、更新および削除処理が行われる前に権限を確認することがあります。
アプリケーションが完成したら、次のステップで、このアプリケーションをデプロイします。通常、開発者はあるサーバーでアプリケーションを作成し、別のサーバーにデプロイします。この方法は必須ではありませんが、本番のインスタンスに影響を与えずに不具合を解決できます。
|
注意: 別のサーバーにアプリケーションをデプロイするには、別のOracle Application Expressインスタンスをインストールおよび構成する必要があります。 |
この項の内容は次のとおりです。
アプリケーション定義は、Oracle Databaseに格納されます。アプリケーション定義には、テンプレートなど、アプリケーションを構成するすべての要素が含まれていますが、データベース・オブジェクト定義や基礎となるデータは含まれていません。アプリケーションを別のOracle Application Expressインスタンスに移動するには、アプリケーション定義を開発サーバーからエクスポートして、本番サーバーにインポートする必要があります。
この項の内容は次のとおりです。
開発サーバーからアプリケーション定義をエクスポートするには、次のステップを実行します。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコン上の矢印をクリックして、作成したアプリケーションを選択します。
「エクスポート/インポート」アイコンをクリックします。
「エクスポート/インポート」で、「エクスポート」をクリックして「次へ」をクリックします。
「アプリケーション」で、この演習で作成したアプリケーションが選択されていることを確認します。
「アプリケーションのエクスポート」をクリックします。
選択を求められたら、ファイルを保存するように選択します。
ローカルのハード・ドライブの場所を指定して「保存」をクリックします。
本番インスタンスでは、アプリケーションのサポートに必要なオブジェクトを作成する必要があります。本番インスタンスにログインして、「データベース・オブジェクトの設計」に示すステップを実行します。
|
注意: アプリケーション定義をインポートするために、サポートするオブジェクトは必要はありませんが、これらがないと、コードはテストできません。 |
「ワークスペース」ホームページの本番インスタンスにログインして、次のステップを実行します。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコン上の矢印をクリックして、作成したアプリケーションを選択します。
「アプリケーション」ホームページで、「エクスポート/インポート」をクリックします。
エクスポート/インポート・ページで、「インポート」をクリックしてから「次へ」をクリックします。
「ファイルのインポート」で、次のステップを実行します。
「ファイルのインポート」で、「参照」ボタンをクリックして、エクスポートしたファイルを検索します。
「ファイル・タイプ」で、「アプリケーション、ページまたはコンポーネントのエクスポート」を選択します。
「ファイルのキャラクタ・セット」で、デフォルトを受け入れて「次へ」をクリックします。
成功メッセージが表示されたら、次のステップで、ファイルをインストールします。
「次へ」をクリックします。
「アプリケーションのインストール」で、次のステップを実行します。
「解析対象スキーマ」で、アプリケーション・オブジェクトが含まれる本番サーバー上のスキーマを選択します。
「ビルド・ステータス」で、「アプリケーションの実行および構築」を選択します。
このオプションを使用すると、他のユーザーがアプリケーションを実行したり、必要に応じてログインし、コードを変更したりできるようになります。また、「アプリケーションの実行のみ」を選択することもできます。このオプションを選択した場合は、アプリケーションのソース・コードにアクセスできなくなることに注意してください。
「次のアプリケーションとしてインストール」で、次の項目を選択できます。
エクスポート・ファイルからアプリケーションIDを再利用: アプリケーションIDが本番インスタンスで使用されていない場合にのみ選択します。
新しいアプリケーションIDを自動割当て: 新しいアプリケーションIDを割り当てる場合に選択します。
アプリケーションIDを変更: 既存のアプリケーションIDを変更する場合に選択します。このオプションを選択すると、新しいアプリケーションIDを入力するように求められます。
既存のアプリケーションと同じIDを持つアプリケーションを現行のワークスペースにインストールすると、既存のアプリケーションが削除されてから、新しいアプリケーションがインストールされます。既存のアプリケーションと同じIDを持つアプリケーションを異なるワークスペースにインストールしようとすると、エラー・メッセージが表示されます。
すべての文が成功すると、インストールはコミットされ、永続的になります。エラーが発生した場合、インストールはロールバックされ、永続的な変更は行われません。
「インストール」をクリックします。
インストールが成功すると、「アプリケーション・インストール後のユーティリティ・オプション」ページが表示されます。ここでは、次のいずれかを選択できます。
アプリケーションの実行: アプリケーションを実行する場合に選択します。
アプリケーション属性: アプリケーション・ビルダー内のアプリケーション定義を表示する場合に選択します。
アプリケーションをデプロイする次のステップでは、データをロードします。少なくとも、project表およびpeople表は移入する必要があります。
このタスクの実行に使用できるメカニズムは、次のように様々なものがあります。
アプリケーション自体を使用して、データを作成します。
データ・ローダーを使用して、スプレッドシートからコピーされたデータをロードします。
SQLスクリプトを使用して、データを作成するスクリプトを実行します。
データがOracle Databaseにすでにある場合は、エクスポート/インポートを使用してマシン間でデータを移動するか、またはSQLを使用して既存データを取得および変換し、アプリケーション表にロードします。
|
関連項目: 「デモンストレーション・データのロード」および『Oracle Database Express Edition 2 Day DBA』のデータのインポート、エクスポート、ロードおよびアンロードに関する説明 |
アプリケーションのログイン・ページで、ユーザー名とパスワードを指定してログインAPIをコールすると、Application Expressエンジンによって、アプリケーションの現行の認証スキームに指定されている資格証明の検証方式がコールされます。ログインAPIから資格証明を検証するには、3つの方法があります。
ブールを戻すPL/SQLファンクションとしてユーザー独自の方式を実装し、アプリケーションのスキーマに配置します。
組込み式のLDAP認証方式を使用します。これは、ユーザーが指定したLDAPディレクトリに対してユーザー名とパスワードを確認します。
組込み式のOracle Application Express認証方式を使用します。これは、Oracle Application Expressワークスペース・リポジトリに対してユーザー名とパスワードを確認します。
現在、アプリケーションは組込み式のOracle Application Express認証方式を使用しています。
|
関連項目: 『Oracle Database Application Expressユーザーズ・ガイド』の「認証を介したユーザーの本人確認」 |
|
関連項目: OTNのセキュリティHow Toドキュメント
|
アプリケーションにアクセスできるようにするために、ユーザーを作成する必要があります。Oracle Application Express認証を使用している場合、ユーザーを作成する最も簡単な方法は、「ユーザーの管理」ページにアクセスすることです。
新しいユーザーを作成するには、次のステップを実行します。
「ワークスペース」ホームページに移動します。
ページの右側の「管理」リストから、「Application Expressユーザーの管理」をクリックします。
ページ右側にある「タスク」リストから、「エンド・ユーザーの作成」をクリックします。
「ユーザーの指定」に、必要な情報を入力します。
「ユーザーの作成」または「作成後、別のものの作成」をクリックします。
アプリケーションのデプロイ、データのロードおよびユーザーの作成が完了したら、本番URLを公開できます。
「アプリケーション」ホームページの「実行」アイコンにマウスを置くことにより、アプリケーションへのURLを判別できます。ページ下部のステータス・バーにURLが表示されます。
「実行」アイコンは、セキュリティ属性の編集ページのホーム・リンク属性から値を取得します。このリンクを参照するのは、このアイコンと、Oracle Application ExpressログインAPIを使用しないアプリケーションのみです。次に例を示します。
http://apex.oracle.com/pls/otn/f?p=11563:1:3397731373043366363
各要素の意味は次のとおりです。
apex.oracle.comは、サーバーのURLです。
plsは、mod_plsqlカートリッジを使用するためのインジケータです。
otnは、データ・アクセス記述子(DAD)名です。
f?p=は、Oracle Application Expressによって使用される接頭辞です。
11563は、コールされるアプリケーションです。
このIDをここで示すようにハード・コードするかわりに、置換文字列APP_ALIASを使用できます。
1は、表示されるアプリケーション内のページです。
3397731373043366363は、セッション番号です。
このサンプル・アプリケーションを実行するには、次のURLを使用します。
http://apex.oracle.com/pls/otn/f?p=11563:1
ユーザーは、ログインした後、一意のセッション番号を受信します。
問題追跡アプリケーションは、「アプリケーションの作成」ウィザードを使用して作成しました。このウィザードは、認証を制御する「ログイン」ページ(ページ101)にプロセスを作成します。プロセスの内容は、次のとおりです。
WWV_FLOW_CUSTOM_AUTH_STD.LOGIN(
P_UNAME => :P101_USERNAME,
P_PASSWORD => :P101_PASSWORD,
P_SESSION_ID => :FLOW_SESSION,
P_FLOW_PAGE => :APP_ID||':1'
);
ページは、このプロセスにハード・コードされることに注意してください。このため、URLに渡されるページは上書きされ、含める必要はありません。次のURLを使用して、アプリケーションにアクセスできます。
http://apex.oracle.com/pls/otn/f?p=11563
使用した例からもわかるように、URLに意味はなく、長くすることができます。ホスト名は、わかりやすいように変更できます。また、短縮した形式で公開したり、ユーザーにとってわかりやすいURLを公開するために、Apacheを構成してURLを書き直すこともできます。詳細は、Apacheのドキュメントを参照してください。