Oracle® Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド 11g リリース1(11.1.1.7.0) B72923-01 |
|
![]() 前 |
![]() 次 |
WebCenter Portal: Spacesで、マッシュアップ構築機能を最大限に利用するために、この付録では、ビジネス・マッシュアップの作成に必要な多様なビジネス・シナリオ、およびこれらの要件を満たす方法について説明します。内容は次のとおりです。
OTNのサンプル・アプリケーション
この付録の例の一部に対して作成されるサンプル・アプリケーションは、Oracle Technology Network (OTN)で使用できます。次のOTNに関するページでは、ビジネス・マッシュアップ独自のサンプルや、WebCenter Portal: Spacesの様々な機能を説明する、その他のサンプル・アプリケーションへのリンクが用意されています。
http://www.oracle.com/technetwork/middleware/webcenter/ps3-samples-176806.html
各サンプルで使用可能なREADMEファイルは、アプリケーションが実際のユースケース用にアプリケーションを拡張またはカスタマイズするためのガイダンスを提供する内容について説明します。
分析サービスは、Spacesアプリケーション全体に対する、コミュニティ・トラフィック、ポートレット・トラフィック、検索済キーワード、レスポンス時間、使用動作などのメトリックを表示します。この項では、分析サービス・データ・ソースから取得されるデータを使用してマッシュアップを作成する方法について説明します。内容は次のとおりです。
WebCenter Portalサービスを構成している場合、Spacesではデフォルトで、分析サービス接続ActivitiesDS
を提供します。この接続を使用して、Spacesアプリケーションに統計を表示するグラフとして、SQLデータ・コントロールを作成し、そのデータ・コントロールを使用できます。
分析サービスの構成の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』の分析サービスの管理に関する項を参照してください。
アプリケーションでページの統計を表示するグラフを作成するには:
ActivitiesDS
接続を使用して、SQLデータ・コントールPageStats
を作成します。次のSQL問合せおよびバインド・パラメータを指定します。
問合せ:
SELECT space.name_ spaceName, page.name_ pageName, space.id, page.id, count(1), fact.page_, page.resourceid_ FROM asfact_wc_pagevie_0 fact , asdim_wc_groupsp_0 space , asdim_wc_pages_0 page, asdim_wc_applica_0 app WHERE space.id = fact.groupspace_ and page.id = fact.page_ and app.id = fact.application_ and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname and page.personal_ = :ispersonal and space.name_ is not null and page.name_ is not null and space.id is not null and page.id is not null and fact.page_ is not null and page.resourceid_ is not null GROUP BY space.name_, page.name_, space.id, page.id, fact.page_, page.resourceid_ ORDER BY count(1) desc
バインド・パラメータ:
startdate
- 01/01/2008
dateformat
- MM/DD/YYYY
appname
- webcenter
ispersonal
- 1
enddate
- 01/01/2011
手順の詳細は、第29.2.1.3項「データ・コントロールの作成」を参照してください。
「編集」メニューから 「表示」を選択して、リソース・カタログのデータ・コントロールを公開します。
空白のマッシュアップ・スタイルに基づいて、タスク・フローPage Hits
を作成します。
手順の詳細は、第29.3.1項「タスク・フローの作成」を参照してください。
タスク・フローを編集し、「コンテンツの追加」をクリックし、ダイアログで、PageStats
データ・コントロールを検索し、Analytics_PageViews_DC
アクセッサまでドリルダウンします。
グラフとしてアクセッサを追加します。「グラフの作成」ダイアログで、次のオプションを選択します。
「棒グラフ」タイプを選択します。
「配置」ページで、X軸に沿ってマップされる「スペース名」、「ページ名」および「ページID」データ列、棒としてマップされる「カウント」を選択します。
ダイアログの他のすべてのページでデフォルトの値を受け入れます。
手順の詳細は、第29.4.1.3項「グラフとしてのデータ・コントロールの追加」を参照してください。
グラフは図C-1で示すように表示されます。
前の例で、Spacesアプリケーションでページ・ヒットを表示する方法を説明しました。この項では、同様の例を示すますが、特定のスペース専用にページ・ヒットを表示する機能を持つ列を示します。この場合、データ・コントロールは、パラメータ・フォーム・タスク・フローにグラフとして追加されます。入力パラメータを使用して、ユーザーはスペース名を指定し、グラフでそのスペースの統計を表示できます。この項の内容は次のとおりです。
アプリケーションでWebCenter Portalサービスを構成している場合は、デフォルトで分析サービス接続ActivitiesDS
が使用できます。この接続を使用して、SQLデータ・コントロールを作成できます。この項では、指定されたスペースの過去7日間の上位5つのページ・ヒットを表示するデータ・コントロールの作成方法について説明します。
データ・コントロールを作成するには:
ActivitiesDS
接続を使用して、PageHits
という名前のSQLデータ・コントロールを作成します。
次のSQL問合せを指定します。
SELECT * FROM
(SELECT page.name_ pageName, space.name_ spaceName, COUNT(1) hits
FROM asdim_users u, asdim_wc_pages_0 page, asdim_wc_applica_0 app, asdim_wc_groupsp_0 space, asfact_wc_pagevie_0 fact
WHERE fact.page_ = page.id AND fact.userid = u.id AND fact.application_ = app.id
AND fact.groupspace_ = space.id AND fact.occurred BETWEEN(SYSDATE-6) AND (SYSDATE+1) AND app.name_ = 'webcenter'
AND u.userid <> 'anonymous' AND upper(space.name_) LIKE upper(:spacename) AND space.name_ IS NOT NULL
AND page.name_ IS NOT NULL AND space.id IS NOT NULL AND page.id IS NOT NULL
AND fact.page_ IS NOT NULL AND page.resourceid_ IS NOT NULL
GROUP BY page.name_, space.name_ ORDER BY hits DESC)
WHERE rownum <= 5 ORDER BY rownum
データ・コントロールはspacename
バインド変数で作成されます。
spacename
バインド変数をHome space
に設定します。
図C-2に示すように、問合せをテストし、データ・ソースから取得されるデータを表示します。
この項では、SQLデータ・コントロールのバインド変数に結付け可能な入力テキスト・フィールドを使用して、カスタム・マッシュアップ・スタイルInput Space Name
を作成する方法について説明します。この結付けのタイプを使用して、ユーザーはそのスペースのページ・ヒットを表示するためのスペース名を提供できます。
カスタム・マッシュアップ・スタイルを作成するには:
リソース・マネージャで既存のマッシュアップ・スタイルをコピーし、それをInput Space Name
と名付けます。
タスク・フローのソースを編集して、「フラグメント」タブをクリックし、コード全体を次で置き換えます。
<?xml version='1.0' encoding='UTF-8'?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:pe="http://xmlns.oracle.com/adf/pageeditor" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable" xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"> <af:panelGroupLayout id="pgl"> <af:panelGroupLayout id="pg2" layout="horizontal" halign="center" inlineStyle="padding-bottom:5px;"> <af:inputText id="ip1" value="#{pageFlowScope.bindVarId}" label="Space Name" shortDesc="Enter a Space name. The default value is Home space."/> <af:commandButton text="#{dataComposerBundle.MASHUP_STYLES_GO}" id="cb1"/> </af:panelGroupLayout> <cust:panelCustomizable id="pc1" halign="center"/> </af:panelGroupLayout> </jsp:root>
リソース・マネージャでマッシュアップ・スタイルを選択し、「編集」メニューから、「表示」をクリックします。
マッシュアップ・スタイルを作成および編集する手順の詳細は、第29.3.4項「マッシュアップ・スタイルの管理」を参照してください。
リソース・マネージャで、図C-3に示すように、新しいマッシュアップ・スタイルに基づいて、タスク・フローTop Five Page Hits for a Space
を作成します。
手順の詳細は、第29.3.1項「タスク・フローの作成」を参照してください。
「編集」メニューから、リソース・カタログにタスク・フローを含めるには、「表示」を選択します。
新しいタスク・フローにページ・ヒット・データ・コントロールを追加するには:
図C-4に示すように、Top Five Page Hits for a Space
タスク・フローを編集し、グラフとしてPageHits
データ・コントロール・アクセッサを追加します。
「グラフの作成」ダイアログの「タイプ」ページで、「棒」を選択します。
「配置」ページで、X軸に「ページ名」および「スペース名」、棒に「ヒット」を配置します。
「DCパラメータ」ページで、spacename
パラメータに次の値を指定します。
#{empty pageFlowScope.bindVarId ?'Home space' : pageFlowScope.bindVarId}
この項では、タスク・フローのグラフが、入力するスペース名に固有のデータを表示するかどうかをテストするために実行する必要がある手順について説明します。
タスク・フローをテストするには:
テスト・ページを作成し、「コンテンツの追加」ダイアログからタスク・フローを追加します。
グラフがページに正しく表示されていることを確認するには:
タスク・フローを編集するには:
「コンポーネント・プロパティ」ダイアログの「表示オプション」タブの「基本」ページで、「サイズ変更の許可」オプションの選択を解除します。
「表示オプション」タブの「詳細設定」ページで、「コンテンツのストレッチ」をAuto
に設定します。
入力テキスト・フィールドの異なるスペース名を指定します。図C-5に示すように、グラフにそのスペース固有のデータが表示されます。
この項では、分析サービスからサイト・トラフィック・データを取得して、それを円グラフとして表示する方法について説明します。
ポータル・サイト・トラフィック・データを使用してマッシュアップを作成するには:
ActivitiesDS
接続を使用して、SQLデータ・コントールPortalStats
を作成します。次のSQL問合せおよびバインド・パラメータを指定します。
問合せ:
SELECT 'Spaces' Name, count(1) Hits FROM asfact_wc_groupsp_0 fact , asdim_wc_groupsp_0 space , asdim_wc_applica_0 app WHERE space.id = fact.groupspace_ and app.id = fact.application_ and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname and space.personal_ = :ispersonal UNION ALL SELECT 'Pages' Name, count(1) Hits FROM asfact_wc_pagevie_0 fact , asdim_wc_pages_0 page , asdim_wc_applica_0 app WHERE page.id = fact.page_ and app.id = fact.application_ and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname and page.personal_ = :ispersonal UNION ALL SELECT 'Portlets' Name, count(1) Hits FROM asfact_wc_portlet_0 fact , asdim_wc_applica_0 app WHERE app.id = fact.application_ and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname UNION ALL SELECT 'Logins' Name, count(1) Hits FROM asfact_wc_logins_0 fact , asdim_wc_applica_0 app WHERE app.id = fact.application_ and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname UNION ALL SELECT 'Searches' Name, count(1) Hits FROM asfact_wc_searche_0 fact , asdim_wc_applica_0 app WHERE app.id = fact.application_ and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname UNION ALL SELECT 'Wikis' Name, count(1) Hits FROM asfact_wc_doclib__0 fact , asdim_wc_documen_0 doc , asdim_wc_applica_0 app WHERE app.id = fact.application_ and fact.document_ = doc.id and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname and doc.objecttype_ like '%WIKI%' UNION ALL SELECT 'Blogs' Name, count(1) Hits FROM asfact_wc_doclib__0 fact , asdim_wc_documen_0 doc , asdim_wc_applica_0 app WHERE app.id = fact.application_ and fact.document_ = doc.id and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname and doc.objecttype_ like '%BLOG%' UNION ALL SELECT 'Documents' Name, count(1) Hits FROM asfact_wc_doclib__0 fact , asdim_wc_documen_0 doc , asdim_wc_applica_0 app WHERE app.id = fact.application_ and fact.document_ = doc.id and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname and doc.objecttype_ like '%DOCUMENT%' UNION ALL SELECT 'Discussions' Name, count(1) Hits FROM asfact_wc_discuss_1 fact , asdim_wc_applica_0 app WHERE app.id = fact.application_ and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname
バインド・パラメータ:
startdate
- 01/01/2008
dateformat
- MM/DD/YYYY
appname
- webcenter
ispersonal
- 1
enddate
- 01/01/2011
手順の詳細は、第29.2.1.3項「データ・コントロールの作成」を参照してください。
「編集」メニューから 「表示」を選択して、リソース・カタログのデータ・コントロールを公開します。
空白のマッシュアップ・スタイルに基づいて、タスク・フローPortal Traffic
を作成します。
手順の詳細は、第29.3.1項「タスク・フローの作成」を参照してください。
タスク・フローを編集し、「コンテンツの追加」をクリックして、カタログで、PortalStats
データ・コントロールを検索し、Site_Traffic_DC
アクセッサまでドリルダウンします。
グラフとしてアクセッサを追加します。「グラフの作成」ダイアログで、次のオプションを選択します。
「円グラフ」タイプを選択します。
「配置」ページで、スライスとしてプロットされる「名前」データ列、円として「ヒット」を選択します。
ダイアログの他のすべてのページでデフォルトの値を受け入れます。
手順の詳細は、第29.4.1.3項「グラフとしてのデータ・コントロールの追加」を参照してください。
グラフが図C-6に示すように表示されます。
この項の例は、1つのタスク・フローの選択により2番目のタスク・フローのアクションが生成されるようにマスター/ディテール関係の2つのタスク・フローの結付けを行う方法について説明します。関係する様々なタスクについては、次のサブセクションで説明します。
前述の構成を実行した後で、マスター表のユーザー名をクリックすると、ディテールがポップアップ・ウィンドウに表示されます。
マスター・タスク・フローには、過去7日間の指定のスペースに対する上位5つのページ・ビューを含む表が表示されます。
タスク・フローを作成するには:
ActivitiesDS
接続を使用して、SQLデータ・コントールTopFiveDocViewsForSelectedSpace
を作成します。次のSQL問合せを指定します。
select * from (select u.id id , u.userid userid, count(fact.userid) pageviews from asdim_users u , asfact_wc_pagevie_0 fact,asdim_wc_applica_0 app where fact.userid=u.id and u.userid <> 'anonymous' and fact.application_ = app.id and app.name_ = 'webcenter' and fact.occurred BETWEEN (SYSDATE-7) and ( SYSDATE+1) group by u.id,u.userid order by pageviews desc ) where rownum<11
手順の詳細は、第29.2.1.3項「データ・コントロールの作成」を参照してください。
この問合せでは、過去7日間の指定のスペースに対する上位5つのページ・ヒットが返されます。
新しいデータ・コントロールを選択し、「編集」メニューから、「表示」をクリックします。
空白のマッシュアップ・スタイルに基づいて、タスク・フローTop 10 Visitor Page Hits
を作成します。
手順の詳細は、第29.3.1項「タスク・フローの作成」を参照してください。
タスク・フローを編集し、表としてTopFiveDocViewsForSelectedSpace
データ・コントロール・アクセッサを追加します。
読取り専用の表を作成します。図C-7に示すように、「表の作成」ダイアログの「列」ページで、ハイパーリンクとしてUSERID列を表示することを選択し、URLをhttp://www.oracle.com
と指定します。
表に、上位ページ・ヒットにユーザーを加えたリストが表示されます。図C-8に示すように、USERID列には、ハイパーリンクとしてユーザー名が表示されます。
新しいタスク・フローを選択し、「編集」メニューから、「表示」をクリックします。
表に上位ページ・ヒットが表示され、ユーザー名がハイパーリンクされる、マスター・タスク・フローの作成方法について説明しました。次の手順は、マスター・タスク・フローのユーザー名をクリックすると表示される必要があるディテール・タスク・フローの作成です。この項では、指定されたユーザーのすべてのページ・ヒットのグラフを表示するディテール・タスク・フローの作成方法について説明します。
ディテール・データ・コントロールおよびタスク・フローを作成するには:
ActivitiesDS
接続を使用して、SQLデータ・コントロールPageHitsForSelectedUser
を作成します。次のSQL問合せおよびバインド変数を指定します。
SELECT page.name_ pageName, space.name_ spaceName, COUNT(1) hits
FROM asdim_users u, asdim_wc_pages_0 page, asdim_wc_applica_0 app,
asdim_wc_groupsp_0 space, asfact_wc_pagevie_0 fact
WHERE fact.page_ = page.id AND fact.userid = u.id
AND u.userid=(:userid) AND fact.application_ = app.id
AND fact.groupspace_ = space.id AND fact.occurred
BETWEEN (SYSDATE-7) and SYSDATE and app.name_ = 'webcenter'
AND u.userid <> 'anonymous' AND space.name_ IS NOT NULL
AND page.name_ IS NOT NULL AND space.id IS NOT NULL
AND page.id IS NOT NULL AND fact.page_ IS NOT NULL
AND page.resourceid_ IS NOT NULL GROUP BY page.name_, space.name_
userid
バインド変数をweblogic
に設定します。
手順の詳細は、第29.2.1.3項「データ・コントロールの作成」を参照してください。
新しいデータ・コントロールを選択し、「編集」メニューから、「表示」をクリックします。
空白のマッシュアップ・スタイルに基づいて、タスク・フローPage Hits for Selected User
を作成します。
手順の詳細は、第29.3.1項「タスク・フローの作成」を参照してください。
タスク・フローを編集して、グラフとしてPageHitsForSelectedUser
データ・コントロール・アクセッサを追加します。
棒グラフを作成し、X軸に沿って「スペース名」と「ページ名」および棒として「ヒット」をプロットします。
「グラフの作成」の「DCパラメータ」ページで、userid
パラメータに次の値を指定します。
#{empty pageFlowScope.userid ?'weblogic': pageFlowScope.userid}
これにより、このパラメータにユーザー名が指定されない場合は、weblogic
がデフォルトのユーザーとして選択されます。図C-9に示すように、グラフが表示されます。
図C-10に示すように、userid
というタスク・フロー・パラメータを作成し、その値をpageFlowScope
に設定します。
新しいタスク・フローを選択し、「編集」メニューから、「表示」をクリックします。
この項では、ユーザーがマスター・タスク・フローのユーザー名をクリックして、そのユーザーのページ・ヒット・グラフを表示するディテール・タスク・フローをポップアップ表示できるように、マスター・タスク・フローとディテール・タスク・フローを結付けする方法について説明します。
マスター・タスク・フローおよびディテール・タスク・フローを結付けするには:
マスター・タスク・フローTop 10 Visitor Page Hits
のソースを編集します。「ソースの編集」ダイアログの「フラグメント」タブをクリックして、ポップアップのディテール・タスク・フローを参照するために、次のコード<af:panelGroupLayout id="pgl1">
を下に貼り付けます。
<af:popup id="popup1" launcherVar="source" eventContext="launcher" contentDelivery="lazyUncached"> <af:dialog> <af:region xmlns:af="http://xmlns.oracle.com/adf/faces/rich" id="oc_449838760region1" value="#{bindings.popTaskflow.regionModel}"/> </af:dialog> <af:setPropertyListener from="#{source.attributes.userid}" to="#{viewScope.userid}" type="popupFetch"/> </af:popup>
<af:goLink>
コード・セグメントを検索して、それを次で置き換えて、USERID列がポップアップ・ダイアログを起動するコマンド・リンクを表示できるようにします。
<af:commandLink text="#{row.bindings.USERID.inputValue}" id="userLink"> <af:clientAttribute name="userid" value="#{row.bindings.USERID.inputValue}"/> <af:showPopupBehavior popupId="::popup1" alignId="userLink" align="afterEnd"/> </af:commandLink>
「ページ定義」タブをクリックし、ディテール・タスク・フローへの参照を追加します。<executable>
タグ内で<iterator>
タグの下の次のコードを貼り付けます。
<taskFlow id="popTaskflow" taskFlowId="details_taskflow_definition_path#blanktaskflow"
xmlns="http://xmlns.oracle.com/adf/controller/binding" Refresh="ifNeeded">
<parameters>
<parameter id="userid" value="#{viewScope.userid}"/>
</parameters>
</taskFlow>
ここで、details_taskflow_definition_path
は、インスタンスのタスク・フローへのパスです。例: /oracle/webcenter/siteresources/scopedMD/s8bba98ff_4cbb_40b8_beee_296c916a23ed/taskFlow/gsr34e6278e_9e9a_45eb_bbbf_31aa5ae34381/taskflow-definition.xml
。
リソース・マネージャでタスク・フローを選択し、「編集」メニューをクリックして、「プロパティの編集」を選択することによって、このパスを取得できます。Metadata File
属性は、タスク・フローへの完全なパスを提供します。
マスター/ディテール関係をテストします。リソース・マネージャでTop 10 Visitor Page Hits
タスク・フローをプレビューします。図C-11に示すように、ユーザー名リンクをクリックすると、そのユーザーのページ・ヒット・グラフがポップアップ・ウィンドウに表示されます。
この項では、スペースで表示される上位5つのドキュメントをリストする表を使用してマッシュアップを作成する方法について説明します。表のドキュメント名は、ユーザーが新しいウィンドウで選択したドキュメントを開くためのリンクをクリックできるように、ハイパーリンクとして表示されます。表のデータは、SQLデータ・コントロールからSpaces分析サービスに取り込まれます。この項の内容は次のとおりです。
この項では、指定されたスペースの過去7日間の上位5つのドキュメント・ヒットを表示するデータ・コントロールの作成方法について説明します。
ActivitiesDS
接続を使用して、Top Five Doc Views for Given Space in the Past Week
というSQLデータ・コントロールを作成し、次のSQL問合せを指定します。
SELECT * FROM( SELECT doc.name_ name,space.name_ space,count(1) hits,doc.path_ download_url FROM asfact_wc_doclib__0 fact , asdim_wc_documen_0 doc , asdim_wc_applica_0 app,asdim_wc_groupsp_0 space WHERE app.name_ = 'webcenter' AND app.id = fact.application_ AND fact.document_ = doc.id AND fact.occurred BETWEEN (SYSDATE-6) AND (SYSDATE+1) AND doc.name_ is not null AND doc.id is not null AND fact.document_ is not null AND doc.resourceid_ is not null AND fact.GROUPSPACE_ = space.id AND upper(space.name_) LIKE upper(:spacename) AND space.name_ IS NOT NULL GROUP BY doc.name_, doc.id,space.name_ ,doc.path_ ORDER BY hits DESC) WHERE rownum <= 5 ORDER BY rownum
データ・コントロールはspacename
バインド変数で作成されます。
spacename
バインド変数をHome space
に設定します。
図C-12に示すように、問合せをテストし、データ・ソースから取得されるデータを表示します。
この項では、SQLデータ・コントロールのバインド変数に結付け可能な入力テキスト・フィールドを使用して、カスタム・マッシュアップ・スタイルInput Space Name
を作成する方法について説明します。この結付けのタイプを使用して、ユーザーはそのスペースのページ・ヒットを表示するためのスペース名を提供できます。
カスタム・マッシュアップ・スタイルを作成するには:
リソース・マネージャで既存のマッシュアップ・スタイルをコピーし、それをInput Space Name
と名付けます。
タスク・フローのソースを編集して、「フラグメント」タブをクリックし、コード全体を次で置き換えます。
<?xml version='1.0' encoding='UTF-8'?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:pe="http://xmlns.oracle.com/adf/pageeditor" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable" xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"> <af:panelGroupLayout id="pgl"> <af:panelGroupLayout id="pg2" layout="horizontal" halign="center" inlineStyle="padding-bottom:5px;"> <af:inputText id="ip1" value="#{pageFlowScope.bindVarId}" label="Space Name" shortDesc="Enter A Space Name, by default it's all spaces"/> <af:commandButton text="#{dataComposerBundle.MASHUP_STYLES_GO}" id="cb1"/> </af:panelGroupLayout> <cust:panelCustomizable id="pc1" halign="center"/> </af:panelGroupLayout> </jsp:root>
リソース・マネージャでマッシュアップ・スタイルを選択し、「編集」メニューから、「表示」を選択します。
カスタム・スタイルを使用してタスク・フローを作成するには:
リソース・マネージャで、図C-13に示すように、新しいマッシュアップ・スタイルに基づいて、タスク・フローTop Five Doc Hits for a Given Space in a Week
を作成します。
リソース・マネージャでタスク・フローを選択し、「編集」メニューから、「表示」をクリックします。
新しいタスク・フローのページ・ヒット・データ・コントロールを使用するには:
Top Five Doc Hits for a Given Space in a Week
タスク・フローを編集し、図C-14に示すように、Top Five Doc Views for Given Space in the Past Week
データ・コントロール・アクセッサを表として追加します。
読取り専用の表を作成します。「表の作成」ダイアログの「アイテム」ページ(図C-15)で、DOWNLOAD_URL
列が表示されていないことを確認します。
「列」ページで、「名前」列をハイパーリンクとして表示することを選択し、次のようにURLを指定します(図C-16)。
{
doc path pre fix
}#{empty row.DOWNLOAD_URL ? '' : row.DOWNLOAD_URL}
ここで
doc path pre fix
は、ドキュメントURLに使用される接頭辞です。ドキュメント・パスの接頭辞を検索するには、「ドキュメント」ページでドキュメントを選択し、「表示」メニューから「リンクの取得」をクリックします。「ダウンロードURL」の最初の部分(パスの最後)は使用される接頭辞です。たとえば、http://my.company.com:8889/webcenter/content/conn/xyz18-ucm11g/path
。
「DCパラメータ」ページで、spacename
パラメータに次の値を指定します。
spacename: #{empty pageFlowScope.bindVarId ?'%' : pageFlowScope.bindVarId}
これで、データ・コントロールがタスク・フローの表として表示されるようになります。
必要に応じて、表を編集します。図C-17に示すように、「コンポーネント・プロパティ」ダイアログで、「列のストレッチ」フィールドの値をlast
に変更します。これにより、必要に応じて、最後の列がストレッチされます。
表がページで正しく表示されていることを確認するには:
タスク・フローを編集するには:
「コンポーネント・プロパティ」ダイアログの「表示オプション」タブの「基本」ページで、「サイズ変更の許可」オプションの選択を解除します。
「表示オプション」タブの「詳細設定」ページで、「コンテンツのストレッチ」をAuto
に設定します。
この項では、タスク・フローの表が、入力するスペース名に固有のデータを表示するかどうかをテストするために実行する必要がある手順について説明します。
タスク・フローをテストするには:
テスト・ページを作成して、リソース・カタログからタスク・フローを追加します。
タスク・フローにより表が表示されます。
入力テキスト・フィールドの異なるスペース名を指定します。表に、そのスペースに固有のデータが表示されます。
「名前」列にドキュメントをダウンロード可能なハイパーリンクが表示されます(図C-18)。
この項のタスクは、従業員データベースに基づく例を使用します。この項では、取得された従業員データに視覚化を追加し、いくつかの簡単な構成を実行することによりこの視覚化をカスタマイズする方法について説明します。この項では、Employee Details
タスク・フローへの表としてEmpDetails
データ・コントロールを追加する方法、および列の表示または非表示および行のソートなど、表で異なるカスタマイズを実行する方法について説明します。内容は次のとおりです。
次のタスクを実行して、従業員データベースのデータ・コントロールを作成します。
従業員データベースへの接続を作成します。手順の詳細は、第29.2.1.2項「データベース接続の作成」を参照してください。
SQLデータ・コントロールEmpDetails
を作成し、このデータベース接続を使用してデータを取得します。データを取得するには、次の問合せを使用します。
select ename, empno, mgr, deptno from emp where job in (:jobId) order by empno asc
手順の詳細は、第29.2.1.3項「データ・コントロールの作成」を参照してください。
このデータ・コントロールは、職種がjobId
の値に一致するすべての従業員のレコードを返します。レコードは、従業員番号別にソートされます。
空白のマッシュアップ・スタイルに基づいて、タスク・フローEmployee Details
を作成します。手順の詳細は、第29.3.1項「タスク・フローの作成」を参照してください。
表としてデータ・コントロールを追加するには、次の手順を実行します。
コンポーザでEmployee Details
タスク・フローを編集します。
「コンテンツの追加」ダイアログで、図C-19に示すように、EmpDetails
データ・コントロールのアクセッサに移動して、「追加」をクリックして、「表」を選択します。
編集可能な表を作成し、行の選択、フィルタおよびソートを有効化して、表に表示するename
、empno
およびdeptno
列を選択します。
手順の詳細は、第29.4.1.1項「表としてのデータ・コントロールの追加」を参照してください。
図C-20に示すように、各列の上部に空のフィールドを持つ表が表示されますこれらのフィールドを使用して、列のフィルタ条件を指定できます。
タスク・フロー・パラメータdesignation
を作成します。
手順の詳細は、第29.4.2項「タスク・フロー・パラメータの作成」を参照してください。
表に表示されるデータを実行するためにdesignation
パラメータを使用するには、パラメータ#{pageFlowScope.designation}
のストレージ値をコピーし、それを表の「コンポーネント・パラメータ」ダイアログの「データ」タブのバインド変数jobId
の値として貼り付けます。
詳細は、第29.4.3項「データ・コントロール・パラメータのタスク・フロー・パラメータへのバインド」を参照してください。
ページを作成し、そのページにEmployee Details
タスク・フローを追加します。
手順の詳細は、第29.4.5項「視覚化を含むタスク・フローの使用」を参照してください。
このページでEmployee Details
タスク・フローを編集し、「パラメータ」タブで、表に対応する詳細を表示するために職種を指定します。
SQL問合せで、ename
、empno
、deptno
およびmgr
列を取得する必要があることを指定しました。ただし、ename
、empno
およびdeptno
列のみ表示することを選択しています。この場合、データ・コントロールは、全4つのデータ列からデータを取得しますが、3つのみ表示します。表の4番目の列をレンダリングできますが、表のソース・コードは編集できません。この操作を実行するには:
リソース・マネージャの「タスク・フロー」ページで、「従業員詳細」タスク・フローを選択します。
「ソースの編集」→「フラグメント」タブをクリックし、非表示列のコードを検索します。このコードは、次の例のコードに類似しています。
<column sortProperty="MGR" filterable="true" sortable="true"
headerText="#{bindings.accessor_gsrf2d136f7_d907_481d_ad3a_eb2b9dbe7c35.hints.MGR.label}"
id="column4" rendered="false">
<af:inputText value="#{row.bindings.MGR.inputValue}"
label="#{bindings.accessor_gsrf2d136f7_d907_481d_ad3a_eb2b9dbe7c35.hints.MGR.label}"
required="#{bindings.accessor_gsrf2d136f7_d907_481d_ad3a_eb2b9dbe7c35.hints.MGR.mandatory}"
columns="#{bindings.accessor_gsrf2d136f7_d907_481d_ad3a_eb2b9dbe7c35.hints.MGR.displayWidth}"
maximumLength="#{bindings.accessor_gsrf2d136f7_d907_481d_ad3a_eb2b9dbe7c35.hints.MGR.precision}"
shortDesc="#{bindings.accessor_gsrf2d136f7_d907_481d_ad3a_eb2b9dbe7c35.hints.MGR.tooltip}"
id="inputText4">
<f:validator binding="#{row.bindings.MGR.validator}"/>
<af:convertNumber groupingUsed="false" pattern="#{bindings.accessor_gsrf2d136f7_d907_481d_ad3a_eb2b9dbe7c35.hints.MGR.format}"
id="convertNumber3"/>
</af:inputText>
</column>
rendered
属性をtrue
に設定します。
図C-21に示すように、これで表に全部で4つの列が表示されるようになります。
同様に、そのrendered
属性をfalse
に設定して、表示される列を非表示にできます。
パラメータ・フォーム・タスク・フローでは、ユーザーが値を指定できる入力テキスト・フィールドを提供します。この値は、アクセッサがユーザー入力に基づいてデータを表示できるようにデータ・コントロール・アクセッサ・パラメータに渡されます。
ユーザーが表の対応する詳細を表示するためにフィールドの値を指定できるように、パラメータ・フォーム・タスク・フロー内の表としてデータ・コントロールを追加できます。
パラメータ・フォーム・タスク・フロー内にデータ・コントロールを追加するには:
Parameter Form
マッシュアップ・スタイルに基づいてタスク・フローを作成します。
手順の詳細は、第29.3.1項「タスク・フローの作成」を参照してください。
コンポーザでタスク・フローを編集し、EmpDetails
データ・コントロールをタスク・フロー内の表として追加します。
手順は、第C.2.2項「データ・コントロールの追加およびタスク・フロー・パラメータのデータ・コントロール・パラメータへのバインド」を参照してください。
jobId
値を#{pageFlowScope.bindVarId}
となるように指定することにより、データ・コントロールのjobId
パラメータをパラメータ・フォーム・タスク・フローのInput Text
コンポーネントに結び付けます。
手順の詳細は、第29.4.4項「パラメータ・フォーム・タスク・フローへのデータ・コントロールの結付け」を参照してください。
これで表の対応するレコードを表示するために、入力テキスト・フィールドの値を指定できるようになります(図C-22)。
Spacesアプリケーションは、次のリポジトリ接続でシードされます。
WebCenterDS
mds-owsm
mds-SpacesDS
ActivitiesDS
これらの接続のいずれかに対してデータ・コントロールを作成し、それをページおよびタスク・フローで使用できます。この項では、Spacesリポジトリに接続するためにデータ・コントロールを作成し、アプリケーションなどでスペースおよびページに関する詳細を表示する方法について説明します。この項の内容は次のとおりです。
Spacesデータ・ソースからページ関連のデータを取得するには、データ・コントロールWebCenter Pages
を作成します。mds-SpacesDS接続を使用して、次のSQL問合せを入力します。
select 'Home space Pages' metric, count(*) value from mds_paths where path_type = 'DOCUMENT' and path_name like '%.jspx' and path_high_cn is null and path_fullname like '%/user/%' union select 'Business Role Pages' metric, count(*) value from mds_paths where path_type = 'DOCUMENT' and path_name like '%.jspx' and path_high_cn is null and path_fullname like '%/businessRolePages/%' union select 'Space Template Pages' metric, count(*) value from mds_paths where path_type = 'DOCUMENT' and path_name like '%.jspx' and path_high_cn is null and path_fullname like '%/spacetemplate/%' union select 'Group Space Pages' metric, count(*) value from mds_paths where path_type = 'DOCUMENT' and path_name like '%.jspx' and path_high_cn is null and (path_fullname not like '%/user/%' and path_fullname not like '%/businessRolePages/%' and path_fullname not like '%/spacetemplate/%')
図C-23に示すように、この問合せは、異なるタイプのページおよび各ページ・タイプ数に関する情報を取得します。
このタイプの情報は、表またはグラフのいずれかで表すことができます。次の項では、グラフとしてこのデータ・コントロールを追加する方法について説明します。
空のタスク・フローを作成し、グラフとしてデータ・コントロールを追加します。「円」グラフ・タイプを選択し、「メトリック」列をスライスとし、「値」列を円として配置します。図C-24に示すように、グラフがタスク・フローに追加されます。
スペースWebサービスにデータ・コントロールを作成し、インスタンスのスペースのリストなど、アプリケーションおよびスペースに関する情報を取得します。ただし、Webサービスを公開するには、最初にSpacesインスタンスを準備する必要があります。
概要
この項で構成を開始する前に、Spacesインスタンスに対してWS-Securityを構成する必要があります。手順の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のWS-Securityの構成に関する項を参照してください。WS-Securityを構成しないでマッシュアップを作成する場合は、データ・ソースからデータを取得する際にエラーが発生します。
この項では、次のユースケースについて説明します。
この項では、スペースのリストを表示するためにマッシュアップを作成する方法について説明します。ユーザーが選択したスペースを表示するリンクをクリックできるように、スペース名はハイパーリンクとして表示されます。
スペースのリストを表示するためにデータ・コントロールとタスク・フローを作成するには:
次の例のように、アプリケーション・マシン名とポート番号を持つWSDL URLを使用して、Webサービス・データ・コントロールSpacesWS
(図C-25)を作成します。
http://myserver.example.com:8888/webcenter/SpacesWebService?WSDL
手順の詳細は、第29.2.2項「Webサービス・データ・コントロールの作成」を参照してください。
図C-26に示すように「OWSMセキュリティ」ページで、次の追加ポリシーを適用します。
oracle/wss11_saml_token_with_message_protection_client_policy
「作成」をクリックします。
データ・コントロールを選択し、「編集」メニューから、「表示」を選択します。
データ・コントロールを使用するには、空のタスク・フローSpaces
を作成します。
手順の詳細は、第29.3.1項「タスク・フローの作成」を参照してください。
Spaces
タスク・フローを編集して、表としてSpacesWS
データ・コントロール・アクセッサを追加します。
手順の詳細は、第29.4.1.1項「表としてのデータ・コントロールの追加」を参照してください。
「表の作成」ダイアログの「列」ページで、スペース名をリンクとして表示するには、「表示形式」フィールドの「ハイパーリンク」を選択します。次に、「URL」フィールド(図C-27)で、/spaces/#{row.item}
など、別のウィンドウでスペースを空けるように、スペース名を追加する必要があるURLを指定します。
図C-28に示すように、表が表示されます。
この項では、前の項で作成したSpacesWS
Webサービス・データ・コントロールを参照し、指定されたスペースの名前を変更するために使用可能なフォームの作成方法について説明します。
カスタム・フォームを作成するには:
空白のマッシュアップ・スタイルを使用して、タスク・フローRename Spac
を作成します。
タスク・フローを編集して、「コンテンツの追加」をクリックします。
SpacesWS
データ・コントロールを表示するためにドリル・ダウンして、renameGroupSpace
メソッドを追加します。
図C-29に示すように、renameGroupSpace
メソッドを開いて、arg1
およびarg0
属性をADF Input Text w/Label
として追加します。この手順は、ユーザーが古いスペース名と新しいスペース名を指定できる、2つの入力テキスト・フィールドを追加します。
タスク・フローを保存して閉じます。
入力テキスト・フィールドのラベルを変更します。
タスク・フローを選択し、「編集」メニューから、「ソースの編集」を選択します。
最初のinputText
コンポーネント(#{bindings.arg0.hints.label}
)のlabel
値をOld Space Name
と置き換えます。
2番目のinputText
コンポーネント(#{bindings.arg1.hints.label}
)のlabel
値をNew Space Name
と置き換えます。
「OK」をクリックします。
これで、タスク・フローは図C-30のように表示されます。
リソース・マネージャでタスク・フローを選択し、「編集」メニューから、「表示」をクリックします。
これで、任意のページにこのタスク・フローを追加し、スペース名を変更する機能を提供できるようになります。
この項では、Webサービス・データ・コントロールを使用して、Siebelデータ・ソースからのデータを使用してマッシュアップを作成する方法について説明します。内容は次のとおりです。
前提条件
Siebelデータ・ソースにWebサービス・データ・コントロールを作成するには、最初にインバウンドWebサービスを作成し、そのサービス用のWSDLを生成する必要があります。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal開発者ガイド』のWebサービスとしてのSiebelアプリケーションの統合に関する項を参照してください。
リソース・マネージャの「データ・コントロール」ページで、Siebel Webサービス用のWSDLを使用して、Webサービス・データ・コントロールCustData
を作成します。
手順の詳細は、第29.2.2項「Webサービス・データ・コントロールの作成」を参照してください。
この例では、2つのメソッドMyQueryById
およびMyInsertOrUpdate
を提供するWebサービスへの接続を示します。MyQueryById
は複合パラメータMyQueryById_Input
をとり、MyInsertOrUpdate
はパラメータMyInsertOrUpdate_Input
をとります。MyInsertOrUpdate_Input
は、配列パラメータで、表の複数のレコードを更新するために使用できます。
注意: この項で使用されるパラメータ名は、例のみです。Webサービスの作成時に任意のパラメータ名を入力できます。 |
「編集」メニューから「表示」を選択して、リソース・カタログのCustData
データ・コントロールを公開します。
タスク・フローでCustData
データ・コントロールを使用するには:
リソース・マネージャの「タスク・フロー」ページで、「パラメータ・フォーム」スタイルに基づいたタスク・フローを作成します。
手順の詳細は、第29.3.1項「タスク・フローの作成」を参照してください。
タスク・フローを編集して、「コンテンツの追加」をクリックします。
CustomerData
データ・コントロールを検索し、それを開いてそのコンテンツを表示します。「MyQueryById」→「戻る」→「ListOfAccountInterface」を開きます。
編集可能な表として、図C-31で示すように、「アカウント」を追加します。
図C-32で示すように、「表の作成」ダイアログで、表示される列を選択します。
MyQueryById_Input
フィールドの横のコンテキスト・メニューから、ウィザードの「DCパラメータ」ページで、「パラメータ構造」をクリックします。
図C-33に示すように、「パラメータ」ダイアログで、PrimaryRowId
パラメータを表示する複合パラメータを開き、このパラメータのバインディングを#{pageFlowScope.id}
として指定し、「OK」をクリックします。
「作成」をクリックします。
図C-34で示すように、この時点で、null値を渡すパラメータとして、表にすべての使用可能なレコードが表示されます。
表はパラメータ・フォーム・タスク・フロー内にあるため、タスク・フロー・パラメータをデータ・コントロール・パラメータに結付けする必要があります。この操作を実行するには:
「表示」メニューで、「ソース」を選択します。
「ソース」ビューで、ページの下部のinputText
コンポーネントを選択し、ツールバーの「編集」をクリックします。
図C-35で示すように、その値属性を#{pageFlowScope.id}
に変更します。
「OK」をクリックします。
また、タイトルがGO
であるcommandButton
コンポーネントを削除します。
このボタンのかわりに、データ・ソースを問い合せるためにWebサービス・メソッドのいずれかを使用する方法について説明します。
ページの「デザイン」モードに切り替えます。
パラメータ・フォーム・タスク・フローのGO
ボタンを削除しているため、現在はタスク・フローからデータ・ソースを問い合せる方法がありません。したがって、次の手順で、データ・ソースを問い合せるためにWebサービス・メソッドを追加します。
この例のSiebel Webサービスは、MyQueryById
メソッドを提供し、これは単一のパラメータMyQueryById_Input
をサポートします。タスク・フローへのボタンとしてこのメソッドを追加します。すでに前の手順でMyQueryById_Input
パラメータをタスク・フロー・パラメータに結付けしているため、このボタンは自動的にタスク・フロー・パラメータに結付けされます。
MyQueryById
メソッドを使用して問合せを有効にするには:
タスク・フローを編集して、「コンテンツの追加」をクリックします。
カタログで、CustData
データ・コントロールを探して、それを開きます。
ADFボタンとしてMyQueryByIdメソッドを追加します。
これで、図C-36に示すように、表にそのアカウントの詳細を表示するには、パラメータ・フィールドのアカウントIDを指定できるようになります。
データ・ソースへの書込みが許可される場合、Webサービス・データ・コントロールでは、同時に複数のレコードを更新するために、配列パラメータを提供します。この例のSiebel Webサービスは、データ・ソースへの書込みが許可されています。それにより、一度に複数のレコードを移入するために使用可能な複合パラメータである、MyInsertorUpdate_Input
パラメータが提供されます。この項では、表のレコードを更新するために配列パラメータを使用する方法について説明します。ページの下部に追加されるInput Text
フィールドは、表列を更新するために使用されます。
表のレコードを更新するには:
タスク・フローを編集して、「コンテンツの追加」をクリックします。
カタログで、CustData
データ・コントロールを探して、それを開きます。
ADFボタンとしてMyInsertOrUpdateメソッドを追加します。
ページの「ソース」ビューに切り替えて、新しいボタンを選択し、「編集」をクリックして、そのプロパティを表示します。
「データ」タブをクリックし、MyInsertOrUpdate_Input
フィールドのコンテキスト・メニューから、「パラメータ構造」を選択します。
「パラメータ」ダイアログで、MyInsertOrUpdate_Input、ListOfAccountInterface、Accountを開きます。
Account
パラメータは、配列タイプのパラメータであるため、「追加」リンクが表示されます。
各行で、図C-37に示すように、更新する各列のバインド・パラメータ値を定義します。たとえば、最初の行の#{pageFlowScope.id1}
と#{pageFlowScope.alias1}
および2番目の行の#{pageFlowScope.id2}
と#{pageFlowScope.alias2}
。
ヒント: 追加したばかりの列を削除するには、列を空のままにします。空の列は、Webサービス・パラメータ値として値を戻す前に削除されます。 |
デフォルトで、2つの行Account[0]
とAccount[1]
の値を更新できます。さらに行を追加するには、「追加」をクリックします。
「パラメータ」ダイアログ、次に「コンポーネント・プロパティ」ダイアログで、「OK」をクリックします。
タスク・フローを保存して閉じます。
ページの下部で、表内の値を更新するには、更新する表セルごとに1つの入力テキスト・フィールドを追加します。この操作を実行するには:
必要に応じて、ページ・コンポーネントをより最適に編成するために、ボックス・コンポーネントの4つのinputText
コンポーネントをグループ化します。
これで、タスク・フローがデータ・ソースに書き込むために結付けされるようになります。図C-39にタスク・フローの表示方法を示します。最初のフィールドは、MyQueryById
ボタンに結付けされ、残りのフィールは、表に値を提供するために使用されます。MyInsertOrUpdate
ボタンをクリックすると、新しい値がデータ・ソースに書き込まれます。
この項では、リソース・マネージャでカスタム・マッシュアップ・スタイルを作成し、そのスタイルを使用して、タスク・フローを作成する方法について説明します。カスタム・スタイルは、Spacesのアクティビティ・ストリーム・レイアウトに類似したレイアウトで、スペースの上位5つのページ・ヒットをリストするように設計されています。入力テキスト・フィールドにより、ユーザーはそのスペースのページ・ヒットを表示するために、スペース名を指定できます。この項の内容は次のとおりです。
リソース・マネージャの「マッシュアップ・スタイル」ページでは「作成」オプションが提供されないため、新しいマッシュアップ・スタイルを構築するには、デフォルトのマッシュアップ・スタイルをコピーして、そのソース・コードを置き換えます。
カスタム・マッシュアップ・スタイルを構築するには:
空のマッシュアップ・スタイルのコピーを作成して、それをPageHitsStyle
と名付けます。
PageHitsStyle
のソースを編集して、「フラグメント」タブのコードを次のものと置き換えます。
<?xml version='1.0' encoding='UTF-8'?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:pe="http://xmlns.oracle.com/adf/pageeditor" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable" xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"> <af:panelGroupLayout id="pgl1"> <af:panelGroupLayout id="pg2" layout="horizontal" halign="center" inlineStyle="padding-bottom:5px;"> <af:inputText id="ip1" value="#{pageFlowScope.bindVarId}" label="Space Name" shortDesc="Enter A Space Name, by default it's all spaces"/> <af:commandButton text="#{dataComposerBundle.MASHUP_STYLES_GO}" id="cb1"/> </af:panelGroupLayout> <cust:panelCustomizable id="pc1"> <table border="0" width="100%"> <af:iterator id="i1" value="#{dataPresenter.dummyData.collectionModel}" var="row"> <tr class="PortletText1"> <td width="12px"> <af:image id="img1" source="/adf/webcenter/star_sm_ena.png"/> </td> <td> <af:outputText id="otCol1" value="#{empty row.USERNAME ? '#{row.USERNAME}' : row.USERNAME}" inlineStyle="color:#333333; font-size:12px; font-weight:bold;"/> <af:spacer id="spacer1" width="5px"/> <af:outputText id="otCol2" value="viewed" inlineStyle="color:#333333; font-size:12px;"/> <af:spacer id="spacer2" width="5px"/> <af:goLink id="gl1" destination="{doc path pre fix}#{empty row.DOWNLOAD_URL ? '#{row.DOWNLOAD_URL}' : row.DOWNLOAD_URL}" targetFrame="_blank" text="#{empty row.DOCNAME ? '#{row.DOCNAME}' : row.DOCNAME}"/> </td> </tr> <tr> <td/> <td> <af:outputText id="otCol3" value="#{empty row.HITS? '#{row.HITS}' : row.HITS}" inlineStyle="color:#666666; font-size:12px;"/> <af:spacer id="spacer3" width="5px"/> <af:outputText id="otCol4" value="TIMES" inlineStyle="color:#666666; font-size:12px;"/> <af:spacer id="spacer4" width="5px"/> <af:outputText id="otCol5" value="in the last 7 days" inlineStyle="color:#333333; font-size:12px;"/> </td> </tr> <tr> <td/> <td> <af:outputText id="otCol6" value="Last Visit at " inlineStyle="color:#333333; font-size:12px;"/> <af:outputText id="otCol7" value="#{empty row.LASTVIEWED ? '#{row.LASTVIEWED}' : row.LASTVIEWED}" inlineStyle="color:#666666; font-size:12px;"> <af:convertDateTime type="both"/> </af:outputText> </td> </tr> </af:iterator> </table> </cust:panelCustomizable> </af:panelGroupLayout> </jsp:root>
ここで
#{pageFlowScope.bindVarId}
は、入力スペース名を提供する参照です
#{dataPresenter.dummyData.collectionModel}
は、マッシュアップ・スタイルを使用する際に置き換えられるダミーの参照です
#{row.
COLUMN
}
は、マッシュアップ・スタイルが使用される際にデータ・コントロールからデータを参照するプレースホルダです
{
doc path pre fix
}
は、ドキュメントURLに使用される接頭辞です。ドキュメント・パスの接頭辞を検索するには、「ドキュメント」ページでドキュメントを選択し、「表示」メニューからGet a Link
をクリックします。「ダウンロードURL」の最初の部分(path
の最後)は使用される接頭辞です。たとえば、http://my.company.com:8889/webcenter/content/conn/xyz18-ucm11g/path
。
マッシュアップ・スタイルをプレビューする場合は、図C-40のように表示されます。
このマッシュアップ・スタイルを使用して、ページ・ヒットを表示するマッシュアップを構築できます。
この項では、PageHits
マッシュアップ・スタイルを使用して、アクティビティ・ストリーム・レイアウトにページ・ヒットを表示するマッシュアップを作成する方法について説明します。これを示すために、ActivitiesDS
データベース接続を使用して、SQLデータ・コントロールを作成し、PageHits
マッシュアップ・スタイルに基づくタスク・フローでデータ・コントロールを使用する必要があります。ただし、通常の表またはグラフのレイアウトではなく、アクティビティ・ストリーム・レイアウトでデータ・コントロールからのデータを表示するには、次のタスクを実行する必要があります。
SQLデータ・コントロールを作成します。
新しいPageHits
マッシュアップ・スタイルに基づいてタスク・フローを作成します。
表としてデータ・コントロールを追加します。
表のプロパティからデータ・コントロールのアクセッサIDをコピーします。
表を非表示にします。
アクセッサIDを使用して、データ・コントロールにタスク・フローの入力テキスト・フィールドを結び付けます。
カスタム・マッシュアップ・スタイルを使用するには:
ActivitiesDS
接続を使用して、SQLデータ・コントロールTop Five Viewed Documents in a Given Space
を作成します。次のSQL問合せを指定します。
SELECT * FROM (SELECT users.userid username, doc.name_ docname,doc.path_ download_url, count(1) hits,max(fact.occurred) lastviewed FROM asfact_wc_doclib__0 fact , asdim_wc_documen_0 doc , asdim_wc_applica_0 app,asdim_wc_groupsp_0 space , asdim_users users WHERE app.id = fact.application_ AND app.name_ = 'webcenter' AND fact.occurred BETWEEN (SYSDATE-7) AND SYSDATE AND fact.document_ = doc.id AND doc.name_ is not null AND doc.id is not null AND fact.document_ is not null AND doc.resourceid_ is not null AND fact.GROUPSPACE_ = space.id AND upper(space.name_) LIKE upper(:spacename) AND space.name_ IS NOT NULL AND fact.userid=users.id GROUP BY users.userid, doc.name_,doc.path_ ORDER BY hits DESC) WHERE rownum <= 5 ORDER BY rownum
spacename
バインド・パラメータ値をHome space
に設定します。
リソース・マネージャでデータ・コントロールを選択し、「編集」メニューから、「表示」をクリックします。
図C-41に示すように、PageHits
マッシュアップ・スタイルを使用して、タスク・フローTop Five Viewed Documents in a Given Space
を作成します。
図C-42に示すように、タスク・フローを編集し、表としてデータ・コントロールを追加します。
読取り専用の表を作成し、「表の作成」ダイアログの「アイテム」および「列」ページでデフォルトを受け入れます。
「DCパラメータ」ページで、spacename
のパラメータ値として次を指定します。
#{empty pageFlowScope.bindVarId ?'%' : pageFlowScope.bindVarId}
アクセッサIDを取得するには:
タスク・フローの「ソース」ビューに切り替えて、表コンポーネントを選択します。
「編集」をクリックして、表のプロパティを表示します。
「コンポーネント・プロパティ」ダイアログで、Value
属性の値をコピーします。これは、データ・コントロールのアクセッサIDです。値は、次の例のようになります。
#{bindings.accessor_gsraffebf20_b500_480f_bf92_a9d33922a0a7.collectionModel}
表を折り返すshowDetailFrameコンポーネントを選択し、コンテキスト・メニューで「非表示」をクリックします。
「イテレータ」コンポーネントを右クリックして、「編集」をクリックします。
Value
属性の値を表のプロパティからコピーしたアクセッサIDで置き換えます。
これで、アクティビティ・ストリームのようなシード済レイアウトを使用したタスク・フローになりました。
タスク・フローを保存して、コンポーザを終了します。
リソース・マネージャでタスク・フローを選択し、「編集」メニューの「表示」をクリックします。
ページでタスク・フローを使用します。図C-43のように表示されます。
この項では、日付範囲を指定するフィールドを持つカスタム・マッシュアップ・スタイル、および指定された日付範囲のデータの視覚化を表示するコンテンツ領域の作成方法について説明します。図C-44に、このようなマッシュアップ・スタイルを使用して作成されたタスク・フローを示します。この項では、カスタム・スタイルを使用して、タスク・フローを作成する方法についても説明します。この項の内容は次のとおりです。
リソース・マネージャの「マッシュアップ・スタイル」ページでは「作成」オプションが提供されないため、新しいマッシュアップ・スタイルを構築するには、デフォルトのマッシュアップ・スタイルをコピーして、そのソース・コードを置き換えます。
カスタム・マッシュアップ・スタイルを構築するには:
空のマッシュアップ・スタイルのコピーを作成して、それをInput Dates
と名付けます。
Input Dates
のソースを編集して、「フラグメント」タブのコードを次のものと置き換えます。
<?xml version='1.0' encoding='UTF-8'?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:pe="http://xmlns.oracle.com/adf/pageeditor" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable" xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"> <af:panelGroupLayout id="pgl"> <af:panelGroupLayout id="pg2" layout="horizontal" halign="center" inlineStyle="padding-bottom:5px;"> <af:panelFormLayout id="pfl1" partialTriggers="ipl" inlineStyle="padding-bottom:5px;"> <af:inputDate id="ip1" value="#{pageFlowScope.bindVarId1}" label="Start Date" autoSubmit="true"/> <af:inputDate id="ip2" value="#{pageFlowScope.bindVarId2}" label="End Date"/> <af:commandButton text="#{dataComposerBundle.MASHUP_STYLES_GO}" id="cb1"/> </af:panelFormLayout> </af:panelGroupLayout> <cust:panelCustomizable id="pc1" halign="center"/> </af:panelGroupLayout> </jsp:root>
inputDate
コンポーネントは、2つのデータ・フィールドを提供し、panelCustomizable
はコンテンツ領域を提供します。プレビューされる場合、マッシュアップ・スタイルは図C-45のように表示されます。
このマッシュアップ・スタイルを使用してマッシュアップを構築し、コンテンツ領域に、選択した視覚化を移入します。
この項では、Input Dates
マッシュアップ・スタイルを使用して、指定された日付範囲のページ・ヒットのグラフを表示するマッシュアップの作成方法について説明します。これを示すために、ActivitiesDS
データベース接続を使用して、SQLデータ・コントロールを作成し、Input Dates
マッシュアップ・スタイルに基づくタスク・フローでデータ・コントロールを使用する必要があります。
カスタム・マッシュアップ・スタイルを使用するには:
ActivitiesDS
接続を使用して、SQLデータ・コントロールPage Usage Between Two Dates
を作成します。次のSQL問合せを指定します。
SELECT page.name_ pageName, space.name_ spaceName, COUNT(1) hits FROM asdim_users u, asdim_wc_pages_0 page, asdim_wc_applica_0 app, asdim_wc_groupsp_0 space, asfact_wc_pagevie_0 fact WHERE app.name_ = 'webcenter' AND fact.page_ = page.id AND fact.userid = u.id AND fact.application_ = app.id AND fact.groupspace_ = space.id AND fact.occurred BETWEEN to_timestamp_tz(to_char(:startdate), :dateformat) AND to_timestamp_tz(to_char(:enddate), :dateformat) AND space.name_ IS NOT NULL AND page.name_ IS NOT NULL AND space.id IS NOT NULL AND page.id IS NOT NULL AND fact.page_ IS NOT NULL AND page.resourceid_ IS NOT NULL GROUP BY page.name_, space.name_
データ・コントロールはバインド変数startdate
、dateformat
およびenddate
で作成されます。
図C-46に示すように、必要に応じてバインド・パラメータ値を設定します。たとえば、2010年のすべてのページの使用について問い合せるなど。
図C-47に示すように、問合せをテストし、データ・ソースから取得されるデータを表示します。
リソース・マネージャでデータ・コントロールを選択し、「編集」メニューから、「表示」をクリックします。
図C-48に示すように、Input Dates
マッシュアップ・スタイルを使用して、タスク・フローPage Usage Between Two Dates
を作成します。
タスク・フローを編集し、グラフとしてデータ・コントロールを追加します(図C-49)。
「グラフの作成」ダイアログの「タイプ」ページで、「棒」を選択します。
「配置」ページで、X軸に「ページ名」
および「スペース名」
、棒に「ヒット」
を配置します。
「DCパラメータ」ページで、バインド・パラメータの次の値を指定します。
startdate
:
#{empty pageFlowScope.bindVarId1 ? '01' : pageFlowScope.bindVarId1.month+1}/#{empty pageFlowScope.bindVarId1 ? '01' : pageFlowScope.bindVarId1.date}/#{empty pageFlowScope.bindVarId1 ? '2010' : pageFlowScope.bindVarId1.year+1900}
(01/01/2010
は、日付が選択されない場合は、デフォルトの初期開始日値として設定されます)
dateformat
: MM/DD/YYYY
enddate
:
#{empty pageFlowScope.bindVarId2 ? '01' : pageFlowScope.bindVarId2.month+1}/#{empty pageFlowScope.bindVarId2 ? '01' : pageFlowScope.bindVarId2.date}/#{empty pageFlowScope.bindVarId2 ? '2011' : pageFlowScope.bindVarId2.year+1900}
(01/01/2011
は、日付が選択されない場合は、デフォルトの初期終了日値として設定されます)
グラフを作成し、タスク・フローを保存して、コンポーザを終了します。
リソース・マネージャでタスク・フローを選択し、「編集」メニューの「表示」をクリックします。
ページでタスク・フローを使用します。図C-50のように表示されます。
この項では、スペース名をクリックするとグラフにそのスペースのページ・ヒットを表示するような方法で結付けされるナビゲーション・ツリーとマッシュアップを含むサンプル・ページを作成する方法について説明します(図C-51)。
このようなマッシュアップを作成する手順には、次のものがあります。
アプリケーションでWebCenter Portalサービスを構成している場合は、デフォルトで分析サービス接続ActivitiesDS
が使用できます。この接続を使用して、SQLデータ・コントロールを作成できます。この項では、指定されたスペースの過去7日間の上位5つのページ・ヒットを表示するデータ・コントロールの作成方法について説明します。
データ・コントロールを作成するには:
ActivitiesDS
接続を使用して、PageHits
という名前のSQLデータ・コントロールを作成します。
次のSQL問合せを指定します。
SELECT * FROM
(SELECT page.name_ pageName, space.name_ spaceName, COUNT(1) hits
FROM asdim_users u, asdim_wc_pages_0 page, asdim_wc_applica_0 app, asdim_wc_groupsp_0 space, asfact_wc_pagevie_0 fact
WHERE fact.page_ = page.id AND fact.userid = u.id AND fact.application_ = app.id
AND fact.groupspace_ = space.id AND fact.occurred BETWEEN(SYSDATE-6) AND (SYSDATE+1) AND app.name_ = 'webcenter'
AND u.userid <> 'anonymous' AND upper(space.name_) LIKE upper(:spacename) AND space.name_ IS NOT NULL
AND page.name_ IS NOT NULL AND space.id IS NOT NULL AND page.id IS NOT NULL
AND fact.page_ IS NOT NULL AND page.resourceid_ IS NOT NULL
GROUP BY page.name_, space.name_ ORDER BY hits DESC)
WHERE rownum <= 5 ORDER BY rownum
データ・コントロールはspacename
バインド変数で作成されます。
spacename
バインド変数をHome space
に設定します。
図C-52に示すように、問合せをテストし、データ・ソースから取得されたデータを表示します。
リソース・マネージャでデータ・コントロールを選択し、「編集」メニューの「表示」をクリックします。
この項では、使用可能なスペースをリストするナビゲーション・ツリーを作成し、それをJSPXページで使用して、そのページにページ・ヒット・データ・コントロールを追加します。
ナビゲーションおよびページ・ヒット・グラフを持つページを作成するには:
「左を狭く」ページ・スタイルを使用して、Top Five Page Views for Given Space Within Past Week
ページを作成します。
コンポーザで新しいページが開きます。
「ページ・プロパティ」をクリックし、次の値を持つ新しいページ・パラメータspace
を作成します(図C-53):
#{empty navigationContext.currentNavigationModel.currentSelection.parameters.space ?'
Space_Name
' : navigationContext.currentNavigationModel.currentSelection.parameters.space}
Space_Name
をsample1
またはデフォルトで詳細を表示する他のスペースの名前で置き換えます。
「OK」をクリックします。
図C-54に示すように、グラフとしてPageHits
データ・コントロール・アクセッサを追加します。
「グラフの作成」ダイアログの「タイプ」ページで、「棒」を選択します。
「配置」ページで、X軸に「ページ名」
および「スペース名」
、棒に「ヒット」
を配置します。
「DCパラメータ」ページで、データ・コントロール・パラメータspacename
をページ・パラメータspace
と次のように結付けします。
#{empty bindings.space ?'sample1' : bindings.space}
リソース・マネージャで、図C-55に示すように、3つのリンク・ナビゲーション・アイテム(Sample1
、Sample2
およびSample3
)を持つSpaces Navigation
というナビゲーション・モデルを作成します。
Sample1
を選択し、「編集」をクリックします。
「ナビゲーション・アイテムの編集」ダイアログで、図C-56に示すように、Top Five Page Views for Given Space Within Past Week
ページへのパスを指定します。
「パラメータ」タブで、space
パラメータの値をSample1
に指定します。
同様に、前の3つの手順を繰り返して、ナビゲーション・モデルのSample2
およびSample3
リンクを編集します。
これらの手順では、同じタスク・フローをナビゲーションの3つのリンクに結付けしますが、各リンクに別のスペース名を指定しています。
「OK」をクリックして、ナビゲーション・エディタを終了します。
リソース・マネージャでSpaces Navigation
を選択し、「編集」メニューの「表示」をクリックします。
Five Page Views for Given Space Within Past Week
ページを編集し、ページの左列にナビゲーション・ツリー・コンポーネントを追加します。
デフォルト・ナビゲーションがページの左側に表示されます。
図C-57に示すように、デフォルト・ナビゲーションの「編集」アイコンをクリックします。
「パラメータ」タブで、図C-58に示すように、「ナビゲーション」フィールドでSpaces Navigation
を指定し、「OK」をクリックします。
これで、図C-59に示すように、新しいナビゲーション・モデルがページの左側に表示されます。
「保存」→「閉じる」をクリックして、ページ編集モードを終了します。
ページを表示すると、図C-60に示すように、ナビゲーション・ツリーとグラフが表示されます。
図C-61に示すように、そのスペースのページ・ヒット・グラフを表示するナビゲーションの異なるスペースをクリックします。
前の例で、指定されたスペースのページ・ヒットのグラフを作成し、それをナビゲーション・ツリーを含むページに結付けする方法について説明しました。さらに進めて、この項ではページ・テンプレートから継承されるナビゲーション・ツリーにページ・ヒット・グラフを結付けする方法について説明します。
このようなマッシュアップを作成する手順には、次のものがあります。
第C.8.1項「ページ・ヒット・データ・コントロールの作成」の手順を実行します。
この項では、タスク・フローでデータ・コントロールを使用して、継承されたナビゲーション・ツリーを表示するページでタスク・フローを使用する方法について説明します。
データ・コントロールを使用するには:
空のマッシュアップ・スタイルを使用して、タスク・フローTop Five Page Views for Given Space Within Past Week
を作成します。
グラフとしてPageHits
データ・コントロール・アクセッサを追加します。
「グラフの作成」ダイアログの「タイプ」ページで、「棒」を選択します。
「配置」ページで、X軸に「ページ名」
および「スペース名」
、棒に「ヒット」
を配置します。
「DCパラメータ」ページで、データ・コントロール・パラメータspacename
を次のように設定します。
#{empty pageFlowScope.spacename ?'Home space' : pageFlowScope.spacename}
「作成」をクリックします。
図C-62に示すように、「タスク・フロー・プロパティ」をクリックし、pageFlowScope
の文字列パラメータspacename
を作成します。
「保存」→「閉じる」をクリックして、編集モードを終了します。
リソース・マネージャでタスク・フローを選択し、「編集」メニューの「表示」をクリックします。
Sample8b
ページを作成し、そのページ内に新しいタスク・フローを追加します。
これにより、タスク・フローにデフォルトでホーム・スペースのページ・ヒット・グラフが表示されます。
この項では、カスタム・ナビゲーション・コンポーネントとナビゲーション・ツリーを含むページ・テンプレートの作成方法、および新しいページ・テンプレートの適用方法について説明します。
カスタム・ナビゲーション・コンポーネントを作成するには:
リソース・マネージャで、図C-63に示すように、3つのリンク・ナビゲーション・アイテム(Sample1
、Sample2
およびSample3
)を持つSpaces Navigation
というナビゲーション・モデルを作成します。
Sample1
を選択し、「編集」をクリックします。
「ナビゲーション・アイテムの編集」ダイアログで、図C-64に示すように、Top Five Page Views for Given Space Within Past Week
ページへのパスを指定します。
「パラメータ」タブで、space
パラメータの値をSample1
に指定します。
同様に、前の3つの手順を繰り返して、ナビゲーション・モデルのSample2
およびSample3
リンクを編集します。
これらの手順では、同じタスク・フローをナビゲーションの3つのリンクに結付けしますが、各リンクに別のスペース名を指定しています。
「OK」をクリックして、ナビゲーション・エディタを終了します。
リソース・マネージャでSpaces Navigation
を選択し、「編集」メニューの「表示」をクリックします。
カスタム・ページ・テンプレートを作成および適用するには:
デフォルトのサイド・ナビゲーション - フロー・テンプレートに基づいた、カスタム・ページ・テンプレートSample Template
を作成します。
ナビゲーション・ツリー・コンポーネントをテンプレートに追加します。
デフォルト・ナビゲーションがページの左側に表示されます。
図C-65に示すように、デフォルト・ナビゲーションの「編集」アイコンをクリックします。
「パラメータ」タブで、「ナビゲーション」フィールドのSpaces Navigation
を指定し、「OK」をクリックします。
これで、図C-66に示すように、テンプレートの左側に新しいナビゲーション・モデルが表示されます。
「保存」→「閉じる」をクリックして、ページ編集モードを終了します。
リソース・マネージャで新しいテンプレートを選択し、「編集」メニューの「表示」をクリックします。
「スペース管理」ページに移動し、「構成」タブをクリックします。
「デフォルト・ページ・テンプレート」フィールドの「一般」ページで、作成した新しいサンプル・テンプレートを選択し(図C-67)、「適用」をクリックします。
これで、テンプレートのナビゲーション・ツリーがすべてのアプリケーション・ページに表示されます。
この項では、マスター/ディテール関係で結付けされた2つのタスク・フローを表示するマッシュアップを作成し、マスター・タスク・フローでの選択によってディテール・タスク・フローのGoogle Mapアドレスを更新する方法について説明します(図C-70)。
同様なマッシュアップを作成する手順には、次のものがあります。
デモ目的で静的データを取得するためのSQLデータ・コントロールの作成。
静的表としてこのデータ・コントロールを使用するマスター・タスク・フローの作成。
表のユーザー名列へのハイパーリンクの追加。
最新のGoogle Maps API Version 3を統合するためのディテール・タスク・フローの作成。
マスター表のレコードをクリックするとGoogle Mapの場所が変更されるように、マスター・タスク・フローとディテール・タスク・フローを結付ける。
この項では、これらのタスクの実行方法について説明します。この項の内容は次のとおりです。
この例では、select * from dual
文を使用して、アドレス・データを取得するためにデータ・コントロールを作成します。既存のデータ・ソース接続を使用して、データ・コントロールを作成できます。即時に、必要なSQLデータ・ソース接続でこれを置き換える必要があります。データ・コントロールを作成するには:
使用可能なデータベース接続を使用して、SQLデータ・コントロール、アドレスを作成し、次の問合せを指定します。
SELECT 'Steve' Buddy, 'Palo Alto' City, 'CA' State FROM dual UNION SELECT 'Doris' Buddy, 'Belmont' City, 'CA' State FROM dual UNION SELECT 'John' Buddy, 'New York' City, 'NY' State FROM dual UNION SELECT 'Lily' Buddy, 'Boston' City, 'MA' State FROM dual
リソース・マネージャで新しいデータ・コントロールを選択し、「編集」メニューから、「表示」をクリックします。
この項では、Google Mapを表示するディテール・タスク・フローの作成方法について説明します。
ディテール・タスク・フローを作成するには:
空白のマッシュアップ・スタイルに基づいて、タスク・フローBasic Maps
を作成します。
タスク・フローを選択し、「編集」メニューの「ソースの編集」をクリックします。
「フラグメント」タブのコードを次で置き換えます。
<?xml version='1.0' encoding='UTF-8'?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:pe="http://xmlns.oracle.com/adf/pageeditor" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable" xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich" xmlns:trh="http://myfaces.apache.org/trinidad/html"> <af:resource type="javascript" source="http://maps.google.com/maps/api/js?sensor=true"/> <af:resource type="javascript"> var geocoder; var map; function initialize(){ geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(37.529526, -122.263969); var myOptions = { zoom: 3, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map_canvas"),myOptions); } function navigate(event) { initialize(); var city= event.getSource().getProperty('city')+""; var state= event.getSource().getProperty('state')+""; var address; if(city== "undefined"||state== "undefined"||city== "NULL"||state== "NULL"){ address="CA, USA"; } else { map.setZoom(8); address=city+" "+state+" USA"; } geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } else { alert("Geocode was not successful for the following reason: " + status); } }); } </af:resource> <af:panelGroupLayout id="pgl1"> <af:group id="g1"> <div id="map_canvas" style="width: 600px; height: 600px"/> </af:group> <af:inlineFrame source=""> <af:clientListener type="inlineFrameLoad" method="navigate"/> <af:clientAttribute name="city" value="#{empty pageFlowScope.city? '' : pageFlowScope.city}"/> <af:clientAttribute name="state" value="#{empty pageFlowScope.state ? '' : pageFlowScope.state}"/> </af:inlineFrame> </af:panelGroupLayout> </jsp:root>
太字のコード<af:inline>
は、ページがロードされるたびに、navigate
Google Map javascriptメソッドをコールし、マップ上のアドレスを更新するためにnavigate
メソッドに2つのpageFlowScope
パラメータを解析します。
「OK」をクリックしてソース・エディタを終了します。
リソース・マネージャでタスク・フローが選択されていることを確認し、「編集」メニューの「編集」をクリックします。
図C-71に示すように、「タスク・フロー・プロパティ」をクリックして、pageFlowScope
の2つの文字列のタスク・フロー・パラメータcity
およびstate
を作成します。
この項では、表としてaddresses
データ・コントロールおよびBasic Maps
タスク・フローを使用するマスター・タスク・フローの作成方法について説明します。
この項では、ユーザーが表内の名前をクリックして、マップの対応する場所を示すことができるように、マスター・タスク・フローとディテール・タスク・フローを結付けする方法について説明します。マスター・タスク・フローとディテール・タスク・フローの結付けを行うには:
Basic Maps
タスク・フローの「編集」アイコンをクリックします。
「コンポーネント・プロパティ」ダイアログで、2つのタスク・フロー・パラメータcity
およびstate
の値を次のように変更します。
city: #{empty dataComposerViewContext.dataSelection.CITY ?'NULL' : dataComposerViewContext.dataSelection.CITY}
state: #{empty dataComposerViewContext.dataSelection.CITY ?'NULL' : dataComposerViewContext.dataSelection.CITY}
マップのヘッダーを非表示にするには、「表示オプション」タブをクリックして、「ヘッダーの表示」チェック・ボックスの選択を解除します。
「表示オプション」タブの「詳細設定」リンクをクリックして、「コンテンツのストレッチ」をAuto
に設定します。
これにより、必要な場合にのみ、マップにスクロール・バーが表示されることが確認されます。
「OK」をクリックして変更を保存します。
マップに、表に現在選択されている名前に対応する場所が表示されます。
「保存」→「閉じる」をクリックして、編集モードを終了します。
タスク・フローは図C-74に示されるように表示されます。
必要に応じて、表がマップの左側に表示されるように、タスク・フローのレイアウトを変更できます。マスター・タスク・フローのレイアウトを調整するには:
マスター・タスク・フローのソースを編集し、「フラグメント」タブで、次の行を置き換えます。
<af:panelGroupLayout id="pgl1"> <cust:panelCustomizable id="pc1">
置換え先
<af:panelGroupLayout id="pgl1" layout="horizontal" valign="top"> <cust:panelCustomizable id="pc1" layout="vertical" valign="top">
</cust:panelCustomizable>
の終了タグを右側に、最初の</showDetailFrame>
タグの後に、2番目の<showDetailFrame>
タグの前に移動します。
表のデフォルトの選択を無効にするには、<table>
タグのselectedRowKeys
属性を削除します。
必要に応じてマップがストレッチすることを確認するには、columnStretching
属性をlast
に変更します。
マスター/ディテール・タスク・フローをさらにテストするには、ページを作成し、それにAddress on Google Maps
タスク・フローを追加します。
ページのタスク・フローを編集し、「コンテンツのストレッチ」オプションをauto
に設定します。
注意: ページに最近の変更が反映されていることを確認するために、「リフレッシュ」ボタンをクリックするのに対して、直接URLを使用し、再度ページを開く必要がある場合があります。 |
図C-75のようにタスク・フローが表示されます。
表の名前をクリックします。マップにより、その名前に対応する場所がポイントされます。
この項では、ユーザーにOracle Technology NetworkヘッドラインなどのReally Simple Syndication (RSS)ニュース・フィードのニュース情報をリアルタイムにスクロール表示するOmniPortletインスタンスを持つマッシュアップを作成する方法について説明します。また、Spacesインスタンス全体でポートレットを共有する方法についても説明します。
プロデューサの登録
タスク・フローでOmniPortletを使用するには、まず、ポートレットのプロデューサをアプリケーションに登録する必要があります。手順の詳細は、第6.5項「ポートレット・プロデューサの登録」を参照してください。
この項の内容は次のとおりです。
Omniportletインスタンスを使用してマッシュアップを作成するには:
空白のマッシュアップ・スタイルに基づいて新しいタスク・フローを作成します。
図C-76に示すリソース・カタログからタスク・フローにOmniportletを追加します。
図C-77に示すポートレット・ヘッダーの右上の「カスタマイズ」アイコンをクリックします。
図C-78に示すOmniPortletウィザードの「タイプ」ページで、データ・ソース・タイプとして「XML」を選択し、「次」をクリックします。
図C-79に示すように、「ソース」ページで、「XML URL」および「XSL Filter URL」を次のように指定します。
XML URL: http://www.oracle.com/technology/syndication/rss_otn_news.xml
XSL Filter URL: http://www.oracle.com/technetwork/middleware/webcenter/portal/documentation/omniportletnews-1835159.xsl
図C-80に示すように「ポートレット・パラメータ」セクションで、新しいパラメータDisplay Num
を定義して、「次」をクリックします。
図C-81に示す「フィルタ」ページで、フィルタ制限を##Param1##
に設定し、「次」をクリックします。
図C-82に示すように「表示」ページの「レイアウト・スタイル」セクションで、「ニュース」を選択します。
図C-82 OmniPortletウィザードの「表示」ページの「レイアウト・スタイル」セクション
図C-83に示すように、「レイアウト」ページの「列のレイアウト」セクションで、タイトルと説明を指定する2つのフィールドを使用します。
「終了」をクリックしてウィザードを終了します。
「保存」および「閉じる」をクリックして、コンポーザを終了します。
リソース・マネージャで新しいタスク・フローを選択し、「編集」メニューから、「表示」をクリックします。
タスク・フローのポートレットが正しくレンダリングされることを確認するには:
インスタンスからエクスポートし、そのインスタンスにインポートすることによって、ポートレットを含むタスク・フローを別のSpacesインスタンスと共有できます。ただし、インポートされたタスク・フローは、OmniPortletのプロデューサが他のインスタンスで同じ名前で登録されている場合にのみそのポートレットをレンダリングします。
タスク・フローを別のSpacesインスタンスと共有するには:
ターゲット・インスタンス上で、インスタンスのプロデューサ登録に使用された名前と同じ名前でOmniPortletプロデューサを登録します。
手順の詳細は、第6.5項「ポートレット・プロデューサの登録」を参照してください。
ソース・インスタンスのリソース・マネージャからタスク・フローをエクスポートします。
手順の詳細は、第11.5.2項「リソースのダウンロード」を参照してください。
ターゲット・インスタンスのリソース・マネージャのタスク・フローをインポートします。手順の詳細は、第11.5.3項「リソースのアップロード」を参照してください。
これで、ポートレットはソース・インスタンスで行われるすべてのカスタマイズで使用できます。