• home
    • news & events
    • blog
  • über uns
    • projekte und referenzen
    • partner
    • produkte & technologien
    • offene jobs / stellen
    • veröffentlichungen
  • dienstleistungen & services
    • software design & architektur
    • software entwicklung
    • beratung / consulting
    • training, kurse und workshops
  • angebote
    • quick-starts
    • trainings und kurse
    • modulare sharepoint 2010 workshops
  • kontakt
Wir bieten SharePoint und .NET
Kompetenz, Erfahrung und Know-How:
"1stQuad guaranteed."
Diesen Blog abonnieren
Subscribe in NewsGator Online Add to My AOL
Add to Google Reader or Homepage Add to netvibes

Aktuelle Posts

Quick-Tipp: Publishing Site Settings
Update: Dynamisches Wiki Inhaltsverzeichnis
Chart Part für SharePoint 2010
SharePoint Content DB Migration -> Access denied
Konfigurieren von „Gefällt mir“ und Kategorien und Notizen

Archiv

Januar 2012 (4)
Dezember 2011 (2)
November 2011 (10)
September 2011 (3)
August 2011 (7)
Juli 2011 (1)
Juni 2011 (3)
Mai 2011 (6)
April 2011 (5)
März 2011 (8)
Februar 2011 (8)
Januar 2011 (4)
Dezember 2010 (5)
November 2010 (7)
September 2010 (6)
August 2010 (2)
Juli 2010 (11)
Juni 2010 (13)
Mai 2010 (11)
April 2010 (4)
März 2010 (6)
Februar 2010 (2)
Januar 2010 (6)
Dezember 2009 (4)
November 2009 (13)
Oktober 2009 (17)
September 2009 (2)
Juli 2009 (2)
März 2009 (2)
Januar 2009 (1)

1stQuad ist Microsoft Certified Gold Partner und bietet SharePoint und .NET Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist MatchPoint Partner und bietet MatchPoint Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist Nintex Partner und bietet Nintext SharePoint Workflows Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist Balesio Gold Partner und bietet SharePoint FILEMinimizer Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad Solutions ist Kentico Certified Solution Partner und bietet Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
© 2011 1stQuad Solutions
Alle Rechte vorbehalten
> Impressum
Wir bieten Microsoft SharePoint und .NET Projekt- und Produkt-Know-how, Kompetenz und Erfahrung für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Zürich, Bern, Basel, Schweiz sowie Deutschland und Östereich.

Blog > März 2010

ows_UIVersion oder wie SharePoint Versionen speichert

SharePoint verwendet 2 Felder um die Versionsnummer eines Listen-Elements zu speichern: "ows_UIVersion" und "ows_UIVersionString". Dieser Blog-Beitrag zeigt auf, wie sich die Nummer im Feld "ows_UIVersion" zusammensetzt und wie diese z.B. in Abfragen gebraucht werden kann.

Veröffentlicht am 09.03.2010 03:37:43 von Michael Hofer mit 0 Kommentar(en)

Standardmässig gibt SharePoint in einem SPQuery oder SPSiteDataQuery alle Listen-Elemente zurück geben, welche der jeweilge Benutzer aufgrund seiner Berechtigung sehen darf. Ist der Benutzer auf der Liste berechtigt, neue Elemente anzulegen respektive Elemente zu bearbeiten, so wird das SPQuery auch Elemente in Draft-Versionen zurück geben.

Dieses Verhalten kann z.B. in einem News-Szenario gefährlich sein: Stellen wir uns vor, dass eine brisante Nachricht erst zu einem bestimmten Zeitpunkt veröffentlicht werden soll. Der Editor/Publisher erstellt das entsprechende Listenelement (Seite, Dokument etc.) und stellt eine zeitgesteuerte Publikation ein. Die Version des Elements ist 0.x bis zum (timer-job gesteurten) Publikation. Ist aber irgendwo auf der SharePoint Seite ein WebPart vorhanden, welches über SPQuery die News aggregiert wird dieses für den Editor/Publisher bereits sichtbar sein. Eventuell unelegant - wenn an unerwarteter Stelle bereits eine noch nicht öffentliche News am Bildschirm erscheint...

Um in SPQuery einen Filter nach der Version der Listenelemente einzubauen muss man die Versionierung von SharePoint zuerst einmal verstehen. SharePoint verwendet 2 Felder um die Versionsnummer eines Listen-Elements zu speichern: "ows_UIVersion" (Zahl) und "ows_UIVersionString" (Zeichenkette):

  • Der UIVersionString beinhaltet die aktuelle Version "0.5", allerdings ist eine Zeichenkette als Filter nicht sehr gut geeignet.
  • UIVersion ist eine Zahl, als Filter gut geeignet und ist "5".
Soweit so gut, entscheiden wir uns also für UIVersion als Filter. Nun müssen wir herausfinden, wie SharePoint die gesamte Version eines Listenelements in diesem Feld speichert. Dies ist etwas für die Mathematiker unter uns:
  • Die Major Version berechnet sich als Quotient aus UIVersion / 512
  • Die Minor Version berechnet sich aus dem Rest, welcher sich aus dem obigen Quotienten ergibt.
Wem das zu mathematisch ist, hier eine kleine Tabelle:

UIVersionString UIVersion
0.1 1
0.2 2
0.3 3
1.0 512
1.1 513
1.2 514
1.3 515
2.0 1024
2.1 1025
2.2 1026
2.3 1027
3.0 1536
4.0 2048
5.0 2560
6.0 3072
7.0 3584
8.0 4096
9.0 4608
10.0 5120

Mit folgendem Code können aus dem Feld "ows_UIVersion" die Major- und Minor-Versionen herausgelesen werden:

            long majorVersion = ows_UIVersion/ 512;
            long minorVersion = 0;
            Math.DivRem(ows_UIVersion, 512, out minorVersion);


Und nun endlich auch noch zum CAML-Query. Um sicherzuestellen, dass nur Listenelemente zurückgegeben werden, welche über mindestens eine Major-Version verfügen, also veröffentlicht wurden, kann man folgendes Query benutzen:

<Where>
<Gt>
<FieldRef Name='_UIVersion' />
<Value Type='Integer'>511</Value>
</Gt>
</Where>

PS: Wäre interessant zu wissen, was passiert, wenn man mehr als 511 Draft-Versionen erstellt

Kommentar
Dieser Blog-Eintrag wurde noch nicht kommentiert.
Kommentar hinterlassen



 Security code
Zurück, Seite drucken