[Gelöst] Wer war´s ?

22. Juli 2009 10:36

Moin, Moin,

sehe ich mir in der Verkaufshistorie die gebuchten Rechnungen an, dann sehe ich bei jeder RG die Anzahl der Ausdrucke.
Wie finde ich raus, wer diese RG, ggf. mehrfach, gedruckt hat ?

Im Änderungsprotokoll wird die Änderung dieses Feldes aus Table 112 leider nicht mitgeloggt (trotz Einrichtung).

Habt Ihr eine Idee, wie man das noch rausfinden kann ?

Grüsse
ToKi
Zuletzt geändert von ToKi am 22. Juli 2009 14:38, insgesamt 1-mal geändert.

Re: Wer war´s ?

22. Juli 2009 10:39

Gar nicht; diese Information müsste erst durch Individualprogrammierung geschaffen werden.

Re: Wer war´s ?

22. Juli 2009 10:45

Ich habe befürchtet, dass Du soetwas sagst. :-(

Grüsse
ToKi

Re: Wer war´s ?

22. Juli 2009 13:14

Die einfachste Individualprogrammierung wäre, im "Sales Inv. Header" ein Feld "Zuletzt gedruckt von" einzufügen, jedoch würde so ein Feld nur die Info des letzten Benutzers.
Wenn eine Rechnung jedoch 5x gedruckt wurde, dann kann dies auch von 5 verschiedenen Benutzern veranlasst worden sein.
Da ihr bereits das Feld "Anzahl gedruckt" im Änderungsprotokoll aktiviert habt, könnte man die entsprechende Codestelle (welche den Druckzähler erhöht) um die Änderungsprotokollierung erweitern, so dass auch dies mitprotokolliert würde.

Letzteres wäre mein favorisierter Ansatz für deine Anforderung und wäre mit drei Codezeilen (eine vor und zwei nach der Änderung) umzusetzen.

Re: Wer war´s ?

22. Juli 2009 13:21

Timo Lässer hat geschrieben:Da ihr bereits das Feld "Anzahl gedruckt" im Änderungsprotokoll aktiviert habt, könnte man die entsprechende Codestelle (welche den Druckzähler erhöht) um die Änderungsprotokollierung erweitern, so dass auch dies mitprotokolliert würde.


Ähm, wie soll allein schon "Anzahl gedruckt" protokolliert werden, wenn Codeunit "Sales Inv.-Printed" ohne den OnModify-Trigger arbeitet?
Das heißt, man müsste an dieser Stelle das Änderungsprotokoll künstlich "zum Mitmachen animieren" (wenn du das nicht ohnehin genauso gemeint hattest).

Re: Wer war´s ?

22. Juli 2009 13:28

Natalie hat geschrieben:Das heißt, man müsste an dieser Stelle das Änderungsprotokoll künstlich "zum Mitmachen animieren" (wenn du das nicht ohnehin genauso gemeint hattest).

Genau so wird's gemacht:
Vorher:
Code:
OnRun(VAR Rec : Record "Sales Invoice Header")
FIND;
"No. Printed" := "No. Printed" + 1;
MODIFY;
COMMIT;

Nachher:
Code:
OnRun(VAR Rec : Record "Sales Invoice Header")
FIND;
xRecRef.GETTABLE(Rec);                         // <---
"No. Printed" := "No. Printed" + 1;
MODIFY;
RecRef.GETTABLE(Rec);                          // <---
ChangeLogMgt.LogModification(RecRef,xRecRef);  // <---
COMMIT;

Re: Wer war´s ?

22. Juli 2009 14:37

Danke schön für die Tipps.
Ich werde das mal versuchen zu implementieren.

Grüsse
ToKi