Domanda

Ho una lista molto grande (~ 5000 documenti) che è stato chugging lungo per circa un anno. Ha avuto delle versioni acceso, con le versioni principali, mantenendo 2 vecchie versioni. Siamo totalmente ristrutturazione del Document Library (più su che in un'altra domanda) e mi piacerebbe semplicemente sbarazzarsi delle vecchie versioni su tutta la linea per ripulire la biblioteca e recuperare spazio.

Ho trasformato versioning fuori, ma le versioni non andare via, quando penso che dovrebbero. qualche idea? Una cosa che è importante da notare è che ho ereditato la raccolta documenti. E 'un po' strano in diversi modi e io non sono esattamente sicuro di come è stato creato.

È stato utile?

Soluzione 4

Ora che sono più vecchio e un po 'teeny più saggia, mi avrebbe risolto questo scrivendo script lato client. Utilizzando SPServices , avrei potuto in loop attraverso tutti gli elementi della raccolta documenti e chiamato DeleteAllVersions per ciascuno. Questo è il modo in cui "nessun codice" per scrivere il codice per farlo.

Altri suggerimenti

Purtroppo non posso pensare ad un modo non-programmatico di fare questo, ho avuto un rapido sguardo a questo e ho creato un po 'di codice di esempio per scorrere e cancellare le versioni ad eccezione di quello più recente (questo si basa sull'ultima versione dell'essere pubblicato però):

 using (SPSite site = new SPSite("http://yourserver/sites/site"))
        {
            using (SPWeb web = site.OpenWeb())
            {
                SPList list = web.Lists["Test Doc Library"];
                foreach (SPListItem item in list.Items)
                {
                    SPListItemVersionCollection versionCol = item.Versions;
                    int count = versionCol.Count;
                    int j = 0;
                    for (int i = 1; i < count; i++)
                    {
                        if (versionCol[i].VersionId != versionCol[j].VersionId)
                        {
                            SPListItemVersion version = versionCol[i];
                            version.Delete();
                            count = item.Versions.Count;
                        }
                    }
                }



            }
        }

Tuttavia il codice viene eseguito attraverso bene, ma la versione non in realtà scompaiono correttamente, penso che si dovrà fare qualcosa con la raccolta SPFileVersion anche in quanto è una raccolta di documenti. Questo dovrebbe iniziare in ogni caso, fatemi sapere come si ottiene.

Saluti

Non è sicuro se c'è un modo per scrivere ai campi creati / CreatedBy che utilizzano i servizi web, ma si potrebbe scrivere un app di esportazione (sia per dati binari + metadati) che utilizza i servizi web e salva tutto alla vostra macchina locale . Anche scrivere un app di importazione che carica i file in una nuova DocLib (potrebbe caricare in cartelle separate, risolvendo il problema sollevato nella vostra altra questione) e ri-applica i metadati.

Se ad esempio si dispone di 100 versioni di un documento e quindi limitare il controllo delle versioni per ultimi 2 versioni, il precedente 98 non andrà via Tranne quando si inserisce una nuova versione.

Un modo semplice per ripulire queste vecchie versioni di ogni documento nella biblioteca è quello di esportare il contenuto del sito secondario (Stsadm opere d'esportazione il livello di sito di livello non biblioteca) con le versioni parametro = 1 per esportare solo l'ultima versione . È quindi possibile eliminare questo sito e importarlo indietro e quindi di sbarazzarsi di tutte le versioni precedenti. documentazione di esportazione stsadm può essere trovato qui ( http://technet.microsoft.com/en -us / library / cc262759.aspx )

Un'altra opzione (semplicemente una variante di cui sopra) è quello di utilizzare la procedura guidata di distribuzione del contenuto ( http: //spdeploymentwizard.codeplex .com / ), è necessario esportare la libreria doc, senza versioni, quindi eliminare esistente e importare nuovamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top