ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド
11g リリース1 (11.1.1.7.0)
B72084-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

7 WebCenter Portal Services用アプリケーションの準備

この章では、Oracle WebCenter Portalのサービスを利用するようにアプリケーションを準備する方法について説明します。

この章には次の項が含まれます:

7.1 WebCenter Portalサービスのテクノロジの理解

Oracle WebCenter Portalサービスは、ソーシャル・コンピューティング・サービス、個人の生産性サービス、オンラインでの認識およびコミュニケーション、コンテンツ統合、Web分析などのエンタープライズ2.0機能で、既存のポータルおよびWebサイトを充実したものにします。


関連項目:


この項では、サービスで使用できる主要なテクノロジについて概説します。これは、実装するサービスの決定や、ユーザー・インタフェースのカスタマイズに最適な方法を決定する際に役立ちます。

この項には次のサブセクションが含まれます:

7.1.1 WebCenter Portalの同格サービスの理解

WebCenter Portalのサービスには、同格のサービスとみなされるものがあります。これらのサービスは、1つのアプリケーション全体で他のサービスと相互作用します。

表7-1は、Oracle WebCenter Portal: Frameworkのサービス統合のリストです。

表7-1 WebCenter Portalのサービス統合

WebCenter Portalサービス RSS 検索 タグ リンク コメントとお気に入り登録 アクティビティ・ストリーム アクティビティ・グラフ 通知 分析

アクティビティ・グラフ






X

n/a


X

お知らせ

X

X


X


X


X


ブログ


X

X

X

X

X

X

X

X

ディスカッション

X

X

X

X

X(トピックへの返信)

X

X(返信)

X


ドキュメント(Wikiを含む)


X

X

X

X

X

X

X

X

イベント


X(一部)


X


X


X


インスタント・メッセージおよびプレゼンス(IMP)








X


リスト

X

X

X

X


X


X


メール








X


ノート


X


X






ピープル・コネクション


X(一部)

X(一部)


X(アクティビティ・ストリーム、メッセージ・ボード)

X(メッセージ・ボード、プロファイル、フィードバック)

X(メッセージ・ボード)

X

X

投票










最近のアクティビティ

X









検索


n/a

X



X(一部)



X

タグ


X

n/a



X






注意:

スペースのイベントとお気に入りは、WebCenter Portal: Spacesアプリケーションでのみ使用できます。

この表に示した検索サービスは、WebCenter Portal検索アダプタを使用して、利用可能な各サービスを検索します。ただし、大規模な実装で最高のパフォーマンスを得るには、Oracle SES検索を使用するように構成する必要があります。Oracle SESは、次のリソースについてアプリケーションを検索します。

  • ドキュメント(Wikiやブログを含む)

  • お知らせおよびディスカッション

  • WebCenter Portal: Spacesアプリケーションのみ: Spaces内のスペース、リスト、ページおよびピープルのリソース

詳細は、第44章「検索サービスの統合」を参照してください。


7.1.2WebCenter PortalのAPIの理解

この項では、WebCenter Portalサービスで使用できるAPIについて説明します。

複数のカスタマイズ・オプションが選択できる場合は、次の考慮事項に注意してください。

  • WebCenter Portal: Spacesにアクセスするカスタム・クライアント(Spacesと相互作用するiPhoneアプリケーションなど)を作成する場合は、REST APIを使用してください。

  • REST APIでは、ユーザー・インタフェースのカスタマイズや、カスタム・コンポーネントの開発を最も短時間で簡単に行うことができます。Spacesにアクセスするカスタム・ユーザー・インタフェースを作成する場合は、データ・コントロールまたはネイティブのAPIを使用することを検討してください。

  • カスタム・ポータルまたは複合Frameworkアプリケーションを作成する場合は、データ・コントロールまたはネイティブのAPIを使用してください。

  • Java、JDeveloper、およびADFについて習熟している場合は、データ・コントロールまたはネイティブのAPIを使用してください。その他の言語(特にJavaScript)を使用する場合は、REST APIを使用してください。

表7-2は、サービスと利用可能なAPIのリストです。サード・パーティのバックエンドを使用するサービス用に、利用可能なバックエンドのAPIも含まれています。

表7-2 サービスのサポート対象テクノロジ

WebCenter Portalサービス データ・コントロール Java API REST API バックエンドAPI

アクティビティ・グラフ

第45.3.1項「推奨データ・コントロールの使用方法」


Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス


第45.3.2項「アクティビティ・グラフ・サービスREST APIの使用」



分析

第46.3.1項「SQLデータ・コントロールの使用」


Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス




お知らせ




Oracle WebCenter Portalのディスカッション・サーバーを使用するWebサービス(WebCenter Portalはカスタム認証で設定されるため、構成が必要です)

Oracle Fusion Middlewareドキュメント・ライブラリのJiveフォーラムのドキュメントを参照してください(WebCenter Portal製品の部分にあります)。

コメントとお気に入り登録


Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス


第41.1項「アクティビティ・ストリームREST API」



ディスカッション



第33.3.8項「ディスカッション・サービスREST APIの使用」


Oracle WebCenter Portalのディスカッション・サーバーを使用するWebサービス(WebCenter Portalはカスタム認証で設定されるため、構成が必要です)

Oracle Fusion Middlewareドキュメント・ライブラリのJiveフォーラムのドキュメントを参照してください(WebCenter Portal製品の部分にあります)。

ドキュメント(Wikiとブログを含む)

第27章「コンテンツ・データ・コントロールの使用」


Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス


Oracle Fusion Middleware Content Management REST Service開発者ガイド


Oracle Fusion Middleware Remote Intradoc Client (RIDC) Java APIリファレンスを参照してください。

Oracle Fusion Middleware Oracle Universal Content Managementサービス・リファレンス・ガイド

イベント



第51.3項「イベント・サービスREST APIの使用」


Microsoft ExchangeによるWebサービス

一般設定


Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス




リンク



第42.3.1項「リンク・サービスREST APIの使用」



リスト



第47.4項「リスト・サービスREST APIの使用」



通知

第48.3.2項「通知データ・コントロールの使用」


Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス




ページレット・プロデューサ



第65.2.2.2項「RESTを使用したページレットへのアクセス」



ピープル・コネクション

第40.1項「ピープル・コネクション・データ・コントロールの使用方法」


Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス


第41章「ピープル・コネクション・サービスREST API」(プロファイルおよびアクティブ・ストリームについて)


パーソナライズ


Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス(カスタムのプロバイダおよびロケータの開発について)

第66.4項「パーソナライズの拡張」


投票

第36.3.4項「投票サービス・データ・コントロールの使用方法」





リソース・アクション・ハンドラ・フレームワーク


Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス




検索

第44.3.8項「検索サービス・データ・コントロールの使用」

注意: 検索データ・コントロールは、Oracle SES検索でのみサポートされます。

Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス


第44.3.7項「検索サービスREST APIの使用」

注意: 検索REST APIは、Oracle SES検索でのみサポートされます。

Oracle Secure Enterprise SearchによるWebサービスおよびJava API

タグ


Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス


第43.3.2項「タグ・サービスREST APIの使用」





関連項目:

式言語APIについては、Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンスを参照してください


7.1.3 WebCenter Portalのデータ・コントロールの使用

一部のサービスでは、カスタマイズされたユーザー・インタフェースをFrameworkアプリケーションまたはタスク・フローで構築するためのデータ・コントロールが用意されています。このタスク・フローをADFライブラリにデプロイすると、タスク・フローのポータブル消費が可能になります。たとえば、Spacesアプリケーションのリソース・カタログ(コンポーザ)にタスク・フローを追加してサイト・テンプレートを構築できます。

事前にサービスを統合する必要なしに、サービスのデータ・コントロールをユーザー・インタフェースの編集に使用できます。アプリケーションは、それぞれのサービスに含まれるいずれかのデータ・コントロールまたはタスク・フローが使用されたときに、そのサービスに応じて構成されます。


注意:

Oracle ADFアーキテクチャには、ユーザー・インタフェースでデータの構造を認識できるデータ・コントロールが用意されています。メタデータにより、データのコレクション、プロパティ、メソッドおよびタイプが表されます。属性、コレクションおよびメソッドをドラッグしてページにドロップすると、JDeveloperは自動的にページから関連サービスへのバインディングを作成します。

データ・コントロールの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。


組込みデータ・コントロールを使用するには:

  1. JDeveloperで、サービスに必要な接続を使用してWebCenter Portal Frameworkアプリケーションを作成します。

  2. 「リソース・パレット」で「カタログ」、「WebCenter Portal - サービス・カタログ」、「データ・コントロール」の順に開きます。

  3. データ・コントロールを右クリックして、「プロジェクトに追加」を選択します。

    図7-1 「リソース・パレット」のデータ・コントロール

    図7-1の説明が続きます
    「図7-1 「リソース・パレット」のデータ・コントロール」

  4. データ・コントロールからメソッドとプロパティをドラッグして、ADF JSFページにドロップします。


注意:

データ・コントロールをアプリケーションに追加する方法は、他にも2つあります。

  • 「リソース・パレット」から、IDE接続を選択して、データ・コントロールにナビゲートします。データ・コントロールを右クリックして、「プロジェクトに追加」を選択します。

  • 「プロジェクト・プロパティ」から、「ライブラリとクラスパス」を選択して、「ライブラリの追加」ボタンをクリックします。この方法を採用する場合は、どのJDeveloperライブラリに必要なデータ・コントロールが格納されているかを理解している必要があります。


7.2 サービスを利用するためのFrameworkアプリケーションの準備

この項では、WebCenter PortalのWebサービスを使用するようにアプリケーションを準備する場合に、実行する必要のある手順について説明します。次のサブセクションが含まれます:

7.2.1 サービスを利用するようにアプリケーションを準備する方法

どのアプリケーションでも、サービスを組み込むように構成できます。JDeveloperでアプリケーションを作成するときには、アプリケーションのベースにするテンプレートを選択できます。必須ではありませんが、WebCenter PortalのFrameworkアプリケーション・テンプレートを使用すると、該当するすべての接続ウィザードとタグ・ライブラリが、「新規ギャラリ」と「コンポーネント・パレット」にすぐに表示され、使用できるようになります。サービス・タスク・フローまたはコンポーネントを利用すると、必要なライブラリが自動的にプロジェクトに追加されます。

アプリケーションは、利用するサービスに応じた特定の前提条件を満たす必要があります。たとえば、サービスでユーザーのアイデンティティを認識する必要がある場合、アプリケーションでユーザー認証に一定レベルのセキュリティを提供する必要があります。

この項には次のサブセクションが含まれます:

7.2.1.1 サービスのセキュリティの実装

一部のサービスでは、ユーザーのアイデンティティを認識する必要があります(たとえば、検索サービスでは、検索の保存のためにユーザーのアイデンティティが必要になります)。これらのサービスでは、少なくともユーザーを認証するようにアプリケーションを構成して、ユーザーのカスタマイズとプリファレンス用に、ユーザーが個別のアイデンティティを持つようにする必要があります。

WebCenter PortalのFrameworkアプリケーション・テンプレートを使用してアプリケーションを作成すると、デフォルトでADFセキュリティが構成されます。


関連項目:


ADFセキュリティをアプリケーション用に構成すると、jazn-data.xmlファイルを開いて、サンプル・ユーザーの権限を各タスク・フロー用に変更できます。ADFセキュリティ・ポリシー・エディタを開くには、「アプリケーション・リソース」パネルでファイルを見つけてその名前をダブルクリックするか、「アプリケーション」→「セキュア」→「リソース権限」を選択します(図7-2)。「リソース・タイプ」ドロップダウンは、表に示される権限のセットを制御します。リストから特定の権限タイプを選択することで、そのタイプの権限のみが表示されます。

図7-2 jazn-data.xmlファイル内のADFセキュリティ・ポリシー

図7-2の説明が続きます
「図7-2 jazn-data.xmlファイル内のADFセキュリティ・ポリシー」の説明

7.2.1.2 サービスのSSLで保護された接続の設定

JDeveloperでサービスの接続を設定しているときに、その接続をSSLで保護されたエンドポイントにする(信頼できる認証局の有効な証明書を使用する)場合は、それに応じて環境を準備する必要があります。


注意:

このプリファレンス設定の変更は、デフォルト・サーバーとして統合WLSを使用して作成した接続にのみ必要になります。管理対象サーバーにデプロイする場合、この設定の変更は必要ありません。


SSLで保護されたサービス接続用にプリファレンスを設定するには:

  1. JDeveloperのツールバーから、「ツール」→「プリファレンス」を選択します。

    「プリファレンス」ダイアログが表示されます(図7-3)。

    図7-3 「プリファレンス」ダイアログ

    図7-3の説明が続きます
    「図7-3 「プリファレンス」ダイアログ」の説明

  2. 「プリファレンス」ダイアログで、「資格証明」をクリックします(図7-4)。

    図7-4 「資格証明」ペイン

    図7-4の説明が続きます
    「図7-4 「資格証明」ペイン」の説明

  3. 「クライアントの信頼する証明書キーストア」の値を、次のように変更します。

    <JAVA_HOME>/jre/lib/security/cacerts
    

    この<JAVA_HOME>は、Javaホーム・ディレクトリの場所です。

  4. 「OK」をクリックします。

7.2.2 データベース接続の設定

多くのサービスは、関連情報が格納されているデータベース・スキーマへの接続が必要になります。たとえば、リンク・サービスの場合は、リレーションシップのマッピング情報(どのオブジェクトが、どのオブジェクトにリンクされているかなど)がデータベースに格納されています。

表7-3は、データベース接続が必要になるサービスのリストです。

表7-3 関連するデータ・ソース

サービス データ・ソース

アクティビティ・グラフ

アクティビティ

アクティビティ・ストリーム

WebCenter Portal

分析

アクティビティ

ブログ

WebCenter Portal

コメント

WebCenter Portal

コメントおよびアクティビティ・ストリームを組み込むドキュメント(Wikiとブログを含む)

WebCenter Portal

リンク

WebCenter Portal

リスト

WebCenter Portal

Oracle Portalアダプタ

PORTAL (Oracle Portalスキーマの名前)

ピープル・コネクション

WebCenter Portal

投票

WebCenter Portal

タグ

WebCenter Portal



関連項目:

  • スキーマのインストールについては、第3.5項「データベース・スキーマのインストール」を参照してください

  • 本番環境にアプリケーションをデプロイするときのデータ・ソースに関する考慮事項については、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のWebLogic管理対象サーバーへのアプリケーションのデプロイに関する項を参照してください


データベース接続を作成するには:

  1. アプリケーション・ナビゲータで、「アプリケーション・リソース」パネルを開きます。

  2. 「接続」を右クリックし、「データベース」をクリックします。

  3. データベース接続に関する次の情報を入力します。

    • 接続名: webcenter/CustomPortalまたはactivities/CustomPortal


      注意:

      Framework管理対象サーバーへのデプロイメントが簡単になるように、次の名前の使用をお薦めします。

      • アプリケーションに、WebCenter Portalスキーマを使用するタスク・フローが含まれる場合は、データベース接続の名前をwebcenter/CustomPortalにします。

      • アプリケーションに、アクティビティ・スキーマを使用するタスク・フローが含まれる場合は、データベース接続の名前をactivities/CustomPortalにします。


    • 接続タイプ: Oracle (JDBC)

    • ユーザー名: username

    • パスワード: password

    • ホスト: WebCenter Portalスキーマをインストールするホスト(例: localhost)

    • JDBCポート: ポート(例: 1521)

    • SID: 同じJDBCを使用するデータベースのシステム識別子(例: ORCL)


    注意:

    「パスワードの保存」チェック・ボックスが選択されていないときに、JDeveloperから管理対象サーバーまたは統合WebLogic Serverにデプロイする場合は、デプロイメント後に手動でデータ・ソースを作成する必要があります。

    Oracle WebLogic ServerのJDBCデータ・ソースを作成する方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。


    図7-5 データベース接続

    図7-5の説明が続きます
    「図7-5 データベース接続」の説明

  4. 「OK」をクリックします。

  5. 「データソースへの関連付け」ダイアログで、適切なスキーマを選択します。

    • 接続の名前をwebcenter/CustomPortalにしている場合は、この接続をWebCenter Portalスキーマに関連付けるように選択します。

    • 接続の名前をactivities/CustomPortalにしている場合は、この接続をアクティビティ・スキーマに関連付けるように選択します。

    「OK」をクリックします(図7-6)。

    図7-6 接続ウィザードからのデータ・ソースへの関連付け

    図7-6の説明が続きます
    「図7-6 接続ウィザードからのデータ・ソースへの関連付け」の説明

データ・ソースの関連付けは、ワークスペース内の各プロジェクトに個別に適用されます。ワークスペース内に複数のWebCenter Portalプロジェクトが存在する場合、ダイアログにドロップダウン・リストが表示され、ユーザーは構成するプロジェクトを選択できます。


注意:

Oracle JDeveloperで設計時にバックエンド・サーバーへの接続を設定できますが、デプロイ後の環境でEnterprise Manager Fusion Middleware Controlを使用して、後から接続を追加、削除または変更できます。

詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』を参照してください。


7.2.2.1 既存のデータベース接続の関連付け

既存のデータベース接続は、その接続を右クリックして、「データソースへの関連付け」を選択することでデータソースに関連付けられます(図7-7)。

図7-7 既存の接続へのデータ・ソースの関連付け

図7-7の説明が続きます
「図7-7 既存の接続へのデータ・ソースの関連付け」の説明

7.2.3 外部アプリケーション接続の設定

独自の認証を処理するアプリケーションとサービスが相互作用するときには、そのアプリケーションと外部アプリケーション定義を関連付けて、資格証明プロビジョニングに備えることができます。

次のサービスは、サービスへの接続と認証の定義に外部アプリケーションを使用できます。

  • ドキュメント

  • イベント

  • インスタント・メッセージおよびプレゼンス

  • メール

  • RSSビューア(セキュリティ保護されたRSSフィードを使用する場合)


関連項目:


7.3 カスタム・コンポーネントによるFrameworkアプリケーションの拡張

この項では、リソース・アクション処理フレームワークの概要と、リソース・ビューアの登録方法について説明します。次のサブセクションが含まれます:

7.3.1 リソース・アクション処理フレームワークの概要

カスタム・コンポーネントは、即時利用可能なサービスと同様にリソースを管理して所有します。そのため、これらのコンポーネントはそのリソースが他のサービス(検索、タグ、リンク、最近のアクティビティなどのサービス)を起動するサービスにアクセスできるようにするための宣言が必要になります。WebCenter Portalは、表示、検索、およびタグ付けの対象になるリソースを公開するカスタム・コンポーネントとサービスのために、リソース・アクション処理フレームワークを提供しています。

たとえば、リソース・アクション処理フレームワークを使用すると、検索サービスが、指定のサービスのリソースをレンダリングするメカニズムを検索し、これに従うようになります。リソース・アクション処理フレームワークのもう1つの機能は、リソースの認証の宣言とアクセス時の認証の実施を可能にすることです。

次のリソースは、リソース・アクション処理フレームワークを使用して、リソース・ビューアを起動します。

  • 検索

  • タグ

  • リンク

  • Wikiとブログ

  • 最近のアクティビティ

  • ピープル・コネクション

    • アクティビティ・ストリーム(それ自体の起動)

    • 接続(それ自体の起動)

    • フィードバック(それ自体の起動)

    • プロファイル(タグ、タグ付けしたアイテム、およびそれ自体の起動)

    • メッセージ・ボード(それ自体の起動)

  • WebCenter Portalを指す外部リンク(メール、通知、ドキュメント、RSSフィード、REST XMLなどから)

次のリソースは、リソース・アクション処理フレームワークで起動可能なタスク・フローを所有します。

  • お知らせ

  • ディスカッション

  • ドキュメント(Wikiやブログを含む)

  • イベント

  • リスト

  • メール

  • ノート

  • ページ

  • ピープル・コネクション

    • アクティビティ・ストリーム - メイン・ビュー

    • コネクション

    • フィードバック

    • プロファイル

    • プロファイル・ギャラリ

    • メッセージ・ボード

  • Spaces (/webcenter/spaces/Space1NameにマップするURLリライタ)

  • タグ - タグ・センター


関連項目:

リソース・アクション処理およびリライタ・インタフェースについては、Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンスを参照してください。


7.3.2 リソース・ビューアの登録

検索やタグを使用してカスタム・リソースをレンダリングできるようにする場合や、そのリソースを相互にリンクできるようにする場合には、リソース・ビューアを登録する必要があります。

service-definition.xmlファイルで、リソース・ビューアを定義すると、任意のサービスでそのサービスのリソースをレンダリングできるようになります。このビューアは、リソースIDに作用するタスク・フローまたはURLリライタになります。

たとえば、検索サービスを通じてディスカッション・フォーラムのメッセージが見つかったとします。結果のリンクをクリックすると、ディスカッション・サービスに宣言されたリソース・ビューアが(ディスカッション・サービスのservice-definition.xmlを検索することで)起動されます。デフォルトでは、ターゲットはダイアログ内でレンダリングされます。

リソース・ミニ・ビューを宣言すると、このサービスに表示されるインライン・ポップアップに使用されるリソース・ビューアを指定できます。ミニ・ビューが指定されていない場合は、インライン・ポップアップにリソース・ビューが使用されます。


注意:

サンプルのservice-definition.xmlは、Frameworkアプリケーションに含まれています。このファイルを使用すると、開発者は独自のリソース・ビューアと、リンク・サービスおよび検索サービスと対話する独自のインタフェースの実装(QueryManagerインタフェースの実装など)を宣言できます。


カスタム・リソース・ビューアを登録するには:

  1. アプリケーション・ナビゲータで、プロジェクトの「ページ・フロー」ノードを右クリックして、ポップアップ・メニューから「新規」を選択します。

  2. 「カテゴリ」で、「JSF」「ADFタスク・フロー」を選択して、「OK」をクリックします。

  3. 「タスク・フローの作成」ダイアログで、「ファイル名」order-viewer.xmlなどに変更します。タスク・フローIDが自動的にorder-viewerに更新されます(図7-8)。

    図7-8 リソース・ビューアの「タスク・フローの作成」ダイアログ

    図7-8の説明が続きます
    「図7-8 リソース・ビューアの「タスク・フローの作成」ダイアログ」の説明

  4. 「OK」をクリックします。

    order-viewer.xmlファイルが..\public_html\WEB-INF内に作成されていることを確認します。

  5. コンポーネント・パレットで「ADFタスク・フロー」が選択されていることを確認し、「表示」をタスク・フローにドラッグしてページ・フラグメントを作成します。

  6. ページ・フラグメントの名前をorder-viewerに変更し、キャンバスの空いている領域をクリックして変更を受け入れます。

  7. ページ・フラグメントにJSFFファイルを定義します。

  8. ページ・フラグメントをダブルクリックします。

  9. 「新規JSFページ・フラグメントの作成」ダイアログで、「OK」をクリックします。

  10. エディタの「ソース」ビューに移り、jsp:root要素内にaf:outputTextタグを貼り付けます。

    例7-1では、非常にシンプルなリソース・ビューアが提供されます。より複雑なビューアを作成することもできます。

    例7-1 シンプルなリソース・ビューア

    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <af:outputText value="Rendering #{pageFlowScope.resourceId}"
                     inlineStyle="font-size:5"/>
    </jsp:root>
    
  11. タスク・フローにresourceId入力パラメータを追加して、その値を#{pageFlowScope.resourceId}に設定します。

  12. タスク・フローの定義後、service-definition.xmlファイル内に、このタスク・フローを登録する必要があります。アプリケーション・ナビゲータで「アプリケーション・リソース」「ディスクリプタ」「ADF META-INF」と開きます。

  13. 「service-definition.xml」をダブルクリックし、エディタで開きます。

  14. このファイルで、コメント・アウトされたサービス定義を見つけます。この周りの<!-- and -->タグを削除し、コメント解除します。

  15. id属性をサービス識別子に設定します。

    たとえば、「タグ付け」ボタンを定義するときには、サービス識別子にmycompany.myproduct.myapp.mycomponentを使用します。

  16. <resource-view>要素内のtaskFlowId/WEB-INF/order-viewer.xml#resource-viewerに設定します。

    この識別子は、タスク・フローのパスとファイル名を「タスク・フローの作成」ダイアログで宣言したタスク・フローIDと連結したものです。その他のタグは、省略してもかまいません。

  17. <resource-view>宣言には、リソース認可プロバイダのクラス指定があります。これにより、リソース・ビューを指定して、どのタグ付きオブジェクトをユーザーに表示(および、検索可能に)するかを決定するための様々な方法が提供されます。

    例7-2 resource-view宣言内のタスク・フローIDの指定

    <resource-view taskFlowId="/somepath/somefile.xml#someId"
                   authorizerClass="some.service.id.Authorizer1"/>
    

    検索サービス、タグ・サービスおよびディスカッション・サービスは、このタイプの宣言を使用します。表示ID (JSPXページ)を保持するのではなく、サービスはリソースをレンダリングするタスク・フローを提供します。

    • 属性taskFlowIdは、レンダラがタスク・フローであることを意味します。

    • タスク・フローは、リソースIDで指定されたリソースのレンダリングに使用されます。

    • このタスク・フローは、resourceId入力パラメータを受け入れて、リソースのレンダリングに使用します。

    例7-3 URLリライタ・クラス名の指定(1)

    <resource-view urlRewriterClass="oracle.webcenter.framework.resource.IdentityResourceUrlRewriter"
                   authorizerClass="some.service.id.Authorizer5"/>
    

    または

    例7-4 URLリライタ・クラス名の指定(2)

    <resource-view urlRewriterClass="oracle.webcenter.framework.resource.MessageFormatResourceUrlRewriter"
                   authorizerClass="some.service.id.Authorizer4">
      <parameters>
        <!-- This starts from the context root which would be /webcenter -->
        <parameter name="message" value="/content/conn/UCM/path/{0}"/>
      </parameters>
    </resource-view>
    

    または

    例7-5 URLリライタ・クラス名の指定(3)

    <resource-view urlRewriterClass="oracle.webcenter.framework.resource.MyResourceUrlRewriter"
                   authorizerClass="some.service.id.Authorizer6">
      <parameters>
        <parameter name="myParam" value="myValue"/>
      </parameters>
    </resource-view>
    

    一部のサービスは、URLリライタを使用してリソースIDをURLとして扱い、適切な形式にURLを書き換えます。URLリライタは、リソースIDをgoLinkで起動できるURLに変換します。次の2つのResourceUrlRewritersが提供されます。

    • oracle.webcenter.framework.resource.IdentityResourceUrlRewriterは、Oracle SESを使用する検索用です。これは、resourceId値をURLとしてそのまま受け入れます。

    • oracle.webcenter.framework.resource.MessageFormatResourceUrlRewriterは、ドキュメント用です。これは、(service-definition内の) messageパラメータを受け入れます。messageパラメータには、resourceIdの値に置き換えられる{0}が含まれています。

    urlExternalパラメータは、すべてのURLリライタに適用されます。このパラメータの値により、リソース・アクション・ハンドラのリンクを利用するJSPXで新しいウィンドウを開くかどうかが決まります。

    ページやWikiなどのリソースは、リソース・ビューアを持つことができませんが、それらのリソースIDはページ表示IDとしてダビングできます(例7-6)。

    例7-6 リソース・ビューアなし(ページ表示IDとしてのリソースID)

    <resource-view authorizerClass="some.service.id.Authorizer3"/>
    
  18. サービスは例7-7に示すようなものになります。

    例7-7 リソース・ビューのサンプル・サービス定義

    <service-definitions>
      <service-definition id="mycompany.myproduct.myapp.mycomponent"
                          version="11.1.1.0.0">
      <resource-view taskFlowId="/somepath/somefile.xml#someId"
                     authorizerClass="mycompany.myproduct.myapp.mycomponent.ResourceAuthorizer"/>
      <resource-type>Custom Object</resource-type>
      <object-types>
        <object-type name="customcomponent123"
                     displayName="Display Name"
                     description="Description"/>
      </object-types>
      <resource-bundle-class>mycompany.myproduct.myapp.mycomponent.resource.ComponentMessageBundle
    </resource-bundle-class>
      <name>My Custom Component</name>
      <description>My Custom Component's Description</description>
      <icon>/mycompany/myproduct/myapp/mycomponent/component.png</icon>
      </service-definition>
     ...
    </service-definitions>
    
  19. service-definition.xmlファイルを保存します。

7.3.3 リソース認可プロバイダ・クラスの作成

リソース認可プロバイダ・インタフェースは、Javaのインタフェースとクラスを使用して、サービスのリソースに関する有用な情報を返します。たとえば、oracle.webcenter.framework.resource.ResourceAuthorizerインタフェースには、一意のリソースIDについてのステータス(使用可能または使用不可)を返すメソッドが含まれています(例7-8)。

例7-8 一意のリソースIDに対するステータスを返すメソッド

/*
 * Check if the passed in resourceIds are viewable by the current user.
 *
 * @param resourceId - the resourceId to check
 * @return - a <code>ResourceInfo</code> with a ResourceStatus
 * of RESOURCE_IS_AVAILABLE if the passed in resourceId
 * is viewable by current user, otherwise returns
 * <code>RESOURCE_IS_NOT_AVAILABLE</code>.
 */
ResourceInfo getResourceInfo(String resourceId, Scope scope);
 
/*
 * Check if the passed in resourceIds are viewable by the current user.
 *
 * @param resourceIds - the resourceIds to check
 * @return - a List of <code>ResourceInfo</code> with a ResourceStatus
 * of RESOURCE_IS_AVAILABLE if the passed in resourceId
 * is viewable by current user, otherwise returns
 * <code>RESOURCE_IS_NOT_AVAILABLE</code>.
 */
List<ResourceInfo> getResourceInfo(List<String> resourceIds, Scope scope);

oracle.webcenter.framework.resource.ResourceInfoインタフェースは、次のメソッドを公開しています。

public ResourceStatus getResourceStatus();

oracle.webcenter.framework.resource.ResourceInfo列挙型には、次の有効な値が含まれています。

例7-9 有効なResourceStatus値

/**
 * Used to describe a related object's status.
 *
 * Certain operations may be performed by relationship service depending
 * on what object status it receives from the service.  For example,
 * if it receives {@link #RESOURCE_DOES_NOT_EXIST} it may remove all
 * relationships associated with this object from the relationship schema
 * so future calls are not wasted on this object.
 */
 public enum ResourceStatus
 {
   /**
    * Used to describe a resource that is available.
    */
   RESOURCE_IS_AVAILABLE,
 
   /**
    * Used to describe a resource that does not exist.
    */
   RESOURCE_DOES_NOT_EXIST,
 
   /**
    * Used when the user does not have view access on the resource.
    */
   USER_DOES_NOT_HAVE_ACCESS;
 }

oracle.webcenter.framework.resource.ResourceUrlRewriterインタフェースのメソッドのみが、一意の識別子が渡された後でURLを書き出します。このURLは、絶対URLになることも、所有アプリケーションのFacesコンテキスト・ルートの相対URLになることもあります。

例7-10 リソースURLリライタ・メソッド

public String rewriteUrl(String id);

7.3.4 ビュー・ハンドラおよびナビゲーションの動作の指定

独自のリソース・アクション・ビュー・ハンドラ(たとえば、現在のページの新しいタブにリソースを表示する)を作成して、ADFインライン・ポップアップを使用するか、DefaultResourceActionHandler(同じブラウザ・ウィンドウで開いて、リソースの全画面ナビゲーションを表示する)を使用してナビゲートするか、PopUpResourceActionHandler(新しいブラウザ・ポップアップ・ウィンドウを開く)を使用するかを指定します。

FrameworkアプリケーションでRAH対応のリンクまたはボタンをクリックすると、組込みのデフォルト・リソース・アクション・ビュー・ハンドラが起動されます。これにより、同じブラウザ・ウィンドウを使用してブラウザからリソースにナビゲートすることで、リソース・ビューア・タスク・フローでリソースを開きます。

この動作は、adf-config.xml<resource-handler>要素に、組込みのポップアップ・ビュー・ハンドラまたはカスタム・ビュー・ハンドラを指定することで変更できます。さらに、デフォルト・アクションでビュー・ハンドラを起動するか、現在のウィンドウにADFインライン・ポップアップとして表示するかを指定できます。

例7-11に、adf-config.xmlに追加するXMLを示します。このXMLでは、ビュー・ハンドラとしてMyAppResourceActionHandlerを使用し、ADFインライン・ポップアップを使用して最初にリソースを表示するように宣言しています。

例7-11 カスタム・ビュー・ハンドラの指定

<wpsC:adf-service-config
xmlns="http://xmlns.oracle.com/webcenter/framework/service">
   <resource-handler
       class="com.mycompany.myapp.MyAppResourceActionHandler"
       display-as-popup="true" />
</wpsC:adf-service-config>

このwpsC:ネームスペースは、次のように定義されています。

xmlns:wpsC="http://xmlns.oracle.com/webcenter/framework/service"

RAHフレームワークには、DefaultResourceActionHandlerとともに、PopUpResourceActionHandlerも含まれます。これは、完全なブラウザ・ウィンドウ・ナビゲーションを実行するのではなく、ナビゲート時に新しいブラウザ・ポップアップを起動します。これは、以前のリリースのWebCenter Portalアプリケーションの動作と似ています。

例7-12に、ポップアップ・ビュー・ハンドラの指定方法を示します。

例7-12 ポップアップ・ビュー・ハンドラの指定

<wpsC:adf-service-config
xmlns="http://xmlns.oracle.com/webcenter/framework/service">
    <resource-handler
class="oracle.webcenter.framework.resource.view.PopUpResourceActionHandler" />
</wpsC:adf-service-config>

アプリケーションは、ResourceActionHandlerインタフェースを実装するクラスを作成するか、AbstractResourceActionHandlerベース・クラスを拡張して、adf-config.xml<resource-handler>のクラス属性に新しいビュー・ハンドラを指定することで、独自のリソース・アクション・ビュー・ハンドラを起動できます。次のシナリオでは、RAHリンクがクリックされたときに、カスタム・ビュー・ハンドラ・クラスを起動します。

  • ADFインライン・ポップアップが使用されていません。

  • 「最大化」ボタンがADFインライン・ポップアップでクリックされました。


関連項目:

カスタム・リソース・アクション・ビュー・ハンドラ(具体的には、AbstractResourceActionHandlerクラス)の作成方法については、Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンスでサービス・フレームワークについて参照してください


<resource-handler>タグ内のdisplay-as-popup属性では、RAHリンクのアクションの初期動作を定義します。これは、resourceActionBehaviorタグでuseResourcePopup属性にalwaysneverまたはappDefinedの値を使用することで、RAHリンク自体で上書きできます。

useResourcePopupが設定されていない場合や、これがRAHリンクでappDefinedに設定されている場合は、adf-config.xmldisplay-as-popup属性が考慮されます。これがtrueに設定されている場合、RAHは、リソース・アクション・ビュー・ハンドラを起動するのではなく、ADFインライン・ポップアップを起動します。これにより、リソースのミニ・リソース・ビューが現在のページ内のADFインライン・ポップアップに表示されます。ユーザーは、これを閉じることも最大化することもできます。ユーザーが「最大化」ボタンをクリックすると、ポップアップが閉じてリソース・アクション・ビュー・ハンドラが起動されます。

デフォルトでは、完全なナビゲーションが意味をなさない一部のタスク・フローに対する特別な場合にのみ、FrameworkアプリケーションでADFインライン・ポップアップが使用されます。たとえば、検索結果には、リソースの作成者が含まれていることがあります。このユーザー名のリンクをクリックすると、検索結果から移動することなく、作成者の簡単なプロファイルを示すポップアップを確認できます。

これらのタスク・フローでは、resourceActionBehaviorタグで、useResourcePopupalwaysに設定されています。これは、タスク・フローをカスタマイズすることで変更できます。

デプロイ済のアプリケーションの場合は、WLSTコマンドを使用することで、adf-config.xml<resource-handler設定を追加したり更新したりできます。コマンドの構文および例は、『Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス』のsetWebCenterServiceFrameworkConfigに関する項と、getWebCenterServiceFrameworkConfigに関する項を参照してください。

7.4 サービスの一般設定の構成

アプリケーションに追加したサービスのタイムゾーン、日時の書式、言語(ロケール)およびアクセシビリティ・モードは、必要に応じてユーザーが設定できるようにすることが可能です。このような機能は、WebCenter Portal一般設定サービスを通じて提供できます。このサービスが格納する値には、FrameworkアプリケーションのJSFページから直接アクセスすることも、APIを通じて間接的にアクセスすることもできます。一般設定サービスの対応範囲は、次のとおりです。

アプリケーションからサービスを直接使用する場合は、JSFページで式言語を使用して、generalSettingsマネージドBeanにアクセスします。スタイルはjava.util.Timezoneに基づき、パターンはjava.text.SimpleDateFormatに基づきます。

ADFコンポーネント(たとえば、af:activeOutputText)のvalue属性としてgeneralSettingsを追加する場合は、「式ビルダー」を開いて、「JSFマネージドBean」、「generalSettings」の順にナビゲートすると、Beanのプリファレンス値を表示できます。

一般設定サービスは、パターンベースの書式とスタイルベースの書式をどちらもサポートします。パターンが指定されていない場合は、スタイルが使用されます。デフォルトでは、パターンは指定されていないか、NULLです。

図7-9に、一般的な設定の「EL式の挿入」ダイアログを示します。

図7-9 generalSettings JSFマネージドBeanの式ビルダー

図7-9の説明が続きます
「図7-9 generalSettings JSFマネージドBeanの式ビルダー」の説明

表7-4では、一般設定サービスのプリファレンス値について説明します。

表7-4 一般設定マネージドBeanのプリファレンス値と説明

一般設定のプリファレンス値 説明

formattedCurrentDate

ユーザーが選択しているロケールで現在の日付を表示します。

formattedCurrentDateTime

ユーザーが選択しているロケールで現在の日付と時刻を表示します。

formattedCurrentTime

ユーザーが選択しているロケールで現在の時刻を表示します。

preferredAccessibilityMode

trinidad-config.xmlaccessibility-mode設定に使用される、優先アクセシビリティ・モード(defaultinaccessible、またはscreenReader)です。

preferredDateStyle

日付および時刻を表示するときにdateStyle属性に使用される、Javaの日付スタイルです。

preferredTimeStyle

日付および時刻を表示するときにtimeStyle属性に使用される、Javaの時刻スタイルです。

preferredDatePattern

時刻ではなく日付の表示に使用されるJava日付パターン。パターンは有効なjava.text.SimpleDateFormatパターン(dd-MMM-yyyyなど)にする必要があります。これは、preferredDateStyleよりも優先されます。

preferredTimePattern

日付を表示しないで時刻を表示する場合に使用される、Javaの時刻パターンです。これは、preferredTimeStyleより優先されます。

preferredDateTimePattern

日付と時刻を表示するときに使用される、Javaの日付/時刻パターンです。

これは、preferredDateStyleおよびpreferredTimeStyleより優先されます。

userTimeZone

日付および時刻を表示するときにtimeZone属性に使用される、Javaのタイムゾーンです。

preferredSkinName

trinidad-config.xmlskin-family設定に使用される、優先スキン名です。


たとえば、ユーザーの選択しているロケール、タイムゾーン、および書式で、現在の日付と時刻を表示するには、次のコードをページに追加します。

例7-13 ユーザーのロケールで現在の日付と時刻を表示するコード

<af:outputText value="#{generalSettings.formattedCurrentDateTime}"/>

また、特定の日付と時刻を表示するには、次のようにします。

例7-14 特定の日付と時刻を表示するコード

<af:outputText value="#{row.dateTimeValue}">
    <af:convertDateTime type="both"
                        dateStyle="#{generalSettings.preferredDateStyle}"
                        timeStyle="#{generalSettings.preferredTimeStyle}"
                        timeZone="#{generalSettings.userTimeZone}"
                        locale="#{facesContext.externalContext.requestLocale}" />
                        pattern="#{generalSettings.preferredDateTimePattern}"
    </af:outputText>>

優先アクセシビリティ・モードを利用するには、アプリケーションのtrinidad-config.xmlファイルにEL(式言語)式を追加して、そのアクセシビリティ・モードを設定する必要があります。例:

例7-15 trinidad-config.xmlでのアクセシビリティ・モードの設定

<accessibility-mode>#{generalSettings.preferredAccessibilityMode}</accessibility-mode>

7.4.1 プリファレンス・ユーザー・インタフェースの作成

一般設定APIを使用してユーザー・インタフェースを作成すると、ユーザーはデフォルト設定を受け入れることも、自分の目的に適った設定を適用することもできるようになります。このAPIには、表7-4に示したものと同じプリファレンス値が含まれています。

日付と時刻を表示するWebCenter Portalのサービスは、一般設定サービスで構成された設定を使用します。一般設定サービスAPIを使用してプリファレンス・ユーザー・インタフェースを作成する方法は、oracle.webcenter.generalsettingsについてのJavadocを参照してください。具体的には、oracle.webcenter.generalsettings.modelパッケージに、各設定のプリファレンス値を取得および設定するAPIが含まれています。これらのAPIを使用してカスタム・ユーザー・インタフェースを作成すると、ユーザーは各自の優先値を表示および設定できるようになります。


関連項目:

Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス


7.4.2 一般設定を使用したユーザーのロケールの指定

デフォルトでは、ADFはユーザーのブラウザ設定からユーザーのロケールを取得します。この動作は、プリファレンスUIを使用して、ユーザーの優先ロケールをアプリケーションで設定できるように変更できます。

この動作を変更するには、oracle.webcenter.generalsettings.model.filter.GeneralSettingsLocaleFilterをサーブレット・フィルタとして、web.xmladfBindingsに含めます。このサーブレット・フィルタは、ユーザーのブラウザからではなく、一般設定サービスのロケール・プリファレンスを基にデフォルトのロケール(ADFロケール)を設定します。

次のルールに従って、一般設定のロケール・フィルタをweb.xmlに追加します。

フィルタを定義します。例:

      <filter>
         <description>
            WebCenter General Settings locale setting.
         </description>
         <filter-name>
            generalSettingsLocaleFilter
         </filter-name>
         <filter-class>
          
oracle.webcenter.generalsettings.model.filter.GeneralSettingsLocaleFilter
         </filter-class>
      </filter> 

adfBindingsフィルタの後に、同じサーブレット名でフィルタを追加します。例:

      <filter-mapping>
         <filter-name>
            generalSettingsLocaleFilter
         </filter-name>
         <servlet-name>Faces Servlet</servlet-name>        
      </filter-mapping> 

このフィルタが設定されていない場合は、最初にクライアントのブラウザのロケール設定がロケールの情報源になり、その後でADFロケール設定が情報源になります。

このフィルタが設定されている場合は、一般設定サービスがロケールの情報源になります。一般設定のロケール・プリファレンスが存在しない場合は、フィルタなしのデフォルト動作に戻されます。