SharePointCommunity
Die deutschsprachige Community für SharePoint, Office 365 und mit Azure

Event Receiver - Adding/Updating Custom Error Message - Unterschiedliches Verhalten

bewertet von 0 Usern
Beantwortet Dieser Beitrag hat 1 Geprüfte Antwort | 5 Antworten | 1 Follower

Ohne Rang
19 Beiträge
Danielx90 erstellt in 9 Jan 2018 14:22

Hallo zusammen,

ich habe aktuell ein Problem bei einer Gültigkeitsprüfung in einem Event Receiver. Der Event Receiver ist für das Adding und Updating eines List Items. Sofern diese Prüfung ok ist, wird ganz normal per "base.ItemAdding(properties) / base.ItemUpdating(properties)" gespeichert.

Falls die Gültigkeitsprüfung nicht ok ist, habe ich folgendes eingebaut:
properties.Status = SPEventReceiverStatus.CancelWithError;
properties.ErrorMessage = "Fehler!";

Beim Adding funktioniert das Abbrechen des Speicherns auch ganz gut, unter dem Speichern Button in der NewForm wird eine Fehlermeldung angezeigt (s. Beispiel).

Beim Updaten, also das List Item wurde schon einmal gespeichert, kommt diese "Inline"-Meldung aber nicht, sondern der komplette StackTrace wird ausgegeben (s. Beispiel).

Ich habe schon einiges ausprobiert, auch schon mit diversen Einstellungen in der web.config gespielt, aber leider komme ich zu keiner Lösung. Hat irgendjemand eine Idee?

Viele Grüße Daniel

Beantwortet Geprüfte Antwort

Ohne Rang
19 Beiträge

Also es lag an einem Content Type, der fehlerhaft war.. Funktioniert jetzt alles wie gewünscht.

Alle Antworten

Top-10-Beitragsschreiber
18.808 Beiträge

Ich habe das in den letzten x Jahren zehntausendfach benutzt und noch nie einen Unterschied zwischen ItemAdding und ItemUpdating gehabt. Da muß bei Dir irgendwas anderes schiefgehen.

In Deinem ersten Screenshot sieht man an der Änderungsinfo, daß Du auch mit Remote-Geschichten und App-Only Permissions arbeitest. Die Codeschnipsel deuten aber auf serverseitigen Code hin. Kann es sein, daß da etwas durcheinanderkommt?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
19 Beiträge

Hi Andi,

das sind nur Beispiel-Screenshots aus dem Internet. Ich habe selbst grade eben nochmal mit einer neuen, leeren Solution getestet. Da funktioniert alles einwandfrei bei Adding + Updating. Es scheint also wirklich in der einen Solution etwas nicht zu stimmen. Ich erstelle gleich mal einen neuen Event Receiver und teste dann nochmal.

Gruß Daniel

 

Edit1: In einem neuen Event Receiver innerhalb der Solution mit den zwei Zeilen Code zum Abbrechen funktioniert es auch.

Top-10-Beitragsschreiber
18.808 Beiträge

Dann erzeugt Deiner Code wahrscheinlich irgendwo einen Fehler, also eine Exception und es wird gar nicht wirklich über die properties abgebrochen. Kapsle mal den ganzen Code in ein try-catch und schaue, was da passiert.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
19 Beiträge

Hi Andi,

also der Code an sich erzeugt kein Fehler. Ich habe alles gelöscht, bis auf die Abfrage nach dem Titel der Liste. Außerdem habe ich genau den selben Event Receiver auf einer anderen Liste ausprobiert:


try
{

   properties.Status = SPEventReceiverStatus.CancelWithError;

   properties.ErrorMessage = "Fehler!";

}
catch(Exception ex)
{

}

Bei der neuen Liste zum Testen funktioniert es, bei der anderen nicht. Ich habe daraufhin und mit Blick auf folgende Diskussion alle Content Types und Spalten von der Liste entfernt, aber noch immer ist das Problem da. Es scheint wohl an der Liste selbst zu liegen. Diese wird in der Solution per XML Template und Instanz erzeugt.. Ich muss an der Stelle nochmals schauen, aber das mache ich wohl erst am Ende der Woche..

Ich melde mich wieder! Bis hier hin Danke für die Denkanstöße! :)

Ohne Rang
19 Beiträge

Also es lag an einem Content Type, der fehlerhaft war.. Funktioniert jetzt alles wie gewünscht.

Seite 1 von 1 (6 Elemente) | RSS