15. Oktober 2010 11:12
Hallo,
folgenden Code von Timo hab ich benutzt, um durch Programmierung veranlasste Änderung im Änderungsprotokoll mitzuschreiben :
( ich hab die Zeilen mit dem // <--- in meinen Code eingebaut)
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;
Leider erhalte ich die Fehlermeldung, daß ein anderer Benutzer den Datensatz geändert hat, nachdem er angezeigt wurde, und der ChangeLog-Aufruf wird gar nicht mehr ausgeführt.
Kann diese Fehlermeldung umgangen werden ?
Oder, wie kann erreicht werden, daß auch Zuweisungen im Code mitprotokolliert werden?
Gruß,
Michael
15. Oktober 2010 11:22
Führe das ChangeLogMgt.LogModification vor dem MODIFY aus - macht der Standard auch so, wenn ich mich nicht irre.
Edit: Nee, macht der Standard nicht so, s.u..
15. Oktober 2010 12:07
Vielen Dank für den Tip, werd ich hoffentlich heute noch ausprobieren können und natürlich antworten.
Gruß,
Michael
15. Oktober 2010 12:56
Hm wird vielleicht doch nicht richtig sein.
Ich habe einen Blick in die Codeunit DimensionManagement geworfen. Dort macht es der Standard so:
- Code:
IF DefaultDim.GET(...)
THEN BEGIN
xRecRef.GETTABLE(DefaultDim);
DefaultDim.VALIDATE("Dimension Value Code",ShortcutDimCode);
DefaultDim.MODIFY;
RecRef.GETTABLE(DefaultDim);
ChangeLogMgt.LogModification(RecRef,xRecRef);
END ELSE BEGIN
...
Da du mit Rec arbeitest, bist du wahrscheinlich auf einer Form?
Dann führe nach deinem Code ein
- Code:
CurrForm.UPDATE(FALSE);
aus.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.