[Gelöst] Kein Änderungsprotokoll spez. NAV-Standardtabellen

19. April 2012 15:18

Hallo,
Ich habe mich hier gerade neu angemeldet, weil ich hoffe, Antworten auf meine Fragen zur Änderungsprotokollierung zu bekommen.

Ich möchte gern wissen, welche Tabellen in NAV standardmäßig (per default) von der Änderungsprotokollierung ausgeschlossen sind und an welcher Tabelleneigenschaft und/oder in welchen Code dies in NAV festgemacht wird.
Beispielweise kann man die Tabelle 81 ("Gen. Journal Line" bzw. "Fibu Buch.-Blattzeile") nicht protokollieren.

Danke im Voraus.

vg hwnav
Zuletzt geändert von hwnav am 20. April 2012 09:11, insgesamt 1-mal geändert.

Re: Kein Änderungsprotokoll spez. NAV-Standardtabellen

19. April 2012 15:55

SORRY - wir haben uns selber ein Bein gestellt. :oops:
Das Problem ist KEIN Problem; die Änderungsprotokollierung funktioniert tadellos.

gr. hwnav
Zuletzt geändert von hwnav am 20. April 2012 09:11, insgesamt 1-mal geändert.

Re: Kein Änderungsprotokoll bei bestimmten NAV-Standardtabel

19. April 2012 15:58

Hallo hwnav,

würdest du uns erklären, worüber ihr gestolpert seid?
Möglicherweise stolpert der ein oder andere Besucher unserer Community zukünftig ebenfalls darüber, ohne es zu bemerken.

Hier würde er dann dank deiner Antwort feststellen, worüber er gestolpert ist ;-)

Kein Änderungsprotokoll spez. NAV-Standardtabellen

19. April 2012 16:44

Hallo Timo,

wir hatten eine entsprechende Problemmeldung von einem Kunden und konnten das Problem bei uns ebenfalls "nachstellen"; d. h. bei uns funktionierte die Protokollierung trotz korrekter Einrichtung und aktivierter Protokollierung zuerst ebenfalls nicht.

Auf der Suche nach einer Erklärung sind wir im Internet auf das Dokument "Dynamics_NAV_Quick_Reference_Guide.pdf" gestoßen, dass man offenbar auch bei "http://www.partner-marketing-center.com" beziehen kann. Darin steht folgende Passage:

"3080 Änderungsprotokoll
Hierbei handelt es sich um ein Modul, das Ihnen die Protokollierung von Änderungen ermöglicht, die ein
Anwender in den Stammdaten von Microsoft Dynamics NAV vorgenommen hat. Alle direkt von einem Anwender
vorgenommenen Änderungen der Daten können in Microsoft Dynamics NAV protokolliert werden, ausgenommen
sind nur Bewegungsdaten, wie z. B. Buchungsblätter, Einkaufsbestellungen und Verkaufsaufträge
. Mittels der
Funktionalität des Änderungsprotokolls erhalten Sie eine chronologische Übersicht aller Änderungen. So kann
jederzeit nachvollzogen werden, wer (welche Benutzer-ID) diese Änderungen vorgenommen hat."

Daraufhin habe ich mich auf der Suche nach näheren Infos hier angemeldet.

Nachdem wir uns auf dem Testmandanten neu angemeldet hatten, funktioniert die Protokollierung tadellos. Eine wirkliche Erklärung haben wir nicht.
Ich gehe aber nicht davon aus, dass es hier ein unentdecktes NAV-Problem gibt. :-)

Gruß hwnav
Zuletzt geändert von hwnav am 20. April 2012 09:12, insgesamt 1-mal geändert.

Re: Kein Änderungsprotokoll bei bestimmten NAV-Standardtabel

19. April 2012 17:01

Das Change Log kann auch Bewegungsdaten loggen. Wäre auch etwas verwunderlich wenn man Rabattänderungen im VK-Auftrag nicht loggen könnte.

Da das ChangeLog auch in den OnGlobal-Trigger ist, müsste (theoretisch) alles logbar sein.
Bei OnModify und OnRename muss aber ein xRecRef verfügbar sein.

Re: Kein Änderungsprotokoll bei bestimmten NAV-Standardtabel

19. April 2012 19:50

Der Vollständigkeit halber:

JanGD hat geschrieben:Da das ChangeLog auch in den OnGlobal-Trigger ist, müsste (theoretisch) alles logbar sein.

Die OnGlobal-Trigger in Codeunit 1 werden aber nur dann ausgelöst, wenn das MODIFY/INSERT direkt durch den Benutzer (bei MODIFY: beim Verlassen des Datensatzes) und nicht durch C/AL-Code abgesetzt wird. Darum muss (auch vom Standard) in bestimmten Fällen die Change-Log-Funktionalität (das, was im OnGlobal aufgerufen worden wäre) direkt per C/AL aufgerufen werden.

OK, das klang jetzt verwirrend :-)

Re: Kein Änderungsprotokoll bei bestimmten NAV-Standardtabel

20. April 2012 09:01

Um das nochmal zu konkretisieren: nimmt man eine Änderung per Code vor, dann wird das nicht protokolliert. Ich habe hier mal ein Beispiel, wo für einen Debitor der Name geändert wird und das protokolliert werden soll. Es wird trotzdem nur protokolliert, wenn es in der Einrichtung angegeben wurde:
Code:
Cust.GET('10000');
xRecRef.GETTABLE(Cust);

Cust.Name := Cust.Name + 'ABC';
Cust.MODIFY;
RecRef.GETTABLE(Cust);
ChangeLogMgt.LogModification(RecRef,xRecRef);


Cust ist klar Record 18 Customer. RecRef und xRecRef sind vom Typ RecordRef und ChangeLogMgt ist die CU 423 Change Log Management. Dort gibt es natürlich auch die Funktionen LogInsertion und LogDeletion, wobei für diese natürlich kein xRecRef benötigt wird.
Zuletzt geändert von Tim am 20. April 2012 17:06, insgesamt 1-mal geändert.

Re: Kein Änderungsprotokoll bei bestimmten NAV-Standardtabel

20. April 2012 15:30

Tim hat geschrieben:Um das nochmal zu konkretisieren: nimmt man eine Änderung per Code vor, dann wird das nicht protokolliert. Ich habe hier mal ein Beispiel, wo für einen Debitor der Name geändert wird und das protokolliert werden soll. Es wird trotzdem nur protokolliert, wenn es in der Einrichtung angegeben wurde:
Code:
Cust.GET('10000');
xRecRef.GETTABLE(Cust);

Cust.Name = Cust.Name + 'ABC';
Cust.MODIFY;
RecRef.GETTABLE(Cust);
ChangeLogMgt.LogModification(RecRef,xRecRef);


Cust ist klar Record 18 Customer. RecRef und xRecRef sind vom Typ RecordRef und ChangeLogMgt ist die CU 423 Change Log Management. Dort gibt es natürlich auch die Funktionen LogInsertion und LogDeletion, wobei für diese natürlich kein xRecRef benötigt wird.


Danke!
Ist auch für mich nützlich, da ich mich gerade mit dem Thema beschäftige :-)