[Allegro] acon: Aenderungsstempel

Thomas Berger ThB at Gymel.com
Mo Mai 30 12:08:31 CEST 2011


Lieber Herr Eversberg, liebe Liste

beim Update von Datensaetzen aus externen Dateien kann es vorkommen,
dass diese irgendwelche Datumsstempel tragen: Sei es solche aus
umgewandelten Logdateien, aus Fremddaten oder Umdwandlungsprozessen
oder einfach der Vollstaendigkeit wegen.

Ob dies ein systemrelevanter Datumsstempel ist, ergibt sich aus
der zum Zeitpunkt des eigentlichen Updates gueltigen .CFG-Datei.

In manchen Faellen bekomme ich nun den Fehler

E: Sorry, rec 11 was changed by somebody else

nach STDERR, bzw.

Edit date not equal - rec changed by someone else

in der iV und das Speichern wird verweigert. Das ist mir eigentlich
gar nicht recht, denn
- immerhin musste ich mittels "set lock" vorher sogar sicherstellen,
  dass niemand anderes den Satz kurzfristig veraendern konnte,
- ob da irgendeine Abweichung ist, ist mir herzlich egal (auf diese
  Art acon leider nicht mitteilbar), denn
- ich will, dass beim Speichern ein frischer Datumsstempel
  vergeben wird (Verbiegen von ce in der CFG oder "set Timestamp off"
  sind also keine Option)


Abhilfe besteht darin, den Aenderungsstempel des vorhandenen Satzes
(nach dem set lock) umstaendlich zu sichern:

  // Aenderungsdatum schuetzen
var "#" ce " "
if "# " var ""
if not "" var "#" ce;var
ins $savestamp
if not "" var "#" ce " " $savestamp
ins $savestamp


und vor dem "put" in den Datensatz einzufuegen:

  // $savestamp ist leer oder enthaelt "#kkf <geretteter Inhalt>"
var $savestamp
if not "" ins

(ich habe noch nicht systematisch getestet, evtl. muss der Neuaufnahmestempel
cn ebenfalls gesichert werden, damit es nie Probleme gibt)


Es scheint allerdings so zu sein, dass es genuegt, vor dem Speichern
die Aenderungsstempelkategorie zu loeschen, damit keine Datumsvergleichstests
stattfinden (oder unbeabsichtigt falsch nicht scheitern?), ich finde dazu aber
keine Dokumentation: Wo koennte die stehen?

Mir scheint eine solche "update"-Situation (es wird beruecksichtigt, dass
ein Satz vorhanden ist und der ersetzt, ohne dass man speziell dem
Aenderungsstempel einen Wert beimisst) typisch genug, um einen "offiziellen
Weg" zum Abklemmen der Datumsstempelvergleiche vorzugeben.


viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro