| 
 |  | Fehlerprüfung und VorgangserzeugungAllgemeine HinweiseIm Rahmen der sogenannten Aposteriori-Prüfung, d.h.
"im nach hinein" abgekürtzt auch Aposti genannt,
werden aller Meldungen regelmäßig auf "Vollständigkeit
und Widerspruchsfreiheit" geprüft und im Falle von Widersprüchen
oder fehlenden Gegenmeldungen werden Fehlervorgänge zu einzelnen
Meldungen und Meldungspaaren erzeugt. Diese werden oft auch als
"Meldekettenfehler" bezeichnet und können in der Entität VORGANG
betriebsbezogen abgerufen werden. Wenn fehlende Meldungen eingehen oder Widersprüche korrigiert werden, werden
die zugehörigen Fehlervorgänge dann beim nächsten Prüflauf wieder storniert
und sind damit hinfällig. ZielDie Aposti-Prüfung (auch: Plausi Phase II) hat zur Aufgabe, die
Lebensläufe jedes Tieres in der Datenbank zu überprüfen und bei Fehlern diese
in die Tabelle VORGANG zu schreiben. Die Regionalstellen müssen für ihr
jeweiliges Bundesland die Vorgänge über eine Delta-Abfrage holen und
veranlassen, daß die Fehler korrigiert werden. Das Aposti-Prüfprogramm berücksichtigt
die Korrektur eines Lebenslaufes bei jedem Lauf, indem es die Fehler des
korrigierten Lebenslaufes mit den alten schon gespeicherten vergleicht und dabei
nicht mehr gültige Fehler storniert und neue Fehler ergänzt. Alle anderen Vorgänge,
die nicht zur Aposti-Prüfung gehören, bleiben davon unberührt. ArbeitsweiseGrundsätzlich bietet das Aposti-Programm die Möglichkeit, entweder einen gegebenen
LOM-Bereich oder LOMs aus einer Datei zu rechnen. In beiden Fällen werden nachfolgende
Prüfungen der Tier-Lebensläufe in verschiedenen Abschnitten abgearbeitet. Anzumerken
ist, daß die 'alte Version' des Aposti-Programmes am 4.1.2001 zuletzt gelaufen ist und ab
dem 18.1.2001 die neue. 
  |  | Vorab-Ohrmarkenprüfung der schon vorhandenen Einträge in der Vorgangstabelle Damit Änderungen am LomCoder auch in der Vorgangstabelle greifen (im konkreten Fall war
    es die Aufhebung der Datumsprüfung für saarländische Ohrmarken), wird vor der
    Überprüfung des Lebenslaufes die Ohrmarke geprüft. Ist sie korrekt und war zur Ohrmarke
    ein Eintrag in der Vorgangstabelle vorhanden, dann wird dieser storniert. Wird ein
    LOM-Bereich gegeben, so wird dieser komplett am Stück abgearbeitet statt bei jeder
    gefundenen Ohrmarke einzeln. Diese Prüfung gab es im alten Aposti-Programm nicht.
 |  |  | betroffene Tiere ermitteln (betrifft nur LOM-Bereichsabfrage; im
    anderen Fall sind die LOMs bereits bekannt :-) Aus TIERBETR werden die seit dem letzten Lauf geänderten Ohrmarken ermittelt. Vor der
    aktuellen Version war es so, daß diese Meldungsabfrage um 10 Tage in die Vergangenheit
    verschoben war, was dazu führte, daß kürzlich gemachte Änderungen garnicht erfaßt
    wurden. In TIERBETR stehen zusätzlich Einträge, die in der Zukunft gesetzt wurden, die
    durch diese Abfrage auch mit erfaßt werden. Mehr dazu bei der Vorgangsprüfung.
 |  |  | sämtliche Tierdaten zur LOM ermitteln Hier sind zwei Varianten eingebaut worden, um eventuell einen Performancegewinn
    herauszuholen, da dies der rechenintensivste Teil seitens der Datenbank ist. Beide
    Varianten holen grundsätzlich zu einem Tier (LOM) aus den Tabellen ERSTERF, GEBURT,
    EUEIN, IMPMARK, ABGANG, ZUGANG, TOD, SCHLACHTUN und AUSFUHR die Informationen
    Ereignisdatum, BNR15, SYS_VON, SYS_BIS und SYS_STAT. Diese werden dann unsortiert (bzw. so
    wie sie von der Datenbank kommen) in einer TierMeldungen-Liste gespeichert. Die zwei
    Varianten legen die Art der Datenabfrage auf die genannten Entitäten fest. Die eine holt
    sich alle Daten über ein einziges großes UNION-Select aus der Datenbank und die andere
    mit neun separaten Selects. Rein performancemäßig ist der UNION einen kleinen Tick
    schneller.
 |  |  | Sortieren der Tiermeldungen Die alte Meldungssortierung von Herrn Hankewitz wurde durch die von Herrn Hartmann
    ersetzt, die auch bei der Einzeltierverfolgung verwendet wird. Grob gesagt wird zunächst
    nach Ereignisdatum sortiert, dann nach Betriebsnummer und schließlich nach Entität.
    Anschließend werden passende Pärchen gebildet, d.h. z.B. ZUGANG+ABGANG oder
    ZUGANG+SCHLACHTUNG etc. Diese Pärchen werden nun erneut in den übrigbleibenden
    alleinstehenden Meldungen einsortiert.
 |  |  | Vorgänge generieren Anhand des sortierten Lebenslaufes werden Vorgänge generiert. Es wird immer die aktuelle
    mit der vorhergehenden Meldung zur Prüfung auf Konsistenz herangezogen. Die erzeugte
    Vorgangsliste wird anschließend noch von den Vorgängen befreit, die
    Dummy-Betriebsnummern betreffen. Schlussendlich wird die Ohrmarke selbst geprüft und im
    Fehlerfalle als Plausi 9500 angehängt.
 |  |  | Entscheidungskriterium 1: Lebenslauf schon korrekt Ist der Lebenslauf des Tieres bis zur aktuellen Sekunde korrekt, dann gehe sofort zur
    Vorgangsbehandlung über. Ist er es nicht, berücksichtigen wir die 10-Tage-Meldefrist.
 |  |  | Kürzen des Lebenslaufs Da der 'lange' Lebenslauf Fehler enthielt, könnte es sein, daß diese Fehler in den
    letzten 10 Tagen gemacht wurden und davor alles korrekt ist. Wir ermitteln daher eine
    kurze Tiermeldungsliste, indem wir jedes Ereignis von heute bis vor 10 Tagen weglassen.
    Die neue Liste wird erneut sortiert.
 |  |  | Vorgänge des kurzen Lebenslaufes generieren Dies geschieht analog dem oben beschriebenen Verfahren.
 |  |  | Entscheidungskriterium 2: Kurzer Lebenslauf unterscheidet sich vom langen Unterscheidet sich die Vorgangsliste des kurzen Lebenslaufs von der des langen, dann
    gewährt man der Ohrmarke einen zeitlichen Aufschub und behandelt sie wie einen
    Lebenslauf, der in den letzten 10 Tagen keine Fehler erzeugt hat. Es wird dann mit der
    Vorgangsliste des kurzen Lebenslaufs zur Vorgangsbehandlung übergegangen, wobei dort die
    Vorgänge entfernt werden, die in der Vorgangsliste des langen Lebenslaufes nicht mehr
    auftauchen würden. Unterscheiden sich beide Vorgangslisten nicht, dann übergibt man der
    Vorgangsbehandlung die Vorgangsliste des langen Lebenslaufs, da in den letzten 10 Tagen
    tatsächlich keine fehlerhaften Meldungen vorhanden sind.
 |  |  | Zeitlichen Aufschub einer Ohrmarke speichern Damit Aposti später weiß, welcher Ohrmarke es mal einen zeitlichen Aufschub gegeben hat,
    wird diese mit der Dummy-Betriebsnummer des betroffenen Bundeslandes in TIERBETR
    gespeichert. Als DATA_VON-Timestamp erhält es das Datum 10 Tage nach dem Ereignisdatum,
    d.h. es kann weit in der Zukunft liegen. Beispielsweise bekommt eine Meldung mit einem
    Ereignisdatum von gestern demnach 9 Tage Aufschub und wird solange berücksichtigt, bis
    dieser Zeitpunkt überschritten wird. Diese Information wird deswegen in TIERBETR
    gespeichert, damit sie zu Beginn bei der Abfrage der betroffenen LOMs erfaßt werden kann.
    Die TIERBETR-Meldungen in der Zukunft kommen mit anderen Abfragen und Meldungen nicht
    in Konflikt, um gleich die Bedenken auszuräumen.
 |  |  | Gewählte Vorgangsliste verarbeiten Am Ende der Prüfung wird die gewählte Vorgangsliste mit den bereits in der
    Vorgangstabelle gespeicherten Vorgänge zur Ohrmarke verglichen. Vorhandene Meldungen
    bleiben erhalten, neue Meldungen werden gemeldet und nicht mehr vorhandene werden
    storniert. Zudem werden bestätigte Meldungen berücksichtigt und trotz Fehlervorgang aus
    der Vorgangstabelle storniert.
 |  Vielleicht noch eine amüsante Anmerkung: Das Aposti-Programm ist so schnell,
dass es
durch das Rausschreiben der Protokolldatei ausgebremst wird. Dieses brauche ich jedoch als
Überwachung, um zu sehen, ob alles fehlerfrei lief. ZeitplanDer hier genannte Zeitplan ist derzeit gültig. An folgenden Tagen und Zeiten läuft Aposteriori regelmäßig (seit dem 18.1.2001). 
  |  | Montags, ab 22 Uhr |  |  | Mittwochs, ab 22 Uhr |  |  | Freitags, ab 22 Uhr |  In diesen Zeiten sollten bitte keine Abfragen auf die Vorgangstabelle
und auch keine großen Meldejobs vorgenommen werden (würde sonst zu
eventuell zu größeren Behinderungen führen). Je nach Dauer werden die Zeiten eventuell tiefer in die Nacht verschoben, um die
Hauptlast von den Abendstunden wegzubringen. Zurück zum Anfang |