OnModify Trigger

18. September 2007 10:07

Nach meinem Wissensstand, wird doch der OnModifyTrigger in einer Tabelle, bei jeder Änderung ausgeführt.

Ich habe folgendes Problem: In dem genannten Trigger habe ich Codeing hinterlegt, welches nicht ausgeführt wird.
Wenn ich jetzt allerdings in jedem Feld im OnValidateTrigger ein Modify(true) hinterlege, dann funzt es.

Wie kann das sein?

Re: OnModify Trigger

18. September 2007 10:19

Hallo Marc!

kuki hat geschrieben:Nach meinem Wissensstand, wird doch der OnModifyTrigger in einer Tabelle, bei jeder Änderung ausgeführt.


Der OnModify-Trigger wird erst ausgeführt, wenn der Datensatz verlassen wird.

Man kann somit, ein oder mehrere Feldwerte ändern ohne dass der OnModify-Trigger sofort ausgeführt wird. Erst beim Verlassen des Datensatzes wird der im Trigger hinterlegte C/AL-Code ausgeführt.

Gruß, Marc

18. September 2007 11:02

@kuki
Wenn Du Dir mal die Onlinehilfe zum modify Befehl ansiehst, siehst du ganz deutlich, dass das so sein muss.
Wenn du im Programmcode den Modify einsetzt musst du den Parameter (True) übergeben, damit der Trigger ausgeführt wird. Nur bei Änderungen durch manuellen Eintrag in einer Form wird der Trigger beim Abspeichern der Änderungen auf jeden Fall durchlaufen.

18. September 2007 12:44

Genau das ist der Punkt.
Ich befinde mich auf einer Form oder auch direkt auf der Tabelle, da müsste doch der OnModify bei einer Änderung durchgeführt werden, wenn ich den Datensatz verlasse, oder?

Er läuft aber nicht durch den Programmcode, grrr... :roll:

18. September 2007 13:05

Die Änderung steht aber trotzdem im Datensatz?
dann schalte doch mal den Debugger ein mit Break on Trigger und mach ne Änderung in der Form. Dann schau mal nach, was genau Navision dann ausführt.