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

前
 
次
 

21 フレックス・アセットのインポート

この章では、XMLPostユーティリティ用のポスト・エレメントについて説明します。

第20章「任意タイプのアセットのインポート」では、XMLPostユーティリティの使用に関する中核的な情報について説明しています。フレックス・アセット・データ・モデルを使用している場合は、アセットをインポートするためのその他のツールを利用できます。WebCenter Sitesでは、BulkLoaderという名前のバルク処理ユーティリティとXMLPostユーティリティ用のポスト・エレメントが用意されています。

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

この章では、BulkLoaderユーティリティを取り上げていますが、このユーティリティの実行方法の詳細は、第22章「BulkLoaderユーティリティによるフレックス・アセットのインポート」を参照してください。

21.1 フレックス・アセットの理解

WebCenter Sitesでは、次の2つの方法で、フレックス・データ・モデルを使用するアセットをWebCenter Sitesデータベースにインポートできます。

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

21.1.1 データ構造フレックス・アセット・タイプのインポート

どちらの方法を使用する場合でも、その前に、WebCenter Sites製品に付属しているRemoteContentPostという標準のポスト・エレメントとXMLPostを使用して、データ設計またはデータ構造のアセット・タイプを作成するか、そのアセット・タイプをフレックス・ファミリにインポートする必要があります。つまり、標準のXMLPostポスト・エレメントを使用して、最初に属性エディタ、フレックス属性、フレックス定義およびフレックス親定義を作成またはインポートする必要があります。BulkLoaderユーティリティを使用する場合は、フレックス親もXMLPostを使用してインポートするか作成する必要があります。

21.1.2 フレックス・アセットのインポート

データ構造アセット・タイプをインポートしたら、状況に応じて次の2つのいずれかのインポート方法を使用してフレックス・アセットをインポートできます。

  • 大量(数千から数十万)のフレックス・アセットをインポートする場合は、BulkLoaderを使用します。

  • 中程度の数(数百)のフレックス・アセットとフレックス親アセットをロードする場合は、ポスト・エレメントを使用します。

BulkLoaderを使用する場合

ベーシック・アセット・モデル内で作業している場合は、通常はXMLPostを使用して、管理システム上のデータベースにアセットをインポートしてから、これらのアセットを配信システムにパブリッシュします。フレックス・アセット・データ・モデルで必要なデータの量は、ベーシック・アセット・モデルの場合よりもはるかに多い傾向にあるため、この方法はフレックス・アセットに応じて変化します。

BulkLoaderユーティリティは、WebCenter Sitesシステムの初期セットアップ時に使用します。第22章「BulkLoaderユーティリティによるフレックス・アセットのインポート」を参照してください。

XMLPostを使用する場合

WebCenter Sitesシステムの初期セットアップ後に通常更新や増分更新を実行するには(たとえば、データの一部またはすべてがERPシステムで生じている場合など)、XMLPostユーティリティとaddDataポスト・エレメントを使用します。

21.1.3 フレックス・アセットのインポート: プロセス

フレックス・モデルを使用しているアセットは相互に依存性があるため、フレックス・アセット・タイプは特定の順序でインポートする必要があります。そして、ベーシック・アセットの場合と同様に、XMLPostを使用してアセットをインポートする前に、該当するアセット・タイプが存在していることや、作成済のサイトが存在していることなどが必要になります。

すべてのアセット・タイプ(両方のアセット・モデル)に当てはまる、XMLPostを使用するための基本的な前提条件については、第20.4.1項「開始する前に」を参照してください。

これらの基本的な要件が満たされた後に、次の順序でフレックス・アセット・タイプを管理システム上のWebCenter Sitesデータベースにインポートする必要があります。

  1. 属性エディタは必須ではありませんが、属性エディタを使用する予定の場合は、それらをインポートまたは作成してからフレックス属性をインポートする必要があります。構成ファイルでは、RemoteContentPostエレメントをコールするようにXMLPostに指示する必要があります。詳細は、第21.3.1項「属性エディタ」を参照してください。

  2. フレックス属性。構成ファイルでは、RemoteContentPostエレメントをコールするようにXMLPostに指示する必要があります。詳細は、第21.3.2項「フレックス属性」を参照してください。

  3. フレックス親定義。構成ファイルでは、RemoteContentPostエレメントをコールするようにXMLPostに指示する必要があります。詳細は、第21.3.3項「フレックス定義とフレックス親定義」を参照してください。

    フレックス定義。構成ファイルでは、RemoteContentPostエレメントをコールするようにXMLPostに指示する必要があります。詳細は、第21.3.3項「フレックス定義とフレックス親定義」を参照してください。


注意:

フレックス親定義を適切な順序でインポートする必要があります。つまり、親定義が別の親定義アセットを参照している場合は、参照先のアセットはデータベース内にすでに存在している必要があります。通常は、親定義を階層レベルごとにインポートします(最上位レベルの親定義を最初にインポート)。


  1. フレックス親アセット。次のいずれかを行います。

    • XMLPostを使用してフレックス・アセットをインポートする場合は、フレックス親を個別にインポートすることも、フレックス・アセットのフレックス・ファミリ・ツリーの一部としてフレックス親をインポートすることもできます。

    • BulkLoaderユーティリティを使用してフレックス・アセットをインポートする場合は、まずXMLPostを使用してフレックス親アセットをインポートする必要があります。構成ファイルでは、RemoteContentPostエレメントをコールするようにXMLPostに指示する必要があります。フレックス・アセットのファミリ・ツリー全体を含めずに親をインポートするため、構成ファイルではaddDataエレメントを指定できません。

    詳細は、第21.3.4項「フレックス親」を参照してください。

  2. (オプション)BulkLoaderユーティリティを使用してフレックス・アセットを管理システムと配信システムの両方にインポートする予定の場合は、まずすべての構造アセット(属性エディタ、フレックス属性、フレックス定義、親定義およびフレックス親)を承認して、管理システムから配信システムにパブリッシュする必要があります。

  3. フレックス・アセット。次のいずれかを行います。

フレックス・アセット・ファミリのデータ構造には依存性が組み込まれているため、前述の手順で示した順序に従う必要があります。また、次の依存性にも留意してください。

  • asset型の属性があるときに、そのような属性をフレックス親またはフレックス・アセットが持っている場合は、その属性フィールドの値として指定するアセットは、あらかじめ作成またはインポートされている必要があります。

  • asset型の属性の値として設定するアセットは、正しいアセット・タイプのものである必要があります。

21.1.4 カスタムのデータ・デリミタの使用

XMLPostを使用してインポート、編集または削除するデータで、WebCenter Sitesのデフォルト・スキーマとは異なるデータ区切りスキーマが使用されている場合は(CSのデフォルト・デリミタについては次の表を参照してください)、次の表の説明に従ってカスタム・デリミタを指定できます。

表21-1 カスタムのデータ・デリミタ

タグとプロパティ 説明

タグ:

<_xmlnamevaldelim_>

プロパティ:

post_xmlnamevaldelim_

オプション。

名前と値のペアを別のペアと区切るためのカスタム文字を指定できます。

カスタム・デリミタを指定するには:

1. 構成ファイルでプロパティをyに設定します。

2. XMLファイルでタグを使用して、カスタム・デリミタを定義します。たとえば、次のようにアットマークをデリミタとして使用できます。

<_xmlnamevaldelim_>@</_xmlnamevaldelim_>

デフォルト・デリミタはコロン(:)です。

タグ:

<_xmlpostequaldelim_>

プロパティ:

post_xmlpostequaldelim_

オプション。

属性の名前と値を区切るためのカスタム文字を指定できます。

カスタム・デリミタを指定するには:

1. 構成ファイルでプロパティをyに設定します。

2. XMLファイルでタグを使用して、カスタム・デリミタを定義します。たとえば、次のように2つの等号をデリミタとして使用できます。

<_xmlpostequaldelim_>==</_xmlpostequaldelim_>

デフォルト・デリミタは等号(=)です。

タグ:

<_xmlpostmulvaldelim_>

プロパティ:

post_xmlpostmulvaldelim_

オプション。

複数値属性をそれぞれ区切るためのカスタム文字を指定できます。

カスタム・デリミタを指定するには:

1. 構成ファイルでプロパティをyに設定します。

2. XMLファイルでタグを使用して、カスタム・デリミタを定義します。たとえば、次のようにハイフンをデリミタとして使用できます。

<_xmlpostmulvaldelim_>-</_xmlpostmulvaldelim_>

デフォルト・デリミタはセミコロン(;)です。


21.2 XMLPostとフレックス・アセット・モデル

使用しているアセット・モデルやWebCenter Sites製品にかかわらず、XMLPostユーティリティは同じように動作します。ただし、WebCenter Sitesでは、XMLPostをサポートするために、フレックス・アセット・タイプの一部の標準エレメント内に追加の処理ロジックが用意されています。フレックス・アセットのデータは複数のデータベース表に格納されるからです(これとは対称的に、ベーシック・アセット・タイプでは1つのデータベース表しか使用されません)。

また、WebCenter Sitesには、XMLPostを使用してフレックス・アセットを編集可能にするポスト・エレメント(modifyData)と、XMLPostを使用して任意タイプのアセットを削除可能にするポスト・エレメント(deleteData)の両方が用意されています。

この章では、フレックス・ファミリ内のアセット・タイプ(および属性エディタ)専用の構成ファイルとソース・ファイルの作成に関する追加情報を提供します。必ず第20章「任意タイプのアセットのインポート」も参照して、XMLPostのすべての構成ファイルとソース・ファイルに関する基本情報を確認してください。

フレックス・アセット・モデルでは、次のカテゴリのアセット・タイプに基づいて異なるポスト・エレメントを指定します。

どちらの場合も、最初に構成ファイルとソース・ファイルを作成します(第21.1項「フレックス・アセットの理解」の説明と、この章の補足説明を参照)。その後で、XMLPostユーティリティを起動します(第20.4項「XMLPostユーティリティの使用」を参照)。


注意:

参考用として、XMLPostのサンプル・コードが用意されています。このサンプル・コードは、WebCenter Sitesインストーラ・パッケージの/Xcelerate/Samples/XMLPostディレクトリ内にあります。同じフォルダに、サンプル・ファイルの説明が記載されたreadme.txtファイルも含まれています。


内部名と外部名

アセット・タイプのフレックス・ファミリを作成するときには(第16.3.3項「手順1: フレックス・ファミリの作成」を参照)、アセット・タイプの内部名と外部名の両方を指定します。

内部名は、データベース内のプライマリ記憶域表で使用されます。外部名は、「新規」フォーム、「編集」フォーム、「調査」フォーム、検索結果リストなどで使用されます。たとえば、属性エディタ・アセット・タイプの内部名はAttrTypesですが、この名前はユーザー・インタフェースでは使用されません。また、GE Lightingサンプル・サイトの記事アセット・タイプの内部名はAArticlesですが、この名前はユーザー・インタフェースでは使用されません。

XMLPostはデータベースと通信するため、構成ファイルとソース・ファイルでは常にアセット・タイプの内部名を使用する必要があります。たとえば、属性エディタの構成ファイルでは、次のように指定します。

postargname2: AssetType
postargvalue2: AttrTypes

21.3 フレックス・モデル内の構造アセット・タイプのインポート

第20章「任意タイプのアセットのインポート」に記載しているベーシック・アセットの構成ファイルとソース・ファイルに関するすべての情報は、フレックス・アセット・タイプの構成ファイルとソース・ファイルにも当てはまります。

さらにこの項では、構造フレックス・アセット・タイプのサンプル構成ファイルとサンプル・ソース・ファイルを掲載しています。

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

21.3.1 属性エディタ

属性エディタのデータは、AttrTypesという名前の1つの表に格納されます。AttrTypesは、属性エディタ・アセット・タイプの内部名です。属性エディタの構成ファイルでは、必ずこの名前を使用してください。

次の表では、属性エディタで使用する構成ファイル・プロパティとソース・ファイル・タグを説明しています。

表21-2 属性エディタのタグとプロパティ

属性エディタのタグとプロパティ 説明

タグ:

<name>

プロパティ:

postname

必須。

属性エディタ・アセットの名前。これはすべてのアセット・タイプについて必須の値です。属性名は64文字に制限され、空白は指定できません。

タグ:

<description>

プロパティ:

postdescription:

オプション。

属性の使用方法や機能に関する説明。

タグ: <AttrTypeText>

プロパティ: postAttrTypeText

必須。

属性エディタのXMLコードが含まれたファイルの名前、または実際のコード。

このタグは、WebCenter Sitesインタフェースの「新規」および「編集」属性エディタ・フォームにある「XML」フィールドと、「参照」ボタンおよび「ファイル内のXML」フィールドに対応しています。


21.3.1.1 サンプル構成ファイル: 属性エディタ

ここでは、属性エディタ・アセット・タイプのサンプル構成ファイルを示します。この例のすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能します。

xmlpost.xmlfilenamefilter: .xml
xmlpost.url: http://izod19/servlet/ContentServer
xmlpost.numargs: 6
xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Xcelerate/Actions/RemoteContentPost
xmlpost.argname2: AssetType
xmlpost.argvalue2: AttrTypes
# notice that you use the internal name of the asset type

xmlpost.argname3: authusername
xmlpost.argvalue3: user_editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: user
xmlpost.argname5: inifile
xmlpost.argvalue5: futuretense.ini
xmlpost.argname6: startmenu
xmlpost.argvalue6: New Attribute Editor

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: attreditorpostlog.txt

xmlpost.deletefile: y

postpublication: y

postname: y
postdescription: y
postAttrTypeText: y

21.3.1.2 サンプル・ソース・ファイル: 属性エディタ

次に示すソース・ファイルは、GE Lightingサンプル・カタログのチェック・ボックス属性エディタ(プレゼンテーション・オブジェクト)をインポートするためのタグが記述されています。前述のサンプル構成ファイルと連係して機能します。

<document>
<publication>GE Lighting</publication>
<name>Editor4-CheckBoxes</name>
<description>Attribute Type Four Check Box</description>
<AttrTypeText>
  <![CDATA[
    <?XML VERSION="1.0"?>
    <!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd">
    <PRESENTATIONOBJECT NAME="CheckBoxTest">
      <CHECKBOXES LAYOUT="VERTICAL">
        <ITEM>Red</ITEM>
        <ITEM>Green</ITEM>
        <ITEM>Blue</ITEM>
      </CHECKBOXES>
    </PRESENTATIONOBJECT>
  ]]>
</AttrTypeText>
</document>

21.3.2 フレックス属性

フレックス属性はいくつかの表を持っていますが、XMLPostはこれらのうち2つの表にのみ書き込みを行います。1つはメイン記憶域表であり(GE Lightingサンプル・サイトの場合は、PAttributes表)、もう1つは属性アセット・タイプの_Extension表です(PAttributes_Extension)。

このため、構成ファイルのソース・ファイル・セクションでは両方の表の列を表すタグを指定する必要があり、ソース・ファイル自体ではこれらのタグを使用する必要があります。次の表では、これらのソース・ファイル・タグと構成ファイル・プロパティを説明しています。

表21-3 フレックス属性のタグとプロパティ

フレックス属性のタグとプロパティ 説明

タグ:

<name>

プロパティ:

postname

必須。

属性の名前。これはすべてのアセット・タイプについて必須の値です。属性名は64文字に制限され、空白は指定できません。

タグ:

<description>

プロパティ:

postdescription:

オプション。

属性の使用方法や機能に関する説明。

タグ:

<valuestyle>

プロパティ: postvaluestyle

オプション。

この属性が単一の値を保持できるのか(S)、複数の値を保持できるのか(M)。このタグを使用しない場合は、この属性はデフォルトで単一の値を保持するように設定されます。

タグ:

<type>

プロパティ:

posttype

必須。

この属性のデータ型。有効なオプションは、asset、date、float、int、money、string、textまたはblobです。これらのデータ型の定義については、第11.3.3.1項「属性のデータ型」を参照してください。

タグ: <assettypename>

プロパティ: postassettypename

<type>assetに設定されている場合は必須。

この属性で保持されているアセット・タイプの名前。

タグ:

<upload>

プロパティ:

postupload

<type>blobに設定されている場合は必須。

この属性の値を格納するディレクトリのパス。このフィールドに入力した値は、gator.iniファイルのcc.urlattrpathプロパティで属性表のデフォルト・ストレージ・ディレクトリ(defdir)として設定された値の後ろに付加されます(このディレクトリはデフォルトではFutureTense/futuretense_cs/ccurl/です)。

タグ: <attributetype>

プロパティ:

postattributetype

オプション。

使用する属性エディタの名前(該当する場合)。

タグ:

<enginename>

プロパティ:

postenginename

オプション。

管理システムで検索エンジンを使用している場合は、その検索エンジンの名前。

タグ:

<charsetname>

プロパティ:

postcharsetname

オプション。

使用する検索エンジンの文字セット。デフォルトでは、ISO 8859-1に設定されています。

タグ:

<編集>

プロパティ:

postediting

外部属性のみ。

外部属性は、WebCenter Sitesのフォームを通じて編集可能(L)になるのか、またはサード・パーティ・ツールを使用して外部で編集可能(R)になるのか。Lがデフォルトです。

タグ:

<storage>

プロパティ:

poststorage

外部属性のみ。

外部属性の値は、WebCenter Sitesデータベース内の_Mungo表に格納(L)されるのか、外部表に格納(R)されるのか。Lがデフォルトです。

タグ:

<externalid>

プロパティ:

postexternalid

外部属性のみ。

この外部属性を保持している表の主キーとして機能する列の名前。つまりこの属性を一意に識別する列の名前。

タグ:

<externalcolumn>

プロパティ:

postexternalcolumn

外部属性のみ。

この属性の値を保持している外部表の列の名前。

タグ:

<externaltable>

プロパティ:

postexternaltable

外部属性のみ。

externalidとexternalcolumで指定された列が含まれている外部表の名前。

タグ:

<publication>

プロパティ:

postpublication

オプション。

この属性を使用できるすべてのサイトの名前。


21.3.2.1 サンプル構成ファイル: フレックス属性

ここでは、GE Lightingサンプル・サイトの製品属性アセット・タイプのサンプル構成ファイルを示します。この例のすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能します。

xmlpost.xmlfilenamefilter: .xml

xmlpost.url: http://izod19/servlet/ContentServer
xmlpost.numargs: 6
xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Xcelerate/Actions/RemoteContentPost
xmlpost.argname2: AssetType
xmlpost.argvalue2: PAttributes
# Notice that this is the internal name of the asset 
# type. The external name of this asset type is
# Product Attribute.

xmlpost.argname3: authusername
xmlpost.argvalue3: user_editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: user
xmlpost.argname5: inifile
xmlpost.argvalue5: futuretense.ini
xmlpost.argname6: startmenu
xmlpost.argvalue6: New Product Attribute

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: attributespostlog.txt

xmlpost.deletefile: y

postpublication: y
postname: y
postattributetype: y
postdescription: y
postvaluestyle: y
posttype: y
postediting: y
poststorage: y
postenginename: y
poststatus: y
postassettypename: y
postupload: y
postexternalid: y
postexternalcolumn: y
postexternaltable: y
postcharsetname: y

21.3.2.2 サンプル・ソース・ファイル: 属性

ここでは、GE Lightingサンプル・サイトのfootnotesという名前の製品属性をインポートするためのサンプル・ソース・ファイルを示します。前述のサンプル構成ファイルと連係して機能します。

<document>
  <publication>GE Lighting</publication>
  <name>footnotes</name>
  <description>Footnotes</description>
  <valuestyle>S</valuestyle>
  <type>URL</type>
  <editing>L</editing>
  <storage>L</storage>
</document>

注意:

前述したように、フレックス属性のデータ型に関するすべての依存性と制約事項は、WebCenter Sitesインタフェース(「新規」または「編集」フレックス属性フォーム)を通じて属性を作成する場合でも、XMLPostを使用して属性を作成する場合でも同じように当てはまります。詳細は、第16.3.6項「手順4: フレックス属性の作成」を参照してください。


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

フレックス定義とフレックス親定義のアセット・タイプはよく似ているため、これらのアセット・タイプの構成ファイルとソース・ファイルはほぼ同じように記述します。これらのアセット・タイプは、各自のソース・ファイル内でいくつかの同じタグを必要とし、各自の構成ファイル内でいくつかの同じプロパティを必要とします。それぞれのファイルには1つの追加のプロパティ/タグが含まれます。

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

次の表では、フレックス定義とフレックス親定義のソース・ファイル・タグと構成ファイル・プロパティを示しています。大文字と小文字が区別されます。

表21-4 フレックス定義とフレックス親定義のタグとプロパティ

フレックス定義とフレックス親定義のタグとプロパティ 説明

タグ:

<internalname>

プロパティ:

postinternalname

必須。

アセットの名前。これはすべてのアセット・タイプについて必須の値です。フレックス定義とフレックス親定義の名前は64文字に制限され、空白は指定できません。

タグ:

<internaldescription>

プロパティ:

postinternaldescription

オプション。

アセットの用途または機能の説明。

タグ:

<renderid>

プロパティ:

postrenderid

オプション。フレックス定義専用。

このフレックス定義を使用して作成されるすべてのフレックス・アセットに割り当てられるテンプレート・アセットのID。

タグ:

<parentselectstyle>

プロパティ:

postparentselectstyle

オプション。フレックス親定義専用。

ユーザーがこの定義を使用してフレックス・アセットを作成する場合のフレックス親の選択方法を指定します。

このプロパティ/タグは、「新規」および「編集」親定義フォームの「親選択スタイル」フィールドを表しています。

このタグをソース・ファイル内で使用している場合、有効なオプションはtreepickselectboxesです。

次の4つのタグとプロパティは、親定義とフレックス定義の「新規」フォームと「編集」フォームの「製品親定義」セクションにあるボタンおよびフィールドと同じ機能を実行します。第16.3.7項「手順5: (オプション)フレックス・フィルタ・アセットの作成」および第16.3.9項「手順7: フレックス定義アセットの作成」を参照してください。

なし

タグ:

<OptionalSingleParentList>

プロパティ:

postOptionalSingleParentList

このタグを使用して、単一のオプションの親定義を指定します。

タグ:

<RequiredSingleParentList>

プロパティ:

postRequiredSingleParentList

このタグを使用して、単一の必須の親定義を指定します。

タグ:

<RequiredMultipleParentList>

プロパティ:

postRequiredMultipleParentList

このタグを使用して、複数の必須の親定義を指定します。

タグ:

<OptionalMultipleParentList>

プロパティ:

postOptionalMultipleParentList

このタグを使用して、複数のオプションの親定義を指定します。

次の3つのタグとプロパティは、フレックス定義とフレックス親定義の「新規」フォームと「編集」フォームの「属性」セクションにあるボタンおよびフィールドと同じ機能を実行します。第16.3.7項「手順5: (オプション)フレックス・フィルタ・アセットの作成」および第16.3.9項「手順7: フレックス定義アセットの作成」を参照してください。

なし

タグ:

<RequiredAttrList>

プロパティ:

postRequiredAttrList

この定義を使用するフレックス親またはフレックス・アセットの必須の属性のリスト。

タグ:

<OptionalAttrList>

プロパティ:

postOptionalAttrList

この定義を使用するフレックス親またはフレックス・アセットのオプションの属性のリスト。

タグ:

<OrderedAttrList>

プロパティ:

postOrderedAttrList

「新規」、「編集」、「調査」などのフォームですべての属性(必須とオプションの両方)が表示される順序。

このタグを使用した場合は、他の属性タグがこのタグに置き換えられます。この項のサンプル・ソース・ファイルでは、このタグをソース・ファイル内で使用する方法を例示しています。


構成ファイルには、その構成ファイルが連係するタイプのアセットのいずれかで使用される可能性のあるすべてのプロパティが含まれている必要があります。個別のソース・ファイルには、それらの個別のアセットを定義するために必要なタグのみが含まれています。

21.3.3.1 サンプル構成ファイル: フレックス定義

次に、GE Lightingサンプル・サイトの製品定義をインポートするために使用する構成ファイルの例を示します。この例のすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能します。

xmlpost.url: http://izod19/servlet/ContentServer
xmlpost.numargs: 6
xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Xcelerate/Actions/RemoteContentPost
xmlpost.argname2: AssetType
xmlpost.argvalue2: ProductTmpls
# Notice that this is the internal name of the asset type.
# The external name of this asset type is 
# Product Definition.

xmlpost.argname3: authusername
xmlpost.argvalue3: user_editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: user
xmlpost.argname5: inifile
xmlpost.argvalue5: futuretense.ini
xmlpost.argname6: startmenu
xmlpost.argvalue6: New Product Definition

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: productdefpostlog.txt
xmlpost.deletefile: y

postpublication: y
postinternalname: y
postinternaldescription: y

postparentselectstyle: y

postOptionalSingleParentList: y
postRequiredSingleParentList: y
postRequiredMultipleParentList: y
postOptionalMultipleParentList: y

postRequiredAttrList: y
postOptionalAttrList: y
postOrderedAttrList: y

postrenderid: y

21.3.3.2 サンプル・ソース・ファイル: フレックス定義

次のソース・ファイル(lighting.xml)は、GE Lightingサンプル・サイトのLightingという名前の製品定義のソースです。前述のサンプル構成ファイルと連係して機能します。

<document>
<publication>GE Lighting</publication>
<internalname>Lighting</internalname>
<internaldescription>Generic Lighting Template</internaldescription>
<RequiredAttrList>sku</RequiredAttrList>
  <OptionalAttrList>
    productdesc;caseqty;bulbshape;bulbsize;basetype;
    colortemp;meanlength;lightcenterlength;reducedwattage;beamspread;
    fixturetype;ballasttype;colorrenderingindex;minstarttemp;powerfactor;
    totalharmonicdist;spreadbeam10h;spreadbeam10v;spreadbeam50h;
    spreadbeam50v;halogen;operatingposition;filamenttype;bulbimage;
    baseimage;filamentimage;footnotes;price;life;voltage;wattage
  </OptionalAttrList>
<parentselectstyle>treepick</parentselectstyle>
<OptionalMultipleParentList>SubCategory</OptionalMultipleParentList>
</document>

前出の属性のリストを調べてください。1つのタグに複数の値を含める場合は、それぞれの値をセミコロン(;)で区切ります。

GE Lightingではオプション/複数の親モデルが使用されていますが、次に示す他の構成も可能です。

<OptionalSingleParentList>flexparentdefinition</OptionalSingleParentList>
<RequiredSingleParentList>flexparentdefinition</RequiredSingleParentList>
<RequiredMultipleParentList>flexparentdefinition</RequiredMultipleParentList>

順序付き属性のリストの指定

属性を特定の順序で表示する必要があるために、<OrderedAttrList>タグを使用する場合は、<RequiredAttrList>タグと<OptionalAttrList>タグを一緒に使用しないでください。<OrderedAttrList>タグに含まれた文字列で、どの属性が必須でどの属性がオプションなのかを次のように指定します。

  • 必須の属性については、その属性名の前にR (required)を付加します。

  • オプションの属性については、その属性名の前にO (optional)を付加します。

  • これらの属性を必ず目的の順序で列記します。

  • それぞれの値を必ずセミコロン(;)で区切ります。

例:

<OrderedAttrList>Rsku;Oproductdesc;Ocaseqty;Obulbshape;Obulbsize;Obasetype;Ocolortemp;Omeanlength;Olightcenterlength;Oreducedwattage;<OrderedAttrList>

21.3.4 フレックス親

XMLPostを使用して、次の2つの方法でフレックス親アセットをインポートできます。

  • 個別にインポートできます。フレックス親ごとに別個のXMLPostソース・ファイルを記述して、標準のRemoteContentPostポスト・エレメントのページ名とアセット・タイプを指定する1つのXMLPost構成ファイルを記述します。BulkLoaderユーティリティを使用する予定の場合は、まずXMLPostを使用してこの方法でフレックス親アセットをインポートする必要があります。

  • フレックス・アセットのフレックス・ファミリ・ツリーの一部としてインポートできます。BulkLoaderではなくXMLPostを使用してフレックス・アセットをインポートする場合は、フレックス親をフレックス・アセットと結合して、フレックス親をフレックス・ファミリ・ツリーの一部としてインポートできます(特定のフレックス・アセットのコンテキスト内で)。フレックス・アセットごとに別個のXMLPostソース・ファイルを記述して、そのフレックス・アセットのすべての親をそのソース・ファイル内で指定します。XMLPostは、ソース・ファイルの解析時に、1つのフレックス・アセットと複数のフレックス親の変数を作成します(これらの変数がまだ存在しない場合)。

この項では、フレックス親アセットを個別にインポートするためのソース・ファイルと構成ファイルを紹介します。フレックス・アセットとともにフレックス親アセットをインポートする方法の詳細は、第21.4項「XMLPostを使用したフレックス・アセットのインポート」を参照してください。

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

21.3.4.1 サンプル構成ファイル: 個別のフレックス親

次に、GE Lightingサンプル・サイトの製品親をインポートするために使用する構成ファイルの例を示します。この例のすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能します。

xmlpost.xmlfilenamefilter: .xml

xmlpost.url: http://izod19/servlet/ContentServer
xmlpost.numargs: 6
xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Xcelerate/Actions/RemoteContentPost
xmlpost.argname2: AssetType
xmlpost.argvalue2: ProductGroups
# notice that you use the internal name of the asset type

xmlpost.argname3: authusername
xmlpost.argvalue3: user_editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: user
xmlpost.argname5: inifile
xmlpost.argvalue5: futuretense.ini
xmlpost.argname6: startmenu
xmlpost.argvalue6: New Product Parent

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: productdefpostlog.txt
xmlpost.deletefile: y

postpublication: y
postinternalname: y
postinternaldescription: y
postflexgrouptemplateid: y
postfgrouptemplatename: y
postParentList: y
postcat1: y
postcat2: y

21.3.4.2 サンプル・ソース・ファイル: 個別のフレックス親

次のソース・ファイルは、GE LightingサンプルのHalogenという名前の製品親(フレックス親)を作成します。前述のサンプル構成ファイルと連係して機能します。

<document>
<publication>GE Lighting</publication>
<internalname>Halogen</internalname>
<fgrouptemplatename>Category</fgrouptemplatename>
<cat1>Halogen</cat1>
</document>

前述のとおり、RemoteContentPostポスト・エレメントを使用する場合は、親アセットごとに1つのソース・ファイルを用意する必要があります。

21.4 XMLPostを使用したフレックス・アセットのインポート

XMLPostを使用してフレックス・アセットをインポートする前に、構造アセット・タイプ(属性、フレックス定義およびフレックス親定義)をすでにインポートしている必要があります。

フレックス・アセットには、RemoteContentPostaddDataという2つのポスト・エレメントを使用できます。

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

21.4.1 フレックス・アセットの構成ファイル・プロパティとソース・ファイル・タグ

構造アセット・タイプの場合と同様に、構成ファイルとソース・ファイル内ではフレックス・アセット・タイプとフレックス親アセット・タイプの内部名を使用する必要があります。

ただし、構造アセット・タイプの場合とは異なり、アセット・タイプの引数を構成ファイルに記述する必要はありません。フレックス・アセットのソース・ファイルにはそのアセット・タイプを指定する必須タグが含まれているため、この情報を構成ファイル内で繰り返し指定する必要はありません。

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

21.4.1.1 addDataポスト・エレメントの場合

次の表は、addDataポスト・エレメントを使用している場合の、フレックス・アセット(およびそれらのフレックス親)のソース・ファイル・タグと構成ファイル・プロパティを示しています。大文字と小文字が区別されます。

表21-5 addDataポスト・エレメント

タグとプロパティ 説明

タグ:

<_ASSET_>

プロパティ:

post_ASSET_

必須。

アセット・タイプの内部名。たとえば、GE Lightingサンプル・サイトのフレックス・アセットの内部アセット・タイプ名は、ProductsAArticlesおよびAImagesです。

タグ:

<_TYPE_>

プロパティ:

post_TYPE_

必須。

このフレックス・アセットが使用しているフレックス定義の名前。

タグ:

<_ITEMNAME_>

プロパティ:

post_ITEMNAME_

必須。

アセットの名前。

タグ:

<_ITEMDESCRIPTION_>

プロパティ:

post_ITEMDESCRIPTION_

オプション。

アセットの説明。

タグ:

<_GROUP_parentDefinitionName>

プロパティ:

post_GROUP_parentDefinitionName

オプション。

フレックス・アセットの親。構成ファイルには、それぞれの考えられる親定義のタグが含まれている必要があります。たとえば、フレックス・アセットがDivisionおよびDepartmentという名前の2つの親定義のいずれかを使用する親を持っている可能性がある場合は、構成ファイルには、次のようにそれぞれの親定義のタグを定義する2つのプロパティが含まれている必要があります。

post_Group_Department

post_Group_Division

このタグとプロパティの使用方法の詳細は、第21.4.4.4項「フレックス・アセットの親の指定」を参照してください。

タグ:

<_GROUPDESCRIPTIONS_>

プロパティ:

post_GROUPDESCRIPTIONS_

オプション。

指定する親が新規の場合は、親定義の説明を含めることもできます。

タグ:

<displaytype>

プロパティ:

postdisplaytype

オプション。

フレックス・アセットのTemplateアセットの名前。

タグ:

<AttributeName>

プロパティ:

postAttributeName

タイプのアセットが持つことのできる属性(必須とオプションの両方)ごとに構成ファイルにプロパティを含めます。そして、そのアセットに適用する必須属性とオプション属性ごとにソース・ファイルで値を指定する必要があります。

たとえば、SKUという名前の属性がある場合は、postSKUというプロパティを含めて、ソース・ファイルには次のようなコード行を含めます。

<SKU>123445</SKU>


21.4.1.2 RemoteContentPostポスト・エレメントの場合

次の表は、RemoteContentPostポスト・エレメントを使用している場合の、フレックス・アセット(およびそれらのフレックス親)のソース・ファイル・タグと構成ファイル・プロパティを示しています。大文字と小文字が区別されます。

表21-6 RemoteContentPostポスト・エレメント

タグとプロパティ 説明

タグ:

<_DEFINITION_>

プロパティ:

post_DEFINITION_

必須。

このフレックス・アセットが使用しているフレックス定義の名前。

(post_TYPEも使用できます。)

タグ:

<_ITEMNAME_>

プロパティ:

post_ITEMNAME_

必須。

アセットの名前。

タグ:

<_ITEMDESCRIPTION_>

プロパティ:

post_ITEMDESCRIPTION_

オプション。

アセットの説明。

タグ:

<ParentList>

プロパティ:

post_ParentList

オプション。

フレックス・アセットの直接の親。

タグ:

<template>

プロパティ:

posttemplate

オプション。

フレックス・アセットのTemplateアセットの名前。

(postdisplaytypeも使用できます。)

タグ:

<AttributeName>

プロパティ:

postAttributeName

タイプのアセットが持つことのできる属性(必須とオプションの両方)ごとに構成ファイルにプロパティを含めます。そして、そのアセットに適用する必須属性とオプション属性ごとにソース・ファイルで値を指定する必要があります。

たとえば、SKUという名前の属性がある場合は、postSKUというプロパティを含めて、ソース・ファイルには次のようなコード行を含めます。

<SKU>123445</SKU>


21.4.2 addDataのサンプル・フレックス・アセット構成ファイル

ここでは、GE Lightingサンプル・サイトの製品アセット・タイプのサンプル構成ファイルを示します。この構成ファイルは、addDataポスト・エレメントを呼び出して、このサンプル・ファイルのすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能します。

xmlpost.xmlfilenamefilter: .xml

#xmlpost.proxyhost: Future
#xmlpost.proxyport: 80

xmlpost.url: http://wally9:80/servlet/ContentServer

# notice that it uses addData 
# rather than RemoteContentPost
xmlpost.numargs: 5

xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Gator/XMLPost/addData

# Notice that you do not need to provide
# the name of the asset type because that information
# is required in the source files for flex assets.

xmlpost.argname2: inifile
xmlpost.argvalue2: futuretense.ini
xmlpost.argname3: authusername
xmlpost.argvalue3: editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: xceleditor
xmlpost.argname5: startmenu
xmlpost.argvalue5: New Product

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: productdatalog.txt

xmlpost.postdeletefile: y

post_ASSET_: y
post_ITEMNAME_: y
post_TYPE_: y
post_GROUP_Category: y
post_GROUP_SubCategory: y
postpublication: y
postsku: y
postproductdesc: y
postcaseqty: y
postbulbshape: y
postbulbsize: y
postbasetype: y
postcolortemp: y
postmeanlength: y
postlightcenterlength: y
postreducedwattage: y
postbeamspread: y
postfixturetype: y
postballasttype: y
postcolorrenderingindex: y
postminstarttemp: y
postpowerfactor: y
posttotalharmonicdist: y
postspreadbeam10h: y
postspreadbeam10v: y
postspreadbeam50h: y
postspreadbeam50v: y
posthalogen: y
postoperatingposition: y
postfilamenttype: y
postbulbimage: y
postbaseimage: y
postfilamentimage: y
postfootnotes: y
postcat1: y
postcat2: y
postprice: y
postvoltage: y
postwattage: y
postlife: y

21.4.3 構成ファイル・プロパティとBLOB(またはURL)型の属性

アセット・タイプがblob(またはurl)型の属性を持っている場合は、構成ファイルには、その属性を参照するタグのエントリが2つ含まれている必要があります。1つはその属性を指定するエントリであり、もう1つは、次のいずれかのファイルの名前を指定するエントリです。その属性(アップロード・フィールド)の内容が含まれているファイルの名前、またはテキスト・フィールド(blob型またはURL型のテキスト・フィールド)に直接入力されたテキストから作成されるファイルにWebCenter Sitesが付与する名前です。

アップロード・フィールドとしてのBLOB(またはURL)型の属性

GE Lightingサンプル・サイトには、blob型の属性はありません。説明のために、footnotesという名前のblob型の属性があると仮定します。これは、テキストを入力するためのテキスト・フィールドのかわりに、ファイルを探すための「参照」ボタンが付いているアップロード・フィールドです。したがって、この属性は次の2つのプロパティを持ちます。

  • posttag: この例では、postfootnotes: y

  • filetag: この例では、filefootnotes: y

この属性の値をソース・ファイルに含める場合は、次の書式に従ってください。

<footnotes>FileName.txt</footnotes>

このタイプのフィールド(属性)を持つアセットをインポートする場合、そのフレックス・アセットの属性値として保管するテキストが含まれているファイルは、そのアセットのソース・ファイルと同じディレクトリに配置されている必要があります。

テキスト・フィールドとしてのBLOB(またはURL)型の属性

仮定のfootnotes属性が、ファイルではなくテキスト入力を直接受け付けるフィールドである場合は、構成ファイルで次のプロパティを指定する必要があります。

  • postfootnotes: y

  • postfootnotes_file: y

また、この属性の値をソース・ファイルに含める場合は、次の書式に従ってください。

<footnotes>lots and lots of text</footnotes>
<footnotes_file>FileNameYouWantUsed.txt</footnotes_file>

21.4.4 addDataのサンプル・フレックス・アセット・ソース・ファイル

次のソース・ファイルは、前の項で紹介したサンプルのフレックス・アセット構成ファイルと連係して機能します。

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

21.4.4.1 サンプル・ファイル

このソース・ファイルでは、10004という名前の電球製品を、Lightingという名前の製品定義から作成します。

<document>

# the first three tags are required
<_ASSET_>Products</_ASSET_>
<_ITEMNAME_>10004</_ITEMNAME_>
<_TYPE_>Lighting</_TYPE_>

# This tag is required because the publication is
# not set in the configuration file
<publication>GE Lighting</publication>

# This tag assigns a Template asset to the product
<displaytype>Lighting Detail</displaytype>

# The rest of these tags set flex attribute values for the product
<price>5</price>
<sku>10004</sku>
<productdesc>F4T5/CW</productdesc>
<caseqty>24</caseqty>
<bulbshape>T</bulbshape>
<bulbsize>5</bulbsize>
<basetype>Miniature Bipin (G5)</basetype>
<colortemp>4100</colortemp>
<meanlength></meanlength>
<lightcenterlength></lightcenterlength>
<reducedwattage></reducedwattage>
<beamspread></beamspread>
<fixturetype></fixturetype>
<ballasttype></ballasttype>
<colorrenderingindex>60</colorrenderingindex>
<minstarttemp></minstarttemp>
<powerfactor></powerfactor>
<totalharmonicdist></totalharmonicdist>
<spreadbeam10h></spreadbeam10h>
<spreadbeam10v></spreadbeam10v>
<spreadbeam50h></spreadbeam50h>
<spreadbeam50v></spreadbeam50v>
<halogen></halogen>
<operatingposition></operatingposition>
<filamenttype></filamenttype>
<bulbimage>BLB-260.gif</bulbimage>
<baseimage>BLB-250.gif</baseimage>
<filamentimage></filamentimage>
<footnotes>
</footnotes>
<life>6000</life>
<voltage></voltage>
<wattage>4</wattage>
<cat1>Fluorescent</cat1>
<cat2>Preheat Lamps</cat2>

<!-- GROUP tags that specify the parents. Remember that you have to
specify the entire family tree for the flex asset when using the addData posting element-->

<_GROUP_Category>Fluorescent</_GROUP_Category>
<_GROUP_SubCategory>Preheat Lamps</_GROUP_SubCategory>
</document>

このソース・ファイルは、製品の親をPreheat Lampsに設定して、Preheat Lampsの親をFluorescentに設定しています。

21.4.4.2 特殊文字の処理

XMLPostはHTTP POSTプロトコルを使用するため、データをHTTPストリームとして送信します。したがって、特定の文字は特殊文字として扱われ、これらの特殊文字はURLに含まれるため、これらの特殊文字をエンコードする必要があります。

ソース・ファイル内の属性値に、次の表で示す特殊文字のいずれかが含まれている場合は、その特殊文字のすべてを対応するURLエンコード・シーケンス(第4.8項「特殊文字の値」を参照)に必ず置換してください。

21.4.4.3 フレックス・アセットとそれらの親

GROUPタグは、ファミリ・ツリー内の親を指定します。XMLPostは、addDataポスト・エレメントを使用して、ソース・ファイルのGROUPセクションを解析する際に、次の操作を実行します。

  1. このフレックス定義を使用しているアセットに対して適正な親定義を特定します。

  2. それぞれの適正な親定義について、その定義の親がソース・ファイルで指定されているかどうかを確認します。

    • 指定されている場合は、その親を設定し、その親がまだ存在していない場合は、その親を作成します。

    • 指定されていない場合は、その親を設定しません。ただし、その定義の親が必須である場合は、エラーを返します。

21.4.4.4 フレックス・アセットの親の指定

フレックス・アセットの親を指定するには、その親の名前を<_GROUP_parentDefinitionName>タグ内にネストした形で指定します。例:

<_GROUP_subcategory>Blacklights</_GROUP_subcategory>

このsubcategoryは、Blacklightsという親(製品親)の親定義の名前です。

前述のとおり、フレックス・アセットのファミリ・ツリー全体を指定する必要があります。GE Lightingサンプル・サイトでは、製品アセットは1つの親と1つの祖父母を持ちます。電球(Blacklight)の親を指定するだけでなく、祖父母を指定する必要があります。例:

<_GROUP_subcategory>Blacklights</_GROUP_subcategory>

<_GROUP_category>Fluorescent</_GROUP_category>

21.4.4.5 親の属性値の設定

XMLPostは、属性値が属している親をどのようにして知るのでしょうか。XMLPostにとってはその親は不明です。したがって、ある属性が複数の親に属することができる場合は、その属性が属する親を指定する必要があります。たとえば、bulbshape属性が製品ではなく親に割り当てられているとします。この場合は、次のようなコード行を含めます。

<bulbshape>Halogen=T</bulbshape>

21.4.4.6 フレックス・ソース・ファイル内の複数値の設定

親を設定するすべてのタグと、属性を指定するすべてのタグは(その属性が複数の値を受け付けるように構成されている場合)、複数の値を扱うことができます。これらのタグは次のとおりです。

  • _GROUP_parentDefinitionName

  • _GROUPDESCRIPTIONS_

  • 属性タグ

1つのフレックス・アセットの同じ定義に基づいた複数の親がある場合は、それらの親の名前をすべて同じ_GROUP_parentDefinitionNameタグで指定して、これらの親の名前をセミコロン(;)で区切ります。

例:

<_GROUP_Cateogry>Incandescent;Halogen</_GROUP_Category>

XMLPostはこのアセットをインポートする際に、その親をIncandescentおよびHalogenとして設定します(これらは両方ともCategory親定義のものです)。IncandescentとHalogenがまだ存在していない場合は、XMLPostはこれらを作成します。

複数の親の複数の属性値を設定するには、同様の構文を使用します。再び仮定として、Category定義では、この定義の親がbulbshape属性の値を保持していることが必要だとします。この場合は、<_GROUP_Category>タグで指定された両方の親のbulbshape属性の値を次のように設定できます。

<bulbshape>Incandescent=E;K:Halogen=T</bulbshape>

この構文について、次のことに注意してください。

  • parentName=attributeValueという形式の名前と値のペアを使用して属性値を設定します(Halogen=T)。

  • コロンを使用して、それぞれの親を区切ります(Incandescent=S:Halogen=T)。

  • 親が複数の属性値を持っている場合は、セミコロンを使用してその親の属性値を区切ります(Incandescent=E;K:Halogen=T)。

前述のとおり、同じタグで指定する親の説明を指定することもできます。例:

<_GROUPDESCRIPTIONS>
Incandescent=From Detroit:Halogen=From Chicago
</_GROUPDESCRIPTIONS>

21.4.5 RemoteContentPostのサンプル・フレックス・アセット構成ファイル

ここでは、GE Lightingサンプル・サイトの製品アセット・タイプのサンプル構成ファイルを示します。この構成ファイルは、このサンプル・ファイルのすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能します。

xmlpost.xmlfilenamefilter: .xml

#xmlpost.proxyhost: Future
#xmlpost.proxyport: 80

xmlpost.url: http://wally9:80/servlet/ContentServer
xmlpost.numargs: 5

xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Xcelerate/Actions/RemoteContentPost

# Notice that you do not need to provide
# the name of the asset type because that information
# is required in the source files for flex assets.

xmlpost.argname2: inifile
xmlpost.argvalue2: futuretense.ini
xmlpost.argname3: authusername
xmlpost.argvalue3: editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: xceleditor
xmlpost.argname5: startmenu
xmlpost.argvalue5: New Product

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: productdatalog.txt

xmlpost.postdeletefile: y

postpublication: y

post_ASSET_: y
post_ITEMNAME_: y
post_DEFINITION_: y
posttemplate: y

postsku: y
postproductdesc: y
postcaseqty: y
postbulbshape: y
postbulbsize: y
postbasetype: y
postcolortemp: y
postmeanlength: y
postlightcenterlength: y
postreducedwattage: y
postbeamspread: y
postfixturetype: y
postballasttype: y
postcolorrenderingindex: y
postminstarttemp: y
postpowerfactor: y
posttotalharmonicdist: y
postspreadbeam10h: y
postspreadbeam10v: y
postspreadbeam50h: y
postspreadbeam50v: y
posthalogen: y
postoperatingposition: y
postfilamenttype: y
postbulbimage: y
postbaseimage: y
postfilamentimage: y
postfootnotes: y
postcat1: y
postcat2: y
postprice: y
postvoltage: y
postwattage: y
postlife: y

postParentList: y

21.4.6 RemoteContentPostのサンプル・フレックス・アセット・ソース・ファイル

次のソース・ファイルは、前の項で紹介したサンプル構成ファイルと連係して機能します。このソース・ファイルでは、10004という名前の電球製品を、Lightingという名前の製品定義から作成します。

<document>

# the first three tags are required
<_ASSET_>Products</_ASSET_>
<_ITEMNAME_>10004</_ITEMNAME_>
<_DEFINITION_>Lighting</_DEFINITION_>

# This tag is required because the publication is
# not set in the configuration file
<publication>GE Lighting</publication>

# This tag assigns a Template asset to the product
<template>Lighting_Detail</template>

# The rest of these tags set flex attribute values for the product
<price>5</price>
<sku>10004</sku>
<productdesc>F4T5/CW</productdesc>
<caseqty>24</caseqty>
<bulbshape>T</bulbshape>
<bulbsize>5</bulbsize>
<basetype>Miniature Bipin (G5)</basetype>
<colortemp>4100</colortemp>
<colorrenderingindex>60</colorrenderingindex>
<bulbimage>BLB-260.gif</bulbimage>
<baseimage>BLB-250.gif</baseimage>
<filamentimage></filamentimage>
<life>6000</life>
<voltage></voltage>
<wattage>4</wattage>
<cat1>Fluorescent</cat1>
<cat2>Preheat Lamps</cat2>

# this tag sets the immediate parents only
<ParentList>Preheat Lamps</ParentList>

</document>

このソース・ファイルでは、製品のいくつかの属性値を設定して、その直接の親をPreheat Lampsに設定しています。この親はすでに存在している必要があります。

21.5 XMLPostを使用したフレックス・アセットの編集

XMLPostを使用して、フレックス・アセットとフレックス親アセットに関する次の情報を編集できます。

属性アセット、フレックス定義アセットおよびフレックス親定義アセットは、XMLPostを使用して編集することはできません。

フレックス・アセットの属性値を編集するには、ソース・ファイルには、変更する属性とそのアセットの名前のみが含まれている必要があります。

フレックス親の属性値を編集するには、フレックス・アセットのコンテキストを提供する必要があります。ソース・ファイルでは、そのフレックス・アセットの名前が指定されている必要があり、そうすることで、変更する親属性と親のみを参照できます。ただし、XMLPostが最初に扱うフレックス・アセットを指定する必要があります。その結果として、XMLPostはファミリ・ツリー内を移動できるようになります。

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

21.5.1 フレックス・アセットを編集するための構成ファイル

フレックス・アセットを編集するための構成ファイルには、pagename引数と追加のタグおよびプロパティという2つの相違点があります。

pagename引数

pagename引数は、OpenMarket/Gator/XMLPost/modifyDataに設定する必要があります。

例:

xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Gator/XMLPost/modifyData

構成ファイルとソース・ファイルを指定して、XMLPostをコマンドラインから通常どおりに起動します。

追加のタグとプロパティ

フレックス・アセットの編集時には、次のオプションのタグとプロパティを使用できます。

  • タグ: <_REMOVE_parentDefinitionName>

  • プロパティ: post_REMOVE_parentDefinitionName

これにより、そのフレックス・アセットから親が削除されます。

21.5.2 フレックス・アセットを編集するためのソース・ファイル

編集対象のフレックス・アセットのソース・ファイルには、そのアセットのすべての情報が含まれている必要はありません。変更する情報のみを指定する必要があります。指定されていない属性は一切変更されません。

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

21.5.2.1 属性の値の変更

属性の値を変更するには、その属性の新しい値をソース・ファイル内で指定します。XMLPostはインポートの実行時に、ソース・ファイルで指定された値によって古い値を上書きします。

次のサンプル・ソース・ファイルでは、第21.4.4項「addDataのサンプル・フレックス・アセット・ソース・ファイル」で定義された10004という名前のGE Lighting製品の2つの属性値(bulbshapeとbulbsize)を変更します。

<document>
<!-- predefined xml tags (required) -->
<_ASSET_>Products</_ASSET_> 
<_ITEMNAME_>10004</_ITEMNAME_>
<_TYPE_>Lighting</_TYPE_>
<!-- attribute xml tags -->
<bulbshape>E</bulbshape> 
<bulbsize>9</bulbsize> 
</document>

21.5.2.2 属性値の削除

属性値を削除して空のままにするには、その属性の名前を指定する行を記述して、その属性の値として_EMPTY_を指定します。

例:

<bulbsize>_EMPTY_</bulbsize>

親の属性値を編集することもできます。たとえば、bulbsize属性が親レベルで設定されているとします。その場合は、次のコード行によって2つの親が設定されて、それぞれの親のbulbsizeの値が指定されます。

<_GROUP_SubCategory>All-Weather Lamps;Appliance Lamps
</GROUP_SubCategory>
<bulbsize>All-Weather Lamps=10:Appliance Lamps=8</bulbsize>

オプション1

次のコード行は、All-Weather Lampsという親のbulbsizeをクリアします。

<bulbsize>All-Weather Lamps=_EMPTY_:Appliance Lamps=8</bulbsize>

オプション2

別の方法として、次のコード行のみを使用して、Appliance Lampsの値を繰り返し指定することを回避できます。

<bulbsize>All-Weather Lamps=_EMPTY_</bulbsize>

21.5.2.3 親関係の編集

XMLPostを使用して、フレックス・アセットの親関係を次のように編集できます。

  • 既存の親に別の親を追加できます。

  • 親を別の親に変更できます。

GROUP_parentDefinitionNameタグの動作は、属性タグの動作とは異なります。

  • 属性タグを使用している場合は、XMLPostは古い値を新しい値によって上書きします。

  • GROUP_parentDefinitionNameタグを使用すると、親定義名が同じであっても、XMLPostは古い親を新しい親で上書きしません。かわりに、XMLPostはアセットの親のリストに新しい親を追加しますが、これは開発者の目的の処理ではない可能性があります。

既存の親のリストに別の親を追加するには、そのためのコード行をソース・ファイルに含めます。例:

<_GROUP_SubCategory>Blacklights</_GROUP_SubCategory>

親を削除するには、<_REMOVE_>タグを使用します。親を置換する場合を除いて、必要な親を削除しないように十分に注意してください。

<_REMOVE_Processor>Appliance Lamps</_REMOVE_Processor>

21.6 XMLPostを使用したアセットの削除

XMLPostを使用して、任意のタイプの任意のアセットを削除できます。そのためには、次の2つの要件が満たされる必要があります。

XMLPostがこのポスト・エレメントを使用する場合、XMLPostはそのアセットのStatus列の値をvoidを意味するVOに変更します。(XMLPostはこのアセットをデータベースから物理的に削除するわけではありません)。

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

21.6.1 アセットを削除するための構成ファイル

次に、サンプル構成ファイルを示します。

xmlpost.xmlfilenamefilter: .xml

xmlpost.url: http://izod19/servlet/ContentServer
xmlpost.numargs: 4
xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Gator/XMLPost/deleteData
xmlpost.argname2: authusername
xmlpost.argvalue2: user_editor
xmlpost.argname3: authpassword
xmlpost.argvalue3: user
xmlpost.argname4: inifile
xmlpost.argvalue4: futuretense.ini

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: productdefpostlog.txt
xmlpost.deletefile: y

postpublication: y
post_ASSET_: y
post_ITEMNAME_: y

XMLPostを通常どおりコマンドラインから起動します。

21.6.2 アセットを削除するためのソース・ファイル

アセットを削除するためのソース・ファイルは小さくてシンプルです。例:

<document> 
<_ASSET_>Products</_ASSET_> 
<_ITEMNAME_>Pentium 90</_ITEMNAME_> 
<publication>my publication</publication>
</document>

このコードは、Pentium 90という名前の製品アセットを削除するようにXMLPostに指示します(XMLPostはPentium 90のステータスをvoidを意味するVOに変更します)。