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

前
 
次
 

12 WebCenter Sitesデータベース

WebCenter Sites、そのモジュールおよびWebCenter Sites製品のほぼすべては、データベース表に行として表されます。

この章では、WebCenter Sitesデータベースにおける各種の表および列について説明し、表を作成するための手順を示します。WebCenter Sitesのモジュールおよび製品(たとえばEngage)には、必要な表のほとんどが用意されています。ただし、WebCenter Sitesを使用して独自のアプリケーションを開発している場合、またはアセットを保持しない表(たとえば参照表)を使用する必要がある場合は、この章で説明する方法のいずれかを使用して表を作成します。

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

アセットを保持しない表におけるデータの管理については、第13章「アセットを保持しない表内のデータ管理」を参照してください。


注意:

WebCenter Sitesのデータベース表は、以前はカタログと呼ばれており、アプリケーション全体を通じて、表の名前、サーブレットの名前(CatalogManager)、データベース内のデータを操作する際に使用するJavaインタフェースにこの用語がまだ残っています。


12.1 データベース表のタイプ

WebCenter Sitesデータベースには、次の5つのタイプの表があります。

WebCenter Sitesは、外部表を含めたWebCenter Sitesデータベースの任意の表に対する問合せから、結果セットをキャッシュできます。

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

12.1.1 オブジェクト表

オブジェクト表は、データをオブジェクトとして格納するもので、階層で表すことができます。これらのオブジェクトのロード、保存および管理には、CatalogManager APIを使用できます。アセット・タイプの表はオブジェクト表です。

オブジェクト表の主キーは常にID (id)列で変更できません。オブジェクト表を追加するようにWebCenter Sitesに指示すると、その表にID列が作成されます。IDは、表に行が追加されるにつれて、WebCenter Sitesがデフォルトで各行に割り当てる一意の識別子です。たとえば、だれかが新しいアセットを作成すると、WebCenter SitesではIDが決定され、そのアセットのIDとしてその値が割り当てられます。

(アセットなどの)オブジェクトにWebCenter Sitesが割り当てるIDは変更できません。


注意:

AssetMakerまたはフレックス・ファミリ・メーカーで新しいアセット・タイプのオブジェクト表を作成するときには、デフォルトで追加の列がいくつか作成されます。ベーシック・アセット表内のデフォルトの列については、第11.2.4.2項「ベーシック・アセット・タイプのデータベース表のデフォルトの列」を参照してください。


データを格納する必要があり、そのデータの各行が一意に識別されるようにする場合は必ず、オブジェクト表を使用してください。それは、IDの生成はWebCenter Sitesが処理してくれるからです。

オブジェクト表(カタログ)の例

  • アセットを保持するすべての表

  • パブリッシュ表の多く

  • 訪問者のデータを保持するEngageの表

12.1.2 ツリー表

ツリー表には、オブジェクト表間の階層関係についての情報が格納されます。言い換えれば、オブジェクト表は階層で表すことができますが、その階層自体はツリー表に格納されます。つまり、階層がツリーであるということです。

たとえば、WebCenter Sitesでは、WebCenter Sitesデータベースに次の表が追加されます。

  • AssetRelationTree: アセット間のアソシエーションについての情報を格納します。これらのアソシエーションによって親子関係が作成されます。アセットのアソシエーションの詳細は、第11.3項「フレックス・アセット・モデル」を参照してください。

  • SitePlanTree: ページ・アセットとそれらのアセットから参照されるアセットの間の親子関係についての情報を格納します。この情報は、WebCenter Sitesのインタフェースに提示される「サイト・プラン」タブにグラフィカルに提示されます。

ツリー表の各行は、そのツリーのノードです。ツリー表の各ノードは、次の2つの場所を指しています。

  • オブジェクト表内のオブジェクト、つまりオブジェクト表が表すオブジェクト

  • そのツリー表の中の親ノード、ただし最上位のノードで親がない場合は除く

言い換えれば、オブジェクト自体はオブジェクト表に格納されます。オブジェクトとデータベース内の他のオブジェクトとの関係(ツリーで記述)は、ツリー上のノードとしてツリー表に格納されます。

子ノードは親ノードを指しますが、親は子を指さないことに注意してください。

ツリー表を作成すると、デフォルトで次の列が設定されます。これらの列に対しては、追加も変更もできません。

表12-1 デフォルトの列

説明

nid

ノードのID。これが主キーです。

nparentid

ノードの親ノードのID。

nrank

対等なノードまたは兄弟関係にあるノードをランク付けした数字。たとえば、AssetRelationTree表はこの列を使用して、コレクションの中にあるアセットの順序を決定します。

otype

ノードのオブジェクト・タイプ。たとえば、SitePlanTree表では、otypeは、ページというアセット・タイプ、またはサイトの名前(パブリケーション)です。AssetRelationTree表では、otypeはアセット・タイプであり、そのタイプのアセットのオブジェクト表の名前です。

oid

ノードが参照するオブジェクトのID。

oversion

将来の使用に備えて予約されています。

ncode

表の用途というコンテキストで、意味のある文字列を保持します。たとえば、SitePlanTreeでは、ノードが参照するページ・アセットが配置されているかどうかに基づいて、ncodeが「placed」と「unplaced」のいずれかに設定されます。AssetRelationTreeでは、ncodeにアソシエーションの名前が保持されます。


12.1.3 コンテンツ表

コンテンツ表には、データが(オブジェクトでなく)水平データとして格納され、その情報は階層に編成できません。コンテンツ表は、簡易参照表として使用します。たとえば、次に示すのは、WebCenter Sitesデータベースに追加するコンテンツ表のほんの一部です。

  • Source: 記事またはイメージのアセットのソースを特定するために使用される文字列を格納します

  • Category: 様々な方法でアセットを編成するために使用されるコードを保持します

  • StatusCode: アセットのステータスを表すコードを保持します

これら3つの表はすべて、アセット・タイプ表(オブジェクト表)の様々な列の値を参照するために製品で使用される参照表です。

別の例では、WebCenter Sitesは、MimeTypeというコンテンツ表も追加します。この表には、Burlington Financialサンプル・サイトの、スタイルシートおよびイメージファイルというアセット・タイプの「Mimetype」フィールドに表示されるMIMEタイプ・コードが保持されます。これらのアセット・タイプの「Mimetype」フィールドは、MimeType表に対し、その表のkeyword列に基づいて、MIMEタイプ・コードを問い合せます。

コンテンツ表の主キーの設定

コンテンツ表を作成したときには、ID列は作成されず、主キーがIDである必要もありません。これも、コンテンツ表とオブジェクト表の大きな違いです。

futuretense.iniファイルのcc.contentkeyプロパティは、すべてのコンテンツ表のデフォルトの主キーの名前を指定しています。コンテンツ表を新規作成するときには、cc.contentkeyプロパティで指定された名前の列を定義する責任があります。

ただし、特定のコンテンツ表の主キーのIDは、futuretense.iniファイル内にカスタム・プロパティを追加および設定することによってオーバーライドできます。このプロパティは、次のフォーマットを使用する必要があります。

cc.tablenameKey

たとえば、Booksというコンテンツ表を作成し、デフォルトの主キーをオーバーライドして、かわりにISBN列を使用するようにする場合は、cc.BooksKeyというプロパティを追加してISBNに設定します。

12.1.4 外部表

外部表とは、WebCenter Sitesで全面的に管理しているわけではない表です。たとえば、サイト・ページでは、ERPシステムで移入される表に対して問合せが実行され、WebCenter Sitesでは、その情報がサイトの訪問者に表示されると思われます。

WebCenter Sitesは、独自のオブジェクト表やコンテンツ表の場合とまったく同じように、外部表に問い合せて結果セットをキャッシュできます。ただし、まずWebCenter Sitesに対してその外部表を特定することが必要で、そのためには、SystemInfo表にその外部表の行を追加します。これは、SystemInfo表で情報を変更する唯一の機会です。

また、問合せ先の表が外部システムによって更新された場合は必ず、CatalogManagerのflushcatalogタグを使用して、WebCenter Sites結果セットのキャッシュをフラッシュしてください。そうしないと、それらの表に対してキャッシュされた結果セットが、最新のものでなくなる可能性があります。

結果セットのキャッシングの詳細は、第14章「結果セットのキャッシングと問合せ」を参照してください。

12.1.5 システム表

システム表はコアで、スキーマが固定されたWebCenter Sitesの表です。それらは独自のクラスによってWebCenter Sitesに実装され、他の表が従う(キャッシングなどの)ルールに従いません。

(WebCenter Sitesインタフェースの「管理」タブにあるWebCenter Sitesの「管理ツール」フォーム、またはOracle WebCenter SitesのExplorerツールを使用して)システム表のいくつかに行を追加できますが、それらの表の列は追加も変更も一切できません。データベースにシステム表を追加することもできません。

次の表では、WebCenter Sitesのシステム表を一覧表示および定義しています。

表12-2 システム表

説明

ElementCatalog

システムで使用されるXMLエレメントまたはJSPエレメントをすべて一覧表示します。エレメントとは、コードのうち名前の付いた断片です。ElementCatalog表の詳細は、第23章「テンプレート・アセット、CSElementアセットおよびSiteEntryアセットの作成」を参照してください。

SiteCatalog

WebCenter Sitesで提供されている各ページまたは各ページレットへのページ参照を一覧表示します。SiteCatalog表の詳細は、第23章「テンプレート・アセット、CSElementアセットおよびSiteEntryアセットの作成」を参照してください。

SystemACL

WebCenter Sitesシステム用に作成されたアクセス制御リスト(ACL)のそれぞれに行があります。ACLはデータベース表に対する権限のセットです。

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

ACLの使用によるオンライン・サイトへのユーザー管理の実装については、第31章「配信システムにおけるユーザー管理」を参照してください。

SystemEvents

WebCenter Sitesで管理されているイベントのそれぞれに行があります。イベントは、あるスケジュールに従って行われるアクションを表しています。

WebCenter Sitesでは、APPEVENTタグとEMAILEVENTタグのいずれかを使用すると、この表に行が挿入されます。

SystemInfo

WebCenter Sitesデータベースの中にあるすべての表を一覧表示し、さらにWebCenter Sitesで参照する必要のある外部表があればそれも一覧表示します。

SystemItemCache

キャッシュされるページ上にある特定のアイテム(たとえばアセット)に関する情報、具体的には、アイテムのID、アイテムが関連付けられているページ、キャッシュされた時刻を保持します。

SystemPageCache

キャッシュされるページに関する情報、具体的には、キャッシュ先のフォルダ、ファイル名を生成するために使用される問合せ、キャッシュされた時刻、有効期限の切れる時刻を保持します。

SystemSeedAccess

WebCenter Sitesデータベースの外側にあるが、そのWebCenter Sitesからアクセスできる(アクセス制御を含めた)Javaクラスを登録します。

SystemSQL

必要な数のページまたはページレットで再利用できるSQL問合せを保持します。この表にSQL問合せを格納して、ics.CallSQLメソッド、CALLSQL XMLタグ、ics:callsql JSPタグを使用して、それらの問合せを起動できます。次に、SQL問合せを変更する必要がある場合は、一度変更するのみで済みます。

SystemUserAttr

電子メール・アドレスなど、ユーザーに関する属性情報を格納します。LDAPを使用している場合、この表は使用されないことに注意してください。

SystemUsers

ページ、機能および表へのアクセスを許可されたすべてのユーザーを一覧表示します。LDAPを使用している場合、この表は使用されないことに注意してください。


12.1.6 表のタイプの特定

WebCenter Sitesデータベース内の任意の表の表タイプを判別するには、SystemInfo表を調べます。これは、データベース内のすべての表を一覧表示するシステム表です。

表タイプを判別するには:

  1. Oracle WebCenter Sites Explorerを開き、WebCenter Sitesデータベースにログインします。

  2. SystemInfo表をダブルクリックします。

  3. 表のリストで、systable列を調べます。この列の値によって、行に表される表のタイプが特定されます。

表12-3 表タイプの判別

systable列の値 定義

yes

システム表

no

コンテンツ表

obj

オブジェクト表

tree

ツリー表

fgn

外部表



注意:

ユーザー名に適切なACLが割り当てられていないと、SystemInfo表を開いて調べることはできません。


12.2 列(フィールド)のタイプ

WebCenter Sitesデータベースの表を新規作成すると、その表にアセットが保持されているかどうかに関係なく、それらの表の列に、一般カテゴリのフィールド(列)タイプとして、次の3つを指定できます。

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

12.2.1 汎用的なフィールド・タイプ

汎用的なフィールド・タイプとは、WebCenter SitesでサポートされているいずれのDBMSでも機能するフィールド・タイプのことです。これらは、JDBC規格に準拠するようにマップされます。したがって、WebCenter Sitesシステムが別のDBMSに変わっても、現在使用しているデータベースは引き続き有効となります。

汎用的でJDBCに準拠したフィールド・タイプを使用している場合は、表の中のデータを変更および保持するために、CatalogManager API (CATALOGMANAGERというXMLタグまたはJSPタグ、あるいはics.CatalogManagerというJavaメソッド)を使用できます。

次の表には、WebCenter Sitesの汎用的なフィールド・タイプ、およびそのデータ型を定義する(futuretense.iniファイル内の)データベース・プロパティの詳細なリストが含まれています。WebCenter Sitesのインタフェースの「管理」ツリーにあるWebCenter Sitesの「管理ツール」フォームまたはCatalogManager APIを使用して表を新規作成するときには必ず、このリストを参照してください。

表12-4 フィールド・タイプ

フィールド・タイプ 説明 プロパティ

CHAR(n)

文字数が正確にnであることを示す短縮文字列。

cc.char

VARCHAR(n)

文字数が最大でnであることを示す短縮文字列。たとえば、VARCHAR(32)とすると、この列には最大で32文字を保持ができるという意味になります。

cc.varchar

および

cc.maxvarcharsize

(cc.varcharに設定できる最大値は、cc.maxvarcharsizeプロパティの値によって異なります。)

DATETIME

日付と時刻の組合せ。

cc.datetime

TEXT

LONGVARCHAR: 最大2,147,483,647文字の可変長文字列

cc.bigtext

IMAGE

1つのバイナリ・ラージ・オブジェクト(BLOB)。

cc.blob

SMALLINT

16ビットの整数、つまり、-32,768から+32,767までの整数。

cc.smallint

INTEGER

32ビットの整数、つまり、-2,147,483,648から+2,147,483,647までの整数。

cc.integer

BIGINT

64ビットの整数、つまり、最大で19桁の整数。

cc.bigint

NUMERIC(L,P)

浮動小数点式の数(実数)で、有効桁の合計数がL、そのうちP桁が小数。たとえば、NUMERIC(5,2)は、806.35のような数値を表すことはあっても、25693.2283のような数値は厳密に表せません。

cc.numeric

DOUBLE

倍精度タイプ。

cc.double


列タイプを定義することに加えて、列に対する次の制約のうち、該当する列に当てはまるものがどれであるかを指定する必要があります。

表12-5 列の制約

制約 説明

NULL

NULL値を保持できます。つまり、空にしておくことができます。

NOT NULL

NULL値を保持できません。つまり、空にしておくことができません。

UNIQUE NOT NULL

この表で間違いなく一意となる値を保持する必要があります。

PRIMARY KEY NOT NULL

コンテンツ表の主キー列にマークを付けます。オブジェクト表では、列に対してこの制約を設定しないでください。


AssetMakerを使用して新規のアセット・タイプのオブジェクト表を作成する場合、またはフレックス属性を新規作成する場合は、それらのアイテムのデータ型は、ここに一覧表示されているものとは異なります。

ベーシック・アセット・タイプの列のデータ型の詳細は、第15.1.3.2項「列の記憶域のタイプ」を参照してください。フレックス属性のデータ型については、第11.3.3.1項「属性のデータ型」を参照してください。

12.2.2 データベース固有のフィールド・タイプ

表ではデータベース固有のフィールド(列)タイプを使用できます。ただし、ある種類のDBMSに固有のフィールド・タイプ(つまり、JDBC規格にマップされていないタイプ)を使用する場合は、次の点に注意してください。

  • これらの表に対しては、CatalogManager APIを使用できない場合があります。

  • DBMSを変更することがあれば、表も変更する必要があります。

使用しているDBMSに固有のフィールド・タイプの詳細なリストについては、そのDBMSのドキュメントを参照してください。

12.2.3 WebCenter SitesのURLフィールドを使用した間接的なデータ格納

WebCenter Sitesデータベースのオブジェクト表とコンテンツ表には、その列にデータを間接的に格納できるという独特の特徴があります。これは、大量のデータを外部のDBMSに格納できますが、その格納先はデータ・リポジトリ内にかぎられるという意味です。

そのような列を作成するには、先頭の文字をurlにした列名を使用する必要があります。列名の最初の3文字にurlを使用すると、WebCenter Sitesでは、その列が間接的なデータ列として扱われます。

URLフィールドを使用するのはなぜでしょうか。その理由は次のとおりです。

  • 使用しているDBMSが、そこに格納しようとしているデータのサイズに対応できるほど大きなフィールドをサポートしていないとき

  • 使用しているDBMSが、格納しようとしているデータを含めるための個々の表で十分なフィールドをサポートしていない場合

  • フィールドのサイズが大きいと、データ選択のパフォーマンスが低下するため


    注意:

    URL列に格納しようとしているデータのサイズが、futuretense.iniファイルのcc.maxvarcharsizeプロパティに設定された値を超過している場合は、そのデータは、データベース内のポインタによって参照されるファイルとして間接的に格納されるのではなく、データベースに格納されます。


デフォルトのストレージ・ディレクトリ(defdir)

URL列のある表では、デフォルトのストレージ・ディレクトリがその列に指定されている必要があります。このディレクトリは、その列に入力された値が実際に格納される場所です。

デフォルトのストレージ・ディレクトリという言い回しは、製品のいくつかの箇所ではdefdirという言葉に短縮されています。たとえば、SystemInfo表のdefdir列には、URL列のある表のデフォルトのストレージ・ディレクトリの名前が保持されます。AssetMakerユーティリティのフォームのいずれかには、defdirフィールドなどが提示されます。

URLフィールドに入力される値は、ファイルへの相対パスです。なぜ相対パスなのでしょうか。URLフィールドの値が、表のdefdir設定の値に付加されるからです。

作成する表のdefdir値をどのように設定するかは、使用しているアプリケーションや作業内容によって異なります。

  • WebCenter Sitesのユーザー・インタフェースの「管理」ツリーにあるWebCenter Sitesの「管理ツール」フォームを使用してWebCenter Sitesの表を新規作成し、その表にURLフィールドがある場合は、「カタログの追加」(表)フォームの「ファイル・ストレージ・ディレクトリ」フィールドにdefdirの値を入力します。

  • CatalogManager APIを使用してWebCenter Sitesの表を新規作成する場合は、uploadDir引数を使用してdefdirの値を設定します。

  • ベーシック・アセット・タイプを新規作成する場合は、「AssetMaker」フォームのdefdirフィールドでdefdirの値を指定します。(ベーシック・アセットを保持しているすべての表にはURL列があり、defdirの値が設定されている必要があります。)

  • フレックス・アセット・タイプを新規作成する場合は、フレックス・アセットの_Mungo表で、URL列のdefdirの値を指定しないでください。この値は、WebCenter Sitesのアプリケーションがインストールされたときに設定されたプロパティから取得されます。そのプロパティの値は変更しないでください


    重要:

    URL列のある表が作成された後は、いかなる方法によっても、表のdefdir設定を変更しようとしないでください。変更した場合、ストレージ・ディレクトリとURL列の間のリンクが断たれます。つまり、データを取得できなくなります。


URLフィールドの作成については、次の手順と例を参照してください。

12.3 データベース表の作成

この項では、オブジェクト表、ツリー表およびコンテンツ表の作成方法、および外部表の登録(すなわち、WebCenter Sitesに対してこれらを特定する)方法について説明します。システム表は、作成も変更もできません。

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

12.3.1 オブジェクト表の作成

オブジェクト表の作成方法には、次の3つがあります。

  • ベーシック・アセット・タイプを保持する表を作成します。AssetMakerを使用する必要があります。これは、「管理」タブにあるWebCenter Sitesのユーティリティです。AssetMakerでは、アセット・タイプのオブジェクト表、およびそのタイプのアセットを作成するときに使用するフォームが作成されます。詳細は、第15章「ベーシック・アセット・タイプの設計」を参照してください。

  • フレックス・アセット・タイプを保持する表を作成します。フレックス・ファミリ・メーカーを使用する必要があります。これは、「管理」タブにあるユーティリティです。詳細は、第16章「フレックス・アセット・タイプの設計」を参照してください。

  • アセットを保持しないオブジェクト表を作成します。「管理」インタフェースにあるWebCenter Sites管理ツール(またはOracle WebCenter Sites Explorer)を使用します。

アセットを保持しないオブジェクト表を作成するには:

  1. 管理者としてWebCenter Sitesにログインします。

  2. 作業場所とするサイトを選択します。

  3. Adminインタフェースを選択します。

  4. 「管理」タブを選択し、「管理ツール」「サイト・データベース」を選択します。

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

  5. 「サイト・データベース」ウィンドウで「表の追加」を選択し、「OK」をクリックします。

    「表の追加」フォームが表示されます。

  6. 「表名」フィールド内をクリックし、名前を入力します。すでに存在している表名は使用できません。64文字までの英数字を入力できます。アンダースコア(_)文字は使用できますが、空白を含めることはできません。

  7. 「表のタイプ」フィールド内をクリックし、「コンテンツ表」を選択します。

  8. 表にURL列(アップロード列)を入れる場合は、「ファイル・ストレージ・ディレクトリ」フィールド(すなわちdefdir)内をクリックして、URL列のデータを格納するファイル・ディレクトリへのパスを入力します。ディレクトリが存在しない場合は、WebCenter Sitesによって自動的に作成されます。

  9. 「アクセス権限」フィールド内をクリックし、この表にアクセスするユーザーに必要なACL (アクセス制御リスト)を選択します。ACLの詳細は、『Oracle Fusion Middleware WebCenter Sites管理者ガイド』を参照してください。

  10. 「フィールド名」列内をクリックして、フィールドの名前を入力します。外部ディレクトリにあるファイルとしてデータを格納するURL列を作成するには、フィールド名をurlで始める必要があることに留意してください。URL列を作成する場合は、このフィールドに格納されるデータ用のファイル・ストレージ・ディレクトリ(defdir)を指定していることを確認してください(この手順の手順7を参照)。

  11. 「フィールド・タイプ」列内をクリックし、その列のデータ型および列の制約を指定します。データ型および列の制約の間にはスペースを含めます。

    例: VARCHAR(32) NULLまたはINTEGER NOT NULL

    有効なデータ型および列の制約のリストについては、第12.2.1項「汎用的なフィールド・タイプ」を参照してください。

  12. 新しい表内の列ごとに手順9および10を繰り返します。

  13. 「追加」ボタンをクリックします。

    表がデータベースに追加されます。

表が追加されたことを検証するには、Oracle WebCenter Sites Explorerを開いてSystemInfo表を調べます。新しい表がリストに追加され、そのsystable列がobjに設定されている必要があります。ファイル・ストレージ・ディレクトリを指定している場合は、そのディレクトリがdefdir列に表示されます。

オブジェクト表内のデータの管理

オブジェクト表内のデータを変更および管理する方法はいくつかあります。

アセットの作成と変更を行うには、WebCenter SitesアプリケーションとEngageアプリケーションを使用します。データベースからアセットを抽出して、配信システムの訪問者に表示するには、WebCenter Sites、EngageのXMLタグおよびJSPタグを使用します。

アセットを保持しないオブジェクト表に、次の方法のいずれかでデータを入力できます。

  • プログラム的には、ics.CatalogManagerというJavaメソッド、またはCATALOGMANAGERというXMLタグおよびJSPタグ、OBJECTというXMLタグおよびJSPタグ、WebCenter SitesのSQLメソッドおよびSQLタグを使用してフォームをコーディングすると、ユーザーは、情報を入力してその情報をデータベースに書き込むように求められます。

  • 手動で、Oracle WebCenter Sites Explorerツールと、WebCenter Sitesの「管理ツール」フォームにおけるフォームのいずれかを使用して、表に行を追加します。

第13章「アセットを保持しない表内のデータ管理」では、CatalogManager APIに関する情報、およびアセットを保持していない表に行を追加する例について説明します。

12.3.2 ツリー表の作成

WebCenter Sitesのモジュールまたは製品を使用している場合は、ツリー表を作成する必要が生じることはほとんどありません。

ツリー表は、TreeManagerサーブレットで管理されています。ツリー表(カタログ)を作成するには、ICS.TreeManagerというJavaメソッド、あるいはTREEMANAGERというXMLタグまたはJSPタグを使用します。ツリー表(カタログ)は、WebCenter Sites管理ツールでは作成できません。

例:

<TREEMANAGER> 
<ARGUMENT NAME="ftcmd" VALUE="createtree"/> 
<ARGUMENT NAME="treename" VALUE="ExampleTree"/> 
</TREEMANAGER>

ツリー表に作成された列のリストについては、第12.1.2項「ツリー表」を参照してください。TreeManagerのメソッドおよびタグについては、Oracle Fusion Middleware WebCenter Sitesタグ・リファレンスを参照してください。

12.3.2.1 ツリー表内のデータの管理

WebCenter Sitesのモジュールおよび製品では、ツリー表内のすべてのデータを管理します。どのようなツリー表でも、情報を手動で変更しようとしないでください。

独自のオブジェクト表(つまり、アセットを格納しないオブジェクト表)の間の関係を管理するために作成したツリー表があれば、ICS.TreeManagerというJavaメソッド、あるいはTREEMANAGERというXMLタグまたはJSPタグを使用します。これらのタグとメソッドは、実行するツリー操作を記述したFTValListパラメータを使用します。

次の章(第13章「アセットを保持しない表内のデータ管理」)では、CatalogManager APIに関する情報、およびアセットを保持していない表に行を追加する例について説明します。

12.3.3 コンテンツ表の作成

コンテンツ表を作成するには、WebCenter Sites管理ツールを使用します。

  1. 管理者としてWebCenter Sitesにログインします。

  2. 作業場所とするサイトを選択します。

  3. Adminインタフェースを選択します。

  4. 「管理」タブを選択し、「管理ツール」「サイト・データベース」を選択します。

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

  5. 「サイト・データベース」ウィンドウで「表の追加」を選択し、「OK」をクリックします。

    「表の追加」フォームが表示されます。

  6. 「表名」フィールド内をクリックし、名前を入力します。すでに存在している表名は使用できません。64文字までの英数字を入力できます。アンダースコア(_)文字は使用できますが、空白を含めることはできません。

  7. 「表のタイプ」フィールド内をクリックし、「コンテンツ表」を選択します。

  8. 表にURL列を入れる場合は、「ファイル・ストレージ・ディレクトリ」フィールド内をクリックして、URL列のデータを格納するファイル・ディレクトリへのパスを入力します。ディレクトリが存在しない場合は、WebCenter Sitesによって自動的に作成されます。

  9. 「アクセス権限」フィールド内をクリックし、この表にアクセスするユーザーに必要なACL (アクセス制御リスト)を選択します。ACLの詳細は、『Oracle Fusion Middleware WebCenter Sites管理者ガイド』を参照してください。

  10. 「フィールド名」フィールド内をクリックして、フィールドの名前を入力します。外部ディレクトリにあるファイルとしてデータを格納するURL列を作成するには、フィールド名をurlで始める必要があることに留意してください。URL列を作成する場合は、このフィールドに格納されるデータ用のファイル・ストレージ・ディレクトリ(defdir)を指定していることを確認してください(この手順の手順7を参照)。

  11. 「フィールド・タイプ」列内をクリックし、その列のデータ型および列の制約を指定します。データ型および列の制約の間にはスペースを含めます。

    例: VARCHAR(32) NULLまたはINTEGER NOT NULL

    主キー列を指定する必要があること、またその主キー列が、cc.contentkeyプロパティの設定、またはfuturetense.iniファイルでこの表に指定されたカスタム・プロパティの設定と完全一致している必要があることに注意してください。

    例: INTEGER PRIMARY KEY NOT NULL

  12. 新しい表内の列ごとに手順9および10を繰り返します。

  13. 「追加」ボタンをクリックします。

    表がデータベースに追加されます。

表が追加されたことを検証するには、Oracle WebCenter Sites Explorerツールを開いてSystemInfo表を調べます。新しい表がリストに追加され、そのsystable列の値がnoに設定されている必要があります。ファイル・ストレージ・ディレクトリを指定している場合は、そのディレクトリがdefdir列に表示されます。

サイトの一部の機能を促進するためにアセットを保持しない表を追加したら、WebCenter Sitesでアセットのフォームをカスタマイズするか、または独自のフォームを作成してそのデータを入力および操作することが必要です。

コンテンツ表内のデータの管理

コンテンツ表内のデータを変更および管理する方法はいくつかあります。

WebCenter Sitesのコンテンツ表のほとんどでは、「管理」タブに、データの編集または追加に使用できるWebCenter Sitesのフォームが用意されています。たとえば、SourceCategoryです。(ただし、MimeTypeには用意されていません。)

カスタム・コンテンツ表に、次の方法のいずれかでデータを入力できます。

  • 表が作成され、その表に書き込まれるデータをユーザーまたは訪問者が提供する場合は、ics.CatalogManagerというJavaメソッド、またはCATALOGMANAGERというXMLタグおよびJSPタグを、WebCenter SitesのSQLメソッドおよびSQLタグとともにコーディングします。ユーザーは、情報を入力してその情報をデータベースに書き込むようにプログラムで求められます。

  • サイトの一部の機能を促進する簡易参照表の場合は、Oracle WebCenter Sites ExplorerユーティリティとWebCenter Sitesの「管理ツール」ウィンドウのいずれかを使用することによって、データを手動で入力して、表に行を追加します。

第13章「アセットを保持しない表内のデータ管理」では、CatalogManager APIに関する情報、およびアセットを保持していない表に行を追加する例について説明します。

12.3.4 外部表の登録

外部表の登録とは、WebCenter Sitesに対してその表を特定することで、そのためには、SystemInfo表にその表の行を追加します。これは、SystemInfo表に行を追加したり、SystemInfo表に保持されている情報を変更する際の唯一の条件です。

外部表を登録するには:

  1. Oracle WebCenter Sites Explorerを開き、WebCenter Sitesデータベースにログインします。

  2. SystemInfo表をダブルクリックします。

  3. tblname列のヘッダーを右クリックして、コンテキスト・メニューから「新規」を選択します。

    新しい行が表示されます。

  4. 新しい行で、tblname列内をクリックして、表の名前を入力します。

  5. defdir列内をクリックして、表へのパスを入力します。

  6. systable列内をクリックして、fgnと入力します。

  7. acl列内をクリックして、表にアクセスできるACLの名前を入力します。

  8. 「ファイル」「すべて保存」を選択します。

外部表内のデータの管理

外部表との対話には、ics.CatalogManagerというJavaメソッド、またはCATALOGMANAGERというXMLタグおよびJSPタグ、およびWebCenter SitesのSQLメソッドおよびSQLタグを使用できます。これらのメソッドまたはタグを使用して外部表内のデータを更新すると、WebCenter Sitesでは、必要に応じてその結果セットのキャッシュをフラッシュできます。

WebCenter Sitesにとっては外部のメソッドを使用して外部表を更新する場合は、CATALOGMANGERのコマンドであるflushcatalogを使用して、その表の結果セットのキャッシュをフラッシュするようにWebCenter Sitesに指示する必要があります。

12.4 情報はシステム表にどのように追加されるか

一部の例外を除いて、システム表は作成できません。行の追加が許可されているシステム表に行を追加するには、WebCenter Sites管理ツールを必ず使用してください。次の表で説明するように、各システム表への情報の追加方法は異なります。

表12-6 情報をシステム表に追加する方法

情報を追加する方法

SiteCatalog

この表にページ・エントリを追加する方法はいくつかあります。

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

  • SiteEntryアセットを作成すると、WebCenter Sitesでは、SiteCatalog表で、そのアセットに対するページ・エントリが自動的に作成されます。

  • Oracle WebCenter Sites Explorerツール、またはWebCenter Sitesの「管理ツール」インタフェースの「サイト」フォームを使用できます。

ページ・エントリのページ・キャッシュ設定を設定または変更する場合は、Oracle WebCenter Sites Explorerを使用するよりも、WebCenter Sitesインタフェースでフォームを使用する方が簡単です。

ElementCatalog

この表にエレメントを追加する方法はいくつかあります。

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

  • CSElementアセットを作成すると、WebCenter Sitesでは、ElementCatalog表で、そのアセットに対するエントリが自動的に作成されます。

  • Oracle WebCenter Sites Explorerツールを使用して、アセット以外のエレメントを追加できます。

エレメントおよびページのコーディングについては、第28章「テンプレートおよびCSElementのエレメントのコーディング」を参照してください。

SystemACL

「WebCenter Sites管理ツール」ノードの「ACL」フォーム。

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

SystemEvents

WebCenter Sitesでは、APPEVENTタグ、EMAILEVENTタグ、またはそれらと同等のJava APIがエレメントから起動されたときに指定されたイベントごとに、この表に行が追加されます。

SystemInfo

この表に情報を追加することも、この表の情報を変更することもしないでください

このルールに対する唯一の例外は、WebCenter Sitesに外部表を認識させる場合です。

SystemSQL

Oracle WebCenter Sites Explorerツール。

用意されている様々な種類の問合せについては、第14章「結果セットのキャッシングと問合せ」を参照してください。

SystemUsers

「WebCenter Sites管理ツール」ノードの「ユーザー」フォーム。

SystemUserAttr

「WebCenter Sites管理ツール」ノードの「ユーザー」フォーム。


12.5 プロパティ・ファイルとデータベース

futuretense.iniファイルには、WebCenter Sitesデータベースへの接続を制御する様々なプロパティがあります。これらのプロパティによって、データベースの構成が指定され、データベースとアプリケーション・サーバー間に、権限の有無を問わず、ユーザー接続が確立します。

データベース・プロパティのすべては、システムのインストール時にシステムに構成されました。デフォルトでは、すべてのコマンドは、futuretense.iniファイルで特定されているWebCenter Sitesデータベース上で動作します。futuretense.iniファイルが格納されているディレクトリは次のとおりです。

<installation_directory>/ContentServer/11.1.1.6.0/