SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Client Object Model; Version; GetItem

Unbeantwortet Dieser Beitrag hat 4 Antworten

Ohne Rang
7 Beiträge
Oppirator erstellt 6 Mai 2015 14:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Zusammen,

ich möchte mit Hilfe des Client Object Models aus einer Liste die ListItems auslesen. Das funktionert auch  soweit. Allerdings benötige ich auch die entsprechenden Vorversionen. Dies funktioniert nicht.

 var file = web.GetFileByServerRelativeUrl(listitem.FieldValues["FileRef"].ToString));
var versions = file.Versions;
clientContext.Load(file);
clientContext.Load(versions);
clientContext.ExecuteQuery();

string pathOldVersion = file.ServerRelativeUrl + "/" + versions[1].Url;
var oldFile = web.GetFileByServerRelativeUrl(pathOldVersion);
clientContext.Load(oldFile,o=>o.ListItemAllFields);
clientContext.ExecuteQuery();

Die Variable oldFile.ListItemAllFields bleibt leer.
Hat hier jemand Erfahrung, ob man irgendwie auf die Vorversionen kommt? Die Variable pathOldVersion müsste korrekt gefüllt sein. Dies wäre ggfs. aber nochmal genau zu prüfen.

Frank

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Mai 2015 14:53
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Oppirator"]string pathOldVersion = file.ServerRelativeUrl + "/" + versions[1].Url;[/quote]

Das wird sicher nicht funktionieren, weil Du dabei ja den Pfad inkl. Dateiname verlängerst und dann sowas dabei rauskommt:
/site/library/myfile.docx/VersionUrl

Da Du ja offenbar mit 2010 arbeitest, kommst Du an die Dateiversionen nur so: https://ankushdev.wordpress.com/2009/07/01/version-history-sharepoint-document-library/

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
7 Beiträge
Oppirator Als Antwort am 7 Mai 2015 14:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

vielen Dank für Deine Nachricht. Bei mir geht es nicht um ein Dokument, sondern um einen Listeneintrag in einer benutzerdefinierten Liste. Hier benötige ich die Metadaten der alten Version.

Eine Seite hierzu habe ich gefunden:

https://social.technet.microsoft.com/Forums/de-DE/3e372da8-ce84-4d1e-b6ab-d9e33e59b791/how-to-find-the-version-history-values-of-list-items-using-sharepoint-client-object-model?forum=sharepointdevelopmentprevious

Im unteren Teil ist das ClientObjectModel behandelt. Trotzdem bekomme ich es nicht hin, die Daten zu lesen.

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Mai 2015 16:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich dachte es geht um Dateien, weil Du im Code mit GetFileByServerRelativeUrl arbeitest. Listenelementversionen bekommst Du über ListItem.Versions

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
7 Beiträge
Oppirator Als Antwort am 7 Mai 2015 16:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Genau. Genauer gesagt über ListItem.File.Versions.

So, und jetzt möchte ich aber nicht nur die jeweiligen Versionsinformationen abrufen, sondern auch deren Inhalte. Und hier liegt mein Problem:)

Wie bekomme ich das ListItem zu der jeweiligen Version gefüllt mit Daten?