管理対象属性値(MVal)のロードおよび変更

データ・ドメインでまだ作成および構成されていない管理対象属性の管理対象属性値をロードした場合、管理対象属性はDDRのシステム・デフォルトで作成され、まだ存在しない場合はPDRのシステム・デフォルトでも作成されます。

したがって、デフォルトの管理対象属性スキーマおよび標準属性スキーマ(DDRおよびPDRの構成)がニーズを満たす場合は、管理対象属性スキーマおよび標準属性スキーマをロードしなくても(DDRおよびPDRを構成しなくても)管理対象属性値をロードできます。管理対象属性スキーマまたは標準属性スキーマをカスタマイズする(DDRまたはPDRを構成する)必要がある場合は、管理対象属性値をロードする前に、スキーマ(PDRおよびDDRの構成)をロードする必要があります。

管理対象属性に管理対象値を追加したり、既存の管理対象属性値を変更するには、Merge Managed Valuesコンポーネントを使用します。Merge Managed Valuesコンポーネントでは、インスタンスごとに1つの管理対象属性に対して管理対象値を追加または変更できます。複数の管理対象属性に値を追加するには、同じグラフまたは異なるグラフで、コンポーネントの複数のインスタンスが必要です。

ロード済の管理対象属性に対して次のプロパティを変更することもできます。

その他のプロパティ(親、指定子およびシノニム)は、一度管理対象属性値をロードすると、変更できなくなります。

管理対象属性値の入力ファイル

管理対象属性入力ファイルの入力スキーマは事前定義されています。最初の行はヘッダー行であり、次のプロパティを定義する必要があります。
spec|displayname|parent|synonym|rank
ここで、
  • specは、管理対象値の一意の文字列識別子です。このIDは、親値に子値を関連付けるために使用されます。

    このフィールドは必須です。

  • displaynameは、管理対象値のユーザー・インタフェースに表示される名前です。

    このフィールドはオプションです。

  • parentは、この管理対象値の親IDです。値がルート値である場合(つまり、値に親がなく、子のみがある場合)、このプロパティにはスラッシュ(/)を入力します。値が子管理対象値である場合は、親管理対象値の一意のIDを入力します。

    このフィールドは、管理対象属性値をロードする場合は必須です。管理対象属性値を更新する場合はオプションですが、nullにする必要があります。管理対象属性値を更新する場合にこのプロパティの値をnull以外にすると、グラフは失敗し、エラーが返されます。

  • synonymでは、オプションで管理対象値の1つ以上のシノニムを定義します。管理対象属性値にシノニムを追加した場合、ユーザーがシノニムを検索したときにその値が返されます。ルート管理対象値および子管理対象値の両方にシノニムを追加できます。単一の管理対象値に複数のシノニムを追加できます。Add Managed Valuesの編集ダイアログで、複数のシノニムのためのデリミタを指定します。

    このフィールドはオプションです。

  • rankは、管理対象属性の値セットにおける値のランク順を指定する整数です。

    このフィールドはオプションです。

次の図に、簡単な管理対象属性入力ファイルを示します。

管理対象属性入力ファイルの簡単な例

この例では、CAT_BIKESおよびCAT_COMPONENTSを含む複数の親カテゴリを定義しています。これらのカテゴリはそれぞれランク付けされます。

次の値は、CAT_BIKES値の子として定義されます(ランキング付き)。

次の値は、CAT_COMPONENTS値の子として定義されます(ランキング付き)。
  • Handlebars (ランク21)
  • Bottom Brackets (ランク22)
  • Brakes (ランク23)
  • Chains (ランク24)
同じ管理対象属性のすべての値で同じランキング構造が共有されます。ランキング値の重複は不可です。管理対象属性値のランキングを定義する場合はこの要件を考慮し、すべてのランクが一意になるようにランク付け方法を策定してください。たとえば、4桁のランキング構造を使用し、存在する管理対象属性値のランキングのレベルを値ツリー内で数字位置によって指定できます。次に例を示します。
  • 0002

    第1レベルの管理対象属性値(/の子)。例の入力ファイルにおけるCAT_COMPONENTS管理対象属性値など。

  • 0021

    第2レベルの管理対象属性値(親は/の子)。例の入力ファイルにおけるRoad Bikes管理対象属性値など。

  • 0211

    第3レベルの管理対象属性値(/から3レベル下)。

  • 3211

    第4レベルの管理対象属性値(/から4レベル下)。

この構造をニーズに合わせて変更することも、別のランク付け方法を使用することもできます。

入力ファイルは一般的に、プロジェクトのdata-inディレクトリに格納されます。

display namesynonymおよびrankフィールドはオプションですが、入力レコード内に存在している必要があります。次に例を示します。
CAT_CLOTHING||/||

管理対象属性値の変更

既存の管理対象属性値のdisplay nameおよびrankは変更可能です。既存の管理対象属性値のspecparentまたはsynonymは変更不可です。
  • 管理対象属性値のspecを変更しようとすると、指定したプロパティを使用して新しい管理対象属性値が作成されます。
  • 管理対象属性値のparentを変更しようとすると、次のエラーが返され、グラフが失敗します: 更新の適用時にエラーが発生しました: 既存の管理対象属性値"1"の階層を変更し、"CAT_BIKES_FOO"を属性"mdex-dimension_category_Parent"に割り当てようとしています
  • 管理対象属性値のsynonymを変更しようとすると、次のエラーが返され、グラフが失敗します: 更新の適用時にエラーが発生しました: 管理対象属性値"1"にシノニムを追加し、"Mtn Bike, Mountain Bicycle"を属性"mdex-dimension-value_Synonyms"に割り当てようとしています
管理対象属性値を変更する場合は、変更する管理対象属性値のspecの値、および変更するプロパティに応じてnameまたはrank (あるいはその両方)の値を入力ファイルに指定する必要があります。parentsynonymの値に加え、namerankの値も変更しないのであれば省略可能ですが、各レコード内にこれらのフィールドが存在している必要はあります。次のコードは、簡単な例を示したものです。
spec,name,parent,synonym,rank
1,Mountain Bicycles,,,15
他の箇所で取り上げた管理対象属性値をロードした後でこの入力を送信した場合、管理対象属性"Mountain Bikes" (spec 1)の名前が"Mountain Bicycles"に変更され、そのランクが15に更新されます。この入力レコードではparentおよびsynonymフィールドは空です。

管理対象属性値の入力グラフ

基本管理対象属性値入力グラフは、次の2つのコンポーネントから構成されます。
  • Universal Data Reader

    「ファイルURL」フィールドで入力ファイルの場所を指定します(一般的には、プロジェクトのdata-inディレクトリ)。

  • Merge Managed Valuesコンポーネント

2つのコンポーネントは、基本エッジで結合されます。「エッジによる2つのコンポーネントの接続」を参照してください。次の図に、一般的な構成を示します。

一般的な管理対象属性値のロード・グラフ