2008-08-28 4 views
1

모든 디자이너가 배치 될 때까지 일시적으로 임시 방편으로 우리는 현재 직장에서 XML 구성 파일 전체를 손에 넣고 있습니다. 사람들이 파일을 업데이트 할 때 버전 번호를 업데이트하는 것을 잊어 버리기 때문에 파일 버전 관리가 문제가됩니다 (일반적으로 사람이 완벽함에 따라 예상 됨).sharepoint에서 파일 및 버전 번호 얻기

따라서 우리는 셰어 포인트에서 파일을 저장하는 스크립트를 작성하여 셰어 포인트에서 파일을 가져 와서 버전 번호를 얻고 파일에 셰어 포인트의 버전 번호를 자동으로 입력/업데이트 할 수 있어야한다고 생각합니다. 이는 누군가가 "최신"파일을 원할 때 스크립트를 실행할 수 있고 버전 번호가 정확한 최신 파일을 가져올 수 있음을 의미합니다 (이보다 약간 더 많으므로 스크립트를 사용하는 이유는 자동 - 버전 관리).

누구든지 Sharepoint에서 파일 + 버전 번호를받는 방법을 알고 있습니까?

답변

1

웹 서비스를 통해 수행 할 수있는 방법이 있지만 맞춤 이벤트 처리기를 구현하는 데 더 많은 노력을 기울였습니다. 여기 당신이 원하는 것을 할 수있는 약간의 코드가 있습니다. 서버에서만이 작업을 실행할 수 있으므로 웹 서비스에서이 작업을 마무리하여 내장 된 장치에서 액세스 할 수있게 할 수 있습니다. 또한이 코드에서 Microsoft.SharePoint.dll을 참조해야합니다.

using (SPSite site = new SPSite("http://yoursitename/subsite")) 
{ 
    using (SPWeb web = site.OpenWeb()) 
    { 
     SPListItemCollection list = web.Lists["MyDocumentLibrary"].GetItems(new SPQuery()); 
     foreach(SPListItem itm in list) { 
      Stream inStream = itm.File.OpenBinaryStream(); 
      XmlTextReader reader = new XmlTextReader(inStream); 
      XmlDocument xd = new XmlDocument(); 
      xd.Load(reader); 
      //from here you can read whatever XML node that contains your version info 
      reader.Close(); 
      inStream.Close(); 
     } 
    } 
} 

은 Using() 문

은 SPSite 및 SPWeb 관리되지 않는 개체대로 메모리 누수를 작성하지 않도록한다.

편집 :

itm["FieldName"] 
: 버전 번호가 라이브러리 필드로 승진 한 경우, 당신은 위의 루프하여 내에서 수행하여 액세스 할 수 있습니다
1

목록이나 라이브러리의 문서에 대해 이야기하고 있다고 가정합니다. 하이브의 소스 파일은 아닙니다. 그렇다면 각 라이브러리에는 기본 제공 버전이 있습니다. 각 라이브러리에서 사용할 수있는 양식 라이브러리 설정을 클릭하여 액세스 할 수 있습니다 (적절한 관리자 권한은 물론 있음). 거기에서 버전 관리 설정을 선택하고 해당 프로세스에 적합한 설정을 선택하십시오.

코드에서 버전 번호를 가져 오는 경우 컬렉션에서 SPListItem을 가져 오는 경우 각 항목에 Versions라는 SPListItemVersionCollection이 있습니다.