Salvataggio in SharePoint tramite redirector WebDAV. Ottenere un nuovo ID oggetto e perdere la cronologia delle versioni
-
03-07-2019 - |
Domanda
Sto usando il redirector WebDAV per modificare un file su un repository di SharePoint. Sembra che ogni volta che salvo il file in questo modo, ottengo un nuovo oggetto che sostituisce quello precedente. Ciò sta causando la perdita di tutta la cronologia delle versioni.
L'apertura del file viene eseguita tramite CreateFile con:
nomefile: lo stesso utilizzato per la chiamata di sola lettura a CreateFile (che funziona)
DesiredAccess: GENERIC_READ | GENERIC_WRITE
Modalità dwShare: FILE_SHARE_READ SecurityHandle: la lunghezza è impostata, ma altri 2 campi sono 0
dwCreationDisposition: OPEN_EXISTING dwFlagsAndAttributes: FILE_ATTRIBUTE_NORMAL
hTemplateFile: NULL
Dopo aver scritto il file sull'handle restituito da questa chiamata, se ottengo la voce di elenco per questo file, il numero oggetto (ID =) è stato incrementato. Inoltre, questo numero ID sembra essere anteposto a ciascuno dei campi nella voce di elenco (separato dai dati effettivi dalla sequenza " #; ")
Questo incremento del numero ID (e perdita della cronologia delle versioni) non si verifica se eseguo il check-out, la modifica e il check-in utilizzando l'interfaccia Web; mantiene lo stesso ID e la cronologia delle versioni rimane intatta.
Come posso evitarlo? Devo conservare la cronologia delle versioni.
Soluzione
Consiglierei di ottenere una traccia HTTP.
Probabilmente, mostrerà che il redirector utilizza un file temporaneo, quindi lo sposta sopra il file originale.
Correzione: utilizzare un client WebDAV più intelligente (l'unità Xythos potrebbe essere migliore).
Altri suggerimenti
utilizzando WebDav si ignora il runtime di SharePoint, motivo per cui. per assicurarti di ottenere la cronologia delle versioni, devi utilizzare le API di SharePoint (servizi web o OM)