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.




Nur Hauptversionen von Dokumenten kopieren

Unbeantwortet Dieser Beitrag hat 6 Antworten

Ohne Rang
54 Beiträge
DDG erstellt 27 Mai 2013 13:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

Ich pflege in einer Liste ein paar Dokumente, die Haupt- und Nebenversionen annehmen können. Dazu habe ich einen Event Receiver der aus dieser Liste bestimmte Dokumente kopieren soll. Wie kann ich programmatisch festlegen, dass der Event Receiver nur die letzte Hauptversion nimmt und keine Nebenversionen?

Grüße Dennis

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 27 Mai 2013 13:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dann prüfe doch einfach die Version? SPListItem.Versions bzw. SPFile.UIVersionLabel u.a.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
54 Beiträge
DDG Als Antwort am 10 Juni 2013 17:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

danke für deine schnelle Antwort. Ich benutze bereits SPListItem.Versions, leider bekomme ich nur die letzte Version der Dokumente. Die Property SPFile.UIVersionsLabel die aktuelle Hauptversion anzeigt aber wie kann ich sie abrufen?

int versionInt = versions.Count;
string v1= sourceFile.UIVersionLabel;
byte[] str;

if (versionInt == 0) {
str = sourceFile.OpenBinary();
}
else{
SPFileVersion version = versions[versionInt - 1];
str = version.File.OpenBinary();
}

Ich wäre dir sehr dankbar, wenn du mir weiterhelfen könntest.

Viele Grüße

Dennis

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Juni 2013 17:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Im Grunde so wie von Dir beschrieben (wenn sourceFile ein SPFile ist). Nur eine Kleinigkeit:

str = version.File.OpenBinary()

Lasse das .File weg. Über SPFileVersion kannst Du direkt auf den Dateiinhalt zugreifen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
54 Beiträge
DDG Als Antwort am 17 Juni 2013 11:29
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja sourceFile ist ein SPFile.

Ok, leider nimmt es bei mir nur die letzte Version, egal ob Haupt- oder Nebenversion. Da versions.Count die Anzahl der Haupt- und Nebenversionen liefert, zum Beispiel "11". Aber wie soll ich jetzt wissen welches eine Hauptversion ist.

Mit dem der Zeile "string v1 = sourceFile.UIVersionLabel;" gibt er mir die letzte Hauptversion zurück, zum Beispiel "2.0". Aber ich weiß nicht wie ich über diesen Befehl die Hauptersion kopiere.

Viele Grüße

Dennis

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 17 Juni 2013 12:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du kannst doch prüfen, ob UIVersionLabel mit ".0" endet, dann hast Du eine Hauptversion. Evtl. solltest Du (je nach Deinen Randbedingungen)zusätzlich noch die Eigenschaft "Level" prüfen, da steht drin, ob ein Dokument z.B. eingecheckt oder veröffentlich ist.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
54 Beiträge
DDG Als Antwort am 17 Juni 2013 16:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok, hatte nur die Hoffung, dass ich über einen Befehl an die Hauptversion komm. Danke für deine Hilfe.