SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




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

Geprüfte Antwort Dieser Beitrag hat 5 Antworten

Ohne Rang
19 Beiträge
Danielx90 erstellt 9 Jan. 2018 14:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Jan. 2018 14:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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
Danielx90 Als Antwort am 9 Jan. 2018 14:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Jan. 2018 15:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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
Danielx90 Als Antwort am 9 Jan. 2018 16:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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
Danielx90 Als Antwort am 15 Jan. 2018 11:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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