In einem unserer SharePoint DMS-Projekte sind wir auf ein Verhalten von SharePoint 2010 gestoßen, dass wir uns einige Zeit nicht erklären konnten. Mittlerweile haben wir die Bestätigung von Microsoft: Es ist ein Bug! Dieser wird mit dem nächsten Update von SP 2010 behoben sein! Wie sich dieser Fehler auswirkt und wie man ihn reproduzieren kann, zeigt dieser Artikel.
Das Phänomen/Bug:
Bei Dokumenten bestimmter Dateiformate (bspw. “.tif”) wird ein Datumsfeld auf “01.01.1970” gesetzt, wenn die Eigenschaften der übergeordneten Dokumentenmappe geändert werden und das zuvor eingetragene Datum kleiner als 01.01.1970 ist. Das Phänomen tritt nur bei Spalten-Vererbung mit Taxonomie-Feldern auf und erstaunlicherweise nicht bei MS Office-Dokumenten.
Zur Ausganslage:
In einer Teamsite wurde eine Dokumentenbibliothek angelegt, die einen eigenen Inhaltstyp zugewiesen hat. Dieser Inhaltstyp hat ein Feld “Belegdatum”, in dem ein Datum hinterlegt werden kann. Zudem liegen die Dokumente in einer Dokumentenmappe, die ein Taxonomie-Feld besitzt und dieses an die Dokumente runter-vererbt.
Reproduktion des Bugs
Schritt 1: Erstellen eines neuen Inhalttyps mit Namen “SyncDocument “ inkl. einer Spalte für die Metadaten-Synchronisation. (SyncDocument erbt von Dokument)
Schritt 2: Eine neue Dokumentenbibliothek für den Reproduktionstest anlegen.
Schritt 3: Den Inhaltstyp “SyncDocument” und die Dokumentenmappe zur Bibliothek hinzufügen.
Schritt 4: Dem Dokumenten-Inhaltstyp (SyncDocument) auf der Liste eine DateTime-Spalte geben. (Könnte auch bei Anlegen des Inhalttyps auf Websiteebene geschehen.)
In dieser Spalte wird der 1970-Bug reproduziert.
Schritt 5: Eine Dokumentenmappe in der Dokumentenbibliothek erstellen.
Schritt 6: Eine beliebige Tif-Datei in der Dokumentenmappe hochladen und das Datumsfeld auf 03.01.1912 setzen. (Wichtig vor dem 1.1.1970!)
Das Datum wird richtig eingetragen und angezeigt!
Alle Vorbereitungen sind nun abgeschlossen! Nun kann der Bug reproduziert werden.
Schritt 1: Jetzt wird ein Taxonomie-Feld der Dokumentenmappe hinzufügen. In unserem Beispiel heißt die Taxonomie-Spalte „Technisches Objekt“.
Schritt 2: Anschließend das neue Taxonomie-Feld für die Vererbung auf die Dokumente aktivieren.
Schritt 3: In den Eigenschaften der Dokumentenmappe ist das Taxonomie-Feld initial noch leer und kann nun mit einem Wert aus dem Termstore versehen werden.
Schritt 4: Nach dem Selektieren eines Terms und dem Speichern ist das Problem ersichtlich. Das Belegdatum ist wie von Geisterhand auf den 01.01.1970 gesetzt worden.
Dieses Phänomen tritt bei jeder Änderung der Dokumentenmappen-Eigenschaften auf, sobald die Dokumentenmappe ein vererbtes Taxonomie-Feld besitzt. Das Problem scheint demnach in dem Event Receiver zu sein, der die Taxonomie-Werte auf die Dokumente synchronisiert.
Schlusswort:
Falls dieses Verhalten auch in Ihrem SharePoint auftritt, dann wissen Sie nun den Grund und das dieser Bug zeitnah behoben wird. In einem derart komplexen System wie SharePoint können leicht Fehler auftreten. Ich vertraue weiterhin auf Microsoft-Technologien, da Microsoft sich stets derartiger Fehler annimmt und diese auch behebt.
Pingback: Aus der Praxis–1970-Bug in SharePoint 2010 - SharePoint Blogs in German - Bamboo Nation