WebDAVリダイレクタ経由でSharePointに保存します。新しいオブジェクトIDを取得してバージョン履歴を失う
-
03-07-2019 - |
質問
WebDAVリダイレクタを使用して、SharePointリポジトリ上のファイルを編集しています。この方法でファイルを保存するたびに、以前のオブジェクトを置き換える新しいオブジェクトが取得されるようです。これにより、すべてのバージョン履歴が失われます。
次のオプションを使用して、CreateFileを介してファイルを開く:
filename-CreateFileへの読み取り専用呼び出しに使用されるものと同じ(動作します)
DesiredAccess:GENERIC_READ | GENERIC_WRITE
dwShareMode:FILE_SHARE_READ SecurityHandle:長さは設定されていますが、他の2つのフィールドは0です
dwCreationDisposition:OPEN_EXISTING dwFlagsAndAttributes:FILE_ATTRIBUTE_NORMAL
hTemplateFile:NULL
この呼び出しによって返されたハンドルにファイルを書き込んだ後、このファイルのリストアイテムを取得すると、オブジェクト番号(ID =)がインクリメントされています。また、このID番号は、リスト項目の各フィールドの先頭に追加されているようです(実際のデータとはシーケンス「#;」で区切られています)
ID番号のこの増分(およびバージョン履歴の損失)は、Webインターフェースを使用してチェックアウト、編集、チェックインしても発生しません。同じIDを保持し、バージョン履歴はそのまま残ります。
これを回避するにはどうすればよいですか?バージョン履歴を保持する必要があります。
解決
HTTPトレースを取得することをお勧めします。
同様に、リダイレクタが一時ファイルを使用していることを示し、それを元のファイルに移動します。
修正:よりスマートなWebDAVクライアントを使用します(Xythosドライブの方が良い場合があります)。
他のヒント
WebDavを使用すると、SharePointランタイムをバイパスすることになります。バージョン履歴を確実に取得するには、 SharePoint API を使用する必要があります。 (WebサービスまたはOM)