2012-04-03 8 views
1

Ich versuche Sharepoint Foundation 2010 als Dateispeicher für eine Website zu verwenden. Jede Dokumentaktualisierung muss einen Genehmigungszyklus durchlaufen und wird schließlich zu einem genehmigten Status, der für Endbenutzer auf der Website angezeigt wird. Wenn ein Dokument im Sharepoint aktualisiert wird, wird der Status auf "Entwurf" zurückgesetzt, selbst wenn die vorherige Version genehmigt wurde. Dies ist das beabsichtigte Verhalten.Sharepoint 2010 Client OM - Wie bekomme ich die letzte genehmigte Dokumentversion?

File.Versions gibt mir die Liste der Versionen.

Wie bekomme ich die Version, die zuletzt "genehmigt" war?

Antwort

1

Sie müssen die Versionen des ListItem durchlaufen und das neueste finden, das veröffentlicht wurde. Verwenden Sie die SPListItemVersionCollection eine Schleife durch die Versionen und überprüfen Sie die SPFileLevel

Gemäß der Sebastian Wojciechowski's community addition für die MSDN-Artikel auf SPListItemVersionCollection

SPListItem.Versions[0] //this is current version of the item 
SPListItem.Versions[1] //this is previous version of the item 
SPListItem.Versions[SPListItem.Versions.Count - 1] //this is first version of the item 

die Versionen in umgekehrter Reihenfolge indiziert werden (neu nach alt) damit Ihr Code sein etwas wie:

// Retrieve all versions 
SPListItemVersionCollection itemVersions = item.Versions; 
for (int i = 0; i < itemVersions.Count - 1; i++) 
{ 
    // Check if version is published 
    if (itemVersions[i].Level == SPFileLevel.Published) 
    { 
     return itemVersions[i]; 
    } 
} 
+0

Danke für diesen Code. Dieser Code muss auf der Serverseite ausgeführt werden, aber ich versuche, serverseitige Programmierung aus verschiedenen Gründen zu vermeiden, einschließlich der Erstellung der DEV-Box auf dem Desktop und der Bereitstellung. Während ich an der Windows App arbeite, verbinde ich mich über CLOM und suche nach einer Lösung auf dieser Seite. – Bhuvan