30.05.2008, 05:22 | #1 |
Участник
|
jinx: Werte der Systemfelder eines Datensatzes setzen
F?r jede Tabelle k?nnen Systemfelder wie Erstellt von, Ge?ndert von, Erstellungsdatum,Erstellungszeit oder ?nderungsdatum von Dynamics AX aktiviert werden.
Diese Felder werden durch Dynamics AX automatisch gef?llt. Wird zum Beispiel ein neuerDatensatz erzeugt, f?llt Dynamics AX die Systemfelder mit den entsprechendenDaten. Es gibt aber Situationen wo man selber Einfu? auf die Werte dieser Felder nehmenmuss. Ein Beispiel hierf?r k?nnte eine Daten?bernahme sein, bei der die Informationen?ber den Ersteller oder das Erstellungsdatum des Datensatzes nicht verloren gehend?rfen. Wie dies gehen kann zeigt dieses kleine Beispiel: YourTabletable; ; ttsbegin; //canonly be called on server tier. -> method must be executed on server tier. new SkipAOSValidationPermission().assert(); table.skipAosValidation(true); table.YourField = "Value"; table.overwriteSystemfields(true); //setyour own values for the system fields. table.(fieldnum(Table1, ModifiedDate)) = today() - 2; table.(fieldnum(Table1, CreatedDate)) = today() - 5; table.(fieldnum(Table1, CreatedBy)) = "TEST"; table.insert(); ttscommit; table.skipAosValidation(false); Allerdings k?nnen die Systemfelder nur beim Erstellen eines neuen Datensatzes "vonHand" festgelegt werden. Wie das ?ndern von Werten der Systemfelder bei bereits bestehenden Datens?tzen gehtdemonstriert die Klasse "BatchRun", Methode "runJob" und "finishJob". Kurz gesagt wird genau genommen der Datensatz nicht ge?ndert, sondern es werden nurdie Daten des bestehenden Datensatzes in den neuen Datensatz kopiert (mit newBuffer= oldBuffer.data()) und dann wie bereits beschrieben die Systemfelder mit eigenenWerten bef?llt. Dann wird der bestehnde Datensatz gel?scht und der neue Datensatzin die Datenbank geschrieben. Es wird keine Haftung oder Gew?hrleistung auf die Richtigkeit der gemachten Angaben gegeben. Die Verwendung erfolgt auf eigene Gefahr. Copyright © Axel K?hn (Aku's AX Blog, http://blog.ak-home.net) and Mathias F??ler (jinx's AX Blog, http://starside.eu) More... |
|
|
|