| 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項「リソースのアップロード」を参照してください。
これで、ポートレットはソース・インスタンスで行われるすべてのカスタマイズで使用できます。