この章では、Oracle Portal付属のAPIを使用して単純なコンテンツ管理を実行する方法について説明します。この章の内容は、次のとおりです。

この章で説明する各APIの詳細は、次に示すPortal Centerの『Oracle Portal PL/SQL API Reference』を参照してください。
http://portalcenter.oracle.com
「Portal Focus Areas」セクションで「Portlet Development」をクリックし、次に、「APIs and References」セクションで「PL/SQL API Reference」をクリックします。
| ヒント:Webブラウザまたは外部アプリケーションからAPIをコールする場合、最初にセッション・コンテキストを設定する必要があります。詳細は、10.1項「セッション・コンテキストの設定」を参照してください。 | 
WWSBR_USER_PAGESビューを問い合せてページ・レコードを移入します。
更新する必要があるプロパティを変更します。
更新されたページ・レコードをmodify_folder APIに渡します。
更新できるページ・レコード内のプロパティは表11-1のとおりです。
表11-1 編集可能なページ・レコード・プロパティ
| プロパティ | データ型 | 説明 | 
|---|---|---|
| NAME | VARCHAR2(60) | ページの名前。この名前はパスに基づくURLで使用されます。 | 
| TITLE | VARCHAR(256) | ページの表示名またはタイトル。 | 
| SETTINGSSETID | NUMBER | ページによって使用されるスタイルのID。 | 
| SETTINGSSETSITEID | NUMBER | ページによって使用されるスタイルのページ・グループID。 | 
| ISPUBLIC | NUMBER(1) | ページがパブリック・ユーザーから参照可能であることを示します。有効な値は次のとおりです。 
 | 
| IMAGE | VARCHAR2(350) | 6001.JPGなど、ページに関連付けられたイメージの一意のドキュメント名。 | 
| ROLLOVERIMAGE | VARCHAR2(350) | 6001.JPGなど、ページに関連付けられた反転イメージ、またはタブのアクティブでないタブ・イメージの、一意のドキュメント名。 | 
| TITLEIMAGE | VARCHAR2(350) | 6001.JPGなど、タブのアクティブなタブ・イメージの一意のドキュメント名。 | 
| LEADER | VARCHAR2(256) | ページ連絡先の電子メール・アドレス。 | 
| DESCRIPTION | VARCHAR2(2000) | ページの説明。 | 
| CREATEDATE | DATE | ページの作成日付。 | 
| CREATOR | VARCHAR2(256) | ページ作成者のユーザー名。 | 
| HAVEITEMSECURITY | NUMBER(1) | アイテム・レベルのセキュリティ(ILS)がページに対して有効になっているかどうかを示します。有効な値は次のとおりです。 
 | 
| ITEMVERSIONING | VARCHAR2(30) | ページのアイテム・バージョニングのレベルを示します。有効な値は次のとおりです。 
 | 
| TOPICID | NUMBER | ページに割り当てられたカテゴリのID。 | 
| TOPIC_SITEID | NUMBER | ページに割り当てられたカテゴリのページ・グループID。 | 
| VALUE | VARCHAR2(2000) | PL/SQLページの場合、PL/SQLコード。 JSPページの場合、JSPソースのドキュメント名。JSPページでは、この値は変更しないでください。 | 
| IS_PORTLET | NUMBER(1) | ページがポートレットとして公開されているかどうかを示します。有効な値は次のとおりです。 
 | 
| PLSQL_EXECUTOR | VARCHAR2(30) | PL/SQLタイプのページの場合、PL/SQLコードの実行に使用されるデータベース・スキーマ。有効な値は次のとおりです。 
 | 
| KEYWORDS | VARCHAR2(2000) | ページのキーワード。 | 
| IS_READY | NUMBER(1) | ページの作成が完了していることを示します。有効な値は次のとおりです。 
 | 
| INHERIT_PRIV | VARCHAR2(200) | このページが権限を継承するページ。次の形式を使用します。 <page group id>/<page id> | 
| CACHE_MODE | NUMBER(1) | ページのキャッシュ・モード。有効な値は次のとおりです。 
 | 
| CACHE_EXPIRES | NUMBER(38) | 分単位のキャッシュ期間。 | 
| ALLOW_PAGE_STYLE | NUMBER(1) | テンプレートに対して、ページで別のスタイルを使用できるかどうかを示します。有効な値は次のとおりです。 
 | 
| ALLOW_PAGE_ACL | NUMBER(!) | テンプレートに対して、ページで様々なアクセス設定を持てるかどうかを示します。有効な値は次のとおりです。 
 | 
| INIT_JSPFILE | VARCHAR2(256) | JSPページの場合、ページのJSPソースがJARまたはWARファイルのときの初期JSPファイル。 | 
| UI_TEMPLATE_ID | NUMBER(38) | HTMLページ・スキンのID。 | 
| TEMPLATE_ISPUBLIC | NUMBER(1) | テンプレートが使用可能かどうかを示します。有効な値は次のとおりです。 
 | 
| CONTAINER_ID | NUMBER | コンテナ・ページのID。 | 
| DEFAULT_ITEM_REGION_ID | NUMBER | ページのデフォルトのアイテム・リージョンのID。 | 
| DEFAULT_PORTLET_REGION_ID | NUMBER | ページのデフォルトのポートレット・リージョンのID。 | 
| ITEMTYPE_INHERIT_FLAGS | NUMBER(1) | WebDAVの場合、デフォルトのアイテム・タイプが親ページから継承されているかどうかを示します。有効な値は次のとおりです。 
 | 
| REGFILE_ITEMTYPE | RAW(32) | WebDAVの場合、標準ファイルのデフォルト・アイテム・タイプのGUID。 | 
| ZIPFILE_ITEMTYPE | RAW(32) | WebDAVの場合、ZIPファイルのデフォルト・アイテム・タイプのGUID。 | 
| IMAGEFILE_ITEMTYPE | RAW(32) | WebDAVの場合、イメージ・ファイルのデフォルト・アイテム・タイプのGUID。 | 
| DISPLAYINPARENT | NUMBER(1) | ページが親ページのサブページ・リージョンに表示されるかどうかを示します。有効な値は次のとおりです。 
 | 
| SEQ | NUMBER | 親ページのサブページ・リージョンでのページの順序。 | 
| ALPHABETICAL_SORT | NUMBER(1) | サブページがアルファベット順に表示されることを示します。有効な値は次のとおりです。 
 | 
| ITEM_PAGE_ID | NUMBER(38) | アイテム・テンプレートのID。 | 
| ITEM_PAGE_SITE_ID | NUMBER(28) | アイテム・テンプレートのページ・グループID。 | 
| ITEM_PAGE_TABSTRING | VARCHAR2(512) | アイテム・テンプレートのタブ文字列。次の形式を使用します。 <tab name>:<sub tab name>:...:<sub tab name> | 
| INHERIT_ITEM_PAGE | NUMBER(1) | アイテム・テンプレート専用で、アイテムが親ページのアイテム・テンプレートを継承することを示します。有効な値は次のとおりです。 
 | 
| ALLOW_ITEM_PAGE_OVERRIDE | NUMBER(1) | アイテム・テンプレート専用で、アイテムが独自のアイテム・テンプレートを持てることを示します。有効な値は次のとおりです。 
 | 
| HAS_INPLACE_ITEM | NUMBER(1) | ページまたはタブにプレースホルダ・アイテムがあるかどうかを示します。有効な値は次のとおりです。 
 | 
| TIMEOUT | NUMBER | ポートレットをフェッチするために使用される制限時間(秒単位)。 | 
ユーザーは、プロパティを編集するにはそのページに対する「管理」権限が必要です。
翻訳可能な各ページ属性をmodify_folderで更新すると、セッションの言語設定で設定されている翻訳が更新されます。したがって、すべての翻訳可能な属性について必ず正しい値で翻訳を更新するには、最初に同じ言語の各ページ属性を問い合せる必要があります。
例11-1に、modify_folder APIを使用してページの表示名の英語翻訳を編集する方法を示します。
declare
  l_page     wwsbr_api.page_record;
begin
  wwctx_api.set_nls_language(
    p_nls_language => wwnls_api.AMERICAN
  );
  select *
  into l_page
  from   <schema>.wwsbr_user_pages
  where  siteid = 33
    and  id = 1
    and  language = wwnls_api.AMERICAN;
  l_page.title := 'New Page Display Name';
  wwsbr_api.modify_folder(
    p_page => l_page
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
p_page: 変更するページのページ・レコードです。
schema: Portalスキーマ(Oracle Portalがインストールされているスキーマ)です。
この項には、次の例が記載されています。
| 注意:アイテムを編集する場合、コードで行われる変更が他のユーザーによって上書きされないよう、最初にアイテムをチェックアウトすることをお薦めします。編集の完了後は忘れずにアイテムをチェックインしてください。アイテムのチェックアウトおよびチェックインについては、11.2.3項「アイテムのチェックアウトおよびチェックイン」を参照してください。 | 
アイテムに特定の属性を設定する場合には、set_attribute APIを使用します。このAPIは、アイテムの特定バージョンの属性値を更新します。指定された値は、属性のデータ型に準拠しているかどうか検証されます。このAPIを使用して基本属性(表11-2を参照)またはカスタム属性の値を設定できます。却下されたアイテム、削除としてマークされたアイテム、および削除としてマークされた却下アイテムは、このAPIでは編集できません。
例11-2に、set_attribute APIを使用してアイテムに特定の属性を設定する手順を示します。
| ヒント: set_attributeAPIは、1つのアイテム属性を設定する場合に使用します。複数のアイテム属性を設定する場合には、modify_itemAPIを使用します(11.2.2項「アイテムの編集」を参照)。 | 
例11-2 アイテムの表示名の設定(set_attribute API)
begin
  wwsbr_api.set_attribute(
    p_site_id           => 37,
    p_thing_id          => 8056,
    p_attribute_site_id => wwsbr_api.SHARED_OBJECTS,
    p_attribute_id      => wwsbr_api.ATTRIBUTE_TITLE,
    p_attribute_value   => 'New Display Name'
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
p_site_id: アイテムが属しているページ・グループのIDです。
p_thing_id: 一意のアイテムIDです。アイテムIDにより、編集するアイテムの特定のバージョンが識別されます。
p_attribute_site_id: 属性が属しているページ・グループのIDです。基本属性の場合は、wwsbr_api.SHARED_OBJECTS定数を使用します。
p_attribute_id: 属性のIDです。基本属性の場合は、表11-2に示すようにWWSBR_APIパッケージからの定数を使用します。
p_attribute_value: 属性に割り当てる新しい値です。基本属性の場合は、表11-2を参照してください。
ページ・グループIDやアイテムIDなどのオブジェクトIDを取得する方法については、10.3項「オブジェクトIDの検索」を参照してください。
表11-2に、基本属性の値を設定するためのガイドラインを示します。
| 属性 | 定数 | 値(p_attribute_value) | 
|---|---|---|
| 作成者 | wwsbr_api.ATTRIBUTE_AUTHOR | 任意のvarchar2(50)値。 | 
| カテゴリ | wwsbr_api.ATTRIBUTE_CATEGORY | <pagegroupid>_<categoryid> | 
| キャラクタ・セット | wwsbr_api.ATTRIBUTE_CHARSET | 
 | 
| 説明 | wwsbr_api.ATTRIBUTE_DESCRIPTION | 任意のvarchar2(2000)値。 | 
| 表示名 | wwsbr_api.ATTRIBUTE_TITLE | 任意のvarchar2(256)値。 | 
| 表示オプション | wwsbr_api.ATTRIBUTE_DISPLAYOPTION | 
 | 
| アイテムのチェックアウトを有効にする | wwsbr_api.ATTRIBUTE_ITEMCHECKOUT | 
 | 
| 有効期限 | wwsbr_api.ATTRIBUTE_EXPIRATIONPER | 
 | 
| ファイル | wwsbr_api.ATTRIBUTE_FILE | アップロードするファイルのパスとファイル名。 | 
| イメージ | wwsbr_api.ATTRIBUTE_IMAGE | アップロードするイメージのパスとファイル名。 | 
| イメージマップ | wwsbr_api.ATTRIBUTE_IMAGEMAP | 任意のvarchar2(4000)値。 | 
| イメージの位置 | wwsbr_api.ATTRIBUTE_IMAGEALIGN | 
 | 
| アイテムリンク | wwsbr_api.ATTRIBUTE_ITEM_LINK | <pagegroupid>_<itemid> | 
| アイテム・テンプレート | wwsbr_api.ATTRIBUTE_ITEM_TEMPLATE | <pagegroupid>_<itemtemplateid> | 
| キーワード | wwsbr_api.ATTRIBUTE_KEYWORDS | 任意のvarchar2(2000)値。 | 
| MIMEタイプ | wwsbr_api.ATTRIBUTE_MIME_TYPE | WWSBR_APIパッケージ内の任意のMIMEタイプ定数。次に例を示します。 
 使用可能なMIMEタイプ定数のリストについては、Portal Centerの『Oracle Portal PL/SQL API Reference』を参照してください。 
「Portal Focus Areas」セクションで「Portlet Development」をクリックし、次に、「APIs and References」セクションで「PL/SQL API Reference」をクリックします。 | 
| 名前 | wwsbr_api.ATTRIBUTE_NAME | 任意のvarchar2(256)値。 ページ、そのすべてのタブおよびサブページ内で一意の名前を指定します。 | 
| ページ・リンク | wwsbr_api.ATTRIBUTE_PAGE_LINK | <pagegroupid>_<pageid> | 
| パースペクティブ | wwsbr_api.ATTRIBUTE_PERSPECTIVES | <pagegroupid>_<perspectiveid> 複数のパースペクティブはカンマで区切ります。 実在しないパースペクティブはAPIによって識別されます。ページ・グループに利用できるパースペクティブのみが、アイテムに追加されます。 | 
| PL/SQL | wwsbr_api.ATTRIBUTE_PLSQL | 任意のvarchar2(2000)値。 | 
| 公開日付 | wwsbr_api.ATTRIBUTE_PUBLISHDATE | 日付値。 必須属性です。 | 
| 反転イメージ | wwsbr_api.ATTRIBUTE_ROLLOVERIMAGE | アップロードするイメージ・ファイルのパスとファイル名。 | 
| スマート・リンク | wwsbr_api.ATTRIBUTE_SMARTLINK | 
 | 
| スマート・テキスト | wwsbr_api.ATTRIBUTE_SMARTTEXT | 
 | 
| テキスト | wwsbr_api.ATTRIBUTE_TEXT | 任意のvarchar2(4000)値。 | 
| URL | wwsbr_api.ATTRIBUTE_URL | 最大長がvarchar2(2000)である任意のURL値。 | 
| バージョン番号 | wwsbr_api.ATTRIBUTE_VERSION_NUMBER | 任意の正数。整数でなくてもかまいません。 一意のバージョン番号を指定します。アイテムの既存のバージョンと同じにはしないでください。アイテムに既存のバージョン番号と同じ値を指定した場合は、アイテムの最上位バージョン番号より1つ大きい値に設定されます。 | 
既存のアイテムを編集するには、modify_item APIを使用します。このAPIを使用すると、アイテムのプロパティを設定できます。また、このAPIにより次の処理も可能になります。
アイテムの新規バージョンを追加できます(ページに対してアイテムのバージョンが有効になっている場合)。11.2.4項「バージョン・コントロールの使用」を参照してください。
アイテムに対してアイテム・レベルのセキュリティを有効にできます(ページに対してアイテム・レベルのセキュリティ(ILS)が有効になっている場合)。同様に実行できる別の方法については、15.3項「アイテム・レベルの権限の設定」を参照してください。
アイテムに関連付けられたファイルをアップロードできます。アイテムに関連付けるファイルがアップロード済の場合は、かわりにmodify_item_post_upload APIを使用します。
このAPIを使用して編集するのは、ACTIVE値が1のアイテムのみです。保留中か、却下されたかまたは削除されたアイテムの編集には使用しないでください。
アイテムを識別するアイテム・マスターIDと、更新するアイテムの特定バージョンを識別するアイテムIDの両方を渡す必要があります。指定されたIDがアイテムの現行のバージョンである必要はありません。オブジェクトIDを取得する方法については、10.3項「オブジェクトIDの検索」を参照してください。
modify_item APIでは、パラメータ・リストに属性が渡されなかった場合でも、すべての属性の値を変更します。属性が渡されなかった場合、その属性の値はパラメータのデフォルト値に戻ります。属性の現行値を保持する場合は、アイテムの属性値を取得してこのAPIに渡す必要があります。属性の値は、次のビューおよびAPIから取得できます。
WWSBR_ALL_ITEMS(組込み属性用)。
WWSBR_ITEM_ATTRIBUTES(カスタム属性用)。
WWSBR_ITEM_TYPE_ATTRIBUTES(アイテム・タイプの属性リスト用)。
WWSBR_ITEM_PERSPECTIVES(パースペクティブ用)。
wwsec_api.grantee.list(アイテム・タイプの権限リスト用)。このAPIの使用方法の詳細は、15.3項「アイテム・レベルの権限の設定」を参照してください。
例11-3では、テキスト・アイテムの表示名とテキストを更新しています。
例11-3 アイテムの編集(modify_item API)
declare
  l_item_master_id number;
begin
  l_item_master_id := wwsbr_api.modify_item(
    p_master_item_id => 453,
    p_item_id        => 454,
    p_caid           => 33,
    p_folder_id      => 45,
    p_display_name   => 'Movie Review',
    p_text           => 'This is the text of the review.'
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
p_master_item_id: アイテムのマスターIDです。この値は、WWSBR_ALL_ITEMSビューのMASTERID列で検索できます。
p_item_id: アイテムIDです。これはアイテムのバージョンを識別するものです。このアイテムの現行バージョンでなくてもかまいません。
| ヒント:アイテムの現行バージョンを識別するには、次の問合せを使用します。 select id from wwsbr_all_items where master_id = 453 and is_current_version = 1; | 
p_caid: アイテムが属しているページ・グループのIDです。
p_folder_id: アイテムが表示されるページのIDです。
p_display_name: アイテムの表示名(タイトル)です。
p_text: アイテムのテキストです(この例のアイテムはテキスト・アイテムです)。
アイテムがチェックアウト対象として有効になっている場合は、他のユーザーが同時に変更できないようにするため編集前にアイテムをチェックアウトしてください(例11-4)。
例11-4 アイテムのチェックアウトおよびチェックイン(check_out_itemおよびcheck_in_item)
begin
  -- Check out the item.
  wwsbr_api.check_out_item(
    p_master_item_id => 12345, -- Master ID is the same for all versions.
    p_caid           => 33
  );
  -- Update the display name of the item.
  wwsbr_api.set_attribute(
    p_site_id => 33,
    p_thing_id => 8056, -- Unique item ID.
    p_attribute_site_id => wwsbr_api.SHARED_OBJECTS,
    p_attribute_id      => wwsbr_api.ATTRIBUTE_TITLE,
    p_attribute_value   => 'New Display Name'
  );
  -- Check the item back in.
  wwsbr_api.check_in_item(
    p_master_item_id => 12345, -- Master ID is the same for all versions.
    p_caid           => 33
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_ache_invalidation;
exception
  ...
end;
/
p_master_item_id: チェックアウトまたはチェックインされるアイテムのマスターIDです。
p_caid: アイテムが属しているページ・グループのIDです。
例11-4で使用されたset_attribute APIの詳細は、11.2.1項「アイテム属性の設定」を参照してください。
| 注意:アイテムがチェックアウト済か確認するには、WWSBR_ALL_ITEMSビューのIS_ITEM_CHECKEDOUT列を問い合せます。このビューの詳細は、F.2.5項「WWSBR_ALL_ITEMS」を参照してください。 | 
modify_item APIを使用してアイテムを編集するときに、p_addnewversion = TRUEを設定すると、そのアイテムの新しいバージョンが作成されます。新しいバージョンには新しいIDが与えられます(マスターIDは同じままです)。アイテムの新しいバージョンを現行バージョンとしてすぐに公開しない場合は、p_add_as_current_version = FALSEを設定します。
例11-5に、modify_item APIを使用して新しいバージョンのアイテムを作成する方法を示します。
例11-5 アイテムの新規バージョンの作成(modify_item API)
declare
  l_item_master_id number;
begin
  l_item_master_id := wwsbr_api.modify_item(
    p_master_item_id => 453,
    p_item_id        => 454,
    p_caid           => 33,
    p_folder_id      => 45,
    p_display_name   => 'Movie Review',
    p_text           => 'This is the text of the review.',
    p_addnewversion  => true
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
ここで使用されるパラメータについては、例11-3を参照してください。
コンテンツが静的であることはごくまれなので、ポータル内でコンテンツの移動が必要な場合があります。
この項には、次の例が記載されています。
move_item APIを使用すると、同じページ・グループ内の別のページかまたは別のページ・グループのページにアイテムを移動できます。アイテムを移動してもアイテムのメタデータは保持されます。別のページ・グループにアイテムを移動するには、アイテムが次の条件を満たす必要があります。
ローカルのアイテム・タイプをベースとしていない。
ローカルのカテゴリに関連付けられていない。
ローカルのパースペクティブに関連付けられていない。
例11-6では、あるページ・グループから別のページ・グループのページにアイテムを移動します。
例11-6 別のページ・グループへのアイテムの移動(move_item API)
begin
  wwsbr_api.move_item(
    p_caid           => 33,
    p_master_item_id => 12345,
    p_dest_caid      => 53,
    p_dest_page_id   => 1,
    p_dest_region_id => 5
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
p_caid: アイテムが現在属しているページ・グループのIDです。
p_master_item_id: 移動するアイテムのマスターIDです。
p_dest_caid: アイテムの移動先となるページ・グループのIDです。
p_dest_page_id: アイテムの移動先となるページのIDです。
p_dest_region_id: アイテムの移動先となる、ページのアイテム・リージョンのIDです。リージョンIDを指定していない場合、アイテムはページのデフォルト・アイテム・リージョンに移動されますが、これは望ましいリージョンとはかぎりません。
move_folder APIを使用すると、ページを同じページ・グループ内で移動できます。別のページ・グループには移動できません。
ページを移動するには、ユーザーは移動元および移動先のページに対する「管理」権限を持っている必要があります。
例11-7に、ページの移動方法を示します。
begin
  wwsbr_api.move_folder(
    p_id        => 12345,
    p_siteid    => 33,
    p_parent_id => 10000
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
p_id: 移動するページのIDです。
p_siteid: ページが属しているページ・グループのIDです。
p_parent_id: ページの移動先となるページのIDです。
必要に応じてカテゴリおよびパースペクティブをページ・グループ内で移動できます。別のページ・グループには移動できません。
カテゴリやパースペクティブを移動するには、ユーザーは所有するページ・グループに対して「クラスの管理」以上の権限を持っている必要があります。
カテゴリを移動するには、例11-8に示すようにmove_category APIを使用します。
例11-8 カテゴリの移動(move_category API)
begin
  wwsbr_api.move_category(
    p_src_id => 2000,
    p_dest_id => 3000,
    p_siteid  => 33
  );
exception
  ...
end;
/
パースペクティブを移動するには、例11-9に示すようにmove_perspective APIを使用します。
例11-9 パースペクティブの移動(move_perspective API)
begin
  wwsbr_api.move_perspective(
    p_src_id => 2000,
    p_dest_id => 3000,
    p_siteid  => 33
  );
exception
  ...
end;
/
p_src_id: 移動するカテゴリまたはパースペクティブのIDです。
p_dest_id: カテゴリまたはパースペクティブの移動先となるカテゴリまたはパースペクティブのIDです。
p_siteid: カテゴリまたはパースペクティブが属しているページ・グループのIDです。
最初から作成しなおすのではなく、既存のコンテンツと同一または類似のものを追加する場合は、既存のコンテンツをコピーできます。
この項には、次の例が記載されています。
copy_item APIを使用すると、同じページ・グループ内の別のページ、または別のページ・グループのページにアイテムをコピーできます。別のページ・グループにアイテムをコピーするには、アイテムが次のすべての条件を満たす必要があります。
ローカルのアイテム・タイプをベースとしていない。
ローカルのカテゴリに関連付けられていない。
ローカルのパースペクティブに関連付けられていない。
アイテムをコピーしてもアイテムのメタデータは保持されます。
例11-10では、別のページ・グループのページにアイテムをコピーします。
例11-10 別のページ・グループへのアイテムのコピーの作成(copy_item API)
begin
  wwsbr_api.copy_item(
    p_caid           => 33,
    p_master_item_id => 12345,
    p_dest_caid      => 53,
    p_dest_page_id   => 1,
    p_dest_region_id => 5
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
p_caid: アイテムが現在属しているページ・グループのIDです。
p_master_item_id: コピーするアイテムのマスターIDです。
p_dest_caid: アイテムのコピー先となるページ・グループのIDです。
p_dest_page_id: アイテムのコピー先となるページのIDです。
p_dest_region_id: アイテムのコピー先となる、ページのアイテム・リージョンのIDです。リージョンIDを指定していない場合、アイテムはページのデフォルト・アイテム・リージョンにコピーされますが、これは望ましいリージョンとはかぎりません。
copy_folder APIを使用すると、ページを同じページ・グループ内にコピーできます。別のページ・グループにはコピーできません。
ページをコピーするには、ユーザーはコピー元のページに対する「表示」権限と、コピー先のページに対する「管理」権限を持っている必要があります。
例11-11では、ページのコピー方法を示します。
例11-11 ページのコピーの作成(copy_folder API)
declare
  l_new_pageid number;
begin
  l_new_pageid := wwsbr_api.copy_folder(
    p_id        => 12345,
    p_siteid    => 33,
    p_parent_id => 10000
    p_name      => 'page1',
    p_title     => 'page1'
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
p_id: コピーするページのIDです。
p_siteid: ページが属しているページ・グループのIDです。
p_parent_id: ページのコピー先となるページのIDです。
p_name: コピー操作によって作成される新しいページの名前です。
p_title: コピー操作によって作成される新しいページの表示名です。
コンテンツが不要になった場合、APIを使用してそれをポータルから削除し、領域を解放できます。
この項には、次の例が記載されています。
delete_item APIを使用して、アイテムの全バージョンを削除することも特定の1つのバージョンを削除することもできます。このAPIでは、削除対象のバージョンに関連するすべてのサブアイテムを削除することもできます。このAPIを使用してアイテムを削除する場合、ページ・グループのデフォルトの削除モードをそのまま使用することも、この設定を上書きすることも選択できます。
例11-12では、ページ・グループからアイテムのバージョン1を永続的に削除します。削除アイテムを保持するようにページ・グループが設定されている場合でも、そのアイテム・バージョンは永続的に削除されます。
例11-12 アイテムの削除(delete_item API)
begin
  procedure delete_item(
    p_master_item_id => 48037,
    p_caid           => 54,
    p_version_number => 1,
    p_mode           => wwsbr_api.DELETE_ITEM_PURGE
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
p_master_item_id: 削除するアイテムのマスターIDです。
p_caid: アイテムが属しているページ・グループのIDです。
p_version_number: 削除するアイテムのバージョンです。アイテムの現行バージョンを削除しようとすると、ITEM_ACTIVE_VERSION例外が発生します。アイテムのバージョンを指定していない場合は、アイテムの全バージョンが削除されます。
| ヒント:アイテムの現行バージョンを削除する場合は、全バージョンを削除するか、Oracle Portalユーザー・インタフェースを使用して以前のバージョンに戻す必要があります。 | 
p_mode: アイテムの削除時に使用するモードです。次の値をとることができます。
wwsbr_api.DELETE_ITEM_DEFAULTでは、ページ・グループ設定を使用します。
wwsbr_api.DELETE_ITEM_PURGEでは、ページ・グループ設定に関係なくアイテムをただちに削除します。
wwsbr_api.DELETE_ITEM_LAZYDELETEでは、ページ・グループ設定に関係なくアイテムを削除済としてマークします。
以前に削除したアイテムをリストアするには、undelete_item APIを使用します(例11-13)。アイテムにサブアイテムがある場合は、そのサブアイテムもリストアされます。
| 注意:削除アイテムをリストアできるのは、アイテムを所有するページ・グループが削除アイテムを保持するように設定されているか、wwsbr_api.DELETE_ITEM_LAZYDELETEモードを使用してアイテムが削除され、そのアイテムがコンテンツ・リポジトリからパージされていない場合のみです。 | 
例11-13 前の削除アイテムのリストア(undelete_item API)
begin
  wwsbr_api.undelete_item(
    p_thing_id => 12345,
    p_caid     => 33
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
p_thing_id: リストアする削除済アイテムの一意のIDです。
p_caid: アイテムが属しているページ・グループのIDです。
ページを削除するには、delete_folder APIを使用します。ユーザーは、ページを削除するにはそのページに対する「管理」権限が必要です。
| 注意:削除済ページをリストアできるAPIコールはありません。 | 
例11-14では、ページの削除方法を示します。
例11-14 ページの削除(delete_folder API)
begin
  wwsbr_api.delete_folder(
    p_id     => 12345,
    p_siteid => 33
  );
  -- Process cache invalidation messages.
  wwpro_api_invalidation.execute_cache_invalidation;
exception
  ...
end;
/
p_id: 削除するページのIDです。
p_siteid: ページが属しているページ・グループのIDです。