OnAfterModify (Record) Event funktioniert nicht

27. April 2016 20:20

Ist das ein bekanntes Problem? Code im OnAfterModify Event (in meinem Fall Tabelle 15 G/L Account) wird nicht ausgeführt. Ein Rec.MODIFY führt zum Absturz, ohne Modify passiert aber nicht das gewünschte. Es soll ein Feld im Record beschrieben werden. Im OnBeforeModify Event funktioniert's.

Re: OnAfterModify (Record) Event funktioniert nicht

28. April 2016 09:04

Ich verweise einmal auf diesen MSDN Eintrag.
Dort ist folgendes zu Database Trigger Events beschrieben:

Database trigger event with signature

  • OnBeforeDeleteEvent(VAR Rec: Record, RunTrigger: Boolean)
    Executed before a record is deleted from a table.
  • OnAfterDeleteEvent(VAR Rec: Record, RunTrigger: Boolean)
    Executed after a record is deleted from a table.
  • OnBeforeInsertEvent(VAR Rec: Record, RunTrigger: Boolean)
    Executed before a record is inserted in a table.
  • OnAfterInsertEvent(VAR Rec : Record, RunTrigger : Boolean)
    Executed after a record is inserted in a table.
  • OnBeforeModifyEvent(VAR Rec : Record, VAR xRec : Record, RunTrigger : Boolean)
    Executed before a record is modified in a table.
  • OnAfterModifyEvent(VAR Rec : Record, VAR xRec : Record, RunTrigger : Boolean)
    Executed after a record is modified in a table.
  • OnBeforeRenameEvent(VAR Rec : Record, VAR xRec : Record, RunTrigger : Boolean)
    Executed before a record is renamed in a table.
  • OnAfterRenameEvent(VAR Rec : Record, VAR xRec: Record, RunTrigger : Boolean)
    Executed after a record is renamed in a table.
  • OnBeforeValidateEvent(VAR Rec : Record, VAR xRec : Record, RunTrigger : Boolean; CurrentFieldNo : Integer)
    Executed before a field is validated when its value has been changed.
  • OnAfterValidateEvent(VAR Rec : Record, VAR xRec : Record, RunTrigger : Boolean, CurrentFieldNo : Integer)
    Executed after a field is validated when its value has been changed.

Bei dem OnAfterModifyEvent steht explizit, dass es nachdem der Datensatz modifiziert wurde ausgelöst wird.
Nicht am Ende des Modifizierens.
Ich denke, du solltest das OnBeforeModifyEvent verwenden oder - wenn dein Code an einer expliziten Codestelle ausgeführt werden soll, dort eingreifen.

Re: OnAfterModify (Record) Event funktioniert nicht

28. April 2016 17:18

Ich habe es auch im OnBeforeModify lösen können. Mir stellt sich aber die Frage wozu ein OnAfterModify Event überhaupt gut sein soll wenn ich dort den Record nicht verändern kann. Daher sehe ich das als Bug.

Re: OnAfterModify (Record) Event funktioniert nicht

28. April 2016 17:21

Das ist z.B. notwendig für einen Workflow. OnBefore nützt da nichts, weil ich ja nicht weiß ob das Modify erfolgreich ist. OnAfter sagt mir dann: "hey, ich habe einen Datensatz geändert. Möchtest du jemanden benachrichtigen?".

Re: OnAfterModify (Record) Event funktioniert nicht

28. April 2016 17:25

Und genau deshalb wollte ich auch OnAfterModify verwenden, weil ich nur was tun wollte wenn das Modify im Standard Code durch ist. Geht aber nicht.

Re: OnAfterModify (Record) Event funktioniert nicht

28. April 2016 17:28

ohne das ich es jetzt ausprobiert habe, aber welches CU hast du verwendet?

Re: OnAfterModify (Record) Event funktioniert nicht

28. April 2016 17:28

enh hat geschrieben:Und genau deshalb wollte ich auch OnAfterModify verwenden, weil ich nur was tun wollte wenn das Modify im Standard Code durch ist. Geht aber nicht.

Nö,
du willst den Datensatz nochmal modifizieren ;)

Was gemeint ist:
Feld Name wird geändert auf "Name neu"
MODIFY
Du aboniest OnAfterModify und gibst in einer neuen Tabelle aus: Hey, Datensatz xy hat sich geändert!

Du änderst nichts mehr an dem Datensatz selber!

Re: OnAfterModify (Record) Event funktioniert nicht

28. April 2016 17:32

sweikelt hat geschrieben:ohne das ich es jetzt ausprobiert habe, aber welches CU hast du verwendet?


Aktuellste Version, also Cumulative Update 6.

Re: OnAfterModify (Record) Event funktioniert nicht

28. April 2016 17:39

sweikelt hat geschrieben:ohne das ich es jetzt ausprobiert habe, aber welches CU hast du verwendet?


Da hat sich - soweit ich weiss - in keinem der bisher erschienenen CU's etwas geändert.

Re: OnAfterModify (Record) Event funktioniert nicht

29. April 2016 08:43

Danis hat geschrieben:Da hat sich - soweit ich weiss - in keinem der bisher erschienenen CU's etwas geändert.


das mag sein, aber sicher ist sicher ;)

*edit - kommentar korrigiert :)
Zuletzt geändert von sweikelt am 29. April 2016 09:03, insgesamt 1-mal geändert.

Re: OnAfterModify (Record) Event funktioniert nicht

29. April 2016 08:48

Ich möchte nochmals darum bitten, sich beim Zitieren (insbesondere des direkt darüberstehenden Beitrags) auf das Wichtigste zu beschränken, anstatt komplette Beiträge zu wiederholen. Die Lesbarkeit des Themas wird dadurch speziell auf Mobilgeräten extrem erhöht :wink: