2 Stimmen

Wie kann ich eine SharePoint-Dateiaktualisierung von einem Datei-Upload unterscheiden?

Wenn in SharePoint ein Element zum ersten Mal zu einer Dokumentbibliothek hinzugefügt wird, werden erwartungsgemäß die Ereignisse ItemAdded und ItemAdding ausgelöst. Und wenn Sie denselben Dateinamen hochladen, um die vorhandene Datei zu aktualisieren, werden die Ereignisse ItemUpdated und ItemUpdating ebenfalls wie erwartet ausgelöst. Es ist mir jedoch nicht gelungen, festzustellen, ob diese Art von Aktion tatsächlich stattgefunden hat oder nicht. Genauer gesagt, bin ich nicht in der Lage, zwischen den folgenden Ereignissen zu unterscheiden:

  • Ein Element wird aktualisiert, weil jemand eine neue Datei hochgeladen, aber keines der Formularfelder bearbeitet hat.
  • Ein Eintrag wird aktualisiert, weil jemand auf "OK" drückt, aber nichts in einem der Formularfelder verändert hat.

Gibt es eigentlich eine Möglichkeit, diese Art von Aktualisierungen zu unterscheiden? Es scheint weder in den Ereigniseigenschaften noch in der Versionshistorie des Listenelements und der Datei selbst etwas zu geben, das diese Informationen enthält. Ich habe sogar versucht, die Dateien selbst mit OpenBinary() zu vergleichen, aber in beiden Fällen erhalte ich immer noch das gleiche Ergebnis. Ich danke Ihnen im Voraus für jede Hilfe!

2voto

Jeroen Ritmeijer Punkte 2791

Ich hatte vor etwas mehr als 2 Jahren das gleiche Problem. Die Art und Weise, wie ich es implementiert habe, bestand darin, dass ich mir alle Felder in den Vorher- und Nachher-Eigenschaften für beide Ereignistypen angesehen habe, und einige der obskureren Felder waren je nach Art des Ereignisses unterschiedlich.

Leider habe ich keinen Zugang mehr zu diesem Code, so dass ich Ihnen den Namen des Feldes nicht nennen kann. Löschen Sie einfach alle Vorher- und Nachher-Eigenschaften und spielen Sie damit herum.

Schmerzhaft, man sollte meinen, es gäbe einen einfacheren Weg. Ich hatte gehofft, dass beim ersten Hochladen die "Before Properties" null oder leer sein würden, aber das war nicht der Fall.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X