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

前
 
次
 

17 フレックス・フィルタ

この章では、フレックス・フィルタについて説明します。フレックス・フィルタ・クラスの定義およびフレックス・フィルタ・アセットの作成の手順も含まれています。

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

17.1 フレックス・フィルタ・クラスおよびフレックス・フィルタ・アセットの理解

フレックス・フィルタでは、そのフィルタが割り当てられたフレックス・アセットに対して、処理後の操作を行います。フィルタは、関連付けられたアセットが保存されたときにコールされます。フィルタは、アセットの編集操作が取り消されるとコールされません。

1つのフレックス・アセットに、複数のフレックス・フィルタを割り当てることができます。アセットが保存されると、アセットの定義の「フィルタ」セクションで定義された順番で、フィルタは指定されたタスクを実行します。フレックス・フィルタが実行するタスクは、フィルタを定義するフレックス・フィルタ・クラスにより決まります。たとえば、Doc-Typeフィルタ・クラスで定義されるフレックス・フィルタは、そのクラスにより有効化され、アセットのMIMEタイプを決定したり、URLパスからファイル・タイプを抽出したりします。

各フレックス・フィルタは、属性に関連付けられており、アセット用に処理したデータでこの属性を更新します。これらの属性は導出属性と呼ばれます。導出属性は、フィルタが割り当てられているのと同じフレックス・ファミリに作成する必要があります。ただし、導出属性は厳密にはフレックス・フィルタの出力であり、アセットが保存されたときにのみアセットに追加されるので、アセット定義には指定しないでください。1つのアセットに複数のフィルタが割り当てられる場合、どのフィルタも、そのアセットに関連付けられた他のフィルタが出力した属性に依存しないようにしてください。

(WebCenter SitesのデータベースのFilters表に)フィルタが定義されている場合、そのフィルタは任意のアセット・タイプの子定義に適用できます。(フィルタは、アセット・タイプの親定義に適用することはできません。)特定のアセット・タイプに関連した特定の目的のためにフィルタが作成された場合、そのフィルタはそのアセット・タイプの子定義にのみ関連付ける必要があります。たとえば、「Media」アセットのイメージ・タイプを処理するようにフィルタが設計されている場合、そのフィルタは、テキストをベースにしたアセットに適用すると機能しません。

この項の内容は、次のとおりです。

17.1.1 フレックス・フィルタ・クラス

フレックス・フィルタ・クラスには、フレックス・フィルタ・アセットの機能が実装されます。これらのクラスは、WebCenter SitesデータベースのFilters表に一覧表示されます。フレックス・フィルタ・アセットを作成する場合には、対象となるフレックス・フィルタ・クラスを選択します。

WebCenter Sitesに用意されているフレックス・フィルタ・クラスは次のとおりです。

  • Doc-Type: 1つ以上のMIMEファイル・タイプを含むアセットからコンポーネントを抽出し、各ファイル・タイプを個々に名付けられた属性にマップします。

  • サムネイル・クリエータ: イメージをサムネイルに変換します。

  • フィールド・コピアー: システム定義された属性の内容をユーザー定義の属性にコピーします。

  • ドキュメント変換: 登録された変換エンジン(SystemTransforms表で指定されたエンジン)を起動して、あるファイル・タイプのドキュメントを別のファイル・タイプのドキュメントに変換します。変換エンジンは、ドキュメント・トランスフォーマにコールを転送してドキュメントの変換を行うラッパーとして機能します。

WebCenter SitesのFiltersデータベース表に定義することにより、カスタム・フレックス・フィルタ・クラスを作成できます。カスタム・フレックス・フィルタ・クラスの作成方法については、第17.2.2項「カスタム・フレックス・フィルタ・クラスの定義」を参照してください。

Doc-Typeフィルタ・クラス

Doc-Typeフィルタは、ドキュメントを取り込んで、ファイルに関連付けられたMIMEタイプ・データを個々のコンポーネントに抽出します。たとえば、テキストおよびGIF写真を含むアップロードされたファイルは、TXTフォーマット・データおよびGIFフォーマット・データをそれぞれ含む2つの生成された属性にフィルタされます。

Doc-Typeクラスは、次の引数で定義されます。

  • Attribute to Hold Derived File Name: (オプション) 出力ファイル名を格納するフレックス属性を入力します。

  • Attribute to Hold Derived File Type: この属性にはファイル拡張子が格納されます。

  • Attribute to Hold Derived MIME Type: (オプション) MIMEファイルには、プレーン・テキスト、添付ファイル、メディア・ファイルなど、いくつかのタイプがあります。

  • Input Attribute Name: アップロードされたファイル名に対応する、WebCenter Sitesによって格納された属性名。

サムネイル・クリエータ・フィルタ・クラス

サムネイル・クリエータ・フィルタを使用すると、コンテンツ・プロバイダは元のグラフィックをアップロードでき、WebCenter Sitesは新しいサムネイル・サイズのGIFグラフィック・ファイルを作成します。

サムネイル・クリエータ・クラスを定義する引数は次のとおりです。

  • Input Attribute Name: アップロードされたファイルの名前。

  • 大きなバージョンのサムネイル・グラフィックのための表示値: 「Output Attribute for Main Height」、「Output Attribute for Main Width」および「Enter Maximum Pixel Size」。

  • 作成するサムネイルを定義する属性: 「Output Attribute Name」、「Output Attribute for Thumb Height」、「Output Attribute for Image Aspect」および「Output Attribute for Thumb Width」。

フィールド・コピアー・フィルタ・クラス

フィールド・コピアー・フィルタは、システム定義された属性の内容をユーザー定義のフレックス属性にコピーします。

フィールド・コピアー・クラスを定義する引数は次のとおりです。

  • Name: コピーするシステム定義された属性の名前。

  • Value: システム定義された属性の値のコピー先とするフレックス属性の名前。

図19-2は、FirstSiteIIサンプル・サイトのメディア・フレックス・ファミリを使用して、フィールド・コピアー・フィルタを実装する方法の詳細な例を示しています。フィールド・コピアー・フィルタのこの例での目的は、親アセットの名前によりイメージ・アセットを分類することです。

ドキュメント変換フィルタ・クラス

ドキュメント変換フィルタ・クラスを定義する引数は次のとおりです。

  • Document Transformer Name: SystemTransforms表に一覧表示されているとおりの、登録された変換エンジンの名前。デフォルトでは、SystemTransforms表に次の4つの値が一覧表示されています。

    • CS: Convert to HTML

      バイナリ・ファイルからHTMLへの変換を開始します。

    • CS: Convert to HTML fragment

      バイナリ・ファイルから、ヘッダー・タグなしのHTMLコーディングのファイルへの変換を開始します。

    • CS: Convert to XML

      バイナリ・ファイルからXMLへの変換を開始します。

    • CS: Convert to Raw Text

      バイナリ・ファイルからテキスト・フォーマットへの変換を開始します。


      注意:

      WebCenter Sitesでは、次のドキュメント・トランスフォーマを使用できます。

      com.fatwire.transformer.tika.DocumentTransformerImpl

      ドキュメント・トランスフォーマは、CS: Convert to Raw Textエンジンによって起動されたときに、ドキュメントを未加工のテキスト・ファイルに変換するようにコーディングされています。他のファイル・タイプに変換するには、そのファイル・タイプ用にドキュメント・トランスフォーマを作成して、(すでに登録されていないかぎりは)対応する変換エンジンに登録し、そのドキュメント・トランスフォーマをWebCenter Sitesに登録する必要があります。デフォルトの実装およびドキュメント変換ソリューションについては、第17.3項「ドキュメント変換」を参照してください。


  • Input Attribute Name: フレックス・フィルタによって内容が変換されるフレックス属性の名前。ドキュメント変換フィルタについては、入力属性はblobタイプである必要があります。これは、ドキュメント変換フィルタがこの属性のファイルを検索するためです。

  • Fail on Transform Error: 変換が正常終了しなかった場合に、エラー・メッセージが表示されるようにするかどうかを選択します。

  • Output Attribute Name: ドキュメント変換の結果を格納するフレックス属性の名前。ドキュメント変換フィルタについては、出力属性はblobタイプである必要があります。これは、変換結果がファイルとして格納されるためです。

    出力属性(フィールド)に格納されるデータは、入力属性のデータに由来するため、読取り専用です。このデータは、アセットが保存されるたびに、入力属性のソース・データから再生成されます。

  • Output Document Extension: 結果として生成されるファイルに割り当てられるファイル拡張子。選択したDocument Transformer Nameに適したドキュメント拡張子を入力してください。たとえば、ドキュメント変換エンジンをCS: Convert to HTMLに指定した場合、ドキュメント拡張子はhtmまたはhtmlにする必要があります。

17.1.2 フレックス・フィルタ・アセット

フレックス・フィルタ・アセットは、次の基準のすべてで定義されます。

  • Filters表に登録されたフレックス・フィルタ・クラス。

  • そのフィルタ・クラスに(引数を介して)渡された情報。これらの引数は、使用するデータ、フィルタのアクションに対する制約、およびアセットが保存されたときにフィルタリング・プロセスの結果を格納する場所を指定します。

フレックス・フィルタ・アセットを作成する場合、使用するフレックス・フィルタ・クラスを選択し、フィルタ・クラスのアクションに必要な引数の値を入力します。

フレックス・フィルタ・アセットを作成した後、それを適切なフレックス定義アセットに割り当てます。その後、コンテンツ・プロバイダがその定義のフレックス・アセットを保存するたびに、フィルタは割り当てられたアクションを自動的に実行します。手順の詳細は、第17.2.3項「フレックス・フィルタ・アセットの作成」を参照してください。

17.2 フレックス・フィルタ・クラスの定義およびフレックス・フィルタ・アセットの作成

フレックス・フィルタを使用するには、まず、WebCenter Sitesデータベースにカスタム・フレックス・フィルタ・クラスを定義する必要があります。次に、そのクラスで機能が定義されているフレックス・フィルタ・アセットを作成することにより、カスタム・フレックス・フィルタ・クラスをアクティブ化します。

基本的な手順は次のとおりです。

  1. カスタム・フレックス・フィルタ・クラス用の実装コードを提供するJavaクラスを作成します。手順は、第17.2.1項「フレックス・フィルタ・クラスの実装」を参照してください。

  2. 新規フレックス・フィルタ・クラスを、WebCenter SitesデータベースのFilters表に定義します。手順は、第17.2.2項「カスタム・フレックス・フィルタ・クラスの定義」を参照してください。

  3. カスタム・フレックス・フィルタ・クラスで定義されたフレックス・フィルタ・アセットを作成します。

    1. フィルタの引数として参照される属性を作成します。

    2. フレックス・フィルタ・アセットを作成し、目的のフレックス・フィルタ・クラスに割り当てます。

    3. 新規フィルタ・アセットを子定義に追加します。

    4. フィルタ・アセットを追加した定義に関連付けられたすべての関連アセットを再度保存します。

    手順は、第17.2.3項「フレックス・フィルタ・アセットの作成」を参照してください。

この項の内容は、次のとおりです。

17.2.1 フレックス・フィルタ・クラスの実装

カスタム・フレックス・フィルタを実装するには、AbstractFlexFilterクラスを拡張することにより、そのための新規Javaクラスを作成します。このフィルタ・クラスには、フィルタ要求の処理に必要なデフォルト機能がすべて含まれています。AbstractFlexFilterクラスを拡張し、フレックス属性にアクセスして導出属性値を設定することを目的とするカスタム・フレックス・フィルタ・クラスの実行例は、ソース・ファイルSampleFlexFilter.javaに提供されています。

フレックス・フィルタの機能は、抽象化インタフェースと呼ばれるパラメータにより実装されます。フレックス・フィルタは、フィルタリングしているアセットの特定の側面についてのみ知る必要があるため、抽象化インタフェースは、指定されたフレックス・アセットに対して機能を実行するために必要なアセット情報にのみフィルタがアクセスできるようにしています。表17-1に、フレックス・フィルタの実装に必要な抽象化インタフェース、および各抽象化インタフェースがフィルタに渡すアセット情報の一覧を示します。カスタム・フレックス・フィルタ・クラスの実装に使用される様々な抽象化インタフェースの詳細は、Oracle Fusion Middleware WebCenter Sites Java APIリファレンスを参照してください。

表17-1 抽象化インタフェース(com.openmarket.gator.interfacesパッケージ)

抽象化インタフェース 説明

IFilterEnvironment

フィルタをサポートしている環境についての情報を取得するための方法を提供します。

IFilterableAssetInstance

フィルタされているアセットを操作するための方法を提供します。

IFilterDescription

フィルタが実行中に変更する可能性のあるすべての導出属性を記述するための方法を提供します。

IFilterDependencies

フィルタされるアセット・インスタンスに対する依存性を記録するための方法を提供します。依存性は、フィルタされるアセットとの関係を共有するタイプおよびIDにより別のアセットを参照します。依存性が宣言される場合、その依存性はexactとexistsのいずれかです。



注意:

標準アセット属性は、IFilterableAssetInstance.getメソッドにより取得できます。たとえば、標準アセット記述を取得するには、次の行を追加します。

String description = instance.get(description);

新規フレックス・フィルタ・クラスのJavaコードを作成する場合、(COM.FutureTense.Interfacesパッケージ内の)単一のFTValListパラメータ付きでコンストラクタを定義します。このパラメータは、Filtersデータベース表に格納されているフィルタの定義から取得した引数のリストを提供します。これらの引数は、キー/値のペアの形でフィルタに渡されます。Filtersデータベース表内のフィルタ・クラスに対してあらかじめ定義された引数がない場合、FTValListはNULLとなります。

17.2.1.1 AbstractFlexFilterクラスの拡張

フレックス・フィルタ・クラスの実装を作成するために、AbstractFlexFilterクラスを拡張できます。このクラスはcom.openmarket.gator.flexfiltersパッケージ内にあります。新規フレックス・フィルタのJavaクラスを作成する場合、AbstractFlexFilterクラスのJavaコードからフィルタ機能に必要なメソッドをコールできます。これにより、カスタム実装の作成に必要なコードの量が簡略化されます。

メソッドがコールされると、フィルタのアセット識別子である、引数String filterIdentifierが提供されます。同じフィルタを異なるフレックス・アセット・ファミリに関連付けると、フィルタ識別子に、関連付けられたファミリのフィルタ定義が反映されます。この引数は、異なるアセット・ファミリが使用するフィルタを実装している場合に便利です。フィルタは、起動された時点でどのフレックス・ファミリの関連付けが使用されているかを知ることができます。

カスタム・フレックス・フィルタ・クラスの実装に使用される様々な抽象化メソッドの詳細は、Oracle Fusion Middleware WebCenter Sites Java APIリファレンスを参照してください。

必要な抽象化メソッド

すべてのフレックス・フィルタ実装で必要となる抽象化メソッドは次のとおりです。

public void filterAsset(IFilterEnvironment env,
      String filterIdentifier,
      FTValList filterArguments,
      IFilterableAssetInstance instance)
      throws AssetException;

これらの行は、新規または既存のアセットが保存されるときに、アセットの後処理を実行するための主要なメソッドです。このメソッドは、編集が取り消されるとコールされません。フィルタの目的を表す作業を実行します。引数のリスト(FTValList)が提供され、フィルタは、入力属性定義または出力属性定義、あるいはその両方を入手でき、フィルタに対して有効な他の情報も入手できます。WebCenter Sitesインタフェース内にフィルタが作成されると、filterArgumentsリストが定義されます。

public FTValList getLegalArguments(IFilterEnvironment env,
      String filterIdentifier)
      throws AssetException;

これらの行は、適切なフィルタ引数のリストを返すためにコールされるメソッドです。フィルタを選択して「引数の取得」ボタンを押した後に、WebCenter Sitesインタフェースはドロップダウン・リストを埋めるために、フィルタの作成または編集中にこのメソッドをコールします。

オプションの抽象化メソッド

次の抽象化メソッドは、AbstractFlexFilterクラス内の抽象化メソッドをオーバーライドするために使用できます。これらのメソッドはオプションです。AbstractFlexFilterクラスが提供するデフォルトの実装は通常、ほとんどのフィルタで十分であるためです。

public void describeDerivedAttributes(IFilterEnvironment env,
      String filterIdentifier, FTValList filterArguments,
      String defTypeName, String parentDefTypeName,
      IFilterDescription descriptionObject) throws AssetException

このメソッドは、すべての可能性のある導出属性、グループ・アフィニティ、およびフィルタで設定できる推奨を記述します。フィルタが属性を出力するように計画している場合、このメソッドは変更される属性を識別する必要があります。これは、フレックス・アセットが表示されるたびに、アセットの編集を行うためにコールされます。

public void getDependencies(IFilterEnvironment env,String filterIdentifier, 
   FTValList filterArguments, String assetTypeName, String parentTypeName,
   IFilterDependencies filterdeps) throws AssetException

このメソッドは、フィルタのアセット依存性を記述するためにコールされます。フィルタ依存性は、existsexactのいずれかに設定されます。

public String[] getArgumentLegalValues(IFilterEnvironment env,
   String filterIdentifier, String argumentName) throws AssetException

このメソッドは、指定された引数の許容値のリストを返すためにコールされます。返された一覧がNULLの場合、どんな値でも許容されます。このメソッドは、フィルタ・アセットに指定された引数値を有効化するために、フィルタ・アセットが作成または編集されているときに、WebCenter Sites Adminインタフェースによってコールされます。

17.2.2 カスタム・フレックス・フィルタ・クラスの定義

この項では、カスタム・フレックス・フィルタ・クラスをWebCenter SitesデータベースのFilters表に定義する手順を説明します。この例では、CustomFilterという名前のフレックス・フィルタ・クラスを作成します。

カスタム・フレックス・フィルタ・クラスを定義するには:

  1. カスタム・フレックス・フィルタ・クラス用の実装コードを含む.jarファイルまたはclassファイルを、WebCenter Sites製品のjarsを保持しているディレクトリにコピーします。


    注意:

    カスタム・フレックス・フィルタ・クラス用の実装コードを提供するJavaクラスの作成の詳細は、第17.2.1項「フレックス・フィルタ・クラスの実装」を参照してください。


    • WebLogicの場合: app-server-install-dir/bea/path-to-domain/domain-name/applications/WEB-INF/lib

    • WebSphereの場合: WebSphere-Installation-Directory/InstalledApps/WEB-INF/lib

  2. Sites Explorerを開き、新規フィルタ・クラス用の行をFilters表に追加します。

    1. ツリーで、「表」ノードを展開し、Filters表を選択します。

    2. 「ファイル」「新規」「レコード」の順に選択します。

    3. データベースで次の列に入力して、フィルタを定義します。

      • name: WebCenter Sitesインタフェースに表示させるフィルタの名前を入力します。

      • description: (オプション) フィルタ・クラスの目的についての短い要約を入力します。

      • classname: フィルタ・クラスの実装の正確なクラス名(例: com.fatwire.firstsite.filter.SampleFlexFilter)を入力します。この名前は、WebCenter Sitesのクラスパスにロード可能である必要があります。

      • args: (オプション) フィルタ用の入出力引数を入力します。引数のキー/値のペアは、アンパサンド(&)文字で区切られます (例: arg1=argument1&arg2=argument2)。これらの引数は、フィルタ・コンストラクタに渡され、その使用はフィルタの開発者に任されます。


        注意:

        フレックス・フィルタ・クラスの入出力引数をFilters表に定義しない場合、それらの引数はフレックス・フィルタ・クラスのコードに定義できます。詳細は、第17.2.1項「フレックス・フィルタ・クラスの実装」を参照してください。


    4. 「ファイル」「保存」の順に選択します。

      新規フィルタ・エントリは次のようになります。

    n_csdatabase.pngの説明が続きます
    図n_csdatabase.pngの説明

    フィルタ・クラスは、フィルタ・アセットの「新規」フォームおよび「編集」フォームの「フィルタ」ドロップダウン・リスト内のオプションとして表示されます。

17.2.3 フレックス・フィルタ・アセットの作成

この項では、フレックス・フィルタ・アセット作成の手順を説明します。この例では、FirstSiteIIサンプル・サイトの「Media」フレックス・ファミリに対して、FSII_CustomFlexFilterという名前のフレックス・フィルタ・アセットを作成します。

フィルタ・アセットの作成前に、入出力の属性として使用するフレックス属性が存在している必要があります。既存の属性の値が上書きされないようにするために、カスタム・フレックス・フィルタの引数が参照する属性を新規作成できます。この例では、タイプstringのMedia属性を2つ作成しました。入力属性として使用するFSII_CustomInputと、出力属性として使用するFSII_CustomOutputです。

フレックス・フィルタ・アセットを作成するには:

  1. 一般管理者としてAdminインタフェースにログインし、フレックス・フィルタ・アセットを作成するサイトを選択します(この例ではFirstSiteIIサンプル・サイト)。

  2. フィルタの入出力属性が参照する属性を作成します(まだ定義されていない場合)。次の要件に注意してください。

    • フレックス・フィルタがドキュメント変換フィルタ・クラスを使用している場合、入出力属性のタイプはblobである必要があります。

    • どのフレックス・フィルタでも、入力属性、出力属性、フレックス・フィルタはすべて、同一のフレックス・ファミリに属している必要があります。

    フレックス属性の作成方法については、第16.3.6項「手順4: フレックス属性の作成」を参照してください。

  3. 関連付けられたフレックス・ファミリ(この例では「Media」フレックス・ファミリ)に対するフレックス・フィルタ・アセットを作成します。

    1. スタート・メニュー項目から「新規」をクリックします。

    2. アセット・タイプのリストで、作成するフィルタのタイプを選択します。この例では、New Media Filterです。

      「新規」フィルタ・フォームが表示されます。

    3. 次のフィールドに入力します。

      1. 「名前」フィールドで、このフィルタの一意の名前を入力します(この例ではFSII_CustomFlexFilterを使用)。

      2. 「説明」フィールドに、フィルタの機能を要約した短い説明を入力します。

      3. 「フィルタ」ドロップダウン・リストで、カスタム・フィルタに割り当てた名前と一致するフィルタ定義を選択します(この例では、CustomFilterを選択)。次に「引数の取得」をクリックします。

      4. 「引数」フィールドで、フレックス・フィルタ・アセットに対する入力および出力の引数を指定します。「追加」をクリックして、フィルタに引数を追加します。

        l_newflexasset_small.pngの説明が続きます
        図l_newflexasset_small.pngの説明

    4. 「保存」をクリックして、フィルタを保存します。

      l_confirm_small.pngの説明が続きます
      図l_confirm_small.pngの説明

  4. 新規フィルタ・アセットを追加する先の子定義を検索します(この例では、フィルタを「Media」子定義FSII_Imageに追加します)。

    1. スタート・メニュー項目から「検索」をクリックします。

    2. アセット・タイプのリストで、フィルタを追加する先のアセット定義の目的タイプを選択します(この例ではFind Media Definition)。

    3. 検索フィールドに、フィルタを追加する先の定義の名前を入力します(この例ではFSII_ImageCategory)。

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

    5. 検索結果のリストで目的の定義に移動して、その「編集」アイコンをクリックします(この例ではFSII_Image)。

      定義の「編集」フォームが開きます。

      l_editassetdef.pngの説明が続きます
      図l_editassetdef.pngの説明

  5. 「編集」フォームで、フィルタと入力引数を定義に追加します。

    1. 「属性」フィールドで、「使用可能」リスト内の入力属性を強調表示して、「選択済」リストに移動します(この例ではFSII_CustomInput)。

    2. 「フィルタ」フィールドで、「使用可能」リスト内の目的のフレックス・フィルタを強調表示して、「選択済」リストに移動します(この例ではFSII_CustomFlexFilter)。


      注意:

      新規フィルタを追加します。新規フィルタが依存または共有する属性を作成または変更するフィルタがほかにあれば、そのフィルタの後に追加します。


    3. 「保存」をクリックします。

      n_mediadef_small.pngの説明が続きます
      図n_mediadef_small.pngの説明

  6. フィルタを追加した定義に関連付けられたすべての既存アセットを検索し、再度保存します。これにより、フィルタは出力属性(FSII_CustomOutput)に、入力属性(FSII_CustomInput)からの導出値を移入できます。例:

    1. アプリケーション・バーで、「Contributor」アイコンをクリックし、WebCenter SitesのContributorインタフェースに切り替えます。

    2. 「検索」フィールドで、下矢印をクリックして「検索タイプ」メニューを開きます。「検索タイプ」メニューで、手順5で変更した定義に関連付けられたアセットのタイプを選択します(この例ではFind Media)。虫めがねボタンをクリックします。

      「検索」タブが開き、検索結果が表示されます。

    3. アセットを再度保存します。アセットのツールバーで、「保存」アイコンをクリックします。

    4. アセットを調査します。アセットのツールバーで、「調査」アイコンをクリックします。

      e_flexfiltermediaasset.pngの説明が続きます
      図e_flexfiltermediaasset.pngの説明

      前述のイメージは、この項で作成したフィルタを含む、複数のフィルタを起動するフレックス・アセットの編集結果です。デフォルトでは、「Media」アセットは「FSII_FieldCopier」フィルタ、「FSII_ImageType」フィルタおよび「FSII_ThumbnailExtractor」フィルタをコールします。この例では、「Media」アセットも、入力属性(MediaCustomInput)の値をとるFSII_CustomFlexFilterフィルタをコールし、導出文字列値を出力属性(MediaCustomOutput)に挿入します。

17.3 ドキュメント変換

ドキュメント変換フレックス・フィルタの実装に必要なコンポーネントは次のとおりです。

ドキュメント変換フレックス・フィルタが起動されると、変換エンジンはラッパーとして機能します。エンジンは(transformer-formats.xmlファイル経由で)ドキュメント・トランスフォーマへコールを転送し、ドキュメント・トランスフォーマがファイル変換を実行します。

この項の内容は、次のとおりです。

17.3.1 デフォルトのソリューション

WebCenter Sitesは、ドキュメントを未加工のテキスト・ファイルに変換するために使用できるデフォルトのソリューションを提供しています。デフォルトのコンポーネントは次のとおりです。

  • SystemTransforms表に登録されたCS:Convert to Raw Text変換エンジン。

  • com.fatwire.transformer.tika.DocumentTransformerImplという名前のドキュメント・トランスフォーマ。CS:Convert to Raw Textエンジンによって起動されたときに、未加工のテキスト・ファイルを出力するようにコーディングされています。

  • transformer-formats.xmlファイル。前述で命名されたドキュメント・トランスフォーマ・クラスにCS:Convert to Raw Textエンジンを関連付けるように構成されています。

デフォルトのソリューションを使用するには、対応するドキュメント変換フレックス・フィルタの実装が必要です。これにより、変換エンジンが、WebCenter Sitesのインタフェースからドキュメント変換オプションとしてアクセスできるようになります。

17.3.2 カスタム・ソリューション

前述したデフォルトのソリューション以外のドキュメント変換のソリューションが必要な場合は、次のコンポーネントの作成とカスタマイズが必要です。

  1. 目的のファイル・タイプ用のドキュメント・トランスフォーマを作成して、デプロイします。

  2. 目的のファイル・タイプ用の変換エンジンを登録します。

  3. ドキュメント・トランスフォーマと目的のファイル・タイプを指定するようにtransformer-formats.xmlファイルを構成します。(このxmlファイルは、複数のドキュメント・トランスフォーマをサポートします。)

  4. この章で記述しているように、ドキュメント変換フレックス・フィルタを実装します。

手順の詳細は、第17.3.3項「ドキュメント変換のカスタマイズ」を参照してください。

17.3.3 ドキュメント変換のカスタマイズ

WebCenter Sitesには、デフォルトのドキュメント・トランスフォーマとしてcom.fatwire.transformer.tika.DocumentTransformerImplが用意されています。これは、CS:Convert to Raw Textエンジンによって起動されたときに、未加工のテキスト・ファイルを出力するようにコーディングされています。目的のファイル・タイプが未加工のテキスト以外であることが必要な場合は、次の手順を実行して、フレックス・フィルタがサポートするコンポーネントを作成し、登録する必要があります。

ドキュメント・トランスフォーマ・フレックス・フィルタを実装する前に:

17.3.3.1 ドキュメント・トランスフォーマの作成とデプロイ

  1. com.fatwire.transformer.common.DocumentTransformerインタフェースの実装を作成します。次のメソッドを実装します。

    public String getOutputDocument(String filename,
       TransformerFormat outputformat);
    

    および

    public String getOutputDocument(String filename,String inputFileExt,
       TransformerFormat outputformat);
    

    このメソッドは非推奨になったため、次のメソッドではNULLを返すことができます。

    public InputStream getBytesAsStream(String filename,
       TransformerFormat outputformat);
    
  2. ドキュメント・トランスフォーマのjarファイルまたはclassファイルを、WebCenter SitesのWebアプリケーションのlibフォルダまたはclassesフォルダにコピーします。

    • WebLogicの場合:

      app-server-install-dir/bea/path-to-domain/domain-name/applications/WEB-INF/lib
      
    • WebSphereの場合:

      WebSphere-Installation-Directory/InstalledApps/WEB-INF/lib
      
  3. 第17.3.3.2項「変換エンジンの登録」に進みます。

17.3.3.2 変換エンジンの登録


注意:

ドキュメント・トランスフォーマをHTML、HTMLフラグメント、XML以外の出力ファイルに書き込む場合は、この注意の下の手順1に進んでください。それ以外の場合は、この注意を読み進めてください。

デフォルトの変換エンジンの使用

WebCenter Sitesには、CS:Convert to Raw Textに加えて、次の変換エンジンが用意されています。

  • CS: Convert to HTML

  • CS: Convert to HTML fragment

  • CS: Convert to XML

これらのエンジンはすべて、デフォルトでSystemTransforms表に登録されます。ドキュメント・トランスフォーマをHTML、HTMLフラグメントまたはXMLの出力ファイルに書き込む場合は、対応するエンジンを使用してください。次を実行します。


変換エンジンを登録するには:

  1. Sites Explorerを開き、次のように、新規変換エンジン用の行をSystemTransforms表に追加します。

    1. SystemTransforms表を選択して、表の作業領域をクリックします。

    2. 「ファイル」「新規」「レコード」の順に選択して、新規の行に次のように入力します。

      1. name列に、変換エンジンの名前を入力します。たとえば、ConvertToPDFと入力します。

      2. description列に、エンジンの説明を入力します。たとえば、Convert to PDFと入力します。

      3. target列に、text/<filetype>と入力します。たとえば、text/PDFと入力します。


        注意:

        次の項(第17.3.3.3項「ドキュメント・トランスフォーマの登録」)では、<mime-type>のターゲット値を使用します。


      4. classname列に、エンジンのデフォルトのクラス名com.fatwire.transformer.common.FWTransformerを入力します。

      5. この変換エンジンに適した引数があれば、argsフィールドで設定します。たとえば、exporttype=PDFと設定します。

    3. 変更を保存します。

  2. 次の手順(第17.3.3.3項「ドキュメント・トランスフォーマの登録」)に進みます。

17.3.3.3 ドキュメント・トランスフォーマの登録

ドキュメント・トランスフォーマを、WebCenter SitesのWEB-INF/classesフォルダにあるtransformer-formats.xmlファイルに登録します。参考のため、デフォルトのファイルを次に示します。


注意:

<mime-type>を、変換エンジンのtargetフィールドの値 (第17.3.3.2項「変換エンジンの登録」で設定されたtargetの値)に設定します。

(第17.3.3.1項「ドキュメント・トランスフォーマの作成とデプロイ」で作成した)ドキュメント・トランスフォーマのクラス名を指定します。

複数のドキュメント・トランスフォーマを指定するには、各トランスフォーマに対してエントリを繰り返します。<mime-type>の値によって、変換エンジンによってどのドキュメント・トランスフォーマが起動されるかが決まります。


例17-1 デフォルトのtransformer-formats.xml

<transformer-format>
<name>Text Format</name> 
<!-- name of the output format supported by this repository -->
<mime-type>text/plain</mime-type>

<file-extension>txt</file-extension>
<transformer-options> 
<!-- number of possible transformers available for this transformation -->
  <transformer>
     <name>TIKA</name>
       <properties>
         <property>
           <name>ClassName</name> 
<!-- name of the transformer class that gets loaded by transformer factory -->
          <value>com.fatwire.transformer.tika.DocumentTransformerImpl</value>
        </property>
        <property>
           <name>InputFile_Exts</name> 
<!-- allowed input file extensions..* means all file types supported by tika -->
           <value>*</value>
        </property>
       </properties>
  </transformer>
</transformer-options>
</transformer-format>

17.3.4 次の手順

第17.3.3項「ドキュメント変換のカスタマイズ」に示すように、ドキュメント変換コンポーネントを作成して登録すると、対応するドキュメント変換フレックス・フィルタを実装できるようになります。この章に掲載している手順を使用してください。