Frage

Ich habe eine sehr große Liste (~ 5000 Dokumente), die seit etwa einem Jahr eintuckert. Es wurde die Versionierung eingeschaltet, mit großen Versionen, die 2 alte Versionen behalten. Wir umstrukturieren die Dokumentbibliothek vollständig um (mehr dazu in einer anderen Frage) und ich möchte einfach die alten Versionen auf der ganzen Linie loswerden, um die Bibliothek zu beseitigen und Platz wiedererlangt.

Ich habe die Versioning abgeschaltet, aber die Versionen verschwinden nicht, wenn ich denke, dass sie es sollten. Irgendwelche Gedanken? Eine Sache ist wichtig zu beachten, dass ich die Dokumentbibliothek geerbt habe. Es ist in mehrfacher Hinsicht ein wenig seltsam und ich bin mir nicht ganz sicher, wie es geschaffen wurde.

War es hilfreich?

Lösung 4

Jetzt, wo ich älter und ein bisschen klüger bin, hätte ich dies gelöst, indem ich das kundenseitige Skript geschrieben habe. Verwendung Spservices, Ich hätte alle Elemente in der Dokumentbibliothek durchlaufen und angerufen können DeleteAllversionen für jeden. Das ist der "No -Code" -Styp, um Code zu schreiben, um dies zu tun.

Andere Tipps

Leider kann ich mir keine nicht programmatische Möglichkeit vorstellen, dies zu tun. :

 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;
                        }
                    }
                }



            }
        }

Der Code läuft jedoch gut, aber die Version verschwindet eigentlich nicht richtig. Ich denke, Sie müssen etwas mit der SpafileVersion -Sammlung tun, da es sich um eine Dokumentbibliothek handelt. Dies sollte Ihnen trotzdem beginnen, lassen Sie mich wissen, wie Sie weitermachen.

Prost

Ich bin mir nicht sicher, ob es eine Möglichkeit gibt, mithilfe der Webdienste in die Felder erstellt/erstellt zu schreiben. Sie können jedoch eine Export -App (für Binärdaten + Metadaten) schreiben, die die Webdienste verwendet und alles in Ihrem lokalen Computer speichert. Schreiben Sie auch eine Import-App, die die Dateien in eine neue Doclib hochladen (könnte in separate Ordner hochladen, das in Ihrer andere Frage angesprochene Problem lösen) und die Metadaten neu anmelden.

Wenn Sie beispielsweise 100 Versionen eines Dokuments haben und die Versionierung auf die letzten 2 Versionen beschränken, wird die vorherige 98 nicht verschwinden, außer wenn Sie eine neue Version einfügen.

Eine einfache Möglichkeit, diese alten Versionen jedes Dokuments in der Bibliothek zu bereinigen, besteht darin, den Inhalt der Subsite (STSADM -Export auf der Website -Ebene nicht auf Bibliotheksebene) zu exportieren, wobei der Parameter = 1 nur die letzte Version exportiert. Sie können diese Site dann löschen und zurück importieren und so alle früheren Versionen loswerden. STSADM -Exportdokumentation finden Sie hier (http://technet.microsoft.com/en-us/library/cc262759.aspx )

Eine andere Option (einfach eine Variation der oben genannten) besteht darin, den Assistenten der Inhaltsbereitstellung zu verwenden (Assistenthttp://spdeploymentwizard.codeplex.com/ ), Sie müssen die DOC -Bibliothek ohne Versionen exportieren, dann vorhanden und importieren sie wieder in.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top