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.