Fehlerhafte Zeichen in Eingangsdaten

Erhält ein Profil fehlerhafte Zeichen in den Eingangsdaten, kann entschieden werden, wie darauf reagiert wird.

Ist folgende System-Property gesetzt, dann werden die Daten einfach akzeptiert:


-Dhub.datawizard.handleIllegalData=true


Wird diese System-Property allerdings mit dem Wert false gesetzt, dann wird eine IllegalDataException geworfen und das Profil bricht mit einem Fehler ab.

Folgend alle Zeichen, die als fehlerhaft betrachtet werden und die Exception auslösen:


Hexcode 0x00 bis 0x1F (Ausnahmen: 0x09, 0x0A, 0x0D) (Steuerzeichen)

Fehler abfangen/korrigieren

Es kann mit folgender System-Property eine Klasse angegeben werden, die diese Exception auffängt und die Fehler in den Eingangsdaten korrigiert. Diese Klasse muss das Interface com.ebd.hub.datawizard.parser.ICorrectValue implementieren. Es gibt eine Programmierschnittstelle (API), die es Ihnen auch erlaubt eigene Komponenten in Java zu entwickeln. Hierzu bieten wir eine vertiefte Schulung an. Bei Interesse wenden Sie sich bitte an unsere Mitarbeiter im Support bzw. im Vertrieb. Es ist im Standard aber bereits eine solche Klasse vorhanden, die verwendet werden kann.


-Dhub.datawizard.IllegalDataClass=com.ebd.hub.datawizard.parser.DefaultCorrectValue


Führt die durchgeführte Korrektur nicht zum Erfolg, wird die Verarbeitung endgültig mit einem Fehler abgebrochen. Dadurch wird verhindert, dass eine Endlosschleife entsteht. Logs zur Fehlerkorrektur werden keine erzeugt (außer dem Fehler selbst, sollte dieser dann immer noch auftreten).

Beachten Sie bitte, dass eine Korrektur der Daten nur beim Parsen in die Quellstruktur erfolgt. Hinweis: Sichtbar in einem Mapping-Test oder wenn Sie die Daten in die Quellstruktur laden.

Die originale Eingangsdatei bleibt unverändert.

Standard-Klasse DefaultCorrectValue


Gelegentlich kann es vorkommen, dass infolge mangelnder Datenqualität der Eingangsdaten Steuerzeichen enthalten sind, die das Parsen der Daten verhindern. Die Klasse DefaultCorrectValue ersetzt alle ISO-Steuerzeichen (Hexcode 0x00 bis 0x1F, Ausnahmen: 0x09 , 0x0A , 0x0D) durch einen Unterstrich.

Alle oder bestimmte Profile


Per Default korrigiert diese Klasse die Daten aller Profile. Wenn Sie die Korrektur auf bestimmte Profile beschränken möchten, dann muss die folgende Properties-Datei vorhanden sein. Hinweis: Die Datei gilt auch als vorhanden, wenn sie leer ist!


./conf/invalid_data_settings.properties


In der Datei werden die Namen aller Profile (je Zeile ein Profil-Name) angegeben, für die die Korrektur durchgeführt werden soll. Hinweis: Wenn der Profilname ein Leerzeichen, Komma, Semikolon, Doppelpunkt, Gleichheitszeichen oder Backslash enthält, muss dieses Zeichen in der Datei durch einen vorangestellten Backslash entwertet (escaped) werden.

Beispiel-Datei


Folgende vereinfachte Datei enthält das illegale Unicode-Steuerzeichen 0x1A (SUB): file_with_illegal_data.txt