Versionierte Daten in efa2
Verfasst: Mo 6. Feb 2012, 07:21
Hallo,
in efa2 sind bestimmte Daten (z.B. Personen, Boote und Ziele) versioniert, d.h. zu ein und demselben Datensatz kann es mehrere Versionen mit unterschiedlichem Gültigkeitszeitraum geben. So kann zum Beispiel dieselbe Person zu verschiedenen Zeitpunkten einen unterschiedlichen Status haben (z.B. Junior-Mitglied bis 30.06.2011, Senior-Mitglied ab 01.07.2011), oder einen anderen Namen (z.B. durch Heirat). Selbst wenn es nur eine Version eines Datensatzes gibt, hat diese immer einen Gültigkeitsbeginn, ab dem der Datensatz gültig ist. Davor existiert er nicht. So kann man z.B. ein Boot, das erst nächste Woche getauft wird, schon heute in efa eintragen - mit Gültigkeitsbeginn der Bootstaufe.
Das Konzept der Versionierung ist sehr mächtig, aber auch etwas trickreich. Zwei von euch hatten beim Beta-Test das Problem, daß die eingetragenen Namen in manchen Fahrtenbucheinträgen spurlos verschwanden. Grund war, daß z.B. ein Boot, das erst ab dem 05.02.2012 gültig war, für eine Fahrt am 15.01.2012 eingetragen wurde - zu dem Zeitpunkt aber noch gar nicht existierte. efa hat den Eintrag zwar akzeptiert, hinterher aber den Bootsnamen nicht mehr angezeigt.
Das Thema ist ziemlich kompliziert, aber heute habe ich mal versucht, eine Lösung zu finden:
Die Auto-Vervollständige-Listen sind zur Zeit in efa noch statisch (jaja, steht auf dem Programm) und bieten zur Auswahl sämtliche Namen (Boote, Personen, Ziele) an, die in der Gültigkeit des Fahrtenbuchs irgendwann mal gültig sind. Wenn das Fahrtenbuch also von 1.1.2012 bis 31.12.2012 gilt, dann stehen da alle Namen drin, die in diesem Zeitraum zumindest teilweise gültig sind. Wenn nun für einen Fahrtenbucheintrag ein Name ausgewählt wird, der zum Zeitpunkt des Fahrtenbucheintrags nicht gültig ist, so erscheint dieser jetzt mit einem orangenen Button (bald brauche ich eine Legende für die Farben...).
Wenn der Eintrag hinzugefügt wird, und sich efa im Admin-Modus befindet, warnt efa und fragt den Admin, ob der Eintrag mit dem Namen (der zur Zeit nicht gültig ist) hinzugefügt werden soll. Wenn der Admin ja wählt, wird der Eintrag hinzugefügt, und der Name als unbekannter Name behandelt. Er hat damit zwar die gleiche Schreibweise wie der Datensatz, der zu einem anderen Zeitpunkt mal gültig ist, ist jedoch für efa davon völlig unabhängig und würde bei der Statistikauswertung auch nicht mit diesem Datensatz zusammengefaßt werden.
Im Bootshaus-Modus, wo ein Mitglied mit dieser Frage wohl etwas überfordert wäre, wird lediglich eine Warnung im Logfile protokolliert (Warnungen werden alle 7 Tage zusammengefaßt dem Admin zugestellt), und der Eintrag ebenfalls mit einem unbekannten Namen gespeichert, wie oben.
Es sollte jetzt also für den Admin ersichtlich sein, was passiert. Er kann dann, je nachdem, die Gültigkeit des Datensatzes anpassen, oder es dabei belassen.
Ein unbekannter Name in einem Fahrtenbucheintrag wird jedoch zur Zeit nur durch Änderung der Gültigkeit eines gleichnamigen Datensatzes nicht plötzlich zu einem bekannten Namen, wenn der Fahrtenbucheintrag jetzt in die Gültigkeit des Datensatzes fällt. Das passiert erst, wenn auch der Fahrtenbucheintrag vom Admin noch einmal bearbeitet wird. Auch das steht schon auf meiner Todo-Liste, daß efa in dem Audit, der bei jedem Öffnen des Projektes alle Daten überprüft, auch Einträge im Fahrtenbuch korrigiert (insb. was Versionierung betrifft). Kommt noch....
Wenn (von Hand) ein neuer Datensatz angelegt wird, dann schlägt efa einen Gültigkeitsbeginn für diesen Datensatz vor. Bislang war das 00:00:00 am Tag der Erstellung. Es gab den Wunsch, daß standardmäßig ein neu angelegter Datensatz ab immer gültig ist (technisch ab 1.1.1970). Das habe ich jedoch so nicht umgesetzt -- es könnte ja zum Beispiel sein, daß vor vielen Jahren mal ein gleichnamiges Boot existiert hat, das inzwischen verschrottet wurde, und nun ein neues Boot (mit gleichem Namen) eingetragen wird. Damit würde es also zu bestimmten Zeiten zwei gleichnamige Boote geben. efa erlaubt dies sogar (das ist kein Fehler), warnt aber beim Anlegen eines solchen zweiten (gleichnamigen) Datensatzes davor. Auch insgesamt halte ich es nicht für klug, wenn ich heute ein neues Mitglied eintrage, daß das auch für alle Vergangenheit sichtbar ist. Statt dessen habe ich mich entschieden, als vorgeschlagenen Gültigkeitsbeginn den Gültigkeitsbeginn des derzeit geöffneten Fahrtenbuchs zu wählen (üblicherweise 01.01. des Jahres). Das erscheint mir eine ganz vernünftige Lösung. Damit ist der Datensatz nicht ewig in die Vergangenheit gültig. Andererseits kann ich heute einen neuen Datensatz anlegen und anschließend für letzte Woche eine Fahrt damit eintragen, ohne daß ich beim Anlegen des Datensatzes aufpassen muß, welches Datum ich wähle. Natürlich kann das vorgeschlagene Datum immer angepaßt werden.
Ist so in 1.9.9_35 realisiert.
Rückmeldungen sind willkommen!
Danke & Gruß,
Nicolas
in efa2 sind bestimmte Daten (z.B. Personen, Boote und Ziele) versioniert, d.h. zu ein und demselben Datensatz kann es mehrere Versionen mit unterschiedlichem Gültigkeitszeitraum geben. So kann zum Beispiel dieselbe Person zu verschiedenen Zeitpunkten einen unterschiedlichen Status haben (z.B. Junior-Mitglied bis 30.06.2011, Senior-Mitglied ab 01.07.2011), oder einen anderen Namen (z.B. durch Heirat). Selbst wenn es nur eine Version eines Datensatzes gibt, hat diese immer einen Gültigkeitsbeginn, ab dem der Datensatz gültig ist. Davor existiert er nicht. So kann man z.B. ein Boot, das erst nächste Woche getauft wird, schon heute in efa eintragen - mit Gültigkeitsbeginn der Bootstaufe.
Das Konzept der Versionierung ist sehr mächtig, aber auch etwas trickreich. Zwei von euch hatten beim Beta-Test das Problem, daß die eingetragenen Namen in manchen Fahrtenbucheinträgen spurlos verschwanden. Grund war, daß z.B. ein Boot, das erst ab dem 05.02.2012 gültig war, für eine Fahrt am 15.01.2012 eingetragen wurde - zu dem Zeitpunkt aber noch gar nicht existierte. efa hat den Eintrag zwar akzeptiert, hinterher aber den Bootsnamen nicht mehr angezeigt.
Das Thema ist ziemlich kompliziert, aber heute habe ich mal versucht, eine Lösung zu finden:
Die Auto-Vervollständige-Listen sind zur Zeit in efa noch statisch (jaja, steht auf dem Programm) und bieten zur Auswahl sämtliche Namen (Boote, Personen, Ziele) an, die in der Gültigkeit des Fahrtenbuchs irgendwann mal gültig sind. Wenn das Fahrtenbuch also von 1.1.2012 bis 31.12.2012 gilt, dann stehen da alle Namen drin, die in diesem Zeitraum zumindest teilweise gültig sind. Wenn nun für einen Fahrtenbucheintrag ein Name ausgewählt wird, der zum Zeitpunkt des Fahrtenbucheintrags nicht gültig ist, so erscheint dieser jetzt mit einem orangenen Button (bald brauche ich eine Legende für die Farben...).
Wenn der Eintrag hinzugefügt wird, und sich efa im Admin-Modus befindet, warnt efa und fragt den Admin, ob der Eintrag mit dem Namen (der zur Zeit nicht gültig ist) hinzugefügt werden soll. Wenn der Admin ja wählt, wird der Eintrag hinzugefügt, und der Name als unbekannter Name behandelt. Er hat damit zwar die gleiche Schreibweise wie der Datensatz, der zu einem anderen Zeitpunkt mal gültig ist, ist jedoch für efa davon völlig unabhängig und würde bei der Statistikauswertung auch nicht mit diesem Datensatz zusammengefaßt werden.
Im Bootshaus-Modus, wo ein Mitglied mit dieser Frage wohl etwas überfordert wäre, wird lediglich eine Warnung im Logfile protokolliert (Warnungen werden alle 7 Tage zusammengefaßt dem Admin zugestellt), und der Eintrag ebenfalls mit einem unbekannten Namen gespeichert, wie oben.
Es sollte jetzt also für den Admin ersichtlich sein, was passiert. Er kann dann, je nachdem, die Gültigkeit des Datensatzes anpassen, oder es dabei belassen.
Ein unbekannter Name in einem Fahrtenbucheintrag wird jedoch zur Zeit nur durch Änderung der Gültigkeit eines gleichnamigen Datensatzes nicht plötzlich zu einem bekannten Namen, wenn der Fahrtenbucheintrag jetzt in die Gültigkeit des Datensatzes fällt. Das passiert erst, wenn auch der Fahrtenbucheintrag vom Admin noch einmal bearbeitet wird. Auch das steht schon auf meiner Todo-Liste, daß efa in dem Audit, der bei jedem Öffnen des Projektes alle Daten überprüft, auch Einträge im Fahrtenbuch korrigiert (insb. was Versionierung betrifft). Kommt noch....
Wenn (von Hand) ein neuer Datensatz angelegt wird, dann schlägt efa einen Gültigkeitsbeginn für diesen Datensatz vor. Bislang war das 00:00:00 am Tag der Erstellung. Es gab den Wunsch, daß standardmäßig ein neu angelegter Datensatz ab immer gültig ist (technisch ab 1.1.1970). Das habe ich jedoch so nicht umgesetzt -- es könnte ja zum Beispiel sein, daß vor vielen Jahren mal ein gleichnamiges Boot existiert hat, das inzwischen verschrottet wurde, und nun ein neues Boot (mit gleichem Namen) eingetragen wird. Damit würde es also zu bestimmten Zeiten zwei gleichnamige Boote geben. efa erlaubt dies sogar (das ist kein Fehler), warnt aber beim Anlegen eines solchen zweiten (gleichnamigen) Datensatzes davor. Auch insgesamt halte ich es nicht für klug, wenn ich heute ein neues Mitglied eintrage, daß das auch für alle Vergangenheit sichtbar ist. Statt dessen habe ich mich entschieden, als vorgeschlagenen Gültigkeitsbeginn den Gültigkeitsbeginn des derzeit geöffneten Fahrtenbuchs zu wählen (üblicherweise 01.01. des Jahres). Das erscheint mir eine ganz vernünftige Lösung. Damit ist der Datensatz nicht ewig in die Vergangenheit gültig. Andererseits kann ich heute einen neuen Datensatz anlegen und anschließend für letzte Woche eine Fahrt damit eintragen, ohne daß ich beim Anlegen des Datensatzes aufpassen muß, welches Datum ich wähle. Natürlich kann das vorgeschlagene Datum immer angepaßt werden.
Ist so in 1.9.9_35 realisiert.
Rückmeldungen sind willkommen!
Danke & Gruß,
Nicolas