| 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. |
|