Oracle WebCenter Framework WebCenterアプリケーションの構築 - ステップ・バイ・ステップ 10g(10.1.3.2.0) E05617-02 |
|
この章では、WebCenterアプリケーション用のダッシュボード・ページを構築します。ダッシュボード・ページは、ビジネス・アクティビティやビジネス・インテリジェンスに関するメトリックおよび主要なパフォーマンス・インジケータを体系化して表示する、わかりやすいユーザー・インタフェースです。
このサンプル・ダッシュボードでは、エンド・ユーザーはサイトの統計情報の表示、顧客契約の検索および毎日のサービス量の内訳の表示を行うことができます。また、最もアクティブな顧客、顧客の詳細、最も生産性の高い従業員および最もリクエストの多い製品に関する情報も表示できます(図8-1を参照)。
この章では、ページを構築し、OmniPortletを使用してダッシュボード・ページ(図8-1)を作成する方法を示します。内容は次のとおりです。
この項では、ポートレットを配置するページを構築して、ダッシュボード・ページを作成する方法を示します。始める前に、必要なサンプル・ファイルがあることを確認し、サンプル・ファイルに含まれるinstall.html
ファイルの説明に従ってPreconfigured OC4Jを必ず初期化しておきます。
SRDemoTemplate.jspx
ページからコピーして新しいSRDashboard.jspx
ページのソースに貼り付け、新しいページの既存のコードをすべて置き換えます。
_PAGE_NAME_
を探し、srdashboard
で置き換えて、次のようなpanelPage
タグにします。
<af:panelPage title="#{res['srdashboard.pageTitle']}">
UIResources.properties
ファイルで、次の行をファイルの最後に追加します。
#WC_DashboardPage srdashboard.pageTitle=Dashboard
「UserInterface」
プロジェクトの「WEB-INF」
フォルダの「faces-config.xml」
を開きます。
</faces-config>
終了タグの前に、マネージドBean(例8-1)を既存のコードに追加して、「Dashboard」サブタブのメニュー項目を管理するBeanをインスタンス化します。<managed-bean> <managed-bean-name>subMenuItem_Manage_Dashboard</managed-bean-name> <managed-bean-class>oracle.srdemo.view.menu.MenuItem</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> <managed-property> <property-name>label</property-name> <value>#{resources['srdemo.menu.manage.dashboard']}</value> </managed-property> <managed-property> <property-name>shown</property-name> <value>#{userInfo.manager}</value> </managed-property> <managed-property> <property-name>viewId</property-name> <value>/app/management/SRDashboard.jspx</value> </managed-property> <managed-property> <property-name>outcome</property-name> <value>Dashboard</value> </managed-property> <!-- ADF Authorization --> <managed-property> <property-name>targetPageDef</property-name> <value>app_management_SRDashboardPageDef</value> </managed-property> <!-- End ADF Authorization --> </managed-bean>
UIResources.properties
ファイルの最後に追加します。
srdemo.menu.manage.dashboard=My Dashboard
faces-config.xml
ファイルを開き、<managed-bean-name>menuItem_Manage
を探します。
list-entries
タグに追加します。<value>#{subMenuItem_Manage_Dashboard}</value>
<navigation-rule> <from-view-id>/app/management/SRManage.jspx</from-view-id> <navigation-case> <from-outcome>Dashboard</from-outcome> <to-view-id>/app/management/SRDashboard.jspx</to-view-id> </navigation-case> </navigation-rule>
この項では、カスタマイズ可能コンポーネント(特にPanelCustomizable
コンポーネント)を使用して、ページのレイアウトを設計する方法を示します。カスタマイズ可能コンポーネントの使用方法の詳細は、第7章「ページの構築とコンポーネントの追加」のカスタマイズ可能コンポーネントに関する項を参照してください。
完成したデモのSRDashboard.jspx
ページを開いてソースを表示すると、完成したページのコードを確認できます。
SRDashboard.jspx
ファイルのソースを開きます。
Please Insert Main Page Content Here!
」を探し、その行の下にカーソルを置きます。
PanelCustomizable
コンポーネントをページに追加します。コードは、図8-2に示すようなコードになります。IsMovable
プロパティをfalse
に設定します。
PanelCustomizable
を作成したばかりのPanelCustomizable
の下に追加します。
DisplayHeader
: true
Id
: panelCustomizable2
Layout
: horizontal
Text
: Business Analysis
IsMovable
: true
IsSeededInteraction
: true
この時点で、ページのソース・コードは、図8-3に示すようなコードになります。
PanelCustomizable
の下にShowDetailFrame
コンポーネントを作成します。
ShowDetailFrame
のText
プロパティをCustomer Contracts
に設定します。コードは、図8-4に示すようなコードになります。ShowDetailFrame
コンポーネントの後にスペーサを挿入します。そのためには、コンポーネント・パレットから「ADF Faces Core」を選択し、「ObjectSpacer」を選択します。コードは、図8-5に示すようなコードになります。PanelCustomizable
コンポーネントを作成して次のプロパティを設定し、2列目をページに追加します。プロパティ | 値 |
---|---|
DisplayHeader |
|
Layout |
horizontal |
Text |
|
IsMovable |
|
IsSeededInteractionAvailable |
true |
ShowDetailFrame
追加し、Text
プロパティをService Requests Volume
に設定します。この時点で、ページのソース・コードは、図8-6に示すようなコードになります。
ShowDetailFrame
内に水平パネルを追加します。そのためには、ShowDetailFrame
の後の行にカーソルを置きます。コンポーネント・パレットから、「ADF Faces Core」を選択し、リストから「PanelHorizontal」を選択します。
PanelHorizontal
の中に入力テキスト・フィールドを追加します。そのためには、追加したばかりのPanelHorizontal
の後の行にカーソルを置き、コンポーネント・パレットから「InputText」を選択します。
「InputText」
コンポーネントを選択します。
Customer
に設定します。
%
に設定します。
#{backing_app_management_SRDashboard.inputText1}
に設定します。図8-7に、適切な値を設定したプロパティ・インスペクタを示します。 結果のコードは、図8-8に示すソースのようになります。
そのためには、InputText
コンポーネントの下にカーソルを置き、コンポーネント・パレットから「CommandButton」を選択します。
Text
プロパティをSearch
に設定します。
Action
プロパティを#{backing_app_management_SRDashboard.commandButton_action}
に設定します。
Binding
プロパティを#{backing_app_management_SRDashboard.commandButton1}
に設定します。
Disabled
プロパティを追加し、#{!bindings.search.enabled}
と定義します。この時点で、コードは図8-9に示すようなコードになります。
InputText
およびCommandButton
の下に表を追加して、各種ポートレットがページに水平に表示されるようにします。
この項では、OmniPortletのインスタンスをページ・レイアウトに追加します。この章の後の手順ではポートレットを定義し、最終的にこれらのポートレットを1つに連結します。
ページのソースで、Customer ContractsというShowDetailFrame
の後、かつ作成したObjectSpacer
の前にカーソルを置き、次に「構造」ビューで、1つ目のPanelCustomizableの上にカーソルを置きます。
customerContracts
に設定します。
mostProductiveEmployees
に変更します。
「PanelCustomizable」
の下の「ShowDetailFrame」
を選択してOmniPortletを追加し、IDをserviceRequestVolume
に設定します。
「PanelCustomizable」
を選択して別のOmniPortletを追加し、IDをmostRequestedProducts
に設定します。
「PanelCustomizable」
を再度選択して別のOmniPortletを追加し、IDをcustomerDetails
に設定します。
この項では、Service Request Volumeポートレット用にSelectOneChoice
コンポーネントを追加します。
「PanelCustomizable」
の下の「ShowDetailFrame」を選択し、ADF Coreコンポーネント・パレットからSelectOneChoice
コンポーネントを追加します。
SelectOneChoice
コンポーネントに、次のプロパティを設定します。
dayPicker
Volume for last
360
1、2、3、5、10、30、60、90、180、360 days
true
次のコードがJSPXに表示されます。
<af:selectOneChoice label="Label 1" value="360" autoSubmit="true" id="dayPicker"> <af:selectItem label="1 day" value="1"/> <af:selectItem label="2 days" value="2"/> <af:selectItem label="3 days" value="3"/> <af:selectItem label="5 days" value="5"/> <af:selectItem label="10 days" value="10"/> <af:selectItem label="30 days" value="30"/> <af:selectItem label="60 days" value="60"/> <af:selectItem label="90 days" value="90"/> <af:selectItem label="180 days" value="180"/> <af:selectItem label="360 days" value="360"/> </af:selectOneChoice>
「PanelCustomizable」
から「ShowDetailFrame」を選択します。
1 day
と入力し、「アイテム値」フィールドに1
と入力します。
Volume for last
と入力します。
360
と入力します。
true
と入力します。
SelectOneChoice
のid
をdayPicker
に更新します。
ShowDetailFrame
内で、dayPickerコンポーネントをOmniPortletの上にドラッグ・アンド・ドロップします。
次の手順では、ユーザーが既存の顧客契約を検索できるようにするコンポーネントを追加します。
ShowDetailFrame
を探し、そのShowDetailFrame
の下にあるPanelHorizontal
の下にカーソルを置きます。
PanelHorizontal
の下にドラッグ・アンド・ドロップします。
/contracts
をパスとして指定します。
Name (use % as wildcard)
と設定します。
PanelHorizontal
の下にドラッグ・アンド・ドロップします。
次の手順では、複数のOmniPortletsを定義します。次に、この章の最後で、これらのポートレットを1つに連結してインタラクティビティを作成します。
この項では、組織で最も生産性の高い従業員を表示するポートレットを定義します。OmniPortletインスタンスを定義するには、まず、JSPXページを実行してブラウザに表示し、OmniPortletウィザードを使用してポートレットを定義します。
SRDashboard.jspx
ページを実行してブラウザに表示します。
select count(SH.CREATED_BY) as NB_REQ, SH.CREATED_BY,U.FIRST_NAME, U.LAST_NAME FROM SERVICE_HISTORIES SH INNER JOIN USERS U ON U.USER_ID = SH.CREATED_BY WHERE SH.SVH_TYPE = 'Technician' OR SH.SVH_TYPE = 'Hidden' GROUP BY SH.CREATED BY,U.FIRST_NAME,U.LAST_NAME ORDER BY NB_REQ DESC
タイトル: Most Productive Employees
レイアウト: Service Request (NB_REQ)
First Name (FIRST_NAME)
Last Name (LAST_NAME)
この項の手順では、サービス・リクエストに関する情報を円グラフで表示する方法を示します。
SRDashboard.jspx
ページの2つ目のポートレットの「定義」リンクをクリックします。
select count(SVR_ID) as NB_REQ, STATUS FROM SERVICE_REQUESTS WHERE REQUEST_DATE > (SYSDATE - ##Param1##) GROUP BY STATUS ORDER BY NB_REQ
「接続」で、「接続の編集」をクリックします。
SRDemo
と入力します。
hr
と入力します。
hr
と入力します。これらは、サンプル・ファイルのダウンロード時にインストールしたSRDemoスキーマ用のユーザー名およびパスワードです。
mydemo.mycompany.com:1522:XE
など)を入力し、「OK」をクリックします。これで、「ソース」タブの「接続」セクションに接続情報が表示されます。
Param1
というポートレット・パレメータを作成し、デフォルト値を360
に設定して、「次へ」をクリックします。
300
、「高さ」には200
と入力します。
この項の手順では、SQL文を使用してデータベースのデータにアクセスし、最もリクエストされた製品を表示するポートレットを定義する方法を示します。
SRDashboard.jspx
ページの3つ目のポートレットの「定義」リンクをクリックします。
select count(SR.SVR_ID) as NB_REQ, SR.PROD_ID, P.NAME FROM SERVICE_REQUESTS SR INNER JOIN PRODUCTS P ON SR.PROD_ID = P.PROD_ID GROUP BY SR.PROD_ID, P.NAME ORDER BY NB_REQ DESC
幅: 300
高さ: 250
グループ: Name
カテゴリ: <なし>
値: NB_REQ
この項の手順では、最もアクティブな顧客を表示するポートレットを定義する方法を示します。
ページの「Customer Information」セクションに2つのポートレットを作成するには、次のようにします。
SRDashboard.jspx
ページの4つ目のポートレットの「定義」リンクをクリックします。
select count(SH.CREATED_BY) as NB_REQ, SH.CREATED_BY , U.FIRST_NAME, U.LAST_NAME FROM SERVICE_HISTORIES SH INNER JOIN USERS U ON U.USER_ID = SH.CREATED_BY WHERE SH.SVH_TYPE = 'Customer' GROUP BY SH.CREATED_BY,U.FIRST_NAME,U.LAST_NAME ORDER BY NB_REQ DESC
Most Active Customers
と入力し、「次へ」をクリックします。
<tr class="portlet-section-alternate opRowColorPI1146522302846_##OP_ROWNUM_MOD2##"> <td class=PortletText1>##NB_REQ##</td> <td class=PortletText1>##CREATED_BY##</td> <td class=PortletText1>##FIRST_NAME##</td> <td class=PortletText1><a href="/SRDemo/faces/app/management/SRDashboard.jspx? customerID=##CREATED_BY##" target="_top">##LAST_NAME##</a></td> </tr>
</tbody> </table> <font class=PortletText1>Total Rows: ##OP_ROWNUM##</font>
この項では、特定の顧客に関する詳細を表示するポートレットを定義します。
SRDashboard.jspx
ページの5つ目のポートレットの「定義」リンクをクリックします。
select * from USERS where USER_ID = '##Param1##')
320
に設定し、「次へ」をクリックします。
Customer Details
と入力し、「次へ」をクリックします。
<TABLE BORDER='0' WIDTH="100%">
<TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>ID</TD> <TD>##USER_ID##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>Email</TD> <TD>##EMAIL##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>First Name</TD> <TD>##FIRST_NAME##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>Last Name</TD> <TD>##LAST_NAME##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>Street</TD> <TD>##STREET_ADDRESS##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>City</TD> <TD>##CITY##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>State</TD> <TD>##STATE_PROVINCE##</TD> </TR>
</tbody> </table> <font class=PortletText1>Total Rows: ##OP_ROWNUM##</font>
この項の手順では、作成したばかりのポートレットにインタラクティビティを追加する方法を示します。この項では、1つのページ・パラメータおよび複数のポートレット・パラメータを作成し、ページ上のポートレットを1つに連結します。
そのためには、「構造」ペインで「Parameters」を右クリックし、新しいページ・パラメータを挿入して次のように設定します。
<parameter id ="custID" value="$param.customerID)"/>
SRDashboard.jspx
ページのソースを開きます。
Param1
の値には、bindings.custIDからのページ・パラメータ値を設定します(デフォルト値を320
に設定して、少なくとも1人の顧客が表示され、ページをアクティブにしますが、顧客は選択されないようにします)。
<parameter name="Param1" value="${(bindings.custID == null || bindings.custID == '') ? 320 : bindings.custID }"/>
SelectOneChoice
から値が選択されるとポートレットがリフレッシュされるようにします。 「構造」ビューで、「parameters」
を右クリックします。
360
に設定します。デフォルトで1年または360日を使用して、すべての結果を表示します。
${( app_management_SRDashboard.dayPicker.value == null) ? 360 : app_management_SRDashboard.dayPicker.value}
SubmitUrlParameters
プロパティをtrue
に設定します。この設定により、ポートレットはURLを介してパラメータをページに送信できるようになります。
SRDashboard.jspx
ページを実行してブラウザに表示し、追加したばかりのポートレットを確認します。
この章の手順では、WebCenterアプリケーション用のダッシュボード・ページを構築する方法を示しました。カスタマイズ可能コンポーネントおよびADF Faces Coreコンポーネントを使用してレイアウトを作成し、ページを作成する方法を学びました。また、関連情報を表示するポートレットを作成し、ページ上で1つに連結してエンド・ユーザーが単一のエントリ・ポイントで顧客に関する情報を簡単に表示できるようにする方法も学びました。
|
![]() Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|