Frage

Ich habe dieses Problem in mehreren Serverumgebungen.

Wir haben eine Liste bei der Site Collection Root. Es gibt eine Site-Spalte, die als Multi-Wert-Suche im Titelfeld dieser Liste erstellt wurde. Diese Site -Spalte wird in Dokumentbibliotheken in Subsites als erforderliches Feld verwendet. Wenn wir etwas anderes als ein Office 2007-Dokument hochladen, wird der Benutzer mit dem Dokument-Metadaten-Füllbildschirm (editForm.aspx? Modus = upload) angezeigt, und füllt der Benutzer die entsprechenden Daten (einschließlich der Auswahl eines Wertes) für diese Suche ein ) und Klicks "Check in" - Das Dokument wird wie erwartet eingecheckt, wobei der Wert des Suchfelds ausgefüllt ist.

Mit einem Office 2007 -Dokument schlägt dies fehl. Der von Benutzer ausgewählte Werte für das Suchfeld schaffen es niemals zum Server - es werden keine Fehler geworfen, aber das Feld wird nicht mit dem Dokument gespeichert. Wir haben einen Ereignishörer in diesen Dokumentbibliotheken, und wenn wir das eingehende Splistitem der Event -Hörermethode inspizieren, bevor eine einzige Zeile unseres Codes ausgeführt wurde, sehen wir, dass der Wert für das Suchfeld NULL ist.

Es riecht für mich nach einem SharePoint -Fehler - aber bevor ich Microsoft anrief, hat jemand das gesehen und herumgearbeitet?

Bearbeiten: Der einzige Eintrag, den ich in den SP -Trace -Protokollen im Zusammenhang mit dem Problem sehe:

CMS/Publishing/8ztg/Medium/Got List Item Version, but item was null
War es hilfreich?

Lösung

Wund mussten ein Ticket mit Microsoft für diesen eröffnen und einen Fehler in der MSDN -Dokumentation zum Booten gefunden.

Um eine Multiselect -Lookup zu erhalten, hatten wir das "Mult" -attribut in unserem Lookup -Feld CAML in "True" in der XML festgelegt, an die wir bestanden haben SPFieldCollection.AddfieldasxMl. Obwohl die API keine Fehler werfen und in der Benutzeroberfläche zu funktionieren scheinen, stößt dies mit der Dokumentation von Office 2007 & 2010 und ihrer SharePoint -Integration zusammen.

Der offizielle, unterstützte Weg, um ein Multiselect -Lookup -Feld hinzuzufügen Feld CAML. Wenn Sie dies tun und das "Mult" -attribut auf "True" festlegen, gibt es das Ergebnis, nach dem ich gesucht habe.

Das MSDN -Dokumentation Für "Mult" wurde für die Dokumentation von SP 2007 noch nicht aktualisiert und kann sicher ignoriert werden, da sie völlig falsch ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top