Importmodul II: Aufbau und Überblick

Datenquellen und Datenformat

Das Importmodul kann auf vier verschiedene Arten mit Daten gefüllt werden. Die Dateneingabe ist nicht auf eine dieser Arten beschränkt, sie können beliebig kombiniert werden.

Direkte Eingabe

In den Tabellen der Importmodul-Benutzeroberfläche (GUI) kann der Benutzer beliebig editieren und neue Zeilen hinzufügen. Insbesondere ist das Kopieren und Einfügen einzelner Zellen, ganzer Zeilen/Spalten oder ganzer Tabellen aus einem Tabellenkalkulationsprogramm möglich.

Diese Eingabeform ist in erster Linie für die Korrektur bzw. Nachbearbeitung anderweitig bereitgestellter Daten gedacht. Sie dient aber auch dem Abgleich mit Daten, deren Aufbereitung ohne systematische Strukturierung manuell erfolgt ist oder die sich in dieser Form nicht wiederholen wird; für die sich der Aufwand einer Importprofil-Konfiguration also nicht lohnt.

Importdateien und Profildatei

Eine recotech-Profildatei verweist auf eine beliebige Menge spaltengetrennter Textdateien (CSV-Dateien, Excel-Dateien oder äquivalente Formate) als Datenquellen und deren Verwendung im Importprozess in Form von Spaltenzuweisungen. Diese Spaltenzuweisungen sind sehr flexibel:

  1. Die Daten für einen recotech-Datentyp können über verschiedene Dateien verteilt sein.
  2. Reihenfolge und Name der Spalten in den Quelldateien sind beliebig.
  3. Eine Datei kann Daten für verschiedene Importobjekte bereitstellen.
  4. Über verschiedene Quelldateien hinweg bestehende Verweisketten bzw. Fremdschlüsselbeziehungen können beim Einlesen ausgewertet werden.

Darüber hinaus können in der Profildatei Auslassungs- und Ersetzungsklauseln definiert werden, die beim Auslesen der Dateien beachtet bzw. ausgeführt werden.
Zuletzt erlaubt die Profildatei die Definition von Makros, um den Importprozess zu automatisieren. Mit einem konfigurierten Profil beschränkt sich der ganze Import/Datenabgleich auf das Auswählen der Profildatei. Eine detaillierte Beschreibung der Importprofile findet sich im Dokument "Importmodul IV: Importprofil".

Diese Form der Eingabe dient dem Abgleich mit Daten, die systematisch immer wieder in der gleichen Form und Struktur vorliegen, in erster Linie Exporte aus Quellsystemen. Das Importprofil bietet genügend konfigurierbare Funktionen, um in vielen Fällen mit den bestehenden Berichts- und Standard-Export-Funktionen eines Quellsystems auszukommen.

Stammdaten

Die Importtabellen können aus den vorhandenen Stammdaten gefüllt werden. Systematische und umfangreiche Änderungen der Stammdaten sind hier mitunter einfacher durchzuführen als in der regulären recotech-GUI.
Der wichtigste Anwendungsfall für diese Form der Dateneingabe ist das Auffüllen mit Löschungen beim Datenabgleich mit einem Fremdsystem. Hierbei wird für jedes bestehende recotech-Objekt, das nicht mehr erwähnt wird, eine Löschanweisung generiert. Diese Aktion kann auch als Bearbeitungsanweisung im Profil definiert werden.

Datenbank

In der recotech-Datenbank gibt es für jeden Datentyp eine entsprechende Importtabelle, die direkt per Datenbankzugriff gefüllt werden kann. Alle Felder in diesen Tabellen sind vom Typ String, es gibt keine referenziellen Integritätsbedingungen und ihr Inhalt hat keine direkten Auswirkungen auf die eigentlichen Stammdaten. Der Inhalt dieser Tabellen kann nur ins Importmodul geladen werden.

Diese Form der Dateneingabe dient dazu, die Datenbank eines Quellsystems ohne Umweg über Dateien direkt zu verwenden. Im Gegensatz zum Einsatz von Profilen lässt diese Form der Eingabe im Moment keine Nachbearbeitungsmakros zu. Die Daten sollten also bereits in der endgültigen und vollständigen Form in die Importtabellen der recotech Datenbank geschrieben werden.

Interpretation von Zahl und booleschen Feldern

Für die Auswertung der Zahlangaben ist eine Formatspezifikation in Form einer Kulturangabe notwendig, welche die verwendete Zahldarstellung für die Umwandlung von String in Gleitkommazahlen angibt. Diese kann je nach gewählter Methode der Dateneingabe in der Importmodul-GUI gewählt, im Profil definiert oder in einer speziellen Konfigurationstabelle gesetzt werden. Diese Einstellung gilt für alle Tabellen. Ob Tausendertrennzeichen verwendet werden, ist darüber hinaus ebenfalls konfigurierbar.
Um boolesche Felder auswerten zu können, müssen spezielle Zeichenfolgen für die logischen Werte wahr und falsch definiert werden. Beliebige verschiedene Strings sind zulässig. Auch diese Einstellung gilt für alle Tabellen und kann in der GUI, im Profil oder in der Konfigurationstabelle der Datenbank erfolgen. Diese beiden Strings haben nur für die boolesch zu interpretierenden Felder einen Sonderstatus. Sie können also auch in Namen oder Kommentarfeldern als buchstabengetreue Strings verwendet werden.

Leere Felder und Datenredundanz

Fast alle Datensätze in den Importtabellen sind in vielfacher Weise redundant, um möglichst flexible Darstellungen der Daten zu erlauben. Dies betrifft insbesondere die Objektverweise untereinander, in geringerem Maße auch die Identifizierung der Objekte an sich. So gut wie alle Felder sind unter bestimmten Umständen redundant und können im Zuge der automatischen Interpretation mit korrekten Werten gefüllt werden. Dementsprechend gibt es so gut wie keine Pflichtfelder.

Wenn ein Feld keinen Wert hat, sind folgende Interpretationen möglich:

  • Der Wert soll die leere Zeichenkette sein.
  • Der Wert soll sich nicht ändern.
  • Der Wert soll im Zuge der Interpretation der Daten aus anderen explizit gegebenen ermittelt werden.
  • Der Wert soll null sein, das Feld also keinen Wert haben, noch nicht mal eine leere Zeichenkette.
  • Der Wert soll geometrisch ermittelt werden. Dies ist nur bei wenigen Attributen möglich.

Um diese Interpretationen erzwingen zu können, muss für jeden Fall ein spezieller String definiert sein. Wie bei den booleschen Werten und der Zahldarstellung erfolgt dies je nach Art der Dateneingabe in der GUI, im Profil oder in der Konfigurationstabelle. Im Folgenden werden für diese Strings [...], *, ?, zip und geo verwendet.
In der GUI (und somit als mögliche Bearbeitungsanweisung im Profil) gibt es die Funktion, leere Felder automatisch zu interpretieren, d. h. leere Felder mit einem dieser speziellen Strings zu füllen. Die Interpretation hängt von der Art des Feldes ab, ist aber konfigurierbar.
Bei der Dateneingabe direkt in die Datenbank steht diese automatische Interpretation nicht zur Verfügung. Die Profildatei erlaubt die Definition eines Vorgabewertes für jede Quellspalte. Die automatische Interpretation je nach Feld Typ sollte demnach nur bei der manuellen Eingabe der Daten verwendet werden.