2008-08-28 10 views
1

すべてのデザイナーが配置されるまでの一時的なストップギャップとして、私たちは現在、仕事中のXML構成ファイルを手作業で手掛けています。ファイルの更新時にバージョン番号を更新することを忘れているため(人が一般的に完璧に吸うと予想される)、この問題の1つはファイルのバージョン管理です。sharepointからのファイルとそのバージョン番号の取得

私は、ファイルをSharepointに保存すると、ファイルをSharepointからプルダウンしてバージョン番号を取得し、ファイルにSharepointのバージョン番号を自動的に入力/更新するスクリプトを書くことができるはずだと思います。これは、誰かが "最新の"ファイルを望むときに、スクリプトを実行して、バージョン番号が正しい最新のファイルを入手できるようにすることを意味します(スクリプトの使用理由は、バージョン管理)。

誰もSharepointからファイル+バージョン番号を取得する方法を知っていますか?

答えて

1

Webサービスを介して行う方法がありますが、私はカスタムイベントハンドラを実装することにより多くのことを行っています。ここでは、あなたがしたいことをするコードのビットです。このことはサーバーからしか実行できないため、組み込みデバイスからのアクセスを許可するために、これをWebサービスでラップすることをお勧めします。また、このコードで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(); 
     } 
    } 
} 

使用して()ステートメントは、SPSiteオブジェクトとSPWebアンマネージオブジェクトであるとして、あなたはメモリリークを作成しないことを確実にするためです。

編集:

itm["FieldName"] 
:バージョン番号は、ライブラリのフィールドに昇格されている場合は、上記のforループの中に、以下のことでそれにアクセスすることができます
1

私はあなたがリストやライブラリの文書について話していると仮定していますが、12ハイブのソースファイルではありません。そうであれば、各ライブラリにはバージョン管理機能が組み込まれています。各ライブラリから利用可能なフォームライブラリの設定をクリックすることでアクセスすることができます(適切な管理者権限を持つ)。そこから、[バージョン管理]を選択し、プロセスに適した設定を選択します。

コードでバージョン番号を取得する場合、SPListItemをコレクションから取得すると、各アイテムにVersionsという名前のSPListItemVersionCollectionがあります。

関連する問題