EDAS Altdatenimport - Beschreibung
Siehe auch:
Pflichtenheft für das OASIS-Modul
"Erhebung der Ausgleichsabgabe [nach dem Schwerbehindertenrecht]" (EAA),
Stand 15.11.2000 (a).
Ergänzung Teil 8 - Import Altdaten, Stand 16.01.2001.
Begriffe:
"Zeile" ist eine Zeile der Altlasten-Datei.
Eine Zeile enthaelt meist die Daten eines Datensatzes (ein Tupel einer Datenbank-Tabelle)
eines Fachobjekts.
Ausnahme: Insolvenz und deren Forderung-Daten befinden sich in einer Zeile.
"Satzkennzeichen"
Das erste Zeichen der Zeile, das den Datensatz-Typ kennzeichnet.
Jede Importklasse definiert es als [Importklasse] #satzkennzeichen.
"Zeilenkomplex" (kurz Komplex)
Die jeweils zusammengehoerigen Zeilen einer Datei,
d.h. mindestens eine Datenzeile vom Typ Betrieb (Arbeitgeber),
plus - falls vorhanden - die zu diesem Betrieb gehoerenden weiteren Daten (Anzeige, Belegung etc.).
Verfahren:
Datei oeffnen und Betrieb-Zeilen zaehlen.
Jeweils die Zeilen eines Zeilenkomplexes sammeln.
Fuer einen Zeilenkomplex:
Pruefung auf korrekte Satzkennzeichen
Ein Zeilenkomplex, der fehlerhafte Satzkennzeichen enthaelt, wird protokolliert (s.u.).
Zerlegung der Zeilen des Zeilenkomplexes
Ergänzung fehlender Daten anhand der Standard-Deklaration (in
[Importklasse] #feldEigenschaften), falls vorhanden.
Berechnung nicht in der Datei vorhandener Belegungsdaten (Pflichtenheft Teil
8, Seite 7).
Prüfung / Fehlercodes sammeln z.B.
Leere Pflichtfelder (weder Dateidaten vorhanden, noch Standard bestimmt).
Erhebungsjahr fehlerhaft oder > EdasDateiImport #maximalesJahr
Eigenschaften, für die Fehlercodes definiert sind, z.B. Datum ungültig.
Prüfungen / Fehlercodes sammeln zum kompletten Zeilenkomplex:
Zeilenkomplex ohne Betrieb (kann nur am Anfang der Datei auftreten),
Zeilenkomplex mit Buchung- aber ohne Abgabe-Daten.
Zeilenkomplex, dessen Werte nicht stimmig sind
Erhebungsjahr bestimmter Objekte ist doppelt
Buchungsdaten fehlerhaft (Pflichtenheft Teil 8, Seite 13).
Vor der Fachobjekt-Erzeugung wird geprueft, ob es in der Datenbank schon Daten
mit folgenden Kennwerten gibt:
Betrieb: BANR, Kassennummer, Aktenzeichen.
Abgabe: Aktenzeichen.
Falls ja, wird der entsprechende Fehlercode registriert.
Wurden zum Zeilenkomplex Fehlercodes gesammelt, wird er protokolliert (s.u.).
Fuer einen Zeilenkomplex ohne Fehlercodes wird die Fachobjekt-Erzeugung ausgeloest:
Innerhalb einer LVRAFW-Framework-Transaktion:
Erzeugung des Referenz-Fachobjekts Betrieb
Erzeugung der anderen Fachobjekte
falls der Betrieb korrekt erzeugt wurde, und
falls Abgabe (sofern notwendig) korrekt erzeugt wurde,
sonst wird der Zeilenkomplex protokolliert (s.u.).
Treten beim Speichern eines Fachobjektes eines Zeilenkomplexes Datenbank-Fehler auf,
so wird die Transaktion zurueckgenommen und der Zeilenkomplex protokolliert.
Treten beim Speichern in die Datenbank mehr als EdasDateiImport #dbSpeichernFehlerMaximum Fehler
auf, so wird die Dateibearbeitung abgebrochen.
Fehlerprotokollierung:
Fehlerhafte Zeilenkomplexe werden komplett in die erste Fehlerprotokoll-Datei geschrieben und
die dazugehoerigen Fehlercodes in die zweite Fehlerprotokoll-Datei (Fehlercode-Datei).
Das Auftreten bestimmter Fehler fuehrt zum Abbruch der weiteren Auswertung, d.h. dass nicht alle
evtl. vorhandenen Fehler im ersten Durchlauf gesucht werden koennen, da zwischen den Fehlern eine
Abhaengigkeit bestehen kann.
Einerseits koennen Fehler weitere Fehler zur Folge haben (z.B. ein zu kurzes Datenfeld stoert auch
alle weiteren Felder der Zeile), die beim Beheben des ersten Fehlers verschwinden.
Andererseits koennen bestimmte Auswertungen nur korrekt erfolgen, wenn die dabei zugrundegelegten
Felder fehlerfrei sind (z.B. die Buchungsdaten-Vergleiche).
Start:
Es muss vorher eine Datenbank-Verbindung aufgebaut worden sein.
Der Import kann direkt gestartet werden durch EdasDateiImport import.
Dann werden zuerst die benoetigten Pfade abgefragt.
Beim Start mittels GUI durch EdasVCAltdatenImport start.
werden die Standardpfade angeboten, die mit durch Tastendruck ausgeloester Suche veraendert werden
koennen.
Das GUI zeigt eine von der Anzahl der Betriebe in der Datei abhaengige Fortschrittsanzeige.
Grenzen:
Die Altdaten-Datei sollte eine max. Anzahl Datensaetze (welche?) nicht ueberschreiten.
Empfehlung, die Altdaten auf mehrerere Dateien zu verteilen, statt eine Riesendatei zu erzeugen.
Abbruch der Dateibearbeitung und Neustart waere moeglich, falls eine Logdatei die
letzte bearbeitete Position aus Altdaten.asc (Zeile oder Betrieb) speichert.
Leerzeilen in der Altdaten-Datei sind moeglich.
Fehlermoeglichkeiten:
In der altdaten.asc koennen folgende Fehler auftreten:
Zeile hat keine vorangegangene Betrieb-Datenzeile.
Zeile beginnt mit unbekanntem Satzkennzeichen.
Zeilenlaenge zu kurz
Mindestens eine Feldlaenge innerhalb eines Datensatzes ist falsch
(Folge: auch alle nachfolgenden Daten des Datensatzes werden fehlerhaft).
Feldinhalt innerhalb eines Datensatzes fehlerhaft
Festgestellt anhand der Pruefmethode fuer diesen Datentyp der jeweiligen Importklasse.
Evtl. Korrektur moeglich oder Ersatz durch Standard moeglich.
Objekte (Betrieb, Abgabe) mit gleichen Kennwerten (s.o.) existieren schon in der Datenbank.
Feldinhalte im Vergleich zwischen Datensaetzen stimmen nicht.
Festgestellt mittels der Zeilenkomplex-Pruefungen:
Betrieb-Datensatz fehlt,
Buchungssumme(n) fehlerhaft,
Abgabe-Datensatz fehlt, obwohl mindestens ein Buchung-Datensatz existiert.
Erhebungsjahr bestimmter Datensaetze kommt mehrfach vor.
Zusaetzliche Fehlercodes:
Pseudo-Satzkennzeichen
I Import allgemein (wird benutzt, wenn die Oberklasse der Importklassen Fehler findet,
noch bevor eine spezifische Importklasse für die Zeile bestimmt wurde).
Codes
I94 Erzeugen des Abgabe Fachobjekts ist gescheitert.
I95 Erzeugen des Betrieb Fachobjekts ist gescheitert.
I96 Speichern des Zeilenkomplexes ist gescheitert.
I97 Datenzeilen ohne vorangegangenen Betrieb am Anfang der Datei.
I98 Satzkennzeichen unbekannt.
Zusaetzlich wird das unbekannte Satzkennzeichen an den Fehlercode angehaengt.
99 Daten fehlen (Zeile zu kurz).
N02 Notizeintrag fehlt.
K16 Erhebungsjahr fehlerhaft (nicht 4-stellig, numerisch).
S37 Aktenzeichen fehlt (leere Zeichenkette).
K16 Insolvenz nicht vorhanden (Fachobjekt Erzeugung gescheitert) aber Forderung-Daten
vorhanden.
P05 "Arbeitsplatz (AP_) nicht numerisch" wird ergaenzt durch den Feldnamen.
Falls ein Feld in der DB (bzw. im Record) als Pflichtfeld deklariert ist,
ein Fehler entdeckt wird,
kein Standard bestimmt ist (also NULL in die DB geschrieben wuerde),
aber kein Fehlercode spezifiziert ist,
dann wird ein Ersatz-Fehlercode erzeugt, der aus dem Namen des Feldes besteht.
Beispiel fuer Datensatztyp 'Betrieb' (Satzkennzeichen 'A') Feldname 'Name2'
(wenn das ein Pflichtfeld waere) wuerde der Fehlercode: 'Aname2' erzeugt.
Falls Zeilen keinem Betrieb zugeordnet werden koennen, beginnt die Fehlercode-Zeile mit
'BETRIEB?'. Das kann nur vorkommen, wenn die Datei am Anfang Daten-Zeilen ohne vorhergehende
Betrieb-Daten-Zeile enthaelt.
|