1

저는 오랜 시간 동안 어려움을 겪었습니다. 이 문제는 테스트 환경에서 나타나지만 내 개발 환경에서는 나타나지 않습니다.Office 클라이언트에서 저장할 때 문서 ID가 contenttype에 설정되어 있지 않습니다.

문서 라이브러리 템플릿이 있습니다. 이벤트 핸들러에서는 여러 컨텐츠 유형 (모든 컨텐츠는 Document에서 상속되는 기본 컨텐츠 유형에서 상속)을 첨부합니다. 기본 콘텐츠 형식에는 사용자 지정 문서 서식 파일과 콘텐츠 형식 정의에 대한 xmldocuments에 정의 된 이벤트 처리기가 있습니다.

Doc-ID 기능은 사이트에서 켜져 있습니다.

파일을 문서 라이브러리에 업로드 할 때 문서에 예상대로 문서 ID가 할당됩니다. 그러나 Word에서 파일을 저장할 때 doc-ID는 비어 있습니다. 나중에 항목의 콘텐츠 형식을 변경할 때 doc-ID는 파일을 처음 저장할 때 할당되었음을 나타내는 숫자와 함께 표시되므로 분명히 값이 항목에 설정됩니다. contenttype을 원래 값으로 다시 설정할 때 Doc-ID는 뷰에 계속 표시됩니다.

는 명확히하기 위해 :이 항목의 콘텐츠 형식의 ID 필드 아니라, 셰어 포인트 2010

이 값이 설정되지 않는 이유에 대한 모든 아이디어의 문서-ID 기능을 통해 생성 된 문서-ID Word에서 가치를 홍보 할 때?

답변

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> 
+0

안녕, 나는 비슷한 시나리오를 가지고 : 나는 페이지 CTYPE에서 inherrts 한 CTYPE의 CT1이 다른 CTYPE CT2가 CT1에서 상속 및 CT2 의미에서 또 다른 "CT3는"상속 페이지 -> ct1-> ct2-> ct3. 위의 이벤트 수신기를 ctde, 즉 ct1, ct2 및 ct3에 추가 한 cksdev에서 xml을 가져 왔습니다. 나는 EH ROM을 모두 제거하고 모든 것을 추가하는 등의 모든 조합을 시도했다. 하지만 모든 경우에, 나는 페이지 레이아웃을 ct3으로 만든 페이지에 대해 생성 된 docid를 얻을 수 없으며 spdigner에서 볼 때 pagelayout에 대한 docid 속성도 볼 수 없습니다. (docid 기능이 활성화되었습니다.) .. anry help..u 할 수 있습니다 .. –

+0

이 기능이 개발자를위한 것이 아닙니다. 가장 좋은 방법은 각 라이브러리의 기본 문서 ct를 기본으로 사용하여 코드로 런타임에 컨텐츠 유형을 생성하는 것입니다. –

관련 문제