プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebCenter Sitesでの開発
12c (12.2.1.1)
E77292-01
目次へ移動
目次

前
次

4 アセット・モデルの理解

ほとんどの場合、データ・デザインはアセット・デザインを意味します。ただし、開発者はアセットの基礎データを保持する表を頻繁に作成する必要があります。これらの表の必要性を決定し、表を設計する作業もデータ・デザインの一部です。

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

注意:

アセットを保持しない表の設計と作成については、「WebCenter Sitesデータベースでの作業」で説明します。

4.1 アセット・タイプとアセット・モデルについて

アセットとは、WebCenter Sitesデータベースに格納されているオブジェクトで、作成、編集、調査、削除、複製、ワークフローへの配置、リビジョン追跡による追跡、検索、および配信(ライブ)サイトへのパブリッシュが可能なオブジェクトのことです。

アセット・タイプとは、該当するタイプのアセット・オブジェクトの特性を決定する定義または仕様です。

図4-1に、WebCenter Sitesコンテンツ・エントリ・フォームと、フィールド名およびフィールド値とアセット・タイプのデータベース表の関係を示します。

図4-1 アセット・タイプ: データベース表とWebCenter Sitesのフォーム

図4-1の説明が続きます
「図4-1 アセット・タイプ: データベース表とWebCenter Sitesのフォーム」の説明

開発者は、アセット・タイプの設計および作成を行うと同時に、コンテンツ管理システムとオンライン・サイトの設計も行います。コンテンツ・プロバイダは、これらのタイプのアセットを作成および編集します。

一般的に、アセットは次の3つのロールのいずれかを実行します。

  • 訪問者がオンライン・サイトで読み取ったり調べたりするコンテンツの提供

  • コンテンツ表示用の書式設定ロジックまたはコードの提供

  • WebCenter Sitesデータベースへのコンテンツ格納用のデータ構造の提供

開発者の仕事は、コンテンツ・プロバイダにとって管理システムで操作しやすく、配信システムから訪問者に効率的に配信可能なアセット・タイプを設計することです。

次の内容について理解してください。

4.1.1 2つのデータ・モデル

WebCenter Sitesには、設計したアセット・タイプ用に、ベーシックとフレックスという2つのデータ・モデルが用意されています。

  • ベーシック: アセット・タイプは、単純なデータ構造を備えています。1つのプライマリ記憶域表と、お互いの間に単純な親子関係が設定されています。

    ベーシック・アセット・タイプは独立したスタンドアロン・アセット・タイプであり、記事、イメージ・ファイル、ページ、問合せなど、個別の種類のコンテンツを表しています。(「一般的な管理」ツリーの「管理」ノードにある) AssetMakerユーティリティを使用して、ベーシック・アセット・タイプを作成します。

  • フレックス:・アセット・タイプは、複数のデータベース表を備えた複合データ構造になっており、ベーシック・アセット・タイプよりも多くのフィールドをサポートできます。さらに、複数の親や任意の数の祖父母などを割り当て、そこから属性値を継承することもできます。

    フレックス・アセット・タイプは、相互に定義したり、相互に属性値を割り当てるアセット・タイプのファミリで構成されます。(「一般的な管理」ツリーの「管理」ノードにある)フレックス・ファミリ・メーカー・ユーティリティ・を使用して、フレックス・アセット・タイプのファミリを作成します。

4.1.2 デフォルトのコアなアセット・タイプ

WebCenter SitesOracle WebCenter Sites: Engageにより、複数のコア・アセット・タイプが配信されます。WebCenter Sitesはスタック・アーキテクチャで構成されているため、コアなアセット・タイプは次の方法で利用可能になります。

  • WebCenter Sitesからテンプレート、問合せ、コレクション、SiteEntry、CSElement、リンク、およびページのアセット・タイプが配信されます。その他のモジュールおよび製品はすべて、テンプレートおよびページのアセット・タイプを使用します。

  • WebCenter Sitesから属性エディタのアセット・タイプが配信されます。作成したフレックス属性アセット・タイプはいずれもサポートされます。

  • Engageから訪問者属性、履歴属性、履歴定義、セグメント、推奨、およびプロモーションのアセット・タイプが配信されます。

これらのタイプのアセットは、アセットの取得、順序付け、編成、書式設定によって、コンテンツを保持しているアセット・タイプの表示用にフォーマットまたはロジックを提供します。つまり、コアなアセット・タイプを使用してオンライン・サイト上でコンテンツの編成と書式設定を行います。

4.1.2.1 WebCenter Sitesで配信されるアセット・タイプ

WebCenter Sitesで配信されるアセット・タイプは、基本的なサイト・デザイン・ロジックを提供します。これらのタイプのアセットは必要に応じていくつでも作成できますが、アセット・タイプ自体は変更できません。

  • 問合せ: 選択したパラメータまたは基準に基づいてアセットのリストを取得する問合せが格納されます。問合せアセットはページ・アセット、コレクション、および推奨で使用します。データベース問合せは、問合せアセットに対してSQL問合せとして「新規」フォームまたは「編集」フォームに直接書き込むか、「新規」フォームまたは「編集」フォームで特定されたエレメント(WebCenter Sitesの問合せタグが付いているもの、または検索エンジン問合せ)に書き込むことができます。

  • コレクション: 1つのタイプのアセットの順序付けリストが格納されます。コレクションの構築は、1つ以上の問合せを実行し、その結果セットからアイテムを選択し、選択したアイテムをランキングする(順序付ける)ことによって行います。このランキングされ、順序付けられたリストがコレクションです。たとえば、前夜の選挙結果に関する記事が1位になるように政治関連記事のコレクションをランキングできます。

  • ページ: 他のアセットに対する参照が格納されます。ページ・アセットの配置と設計によって、組織の表示方法やサイトのデザインが決まります。ページ・アセットの設計は、適切なコレクション、記事、イメージ・ファイル、問合せなどをページ・アセット用に選択して行います。さらに、WebCenter Sites Adminインタフェースの左側にサイトをツリー表示するサイト・ナビゲーション・ノードにページ・アセットを配置します。

    ページ・アセットとWebCenter Sitesのページがまったく異なることに注意してください。ページ・アセットは、サイト・ナビゲーション・ノードでサイト・デザイン補助として使用したり、エレメント内のデータを特定するために使用する編成構造です。WebCenter Sitesのページは、ブラウザに表示されたり、他の機構によって表示されるレンダリングされたページです。

  • テンプレート: 他のアセットをWebCenter Sitesのページおよびページレットにレンダリングするコード(XMLまたはJSPおよびJava)が格納されます。開発者は、同一タイプのアセットがすべて同じように書式設定されるように、テンプレートの標準セットを(CSElementおよびSiteEntry以外の)アセット・タイプごとにコーディングします。

    コンテンツ・プロバイダは、コード自体にアクセスしたりコーディングする必要もなく、テンプレートを選択してコンテンツ・アセットをプレビューできます。

  • CSElement: アセットをレンダリングしないコード(XMLまたはJSPおよびJava)が格納されます。通常は、複数のテンプレート(バナーなど)からコールする共通のコードに対してCSElementを使用します。また、CSElementは、EngageでDynamicList推奨の作成に必要な問合せを提供する場合にも使用します。

  • SiteEntry: WebCenter Sitesのページまたはページレットを表すものであり、そのページを生成したルート・エレメントとしてCSElementが割り当てられています。テンプレート・アセットは、エレメントとWebCenter Sitesのページの両方を表すため、SiteEntryアセットは関連付けられていません。

  • リンク: 外部WebサイトのURLが格納されます。このアセットは、外部リンクを別のアセット内に埋め込むために使用します。

  • 属性エディタ: フレックス・アセットまたはフレックス親アセットに対してフレックス属性が「新規」フォームまたは「編集」フォームに表示されるときに、その属性に対してデータ入力方法を指定する属性エディタです。これはテンプレート・アセットに類似しています。ただし、テンプレート・アセットとは異なり、属性値をオンライン・サイトに表示するときではなく、そのインタフェースに属性を表示するときにWebCenter Sitesで使用するコードを特定する場合に使用されます。

WebCenter Sitesのコンテンツ管理システムを使用する各組織のデータ・ニーズはそれぞれ異なるため、コンテンツを表示するデフォルトのアセット・タイプは用意されていません。ただし、サンプル・コンテンツのアセット・タイプがサンプル・サイトから配信されるため、そのアセット・タイプを調べて、各自のサイトに応じて変更できます。

4.1.2.2 Engageで配信されるアセット・タイプ

Engageアプリケーションから配信される複数のコアなアセット・タイプを使用して訪問者情報を収集し、訪問者別に表示される製品の配置や販促用の提供品をパーソナライズできます。

  • 訪問者属性: 1つの特性のみ(スカラー値)を指定する情報のタイプが保持されます。たとえば、years of experiencejob titlenumber of childrenのような名前の訪問者属性を作成できます。

  • 履歴属性: Engageで単一レコードとして扱われる情報のベクターを作成するためにグループ化した個々の情報タイプです。データのこのベクターが履歴定義です。たとえば、purchasesという履歴タイプは、SKUitemnamequantityおよびpriceという履歴属性で構成できます。

  • セグメント: 共通の特性(訪問者属性および履歴タイプ)に基づいて訪問者をグループに分けるアセットです。セグメントの作成は、セグメントの基となる訪問者データ・アセットを決定し、その基準に対して適格値を設定することによって行います。たとえば、アラスカの住民でフライ・フィッシングの道具一式を所有している人々や、過去6か月以内にパソコンを購入した人々などをセグメントで定義できます。

収集する訪問者データを定義して分類した後、次のアセット・タイプを使用して、オンライン・サイトにコンテンツを表示するフレックス・アセットの選択、編成、表示を行います。

  • 推奨: コレクションの拡張版のようなものです。これは、フレックス・アセット(製品や記事など)を収集、評価、ソートし、現在の訪問者が属するセグメントに基づいて、その訪問者に最適なものを推奨します。

  • プロモーション: サイト訪問者が購入しようとしているフレックス・アセット(製品など)と訪問者が資格を有するセグメントに基づいて、ある種の価値または割引を訪問者に提供するマーチャンダイジング・アセットです。

    注意:

    Engageは、フレックス・アセット・モデルのみを使用して作成されたアセットと対話します。推奨とプロモーションをプログラミングして、ベーシック・アセット・モデルを使用するアセットを操作することはできません。

4.1.3 コンテンツを表すために使用するアセット・モデルはどれか

WebCenter Sitesのコンテンツ管理システムによるオンライン・サイトの設計中に、開発チーム全員でサイト用にコンテンツを表示する必要のあるアセット・タイプを作成します。WebCenter Sitesのテンプレートおよびページ・アセット・タイプにより、ベーシック・データ・モデルとフレックス・データ・モデルのいずれを使用しているかに関係なく、データを表すアセット・タイプに対して書式設定フレームワークが提供されます。

オンライン・サイトに表示するデータを表すために選択する必要のあるアセット・データ・モデル(ベーシックまたはフレックス)は、次の2つの項で説明するように、そのデータの特性に依存します。

4.1.3.1 ベーシック・モデルを使用する場合

データに次の特性が備わっている場合は、ベーシック・モデルを選択します。

  • 固定していて、予測可能です。つまり、アセット・タイプに属性を追加する必要はありません。

  • 同種です。つまり、同一タイプのアセットはすべて類似属性を持っています。

  • 適度な数の属性を持っています。ベーシック・アセット用にアセット・タイプに割当て可能な列/属性の数に関して、データベースによる制限があります。

  • 静的なパブリッシュ方法を使用したい場合。静的なパブリッシュ方法の使用が合理的と見なされるフレックス・アセット・モデルのアプリケーションは非常に限られています。

  • 訪問者は、リンク間を移動してオンライン・サイトを参照します。

アセット・タイプのデータがスプレッドシートと推測でき、そのタイプの各アセットが単一レコードであり、すべてのレコードに同じ列が含まれている単純なフラット・テーブルと推測できる場合には、そのアセット・タイプにベーシック・アセット・モデルを使用する必要があります。

4.1.3.2 フレックス・モデルを使用する場合

データに次の特性が備わっている場合は、フレックス・モデルを選択します。

  • 数多くの属性を持ちます。たとえば、製品には数百もの属性を割り当てられる可能性があります。フレックス・ファミリ・メンバーの属性値は、列ではなく行として格納されるため、フレックス・アセットは物理的にベーシック・アセットよりも多くの属性を持つことができます。

  • これは、アセットが親アセットから属性値を継承する階層で表すことができます。

  • 属性が将来必要になるか、また、データに定期的に属性を追加する必要があるかは予測できません。

  • 同一タイプのアセット・インスタンスは大幅に変動する可能性があります。つまり、同一タイプのアセットがすべて同じ属性を持っている必要はありません。たとえば、バスタオル製品アセットには、トースタ製品アセットにはない属性が割り当てられますが、バスタオルもトースタもともに製品アセットです。

  • 訪問者は、ドリルダウン、つまりデータの属性値に基づく検索を通して移動することによって、オンライン・サイトを参照します。

  • Engageを使用する場合。

マーケットは絶えず変動しているため、製品はフレックス・アセット・モデルに適合します。翌年にどの製品が売れるか、または製品にどの属性が割り当てられるかを常に予測できるとはかぎりません。

ビジネスでアセット・タイプの属性を追加または変更するなど、アセット・タイプに変更を加える必要が生じる場合には、フレックス・データ・モデルが最適です。フレックス・アセット・モデルは、予測不能な特性を持つデータを表す必要がある場合に幅広く対応できます。

4.2 ベーシック・アセット・モデル

WebCenter Sitesからベーシック・アセット・モデルが配信されます。一般的には、ベーシック・アセット・タイプのデータ・モデルでは、アセット・タイプごとにデータベース表が1つずつ用意されます。同じタイプのベーシック・アセットには完全に同一のフィールド(プロパティ)があり、単一タイプのアセットはすべて、同じデータベース表に格納されます。WebCenter Sitesのコアなアセット・タイプのほとんどで、ベーシック・データ・モデルが使用されます。

ベーシック・アセット・タイプを作成するには、AssetMakerユーティリティを使用します。PROPERTYというカスタム・タグを使用してアセット記述子ファイルと呼ばれるXMLファイルをコーディングし、AssetMakerを使用してファイルをアップロードします。プロパティは列にもフィールドにもなります。PROPERTY文では、該当するタイプのアセットを格納する表に列を定義し、WebCenter Sitesのフォームでその列に対応するフィールドへのデータ入力方法を定義します。

アセット記述子ファイルのコーディングとベーシック・アセット・タイプの新規作成の詳細は、「ベーシック・アセット・タイプの設計」を参照してください。

次の内容について理解してください。

4.2.1 ベーシック・アセット間の関係

ベーシック・アセット・タイプは、非常に単純な親子関係を備えています。この関係を使用して、アセットの相互関連付けやリンクを実行します。オンライン・サイト用にオンライン・ページを設計する際に、アセットの子または親アセットを識別し、抽出して、適切な方法で表示するテンプレート・エレメントをコーディングします。

ベーシック・アセットで相互に割当て可能な関係をアソシエーションおよび名前なし関係といいます。個々のアセット間でこのような関係が発生する場合、その関係はAssetRelationTree表に書き込まれます。

4.2.1.1 アソシエーション

アソシエーションは定義済のアセット・タイプ固有の関係であり、WebCenter Sitesのアセット・フォームにフィールドとして表されます。AssetMakerを使用してアセット・タイプを作成した後、そのアセット・タイプの「アソシエーション」フォームを使用してアソシエーション・フィールドを作成します。

アソシエーションを使用して、システム内でアセット・タイプにとって意味のある関係を設定し、その関係の名前を使用して関連アセットを識別し、それをサイト・ページに適切な方法で表示します。たとえば、イメージ・ファイル・アセット・タイプとのアソシエーションとして、Main Imagefile、Teaser ImageFile、Spot ImageFileなどの3つのアソシエーションがアセットの名前付き記事に割り当てられているサイトでは、これらのアソシエーションを通して記事にリンクされるイメージ・ファイルを表示するように、記事テンプレートがコーディングされます。アソシエーションによって、テンプレートは個々の記事アセットの表示に適切なイメージ・ファイルを決定できます。コンテンツ・プロバイダが「新規」記事フォームおよび「編集」記事フォームのイメージ・ファイル・フィールドでイメージ・アセットを選択すると、選択されたイメージ・ファイル・アセットが記事アセットの子になります。(この同じイメージ・ファイル・アセットが、他の記事の子になる場合もあることに注意してください。)

アセット・タイプ間のアソシエーションを新規作成すると、WebCenter Sitesではそのタイプのアソシエーションに対する行がAssociation表に作成されます。さらに、アセットを作成して別のアセットの名前をアソシエーション・フィールドに指定すると、その関係がAssetRelationTree表に書き込まれます。

4.2.1.2 名前なし関係

名前なし関係はコレクション作成時に発生し、コレクション内のアイテムはコレクションの子となります。

4.2.2 カテゴリ、ソースおよびサブタイプ

ベーシック・アセットを編成または分類する方法として、このほかにカテゴリ、ソース、サブタイプの3つがあります。カテゴリとサブタイプはアセット・タイプに固有のものです。ただしソースは、コンテンツ管理サイトのすべてのアセット・タイプに当てはまります。したがって、ソースはサイト固有になります。

4.2.2.1 カテゴリ

categoryは、サイトに適用される規則に従ってアセットを分類する際に使用できるデフォルトの列およびフィールドです。すべてのベーシック・アセット・タイプには、category列がデフォルトで設定されていますが、これを使用する必要はありません(これは必須フィールドではありません)。たとえば、バンキング・サイトには、Personal Finance、Banking and Loans、Rates and Bonds、Newsなどのカテゴリがあります。これらのカテゴリによって識別された記事は、選択基準としてカテゴリを使用する問合せによって選択され、特定のサイト・ページに適宜表示されます。

ベーシック・アセット・タイプを新規作成すると、そのタイプのアセットに対するカテゴリ・コードがAssetMakerによって作成されます。さらに、この機能を使用するには、新規アセット・タイプに対して「カテゴリ」フォームを使用し、カテゴリを追加作成します。

新規カテゴリはCategory表に書き込まれます。この表は、ベーシック・アセット・モデルを使用するアセット・タイプに対する「新規」アセット・フォームおよび「編集」アセット・フォームの「カテゴリ」フィールドに対する参照表として機能します。

「カテゴリ」フィールドおよび列は、サイト・デザインを目的としています。オンライン・サイトの問合せおよび問合せアセットにカテゴリを使用できますが、使用しなくても差し支えありません。WebCenter Sitesアプリケーションの機能はいずれも、カテゴリ・コードに基づいてはいません。(例外として、このフィールドを使用している場合は、それに基づいてアセットを検索できます。)

注意:

SQL Serverでは、属性カテゴリで大文字と小文字を区別できません。たとえば、SQL Serverを使用している場合は、MyCategoryという名前のカテゴリとmycategoryという名前のカテゴリを同時に使用することはできません。

4.2.2.2 ソース

sourceは、アセットが最初に作成された場所の特定に使用できる列およびフィールドです。WebCenter Sitesは、オンライン・サイトの設計でこの機能が使用できるように(「ソース」フォームを通して)管理サポートを提供していますが、デフォルトでは、source列は、Article以外のベーシック・アセット・タイプのプライマリ記憶域表には存在しません。ベーシック・アセット・タイプでソースを使用するには、ソースのアセット記述子ファイルにプロパティ文を含める必要があります。

たとえば、バンキング・サイトには、WireFeed、Asia Pulse、UPIなどのソースがあります。一部のオンライン・ページでは、ソース列の値に基づいて記事を検索する問合せの結果に基づいて表示するようにストーリーが選択されます。

ベーシック・アセット・タイプを新規作成した後で、必要に応じて、「一般的な管理」ツリーの「管理」ノードの「ソース」フォームで新規ソースを追加します。新規ソースはSource表に書き込まれます。この表は、ベーシック・スタイル・アセットに対する「新規」アセット・フォームおよび「編集」アセット・フォームの「ソース」フィールドに対する参照表として機能します。

4.2.2.3 サブタイプ

サブタイプという概念から、アセット・タイプをさらに分類する方法が生まれました。フレックス・アセット・データ・モデルでは、定義アセット・タイプによってフレックス・アセットおよびフレックス親アセットのサブタイプが作成されます。ベーシック・アセット・データ・モデルでは、サブタイプの概念は、アセット・タイプに対するプライマリ記憶域表のsubtype列を通して実現されます。

WebCenter Sitesアプリケーションでは、アセットの「サブタイプ」の値を様々な方法で使用します。

  • テンプレート・アセットの場合、サブタイプは、テンプレートが書式設定するアセットのタイプを意味します。記事を書式設定するテンプレートは、イメージを書式設定するテンプレートとはサブタイプが異なるテンプレートです。記事アセットを作成する場合は、記事を書式設定するテンプレートのみが、そのアセットの「新規」フォームまたは「編集」フォームの「テンプレート」フィールドにオプションとして表示されます。

    また、Oracle WebCenter Sites: Contributorインタフェースを使用して、所定のテンプレートを使用して表示されるサブタイプを指定することもできます。たとえば、Webサイトでスポーツおよびニュースという2つのサブタイプの記事アセットを使用する場合、スポーツ・サブタイプの記事のみを表示するテンプレートを作成できます。

  • 問合せアセットの場合、サブタイプは、問合せが返すアセットのタイプを意味します。記事を返す問合せアセットは、イメージ・ファイルを返すものとは異なるサブタイプの問合せアセットです。

  • コレクション・アセットの場合、サブタイプは、コレクションが保持するアセットのタイプを意味します。記事を保持するコレクションは、イメージ・ファイルを保持するものとは異なるサブタイプのコレクション・アセットです。

  • 設計したベーシック・アセット・タイプの場合、サブタイプはレンダリングされた方法に基づいてアセットを分類するように機能します。パブリッシュ先それぞれで、アセット・タイプの各サブタイプにデフォルトのテンプレートを定義できます。

アセットのパブリッシュ先に基づいて、特定のタイプのアセットに別のテンプレートを割り当てる必要がある場合にのみ、サブタイプを作成する必要があります。

任意のサブタイプを作成するアセット・タイプの「新規」フォームおよび「編集」フォームに「サブタイプ」というフィールドが表示されます。このフィールドのドロップダウン・リストに、そのアセット・タイプに用意されているサブタイプがすべて表示されます。

注意:

フレックス・アセット・モデルでは、定義アセット・タイプがサブタイプとして機能します。たとえば、avisportsサンプル・サイトのフレックス・ファミリには、Articleという名前の定義があります。つまり、記事アセットの1つのサブタイプとして、Articleサブタイプがあります。

アセット・タイプの中には、サブタイプが暗黙的に設定されていて変更できないものもあります。また、ユーザーがContributorインタフェースを使用してアセットのサブタイプを選択できるアセット・タイプもあります。表4-1に、WebCenter Sitesのアセット・タイプを、構成可能なサブタイプがあるかどうかに応じて一覧表示します。

表4-1 暗黙的なサブタイプと構成可能なサブタイプ

暗黙的なサブタイプ 構成可能なサブタイプ
  • すべてのフレックス・アセット

  • 問合せアセット

  • コレクション・アセット

  • テンプレート・アセット

  • ページ・アセット

  • すべてのカスタム・ベーシック・アセット(AssetMakerで作成)

  • 記事アセット

  • イメージ・アセット

  • リンクセット・アセット

  • 推奨アセット

  • リンク・アセット

構成可能なサブタイプの設定の詳細は、「ベーシック・アセット・タイプの設計」を参照してください。

4.2.3 ベーシック・アセット・タイプとデータベース

ベーシック・アセット・タイプにはプライマリ記憶域表が1つありますが、WebCenter Sitesでは、ベーシック・アセットの基本情報は他の表に保持されています。ベーシック・タイプのアセットを新規作成すると、WebCenter Sitesでは次のデータベース表に書き込まれます。

  • そのタイプのアセットを保持するプライマリ・データベース表。たとえば、各ページ・アセットではPage表に1行が表示され、各記事アセットではArticle表に1行が表示されます。

    これらの表には、アセットの名前、そのオブジェクトID、作成者、使用するテンプレートなど、アセットの属性またはフィールド値がすべて格納されます。この表の名前は、アセット・タイプの名前と常に一致します。

    ベーシック・アセット・タイプを新規作成すると、このプロセスの一環として、アセット・タイプに対するプライマリ記憶域表(WebCenter Sitesのオブジェクト表の1つ)がAssetMakerユーティリティによって作成されます。

  • アセットに他のアセットとのアソシエーションが設定されている場合は、AssetRelationTree表。ベーシック・アセットに設定可能な関係は、「ベーシック・アセット間の関係」で説明しています。

  • アセットへのアクセスを許可するコンテンツ管理サイト(パブリケーション)を指定するAssetPublication表。サイト(パブリケーション)間でアセットが共有される場合は、pubidごとに行エントリがあります。pubidは、サイト(パブリケーション)を識別する一意の値です。

  • アセットがページ・アセットの場合は、SitePlanTree表。この表には、サイト・ナビゲーションにおけるページ・アセットの階層位置に関する情報が格納されます。

コンテンツを表すアセットを表示するテンプレートを開発する場合、先行リストの表から情報を抽出して表示するエレメントを、XMLタグまたはJSPタグを使用してコーディングします。

各種サンプル・アセット・タイプに対して「新規」フォームおよび「編集」フォームを調べ、Explorerツールを使用してWebCenter Sitesデータベース内の表を調べてください。

注意:

これらの表のいずれでも、データの変更にはExplorerツールを使用しないでください。アセットとそれに関連する表の編集すべてには、WebCenter Sitesインタフェースのみを使用してください。

4.2.3.1 テンプレート・アセット・タイプとデータベース

テンプレート・アセット・タイプはコアのアセット・タイプですが、ベーシック・アセット・モデルを使用しません。これは、次のデータベース表にエントリを持つコンプレックス・アセット・タイプです。

  • Template表(プライマリ記憶域表)

  • SiteCatalog

  • ElementCatalog

テンプレート・アセットを新規作成すると、WebCenter Sitesでは、SiteCatalog表とElementCatalog表の両方で、そのアセットに対するエントリが自動的に作成されます。

4.2.3.2 ベーシック・アセット・タイプのデータベース表のデフォルトの列

WebCenter Sitesは、基本機能用にデフォルトの列を複数必要とします。したがって、該当するアセット・タイプに対してアセット記述子ファイルに定義された列のほかに、表4-2に示すように、列がAssetMakerによってアセット・タイプのプライマリ記憶域表にそれぞれ作成されます。

表4-2の列に対してプロパティ文を含めるようにアセット記述子ファイルをコーディングする必要はありません。

表4-2 アセット・タイプのプライマリ記憶域表の列

デフォルトの列(フィールド)名 説明 WebCenter Sitesインタフェースでの表示場所

id

アセット作成時にWebCenter Sitesによって自動生成される、各アセットの一意のID。

このフィールドの値は変更できません。

フォーム:

  • 調査

  • 編集

  • ステータス

  • 検索フォーム

name

アセットの一意の名前。名前は64個の英数字に制限されています。

フォーム:

  • 新規

  • 編集

  • 調査

  • ステータス

検索結果リストにもあります。

description

名前のみよりも多くの情報を提供するアセットの短い説明。

フォーム:

  • 新規

  • 編集

  • 調査

  • ステータス

検索結果リストにもあります。

status

アセットのステータスで、StatusCode表から取得した次のステータス・コードのいずれか。

PL: 作成済

ED: 編集済

RF: 受信済(たとえばXMLPostから)

UP: Xcelerate 2.xからアップグレード済

VO: 削除済(void)

このフィールドの値はWebCenter Sitesで制御されます。このフィールドは手動では編集できません。

フォーム: ステータス(アセットのステータスがPL(作成済)とED(編集済)のいずれかの場合)

ステータスがVO (削除済)であるアセットが、WebCenter SitesのWindowsインタフェースのどこにも表示されないことに注意してください。

createdby

アセットを元々作成したユーザーのID。このユーザー名はSystemUsers表から取得されます。

このフィールドの値はWebCenter Sitesで制御されます。手動では編集できません。

フォーム: ステータス

また、このタイプのアセットにリビジョン追跡が有効になっている場合は、「リビジョン履歴」リスト。

createddate

アセットが初めてデータベースに書き込まれた日時。

このフィールドの値はWebCenter Sitesで制御されます。手動では編集できません。

フォーム: ステータス

また、このタイプのアセットにリビジョン追跡が有効になっている場合は、「リビジョン履歴」リスト。

updatedby

いずれかの方法でアセットを最後に変更したユーザーのID。このユーザー名はSystemUsers表から取得されます。

このフィールドの値はWebCenter Sitesで制御されます。手動では編集できません。

フォーム: ステータス

また、このタイプのアセットにリビジョン追跡が有効になっている場合は、「リビジョン履歴」リスト。

updateddate

ステータス・フィールドの情報が現在の状態に変更された日付。

このフィールドの値はWebCenter Sitesで制御されます。手動では編集できません。

フォーム: ステータス

また、このタイプのアセットにリビジョン追跡が有効になっている場合は、「リビジョン履歴」リスト。

startdate

プロモーション・アセット(Engageアセット)には、ライブ・システムで訪問者のページに表示可能な期間が設定されています。この列には、プロモーションの期間の開始時刻が格納されます。

プロモーション・アセット・タイプのみが、この列を使用するデフォルトのアセット・タイプです。

アセット・タイプにstartdateフィールドとenddateフィールドを使用する場合は、「ベーシック・アセット・タイプの作成」例5-7を参照してください。

フォーム:

  • プロモーション・アセットに対する「期間」、「編集」および「調査」。

  • 他のアセット・タイプに対して有効化する場合は、「新規」、「編集」、「調査」および「ステータス」。

enddate

プロモーション・アセット(Engageアセット)の場合、この列には、プロモーションの期間の終了時刻が格納されます。

プロモーション・アセット・タイプのみが、この列を使用するデフォルトのアセット・タイプです。

フォーム:

  • プロモーション・アセットに対する「期間」、「編集」および「調査」。

  • 他のアセット・タイプに対して有効化する場合は、「新規」、「編集」、「調査」および「ステータス」。

subtype

アセットのサブタイプの値。サブタイプは、アセットごとに異なる方法で設定されます。詳細は、「サブタイプ」を参照してください。

フォーム:

  • テンプレート・アセット(「アセット・タイプ」フィールド)の場合は、「新規」および「編集」

  • 問合せアセット(「問合せの結果」フィールド)の場合は、「新規」および「編集」

  • サブタイプが構成されているアセット・タイプの場合は、「新規」および「編集」

  • デフォルトのテンプレートの設定。

filename

ディスクへのエクスポートのパブリッシュ方法の使用中に、このアセットに作成されたファイルに使用する名前。

ページ・アセット・タイプおよび記事アセット・タイプのみが、デフォルトでこのフィールドが有効になっているアセット・タイプです。

アセット・タイプにfilenameフィールドを使用する場合は、「ベーシック・アセット・タイプの作成」例5-7を参照してください。

フォーム:

  • ページ・アセットおよび記事アセットの場合は、デフォルトで「新規」および「編集」

  • このフィールドが有効になっている他のアセット・タイプの場合は、「新規」および「編集」

path

ディスクへのエクスポートのパブリッシュ方法でアセットをファイルにレンダリングする際、そのアセットの子アセットから生成されるエクスポート済ページ・ファイルに使用するディレクトリ・パス。

ページ・アセット・タイプおよび記事アセット・タイプのみが、デフォルトでこのフィールドが有効になっているアセット・タイプです。

アセット・タイプにfilenameフィールドを使用する場合は、「ベーシック・アセット・タイプの作成」例5-7を参照してください。

フォーム:

  • ページ・アセットおよび記事アセットの場合は、デフォルトで「新規」および「編集」

  • このフィールドが有効になっている他のアセット・タイプの場合は、「新規」および「編集」

template

アセットのテンプレート。

これは、ディスクへのエクスポートを使用してパブリッシュされるか、ライブのダイナミック配信システムでレンダリングする際に、アセットのレンダリングに使用されるテンプレートです。

このテンプレートは、アセットがディスクへのエクスポートのパブリッシュ方法で承認されている場合の依存性の計算にも使用されます。ただし、アセット・タイプにサブタイプが設定されていて、そのサブタイプに基づいてデフォルトの承認テンプレートがアセットに割り当てられている場合を除きます。

フォーム:

  • 新規

  • 編集

  • 調査

  • ステータス

category

アセットに割り当てられたカテゴリがある場合は、そのカテゴリのカテゴリ・コード。

categoryフィールドを使用してアセットを編成する場合は、「一般的な管理」ツリーの「管理」ノードの「アセット・タイプ」フォームでカテゴリ・コードを追加します。

フォーム:

  • 新規

  • 編集

  • 調査

  • ステータス

urlexternaldoc

非推奨

アセットが、WebCenter Sitesインタフェースでなくサイト・デスクトップ・インタフェースで入力された場合、そのアセットのソースである外部ドキュメントを格納します。

このフィールドの値はWebCenter Sitesで制御されます。手動では編集できません。

該当なし

externaldoctype

非推奨

urlexternaldocフィールドに保持されているファイルのMIMEタイプ。

このフィールドの値はWebCenter Sitesで制御されます。手動では編集できません。

該当なし

urlexternaldocxml

将来の使用のために予約されています。

該当なし

4.3 フレックス・アセット・モデル

フレックス・アセット・モデルの主な特徴は次のとおりです。

  • フレックス・アセットは、フレックス定義によって定義されます。フレックス定義は、個々のフレックス・アセットをどのフレックス属性で構成するかを決定するアセット・タイプです。フレックス定義により、フレックス・アセット・タイプのサブタイプが作成されます。

  • 定義アセット・タイプによってフレックス・アセットおよびフレックス親アセットのサブタイプが作成されるため、フレックス・アセット・タイプまたはフレックス親アセット・タイプの個々のインスタンスのバリエーションを広げることができます。

  • フレックス属性はアセットです。フレックス・データ・モデルによって、フレックス属性を既存のフレックス・アセット・タイプに随時追加(または削除)できます。

  • フレックス・フィルタは1つのフレックス属性からデータを取り込み、それを変換または評価し、フレックス・アセットの保存時に別のフレックス属性に結果を格納できます。フレックス・フィルタのアクションによって得られた値を、導出された属性値といいます。フレックス・フィルタの詳細は、「フレックス・フィルタの作成」を参照してください。

  • フレックス・アセットは属性値を(導出値でさえも)フレックス親から継承できるため、データを階層で表すことが可能になります。

ベーシック・アセット・タイプの場合とは異なり、個々のフレックス・アセット・タイプは作成せず、かわりにアセット・タイプのフレックス・ファミリを作成します。

次の内容について理解してください。

4.3.1 フレックス・ファミリ

フレックス・アセット・データ・モデルは、アセット・タイプのファミリの観点から考えることができます。フレックス・ファミリには6つのアセット・タイプがあります。表4-3に示すように、5つは必須であり、6つ目はオプションです。

表4-3 フレックス・ファミリのメンバー

フレックス・ファミリのメンバー ファミリ当たりの数

フレックス属性アセット・タイプ

1つ

フレックス親定義アセット・タイプ

1つ以上

フレックス定義アセット・タイプ

1つ以上

フレックス親アセット・タイプ

1つ以上

フレックス・アセット・タイプ

1つ以上

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

ゼロまたはそれ以上

アセット・タイプの中には、開発者がデータ・モデルに他のアセット・タイプを作成するために排他的に使用されるものがありますが、フレックス・アセット・タイプは常に、コンテンツ・プロバイダが当該タイプのアセットを作成するために使用します。(必要に応じて、認証ユーザーに、追加のフレックス・ファミリ・メンバーへのアクセス権を与えることができます。)

フレックス・ファミリを作成するには、Adminインタフェースの「フレックス・ファミリ・メーカー」ノードの「新規ファミリの追加」(「一般的な管理」ツリーの「管理」ノードの「フレックス・ファミリ・メーカー」にあります)をダブルクリックして、「新規フレックス・ファミリの追加」フォームにアクセスします。このフォームで、ファミリ内の各アセット・タイプに名前を付けます。たとえば、製品ファミリという名前のフレックス・ファミリがあるとします。フレックス・アセットは製品アセット、フレックス属性は製品属性というように呼ばれます。

フレックス・ファミリのキー・メンバーはフレックス・アセットです。フレックス・アセットは、データベースから抽出してオンライン・サイト(配信システム)の訪問者に表示するデータの単位です。ファミリ内の他のメンバーのすべては、なんらかの点でフレックス・アセット・メンバーの一部となります。

フレックス・アセットがキーであるのに対し、属性はフレックス・アセット・モデルの基盤です。属性は情報の個々のコンポーネントです。たとえば、色、高さ、作成者、ヘッドラインなどがあります。属性は、フレックス・アセットおよびフレックス親の定義に使用します。フレックス・アセットは親から属性値を継承し、親はその親から属性値を継承する、となります。

どの属性がどのフレックス・アセットおよびフレックス親を記述するかを決定するには、フレックス定義およびフレックス親定義のアセット・タイプを使用してテンプレートを作成します。フレックス親とその定義によって、属性値の継承が実装されます。

フレックス親もフレックス・アセットも、2つのタイプの属性で定義することはできません。サイトには、2つ以上の種類の属性があります。たとえば、製品属性とコンテンツ属性です。製品アセット(製品フレックス・ファミリのフレックス・アセット・メンバー)は製品属性のみで定義できます。その定義にコンテンツ属性を含めることはできません。

フレックス・フィルタによって、属性値に対してなんらかのアクションを実行し、フレックス・アセットの保存時にアクションの結果を保存するように構成できます。たとえば、WordファイルのテキストをHTMLコードに変換するフィルタを構成できます。

要するに、フレックス・ファミリのフレックス・アセット・メンバーはファミリの理由であり、表示するコンテンツの単位です。フレックス・ファミリのその他のメンバーはフレックス・アセットのデータ構造を提供します。ただし、ファミリのメンバーはすべてアセットであるため、リビジョン追跡、ワークフロー、検索など、WebCenter Sitesの標準機能が利用できます。

4.3.1.1 親アセット、子アセットおよびフレックス・アセット

フレックス・アセット・データ・モデルを使用している場合、親子関係という語句は、フレックス・アセットとそのフレックス親アセットの関係を指します。この親子関係は、ベーシック・アセットがアセット・アソシエーションを通して得る親子関係とは異なります。

フレックス・アセットがベーシック・アセットと同種の親子関係を持つことは可能ですが、次の理由により、現実に行われるとは考えられません。

  • WebCenter Sitesにはタグ・ファミリASSETSETおよびSEARCHSTATEがあり、表示するフレックス・アセットを選択する場合は、コレクション・アセット・タイプおよび問合せアセット・タイプのかわりに使用します。このタグ・ファミリの詳細は、「assetsetおよびsearchstate」を参照してください。

  • フレックス・アセットはアソシエーションを必要としません。たとえば、製品などのフレックス・アセットにイメージ・ファイルを割り当てるには、イメージ・ファイルを特定する属性を作成して、それをフレックス・アセットの定義に割り当てることができます。

4.3.2 avisportsサンプル・サイトのフレックス・ファミリ

avisportsサンプル・サイトでは、調査可能なフレックス・ファミリが1つあります。サンプル・フレックス・アセット・タイプの次の説明を理解しやすくするためにこの項をお読みになる際には、Contributorインタフェースの記事アセットおよびイメージ・アセットをいくつか調査してください。

avisportsフレックス・ファミリ

avisportsサンプル・サイトのフレックス・ファミリでは、avisportsサンプル・サイトに示す記事およびイメージのデータ構造が提供されます。スポーツ記事のオンラインWebサイトが作成されます。

次に、avisportsフレックス・ファミリのアセット・タイプを示します。

  • ContentAttribute: avisportsサンプル・サイトの記事、イメージおよび親の属性の定義に使用するフレックス属性アセット・タイプです。たとえば、ヘッドライン、サブヘッドライン、著者、関連イメージなどの名前の属性があります。

  • ContentParentDef: avisportsサンプル・サイトのフレックス・ファミリのフレックス親定義アセット・タイプです。これは、親のサブタイプの作成に使用します。1つあります: カテゴリ。

  • ContentDef: avisportsサンプル・サイトのフレックス・ファミリのフレックス定義アセット・タイプです。ArticleArticleImageImageの各定義のサブタイプの作成に使用されます。このサイトのすべてのAVIArticleアセットは、Article定義で定義されます。このサイトのAVIImageアセットは、ImageまたはArticleImageのいずれかの定義によって定義されます。

  • ImageCategory: ランニング・イメージ、スキー・イメージ、野球イメージなどのイメージのカテゴリを表すフレックス親です。

  • ArticleCategory: ランニング記事、野球記事、スキー記事どの記事のカテゴリを表すフレックス親です。

  • AVIImage: アップロードされたイメージ・ファイルを格納するフレックス・アセット・タイプです。イメージ・アセットは、avisports Webサイトに示されるイメージを表します。

  • AVIArticle: 記事のテキストと関連情報を格納するフレックス・アセット・タイプです。ヘッドライン、署名行、サブヘッドライン、本文などの属性があります。

avisportsサンプル・サイトのフレックス・ファミリには、3つのコンテンツ定義があり、コンテンツ・アセット・タイプは2つのみであることに注意してください。記事定義は、AVIArticleアセット・タイプによって使用されます。ImageおよびArticleImage定義は、どちらもAVIImageアセット・タイプによって使用されます。

4.3.3 フレックス属性

フレックス属性はフレックス・アセット・モデルの基盤です。属性は、情報の1単位を表します。属性アセットは、フレックス・アセットおよびフレックス親の定義に使用します。これらは、フレックス・アセットおよびその親に対して、「新規」フォームおよび「編集」フォームでフィールドとして表示されます。

属性は、ベーシック・アセットのプロパティに似ています。プロパティと同様に、属性はWebCenter Sitesデータベース表の列に格納できるデータの種類を定義し、フォーム内のフィールドを記述します。ただし、プロパティがアセット・タイプのデータベース表に列を定義するのに対し、属性は専用のデータベース表を持つアセットです。

このデータ構造(列としてではなく、アセットとしての属性)は、フレックス・アセットの柔軟性が高い理由の1つです。

繰り返しますが、フレックス親もフレックス・アセットも、2つのタイプの属性で定義することはできません。たとえば、製品フレックス・ファミリとコンテンツ・フレックス・ファミリが含まれるサイトでは、製品アセット・タイプは製品属性のみで定義できます。その定義にコンテンツ属性を含めることはできません。

注意:

削除したフレックス属性によって格納されたデータは、データベースから削除されません(このデータは問合せによって引き続き返されます)。

4.3.3.1 属性のデータ型

属性のデータ型は、wcs_properties.jsonファイルに配置されているWebCenter Sitesデータベースのプロパティによって定義されます(「コア」に分類)。

表4-4に、フレックス属性のデータ型、データ型を定義するプロパティ、およびプロパティが配置されているファイルを一覧表示します。

表4-4 フレックス属性のデータ型

プロパティ

date

cc.datetime

float

cc.double

integer

cc.integer

money

cc.money

string

cc.varchar

text

cc.bigtext

asset

cc.bigint

blob

cc.bigint

4.3.3.2 属性のデフォルトの入力スタイル

フレックス属性は、「新規」フォームまたは「編集」フォームにフィールドとして表示されるときに、そのデータ型に基づいたデフォルトの入力スタイルが設定されます。次のリストに、フレックス属性のデフォルトの入力スタイルを示します。

  • Date: 図4-2のように表示される入力ボックス。

  • Float: 小数部の桁を強制表示したテキスト・フィールド。

  • Integer: テキスト・フィールド。

  • Money: 通貨フォーマットを強制表示したテキスト・フィールド。

  • String: 最大255文字を受け入れるテキスト・フィールド。

  • Text: テキスト・ボックス。受け入れられる文字数は、使用しているデータベースおよびデータベース・ドライバによって異なります。

  • Asset: 指定されたタイプの全アセットを示したドロップダウン・リスト。

  • Blob: 「参照」ボタンが設定されたテキスト・フィールド。

デフォルトの入力スタイルを使用するかわりに、属性エディタを作成して、それを属性に割り当てることができます。属性エディタはアセットですが、属性フィールドへのデータ入力方法を指定するという点で、ベーシック・アセットに対するアセット記述子ファイル内のINPUTFORM文にも似ています。属性エディタの詳細は、「属性エディタの設計」を参照してください。

4.3.3.3 外部属性

外部表に格納されるフレックス属性、つまり外部属性を設定できます。外部属性は、次の制約を受けます。

  • 外部表をWebCenter Sitesで登録する必要があります。つまり、外部表はSystemInfo表でWebCenter Sitesに対して識別される必要があります。

  • 外部表には、各行を一意に識別する識別子が保持される列を設定する必要があります。識別子は20文字未満とします。

  • 外部表には、任意の適切なデータ型が使用可能な属性データ値用に予約された列を設定する必要があります。たとえば、属性の型がstringの場合は、文字列に適切なデータ型を使用する必要があります。

4.3.4 フレックス親とフレックス親定義

フレックス親とそのフレックス親定義は編成構造であり、次の2つのアクションを実行します。

  • 属性値の継承を実装します。親定義は継承ルールを設定(記述)し、親はこれらの継承ルールに従って属性値をフレックス・アセットに渡します。

  • WebCenter Sitesインタフェースでアセットを表示するタブにおけるフレックス・アセットの位置を決定します。タブ上にツリー形式で表示される親とフレックス・アセットの階層は、親定義を使って設定された階層に基づきます。

それぞれの親アセット・タイプには、親定義で指定されたように、専用の属性セットがあります。親定義によって、WebCenter Sitesインタフェースに表示されるフォームが作成されます。

親を使用してフレックス・アセットを編成または管理するには、親の子アセットごとに変更する必要のない標準の属性値を渡します。

親アセット・タイプは、WebCenter Sitesインタフェース内で、開発者やコンテンツ・プロバイダがデータを表示する方法と、データと対話する方法に影響します。

たとえば、CategoryおよびSubCategoryという2つの親定義がある、ProductSiteという名前のサイトがあるとします。これらは、(Contributorインタフェース内の)「コンテンツ・ツリー」で構造体を作成することのみを目的としています。

製品親の定義がCategoryの場合、製品親は「コンテンツ・ツリー」の最上位レベルに表示されます。製品親の定義がSubCategoryの場合、図4-3に示すように、製品親は第2レベルに表示され、専用の親が指定されます。

図4-3 「コンテンツ・ツリー」の「製品」ノード

図4-3の説明が続きます
「図4-3 「コンテンツ・ツリー」の「製品」ノード」の説明

図4-3では、Compact Fluorescent、Halogenなど、最上位レベルの製品親が複数あります。これらはカテゴリ定義を使用して作成されています。Double BIAX and 2-Pin、Double BIAX and 4-pinなどの次レベルの製品親は、サブカテゴリ定義を使用して作成されています。

4.3.4.1 ビジネス・ルールと分類

親定義および親アセットの目的は、データの分類を表現することのみではありません。エンド・ユーザーによる入力エラーのリスクなしで、ビジネス・ルール(ロジック)を適用できるようにもします。特定の定義のフレックス・アセットを作成した場合は、継承する必要のある依存性が存在する場合、そのフレックス・アセットには親を設定する必要があります。

たとえば、次の5つの属性を持つトースタという単純な製品があるとします。

  • SKU = 1234

  • 説明 = トースタ

  • 価格 = 20

  • CAT1 = キッチン

  • CAT2 = 電化製品

CAT2の値が電化製品の場合、CAT1の値にはキッチンのみを指定できます。つまり、CAT1の値とCAT2の値の間にはビジネス・ルールの依存性が存在します。

このような場合、コンテンツ・プロバイダは両方のフィールドを入力する必要はありません。データを手動入力しなければならないフィールドはすべて、入力エラーによって不正なデータが保持される可能性があるため、継承を使用してビジネス・ルールを適用することをお薦めします。

  • CAT1とCAT2を親定義にします。

  • キッチンをCAT1の定義で作成された親にして、電化製品をCAT2の定義で作成された親にします。

  • キッチンを電化製品のフレックス親にします。

コンテンツ・プロバイダが製品を作成するときに、CAT2に対して電化製品を選択した場合、CAT1の値は継承によって自動的に設定されます。

4.3.5 フレックス・アセットとフレックス定義アセット

フレックス・アセットは、フレックス・ファミリの理由です。これは、製品、表示されるコンテンツの一部など、最終目標を表すアセット・タイプです。たとえば、avisportsサンプル・サイトには次の2つのフレックス・アセット・タイプがあります。

  • Article (フレックス): テキストを保持するアセット。

  • Image (フレックス): アップロードしたイメージ・ファイル保持するアセット。

ファミリ内の他のメンバーのすべては、なんらかの点でフレックス・アセット・メンバーの一部となります。

フレックス定義アセットは、靴、トースタ、ボーリングのボール、パンフレット、ニュースレター、記事など、フレックス・ファミリ内で1種類のフレックス・アセットを記述します。フレックス定義アセットは、Contributorインタフェースで表示されるフォームに直接影響するテンプレートです。

avisportsサンプル・サイトでは、記事の定義が1つ(Article)、イメージの定義が2つ(ImageおよびArticleImage)あります。フレックス定義は必要に応じていくつでも作成できます。たとえば、スポーツと天気の記事を提供するニュース・サイトでは、スポーツ用に設定されたフレックス定義と、天気用に設定された別のフレックス定義アセットが必要になります。

個々のフレックス・アセットは、1つのフレックス定義アセットのみに従って作成します。Image定義とArticleImage定義の両方を使用したイメージは作成できませんが、Image定義を使用するイメージを作成してから、ArticleImage定義を使用する別のイメージを作成することはできます。

フレックス・アセットには、作成時に直接割り当てられた属性のみでなく、親から継承する属性も割り当てられます。これには複数のフレックス親を割り当てることができ、親に親があるかどうかは設計した階層構造によって異なります。図4-4に、3つのレベルの階層のサイトの例を示します。

Other Compact Fluorescent製品親には専用の親(Compact Fluorescent)と複数の子(10576、10578など)が割り当てられています。

4.3.6 フレックス・ファミリとデータベース

フレックス・ファミリ内のアセット・タイプには、それぞれ複数のデータベース表があります。たとえば、フレックス・アセット・メンバーには6つの表、フレックス親タイプには5つの表があります。このデータ・モデルでは、フレックス・ファミリ内のフレックス・メンバーは、ベーシック・アセット・モデルの場合よりも多くのフィールドをサポートできます。

フレックス・モデルで最も重要な4つの表のタイプは次のとおりです。

  • アセット・タイプのプライマリ表

  • _Mungo表: フレックス・アセットおよびフレックス親アセットのみの属性値を保持します。

  • MungoBlobs表: blob型のすべてのフレックス属性の値を保持します。

  • _AMap表: フレックス・アセットおよびフレックス親のみの属性値の継承に関する情報を保持します。

その他にも複数の表があり、これらの表にはフレックス・アセット間の関係に関する基礎データだけでなく、追加の構成情報(検索エンジンの詳細、外部属性の場所、パブリッシュ情報、リビジョン追跡が有効になっている場合はバージョン情報)も格納されています。

さらに、特定の種類のサイト情報は、ベーシック・アセットで使用される表と同じ表に保持されます。たとえば、AssetPublication表では、アセット・タイプが有効化されているコンテンツ管理サイトを指定します。

フレックス・アセットを表示するテンプレートを開発する場合、_Mungo表およびMungoBlobs表から情報を抽出して表示するエレメントをコーディングします。

4.3.6.1 フレックス・アセット・タイプのデータベース表のデフォルトの列

ベーシック・アセット・タイプと同様に、各フレックス・アセット・タイプには、アセット・タイプの名前を採用したプライマリ記憶域表があります。たとえば、avisportsサンプル・サイトで、articleという名前のアセット・タイプのプライマリ表はAVIArticleで、このサンプル・サイトのイメージ・アセット・タイプのプライマリ表はAVIImageになります。記事とイメージの両方の属性のプライマリ表の名前はContentAttributeです。

ベーシック・アセット・タイプのプライマリ表と異なり、フレックス・アセット・タイプのプライマリ表には、デフォルトの列のみが設定されます。これは、属性値を持つフレックス・アセット・タイプが、属性値をプライマリ表に格納しないためです。属性値は、このアセット・タイプの_Mungo表に格納されます。

一般的に、フレックス・アセット・タイプに対するプライマリ表のデフォルトの列タイプは、ベーシック・アセット・タイプに対するプライマリ記憶域表のデフォルトの列と同じです。デフォルトの列タイプの全般的なリストは、「ベーシック・アセット・タイプのデータベース表のデフォルトの列」を参照してください。

ただし、表4-5に示すように、例外や追加事項は当然ながら存在します。

表4-5 フレックス・アセット・タイプのデータベース表のデフォルトの列

説明

category

カテゴリはフレックス・アセット・モデルでは使用されないため、フレックス・アセット・タイプのプライマリ表にはcategory列は存在しません。

フレックス・アセットに対する問合せがそのフレックス属性の値に基づいているため、フレックス・アセットはカテゴリ機能を必要としません。

template

この列では、製品、記事(フレックス)、イメージ(フレックス)などのフレックス・ファミリ内のフレックス・アセット・メンバーに対する表のみに値が保持されます。これは、ファミリ内のフレックス・アセット・メンバーのみにテンプレート・アセットを割り当てて、オンライン・サイトで表示できるためです。

renderid

フレックス・アセットに割り当てられたテンプレート・アセットのオブジェクトIDを保持します。

attributetype

フレックス属性タイプに対するプライマリ表の追加列です。属性が「新規」フォームおよび「編集」フォームに表示されるときに、その属性の入力スタイルを書式設定する属性エディタの名前を保持します(属性エディタが存在する場合)。

flextemplateid

フレックス・アセット・タイプ(フレックス・ファミリのフレックス・アセット・メンバー)に対するプライマリ表の追加列です。フレックス・アセットの作成に使用したフレックス定義のIDを保持します。

flexgrouptemplateid

フレックス親アセット・タイプに対するプライマリ表の追加列です。フレックス親アセットの作成に使用した親定義のオブジェクトIDを保持します。

4.3.6.2 _Mungo表

フレックス・アセット・タイプおよびフレックス親アセット・タイプには、AssetType_Mungo表があり、この場合、AssetTypeはフレックス・アセット・タイプの名前です(また、メイン記憶域表の名前と一致します)。その目的は、アセットの作成時にそのタイプのアセットに割り当てられた属性値を格納することです。たとえば、avisportsサンプル・サイト表のAVIArticle_Mungoには、記事アセットの属性値が保持され、AVIImage_Mungo表には、イメージ・アセットの属性値が保持されています。

各属性値には、別々の行が割り当てられます。

_Mungo表の各行には、表4-6の各列の値が表示されます。

表4-6 _Mungo表の行

説明

id

フレックス・アセットが保存され、行が作成されたときに、WebCenter Sitesによって自動生成される、各属性値の一意のID。

これは、表の主キーです。

ownerid

属性値が属するフレックス・アセットのID。(フレックス・アセットの表、たとえばProductのもの。)

attrid

属性のID。(属性の表、たとえばPAttributesのもの。)

assetgroupid

属性値が継承された場合は、値を渡した親のID。(親の表、たとえばProductGroupsのもの。)

_Mungo表の各行には表4-7の列もすべて含まれますが、値(データ)は属性のデータ型に応じて1つの列のみに指定されます。

表4-7 _Mungo表の列

説明

floatvalue

属性のデータ型がfloatの場合は、属性の値。

moneyvalue

属性のデータ型がmoneyの場合は、属性の値。

textvalue

属性のデータ型がtextvalueの場合は、属性の値。

datevalue

属性のデータ型がdateの場合は、属性の値。

intvalue

属性のデータ型がintの場合は、属性の値。

blobvalue

属性のデータ型がblobの場合は、MungoBlobs表で属性の値を保持する行のID。

urlvalue

属性のデータ型がurlの場合は、属性に対して入力されたパスまたはURL。

assetvalue

属性のデータ型がassetの場合は、アセットのID。

stringvalue

属性のデータ型がfloatの場合は、属性の値。

_Mungo表にはURL列があるため(「WebCenter SitesのURLフィールドを使用した間接的なデータ格納」を参照)、その列に対してデフォルトの記憶域ディレクトリ(defdir)を設定する必要があります。_Mungo表に対してdefdirを設定するには、wcs_properties.jsonファイルのcc.urlattrpathプロパティを使用します。

4.3.6.3 MungoBlobs表

MungoBlobs表が1つ存在します。これには、システム内のすべてのフレックス属性タイプに対して、blob型のすべてのフレックス属性の値が保持されています。各属性値には、表の別々の行が割り当てられます。

4.3.6.4 _AMap表

フレックス・アセット・タイプおよびフレックス親アセット・タイプには、AssetType _AMap表があります。その目的は、親から継承した属性にアセットをマップすることです。これにより、オンライン・サイトのページにアセットを表示するテンプレートを作成するときに、属性が継承されたか直接割り当てられたかどうかに関係なく、属性のいずれかに基づいてアセットを問い合せたり、それらの属性のいずれかを表示できます。

_AMap表では、継承された属性の値を持つフレックス・アセットごとに行が1つ割り当てられます。(ただし、属性が複数の値を持っている場合、_Mungo表では値ごとに行が1つ割り当てられます。)

_AMap表には、表4-8に示す列があります。


表4-8 _AMap表の列

説明

id

フレックス・アセットが保存され、行が作成されたときに、WebCenter Sitesによって自動生成される、各行の一意のID。これは、表の主キーです。

inherited

属性が継承された場合は、その継承元である親のID。(親の表、たとえばProductGroupsのもの。)

attributeid

属性のID。(属性の表、たとえばPAttributesのもの。)

ownerid

属性値が属するフレックス・アセットのID。(フレックス・アセットの表、たとえばProductのもの。)


4.4 assetsetおよびsearchstate

WebCenter Sitesには、オンライン・ページに表示する個々のフレックス・アセットを識別するために、メソッド・ファミリASSETSETおよびSEARCHSTATEがあります。

assetset

assetsetはフレックス・アセットまたはフレックス親アセットのみのグループであり、フレックス属性、フレックス定義またはフレックス親定義は含まれません。たとえば、avisportsサンプル・サイトでは、記事およびイメージを含めたassetsetを作成できます。サイト・ページのコーディング時には、assetsetを作成して、その中にアセットを表示する文をコーディングします。

searchstate

フレックス・アセットのテンプレートでSEARCHSTATEメソッド・ファミリを使用して、assetsetに含める必要のあるフレックス・アセットを特定します。searchstateは、フレックス・アセットのリストまたはセットに適用される検索絞込み条件のセットです。絞込み条件として、属性値または別のsearchstate(ネストされたsearchstate)のいずれかに基づいたフィルタ(制限)を使用できます。

searchstateは、データベース内の_Mungo表でも、検索エンジンで作成された属性索引のいずれでも検索できます。つまり、データベース検索とリッチテキスト(索引を通じたフルテキスト)検索を同じ問合せ内に混在させることができます。

これらのタグは、_Mungo表または属性索引のみでフレックス・アセット・タイプを検索するため、これらのタグを使用してフレックス・アセットを抽出することは、ASSETタグまたは問合せアセットを使用するよりもはるかに効率的です。

assetsetと属性アセット・タイプ

WebCenter Sitesでは、属性アセット・タイプ全体の検索は実行できません。assetsetは属性値に基づいて作成されるため、同じassetsetに含められるのは同じ属性アセット・タイプを共有するアセットのみです。これは、フレックス・ファミリを設計する際の重要な考慮点であり、共通の属性アセット・タイプを共有しないフレックス・アセット・タイプを作成する場合は、データが分離されます。このようなフレックス・アセット・タイプを作成することで、異なるタイプのアセットが共通assetsetに含まれないようにします。また、assetsetを表示することは、配信システム上でフレックス・アセットを表示するためのメカニズムです。

たとえば、同じフレックス・ファミリに2つのタイプのフレックス・アセットを持つことができます。これらが同じタイプの属性を使用するかぎり、両方のタイプのアセットを含むassetsetを作成できます。ただし、2つのタイプのフレックス・アセットにわたって検索すると、それぞれの_Mungo表の間に結合が生じるため、パフォーマンスが低下する可能性があることに留意してください。

avisportsサンプル・サイトには、articleおよびimageという2つのフレックス・アセット・タイプがあります。これらは、同じ属性アセット・タイプ(ContentAttribute)を共有します。これは共有の属性アセット・タイプであるため、2つの異なるフレックス・アセット・タイプの場合であっても、同じassetsetに含めることができます。

4.5 検索エンジンと2つのアセット・モデル

この2つのアセット・モデルのデータ構造は非常に異なるため、アセット・モデルが検索エンジンと対話する方法も大きく異なります。

  • ベーシック・アセット・タイプはアセット記述子ファイルによって定義されます。そのプライマリ記憶域表には、すべてのプロパティが列として含まれます。ベーシック・アセット・タイプで索引付けするフィールドを指定するには、そのアセット・タイプの特定のエレメントをカスタマイズする必要があります。「ベーシック・アセット・タイプの設計」を参照してください。

  • フレックス・アセットのフィールドはフレックス属性であり、これはアセットであるため、リッチテキスト検索に対してどのフィールドを索引付けするかを、属性別に決定します。また、WebCenter Sitesアプリケーションでは、属性の「新規」フォームと「編集」フォームで「検索エンジン」フィールドを使用してどの属性を索引付けするかを指定できます。この機能を有効化するためにエレメントをカスタマイズする必要はありません。

4.6 タグと2つのアセット・モデル

アセットの作成と管理の最終目標は、アセットを配信システムに移動して、配信システム上でエレメントに組み込んだコードによってアセットをデータベースから抽出し、それをサイトの訪問者に表示することです。WebCenter Sitesアプリケーションは、様々なツールセット(カスタム・タグ・セット)をXMLとJSPの両方で提供しています。

テンプレート内でデータベースからのアセット抽出に使用するツールセットは、使用しているアセットの種類によって異なります。

  • ベーシック・アセット・モデルのあるアセットには、ASSETメソッド・ファミリを使用します。

  • フレックス・ファミリ内のフレックス・アセット・メンバーには、ASSETSETおよびSEARCHSTATEのメソッド・ファミリを使用します。フレックス・ファミリ内のフレックス・アセット・メンバー(製品、記事、イメージなど)には、ASSET.LOADタグを使用しないでください。フレックス・アセットに対してASSET.LOADタグを使用すると、アセットのすべての表からそのアセットに関する全情報を取得するため、効率がきわめて悪くなります。SEARCHSTATEメソッドは、フレックス・アセットのアセット・タイプに対する_Mungo表とMungoBlobs表のみを問い合せます。

  • 推奨アセットには、COMMERCECONTEXTメソッド・ファミリを使用します。

これらの製品ではさらに多くのメソッド・ファミリが使用できるだけでなく、WebCenter Sitesおよび複数のAPIからも多数のカスタム・タグが使用できます。

WebCenter Sitesタグの詳細は、Oracle WebCenter Sitesタグ・リファレンスを参照してください。

4.7 要約: ベーシック・アセット・モデルとフレックス・アセット・モデル

2つのアセット・モデルの類似点と相違点は次のとおりです。

アセット・モデルの共通点

ベーシック・アセット・モデルとフレックス・アセット・モデルの機能方法には多くの相違点がありますが、いくつかの共通点も見られます。

  • ベーシックとフレックスどちらのアセット・モデルを使用する場合でも、WebCenter Sitesアプリケーションに付属しているテンプレート・アセット・タイプとページ・アセット・タイプを使用します。

  • すべてのアセット・タイプにはステータス・コードが割り当てられています。つまり、フレックスかベーシックかに関係なく、すべてのアセットはステータスに基づく問合せを使用して検索できます。

  • すべてのアセット・タイプは、フレックスかベーシックかに関係なく、次の構成または管理特性を共通して備えています。

    • サイト別に有効化する必要があります。

    • これらのタイプの個々のインスタンスを作成できるようにするには、スタート・メニュー・アイテムをあらかじめ構成しておく必要があります。

    • 個々のインスタンスはXMLPostユーティリティを使用してインポートできます。

アセット・モデルの相違点

表4-9に、これらのアセット・モデルの主な相違点を要約します。

表4-9 アセット・モデルの主な相違点

機能 ベーシック・アセット・モデル フレックス・アセット・モデル

データベース表の数

1つ。

複数。

アセット・タイプへのフィールドの追加

スキーマ変更が必要です。

スキーマ変更は必要ありません。

他のアセットへのリンク

アソシエーションと名前なし関係を使用します。

フレックス・ファミリの関係を使用します。

サブタイプ

通常は「管理」タブの「サブタイプ」アイテムを使用します。サブタイプの設定の詳細は、「サブタイプ」を参照してください。

フレックス定義とフレックス親定義を使用します。

検索エンジンの索引付け

アセット・タイプの特定のエレメントをカスタマイズする必要があります。

フレックス属性フォームで「検索エンジン」フィールドを使用します。

主なタグ・ファミリ

ASSETSITEPLANおよびRENDER

ASSETSETSEARCHSTATEおよびRENDER

パブリッシュ方法

ディスクにエクスポート。

サーバーへのミラーリング。

「サーバーにエクスポート」も使用できますが、フレックス・モデルには標準ではありません。

サーバーへのミラーリング。