2

我有一个困扰了很长时间的问题。这个问题在测试环境中表现出来,而不是在我的开发环境中。

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

Doc-ID 功能在站点中打开。

将文件上传到文档库时,会按预期为该文档分配一个文档 ID。但是,从 Word 保存文件时,文档 ID 为空白。显然该值是在项目上设置的,因为在之后更改项目的内容类型时,doc-ID 会出现一个数字,表明它是在第一次保存文件时分配的。将 contenttype 设置回原始值时,Doc-ID 仍显示在视图中。

澄清一下:这不是项目内容类型的 ID 字段,而是由 SharePoint 2010 中的 doc-ID 功能创建的 Doc-ID。

从 Word 提升值时,为什么没有设置此值的任何想法?

4

1 回答 1

0

似乎解决方案在于网站集中的基本 Document 内容类型。激活文档 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>
于 2012-02-07T21:36:16.580 回答