2

私は長い間苦労してきた問題を抱えています。この問題はテスト環境では発生しますが、開発環境では発生しません。

ドキュメントライブラリテンプレートがあります。イベントハンドラーで、いくつかのコンテンツタイプをアタッチします(これらはすべて、ドキュメントから継承する基本コンテンツタイプから継承します)。基本コンテンツタイプには、カスタムドキュメントテンプレートと、コンテンツタイプ定義のxmldocumentsで定義されたイベントハンドラーがあります。

Doc-ID機能はサイトでオンになっています。

ファイルをドキュメントライブラリにアップロードすると、期待どおりにドキュメントにドキュメントIDが割り当てられます。ただし、Wordからファイルを保存する場合、doc-IDは空白になります。後でアイテムのコンテンツタイプを変更すると、ファイルが最初に保存されたときに割り当てられたことを示す番号とともにdoc-IDが表示されるため、値はアイテムに設定されているようです。コンテンツタイプを元の値に戻すと、Doc-IDはビューに表示されたままになります。

明確にするために:これはアイテムコンテンツタイプのIDフィールドではなく、SharePoint2010の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 に答える