2012-07-05 2 views
2

목록 항목의 UI 버전 번호 (SharePoint의 웹 인터페이스에 표시되는 버전 번호)를 변경하는 프로그램을 만들어야합니다.SharePoint 목록 항목 버전 번호 변경

예 : 항목에 대한 버전이 있습니다. 1.0, 1.1, 1.2, 2.0, 2.2, 2.3 2.2 버전의 레이블을 2.1로 변경하려고합니다.

개체 모델을 통해 불가능하다는 것을 알고 있으므로 데이터베이스를 직접 수정해야합니다. 데이터베이스에서 두 개의 관련 테이블이 있습니다 :

  • AllDocs -이 표에서 문서의 최신 버전을 설명하는 행이 있습니다.

  • AllDocVersions -이 표에는 문서의 다른 (현재가 아닌) 버전을 나타내는 행이 있습니다.

현재 버전을 변경하지 않아도됩니다. 오른쪽 테이블의 UIversion 필드 만 변경하면됩니다. (예 : 2.2에서 2.1) 버전 변경으로 인해 현재 버전이 변경되는 경우 문제가 발생합니다. 예제에서 : 2.2에서 2.4. 이 경우 버전 2.2의 레코드를 AllDocVersions 테이블에서 AllDocs로 이동하고 버전 2.3의 레코드를 AllDocs에서 AllDocVersions으로 이동해야하지만이 두 테이블의 구조는 동일하지 않습니다.

이 테이블의 누락 된 필드를 어떻게 채울 수 있습니까? 누구나 버전 변경을위한 다른 방법을 제안 할 수 있습니까?

답변

0

하나는, 그리 쉬운 해결책이 될 수있다 :

  1. 하자 SharePoint에서 노력을, 일반적인 SharePoint API를 사용하여 v2.2v2.4으로 복원하십시오. v2.4AllDocs
    • 복사 AllDocVersions에서 v2.2AllDocVersions-AllDocs에서
    • 이동 v2.3 : 그것은 당신을 위해이 일을한다.
    • 웹 인터페이스를 통해 가능하므로 .NET 응용 프로그램에서도 사용할 수 있다고 가정합니다.
  2. v2.2.
  3. 그런 다음 v2.4이 원하는 버전 번호가 아닌 경우 SQL UPDATE 문을 사용하여 데이터베이스에서 , v3.0 등의 버전 번호를 데이터베이스에서 직접 업데이트 할 수 있습니다.
+0

단지 한 가지 방법으로 좋은 해결책이 아닙니다. :-( – Csujo

0

이 당신이 올바른 방향으로 시작할 수 있습니다

using (SPSite siteCollection = new SPSite("http://sp2010-server")) 
{ 
    SPWeb site = siteCollection.OpenWeb() 
    { 
     site.UIVersion = 3; 
     site.UIVersionConfigurationEnabled = true; 
     site.Update(); 
    } 
} 

출처 : Altering the UI Version in SP2010

+1

이 샘플은 목록 항목 UI 버전이 아닌 사이트의 UI 버전을 어떻게 변경할 수 있는지 설명합니다. – Csujo

관련 문제