SharePoint 2010 プログラムからの管理メタデータ列への値セット

管理メタデータを利用しているリスト列にプログラムから値をセットする方法についてです。リストの列に値をセットするいつものやり方だと管理メタデータ列は値を入れることができないため、次のようなコードで値を入れられます。

using (SPSite site = new SPSite("SiteURL”))
{
  using (SPWeb web = site.OpenWeb("WebURL"))
  {
    SPList list = web.Lists["ListName"];
    if (list != null)
    {
      TaxonomySession session = new TaxonomySession(site);
      foreach(SPListItem item in list.Items)
      {
       TaxonomyField taxField = item.Fields["FieldName"] as TaxonomyField;
       TermStore store = session.DefaultSiteCollectionTermStore;
       TermSet termSet = store.GetTermSet(taxField.TermSetId);
       Term term = termSet.Terms[0];
       TaxonomyFieldValue taxValue = new TaxonomyFieldValue(taxField);
       taxValue.TermGuid = term.Id.ToString();
       taxValue.Label = term.Name;
       taxField.SetFieldValue(item, taxValue);
       item.Update();
      }
    }
  }
}

ほかにも、管理メタデータが複数の値を許可している場合など、複数パターンのやり方があると思いますが、上記は複数値を許可していない場合のサンプルコードです。

[参考] MSDN
● エンタープライズ メタデータ管理の概要 (Microsoft SharePoint Server 2010 の開発者向け)
    http://msdn.microsoft.com/ja-jp/library/ee832800.aspx
Microsoft.SharePoint.Taxonomy Namespace
    http://msdn.microsoft.com/en-us/library/ee583437.aspx

奥田理恵 うさぎ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中