2

VS 2012を使用してドキュメントライブラリテンプレートを追加しました。次に、このライブラリにカスタムコンテンツタイプを追加しました。コンテンツタイプには、3つの管理されたメタデータフィールドが含まれます。ドキュメントライブラリの分類フィールドに用語を追加するときにプロジェクトを展開した後、次のエラーが発生しました。

「更新中のSPListItemは、すべての分類フィールドで取得されませんでした」

解決策が見つかりませんでした。どんな体も何が悪いのか考えていますか?

4

1 に答える 1

2

contenttype の ELEMENTS.XML ファイルでは、フィールド (実際には 2 つ必要です。それらがどのようにリンクされているかに注意してください) は、次のようにする必要があります。

<Field Type="Note"
     ID="{4B53F593-CF60-40DF-AEAF-23155BB9AA3F}"
     DisplayName="_Circular_Tags"
     Name="Circular_Tags_NOTE"
     StaticName="Circular_Tags_NOTE"
     ShowInViewForms="FALSE"
     Required="FALSE"
     Hidden="TRUE"
     CanToggleHidden="TRUE"
     RowOrdinal="0">
  </Field>
  <Field Type="TaxonomyFieldTypeMulti"
     ID="{DF553026-F699-456F-AA24-0C6087DBE885}"
     Name="Circular_Tags"
     StaticName="Circular_Tags"
     DisplayName="Circular_Tags_DisplayName"
     Description="Circular_Tags_Description"
     ShowField="Circular_Tags_Path"
     Required="FALSE"
     Sortable="FALSE"
     AllowDeletion="TRUE"
     EnforceUniqueValues="FALSE"
     ShowInViewForms="TRUE"
     Group="MyContentTypes_Group">
    <Default></Default>
    <Customization>
      <ArrayOfProperty>
        <Property>
          <Name>TextField</Name>
          <Value xmlns:q6="http://www.w3.org/2001/XMLSchema" p4:type="q6:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">{4B53F593-CF60-40DF-AEAF-23155BB9AA3F}</Value>
        </Property>
      </ArrayOfProperty>
    </Customization>
  </Field>

次に、(機能がアクティブ化されたコードで)次のことを行う必要があります。

 SPSite site = properties.Feature.Parent as SPSite;
Guid fieldId = new Guid("{DF553026-F699-456F-AA24-0C6087DBE885}");
if (site.RootWeb.Fields.Contains(fieldId))
{
    TaxonomySession session = new TaxonomySession(site);
    if (session.TermStores.Count != 0)
    {
        var termStore = session.TermStores["ManagedMetadata_Proxy"];
        var group = termStore.Groups["GroupName"];
        var termSet = group.TermSets["TermSetName"];
        TaxonomyField field = site.RootWeb.Fields[fieldId] as TaxonomyField;

        //set the text field to the id of the _Circular_Tags field : 4B53F593-CF60-40DF-AEAF-23155BB9AA3F
        field.TextField = new Guid("{4B53F593-CF60-40DF-AEAF-23155BB9AA3F}");

        // Connect to MMS
        field.SspId = termSet.TermStore.Id;
        field.TermSetId = termSet.Id;
        field.TargetTemplate = string.Empty;
        field.AnchorId = Guid.Empty;
        field.Update();
    }
}

最後に、リスト定義の SCHEMA.XML ファイルでは、フィールドに対して次のような定義が必要です。

<Field Type="TaxonomyFieldType" ID="{DF553026-F699-456F-AA24-0C6087DBE885}" Name="Circular_Tags" StaticName="Circular_Tags" DisplayName="Circular_Tags_DisplayName" Description="Circular_Tags_Description" ShowField="Circular_Tags_Path" Mult="TRUE" Required="FALSE" Sortable="FALSE" AllowDeletion="TRUE" EnforceUniqueValues="FALSE" ShowInViewForms="TRUE" Group="ContentTypes_Group">
        <Default></Default>
        <Customization>
          <ArrayOfProperty>
            <Property>
              <Name>TextField</Name>
              <Value xmlns:q6="http://www.w3.org/2001/XMLSchema" p4:type="q6:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">{4B53F593-CF60-40DF-AEAF-23155BB9AA3F}</Value>
            </Property>
          </ArrayOfProperty>
        </Customization>
      </Field>
于 2013-09-11T10:42:38.600 に答える