Laden...

Herausfinden welche Versionen es von einem Dokument in einer Sharepoint Documetlibrary gibt.

Erstellt von Gemelon vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.885 Views
Gemelon Themenstarter:in
40 Beiträge seit 2007
vor 15 Jahren
Herausfinden welche Versionen es von einem Dokument in einer Sharepoint Documetlibrary gibt.

Hallo,
ich habe schon das ganze Internet umgegraben nach einer Antwort auf die Frage:
Wie kann ich herausfinden welche Versionen es von einem Dokument in einer Sharepoint Documetlibrary gibt und wie der Pfad zu einer der Versionen ist?
Leider sind die Sharepoint Web Services die am schlechtesten Documentierten funktionen im Netz.

Herausgefunden habe ich bisher, dass es den Web Service "Versions" gibt, der eine Funktion "GetVersions" zur verfügung stellt. Leider gibt es im ganzen Netz kein einziges real life Beispiel zu dieser Funktion.

Wenn ich die Funktion aufrufe, erhalte ich immer eine Fehlermeldung.

Der Aufruf ist in der Art wie:


            XmlNode ndLists = null;

            VersionService = new TRElib.VersionsWS.Versions();
            VersionService.Credentials = System.Net.CredentialCache.DefaultCredentials;


            VersionService.Url = ListUrl + "/vti_bin/Versions.asmx";
            ndLists = VersionService.GetVersions(FileName);


Ich erhalte dann eine riesige Fehlermeldung:

Der vom Client gefundene Anforderungsinhaltstyp ist 'text/html; charset=utf-8', erwartet wurde 'text/xml'. Fehler bei der Anforderung mit folgender Fehlermeldung:

<HTML dir="ltr">
<HEAD><meta name="GENERATOR" content="Microsoft SharePoint" /><meta name="progid" content="SharePoint.WebPartPage.Document" /><meta HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8" /><meta HTTP-EQUIV="Expires" content="0" /><meta name="ROBOTS" content="NOHTMLINDEX" /><title>

Error  

</title><link rel="stylesheet" type="text/css" href="/_layouts/1033/styles/core.css?rev=EvXiDlwA9ZGJskmRPIeM1w%3D%3D"/>
<script type="text/javascript" language="javascript" src="/_layouts/1033/init.js?rev=PTrUdSdwnvaAD2HBua34LA%3D%3D"></script>
<script type="text/javascript" language="javascript" src="/_layouts/1033/core.js?rev=HAaL7d9pzG1g%2BxoKHQT4yg%3D%3D"></script>

usw.

Hat jemand ein funktionierendes Beispiel oder kann mir jemand die Fehlermeldung erklären?

D
280 Beiträge seit 2005
vor 15 Jahren

Hallo,

denke mal du wirst dieses schon ergoogelt haben. Dennoch hier der Link zu MSDN.

Dort steht dass, der Übergabeparameter aus Foldername/Filename bestehen muss. Mir ist dieser Fehler in einem anderen Zusammenhang auch schon mal untergekommen, kann mich leider nicht mehr erinnern welchen Fehler ich dabei gemacht hatte.

Hoffe dir nichts erzählt zu haben was du nicht schon wusstest.

Grüße

Dennie Schmögner
Dipl. Ing. Informatik / Fachrichtung Automatisierungstechnik
Microsoft Business Intelligence 2005
SharePoint Portal Server 2007

Gemelon Themenstarter:in
40 Beiträge seit 2007
vor 15 Jahren

Ja die Seite hatte ich schon. Leider funkjtioniert das Beispiel bei mir nicht. Ich bin bald am verzweifeln. Wenn ich das nicht hinbekomme, dann müssen die Leute, die Dateien einzeln vom Intranet auf die lokale Festplatte kopieren. Bei 30 bis 90 Dateien kann das ziemlich mühsam werden. Auch im Sharepoint selbst gib es keine Möglichkeit von allen Dateien in einer Dokumentenbibliothek eine bestimmte Version (von einem betimmten Datum) irgend wo anders hin zu kopieren. Aber genau das brauche ich.

D
280 Beiträge seit 2005
vor 15 Jahren

Evtl. hilft hier der Weg übers Objectmodell.

Bei CodeProject gibts diesen Artikel.

Ansonsten ist mir noch aufgefallen, dass du einen kleinen Fehler in deinem Codebeispiel hast. die URL müsste .../_vti_bin/Versions.asmx lauten. Denke mal der Fehler ist nur beim kopieren entstanden, aber wollte es der Sicherheit halber angemerkt haben.

Dennie Schmögner
Dipl. Ing. Informatik / Fachrichtung Automatisierungstechnik
Microsoft Business Intelligence 2005
SharePoint Portal Server 2007

Gemelon Themenstarter:in
40 Beiträge seit 2007
vor 15 Jahren

Vielen Dank für die Antworten,
ich habe jetzt den Fehler gefunden. In der Tat war der Fehler auf den mich dschmoegner hingewiesen hat ein Kopierfehler und in meinem Original schon richtig geschrieben. Aber der Fehler lag dennoch in der URL.
Ich habe in der URL immer den gesamten Pfad zu der Bibliothek angegeben, also:


https://workspace1.meinefirma.de/content/00001913/public/TestLibrary/_vti_bin/lists.asmx

Wobei "TestLibrary" die Dokumentenbibliothek ist in der die Dokumente abgelegt sind.
Das ist scheinbar Falsch! Als URL darf man nur den Pfad zu der Seite angeben, die die Dokumentenbibliothek beinhaltet, also:


https://workspace1.meinefirma.de/content/00001913/public/_vti_bin/lists.asmx

Dann funktioniert es. Leider hat das nirgends so deutlich drin gestanden oder ich habe es missverstanden.