Wieder einmal hat die SharePoint API ein seltsames Verhalten für uns Entwickler auf Lager und ich bin genau reingerannt.

Ich wollte den Checkin-Kommentar aller Versionen eines Listenelement einer Dokumentbibliothek auslesen. Intuitiv habe ich diesen Code versucht, der mir NICHT das korrekte Ergebnis lieferte.

SPListItem item = ...
foreach (SPListItemVersion itemVersion in item.Versions)
{
    string comment = itemVersion["_CheckinComment"].ToString();
}

Vielmehr wird der gleiche Checkin-Kommentar ausgegeben.

Die Lösung des Problems liegt gar nicht soweit entfernt: Man muss das Checkin-Kommentar nicht aus dem SPListItemVersion-Objekt sondern aus dem zugehörigen SPFileVersion-Objekt auslesen:

SPListItem item = ...                    
foreach (SPListItemVersion itemVersion in item.Versions)
{
    string comment;
    if (!itemVersion.IsCurrentVersion)
    {
        SPFileVersion fileVersion = item.File.Versions.GetVersionFromID(itemVersion.VersionId);
        comment = fileVersion.CheckInComment;
    }
    else
    {
        comment = item.File.CheckInComment;
    }
}

 

1 Comments

  1. Pingback: Aus der Praxis – Programmatisches Auslesen des Checkin Kommentars - SharePoint Blogs in German - Bamboo Nation

Leave a comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.