Sharepoint 2010 从Office客户端保存时未在contenttype中设置文档ID

Sharepoint 2010 从Office客户端保存时未在contenttype中设置文档ID,sharepoint-2010,ms-word,office-2010,sharepointdocumentlibrary,contenttype,Sharepoint 2010,Ms Word,Office 2010,Sharepointdocumentlibrary,Contenttype,我有一个问题,我已经挣扎了很长时间。这个问题会在测试环境中表现出来,但不会在我的开发环境中表现出来 我有一个文档库模板。在一个事件处理程序中,我附加了几个内容类型(它们都继承自一个基本内容类型,而该基本内容类型又继承自文档)。基本内容类型具有自定义文档模板,以及在contenttype定义的xmldocuments中定义的事件处理程序 在站点中打开文档ID功能 将文件上载到文档库时,会按预期为文档分配一个文档ID。但是,从Word保存文件时,文档ID为空。显然,该值是在项目上设置的,因为在随后更

我有一个问题,我已经挣扎了很长时间。这个问题会在测试环境中表现出来,但不会在我的开发环境中表现出来

我有一个文档库模板。在一个事件处理程序中,我附加了几个内容类型(它们都继承自一个基本内容类型,而该基本内容类型又继承自文档)。基本内容类型具有自定义文档模板,以及在contenttype定义的xmldocuments中定义的事件处理程序

在站点中打开文档ID功能

将文件上载到文档库时,会按预期为文档分配一个文档ID。但是,从Word保存文件时,文档ID为空。显然,该值是在项目上设置的,因为在随后更改项目的内容类型时,文档ID会显示一个数字,指示它是在首次保存文件时分配的。将contenttype设置回原始值时,文档ID仍显示在视图中

澄清:这不是项目内容类型的ID字段,而是由SharePoint 2010中的“文档ID”功能创建的文档ID


从Word中提升值时为什么不设置此值,您有什么想法吗?

似乎解决方案在于网站集中的基本文档内容类型。激活文档id功能后,事件处理程序将作为xmldocuments添加到内容类型定义中。创建常规文档库时,库中的内容类型继承自此内容类型,从而获取事件接收器的副本。 具有自定义内容类型的自定义文档库不是从网站集文档内容类型继承的,而是从基本文档内容类型继承的(
0x0101
),并且没有获取事件接收器的副本。 将xmldocuments复制到我的基本内容类型中似乎就可以做到这一点

<XmlDocuments>
        <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/events">
          <spe:Receivers xmlns:spe="http://schemas.microsoft.com/sharepoint/events">
            <Receiver>
              <Name>Document ID Generator</Name>
              <Synchronization>Synchronous</Synchronization>
              <Type>10001</Type>
              <SequenceNumber>1000</SequenceNumber>
              <Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
              <Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
              <Data>
              </Data>
              <Filter>
              </Filter>
            </Receiver>
            <Receiver>
              <Name>Document ID Generator</Name>
              <Synchronization>Synchronous</Synchronization>
              <Type>10002</Type>
              <SequenceNumber>1001</SequenceNumber>
              <Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
              <Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
              <Data>
              </Data>
              <Filter>
              </Filter>
            </Receiver>
            <Receiver>
              <Name>Document ID Generator</Name>
              <Synchronization>Synchronous</Synchronization>
              <Type>10004</Type>
              <SequenceNumber>1002</SequenceNumber>
              <Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
              <Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
              <Data>
              </Data>
              <Filter>
              </Filter>
            </Receiver>
            <Receiver>
              <Name>Document ID Generator</Name>
              <Synchronization>Synchronous</Synchronization>
              <Type>10006</Type>
              <SequenceNumber>1003</SequenceNumber>
              <Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
              <Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
              <Data>
              </Data>
              <Filter>
              </Filter>
            </Receiver>
          </spe:Receivers>
        </XmlDocument>
      </XmlDocuments>

文档ID生成器
同步的
10001
1000
Microsoft.Office.DocumentManagement,版本=14.0.0.0,区域性=中性,PublicKeyToken=71e9bce111e9429c
Microsoft.Office.DocumentManagement.Internal.DocIdHandler
文档ID生成器
同步的
10002
1001
Microsoft.Office.DocumentManagement,版本=14.0.0.0,区域性=中性,PublicKeyToken=71e9bce111e9429c
Microsoft.Office.DocumentManagement.Internal.DocIdHandler
文档ID生成器
同步的
10004
1002
Microsoft.Office.DocumentManagement,版本=14.0.0.0,区域性=中性,PublicKeyToken=71e9bce111e9429c
Microsoft.Office.DocumentManagement.Internal.DocIdHandler
文档ID生成器
同步的
10006
1003
Microsoft.Office.DocumentManagement,版本=14.0.0.0,区域性=中性,PublicKeyToken=71e9bce111e9429c
Microsoft.Office.DocumentManagement.Internal.DocIdHandler

解决方案似乎在于网站集中的基本文档内容类型。激活文档id功能后,事件处理程序将作为xmldocuments添加到内容类型定义中。创建常规文档库时,库中的内容类型继承自此内容类型,从而获取事件接收器的副本。 具有自定义内容类型的自定义文档库不是从网站集文档内容类型继承的,而是从基本文档内容类型继承的(
0x0101
),并且没有获取事件接收器的副本。 将xmldocuments复制到我的基本内容类型中似乎就可以做到这一点

<XmlDocuments>
        <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/events">
          <spe:Receivers xmlns:spe="http://schemas.microsoft.com/sharepoint/events">
            <Receiver>
              <Name>Document ID Generator</Name>
              <Synchronization>Synchronous</Synchronization>
              <Type>10001</Type>
              <SequenceNumber>1000</SequenceNumber>
              <Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
              <Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
              <Data>
              </Data>
              <Filter>
              </Filter>
            </Receiver>
            <Receiver>
              <Name>Document ID Generator</Name>
              <Synchronization>Synchronous</Synchronization>
              <Type>10002</Type>
              <SequenceNumber>1001</SequenceNumber>
              <Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
              <Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
              <Data>
              </Data>
              <Filter>
              </Filter>
            </Receiver>
            <Receiver>
              <Name>Document ID Generator</Name>
              <Synchronization>Synchronous</Synchronization>
              <Type>10004</Type>
              <SequenceNumber>1002</SequenceNumber>
              <Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
              <Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
              <Data>
              </Data>
              <Filter>
              </Filter>
            </Receiver>
            <Receiver>
              <Name>Document ID Generator</Name>
              <Synchronization>Synchronous</Synchronization>
              <Type>10006</Type>
              <SequenceNumber>1003</SequenceNumber>
              <Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
              <Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
              <Data>
              </Data>
              <Filter>
              </Filter>
            </Receiver>
          </spe:Receivers>
        </XmlDocument>
      </XmlDocuments>

文档ID生成器
同步的
10001
1000
Microsoft.Office.DocumentManagement,版本=14.0.0.0,区域性=中性,PublicKeyToken=71e9bce111e9429c
Microsoft.Office.DocumentManagement.Internal.DocIdHandler
文档ID生成器
同步的
10002
1001
Microsoft.Office.DocumentManagement,版本=14.0.0.0,区域性=中性,PublicKeyToken=71e9bce111e9429c
Microsoft.Office.DocumentManagement.Internal.DocIdHandler
文档ID生成器
同步的
10004
1002
Microsoft.Office.DocumentManagement,版本=14.0.0.0,区域性=中性,PublicKeyToken=71e9bce111e9429c
Microsoft.Office.DocumentManagement.Internal.DocIdHandler
文档ID生成器
同步的
10006
1003
Microsoft.Office.DocumentManagement,版本=14.0.0.0,区域性=中性,PublicKeyToken=71e9bce111e9429c
Microsoft.Office.DocumentManagement.Internal.DocIdHandler

Hi,我有类似的场景:我有一个ctype CT1继承自页面ctype,另一个ctype CT2继承自CT1,另一个“CT3”继承自CT2意味着:页面->CT1->CT2->CT3。我从cksdev导入了他们的xml,后者添加了上述eve