22 Jun 2006 

Generischer Daten-Importer mit 4D View

Könnten Sie Daten aus dieser Excel-Tabelle in die Datenbank einlesen? Danke!

Das ist eine Bitte, Daten zu übernehmen und nur zu verständlich. Und nicht wirklich ein Problem, der Import-Editor von 4D leistet dem Datenbank-Entwickler gute Dienste. Wollte ein Anwender den Editor nutzen, müßte dieser die Daten-Struktur kennen. Das will weder der Anwender auf sich nehmen noch wird der Entwickler jede Strukturänderung erneut propagieren wollen. Das ist die Sicht aus Anwenderseite.

Auch der Entwickler könnte manchesmal einen anderen Editor gebrauchen. Enthält eine zu importierende Tabelle Spalten, die auf verschiedene Datenbank-Tabellen verteilt werden soll, geht das mit dem Standard-Importer von 4D nur in Portionen und/oder die Tabelle muß vorher manuell geteilt werden.

Fazit: über kurz oder lang soll und muß was Eigenes her. Warum nicht

4D View als Importwerkzeug

verwenden. Text einlesen und parsen ist leistungsfähig und für komplexe Aufgaben ideal, ansonsten Overkill. Es bietet sich 4D View als Import-Werkzeug an. 4D View bietet die wichtigen Vorteile einer Tabellenkalkulation und ist direkt in 4D eingebunden und es sieht aus wie in den Quelldaten *. Das hilft!

Workflow

Der Arbeitsablauf sieht im Schema so aus. Ein Textdokument wird in 4D View eingelesen. Die Daten werden gesichtet und ggf. werden Spalten reorganisiert. Abschließend werden die Daten durch geeignete Methoden in die Datenbank integriert. Die Einstellungen können gesichert und später erneut geladen werden:Arbeitsablauf

Hier das Prinzip im Editor-Formular:pvPrinzip.jpg
Den Spalten werden Datenstrukturen der Datenbank zugewiesen. Diese Datenstrukturen müssen nicht zwangsläufig Tabellen und Felder sein, denken Sie an Auswahllisten oder Klassifizierungen. Im unteren Bereich des Editors sind die nötigen Werkzeuge für die Einstellungen: welche Spalte in welches Feld welcher Tabelle zu importieren ist. Soll es einen Update ausführen statt einen Neu-Import, welcher Feldinhalt zu berücksichtigen ist.

Attributierung

AttributierungIn Tabellen aus der Tabellenkalkulation sind Dateninhalte in Worte gefaßt, wie z.B. der Schulabschluß und dazu dann die vielen Varianten. Der Importer kann daraus ein Attribut und eine Liste der Attributswerte erzeugen. Im Ergebnis gibt es eine benannte Auswahlliste und alle bisher verwendeten Einträge zur diesem Thema. Dateninhalte der Tabelle werden zu Metadaten in der Datenbank.

Update und Dubletten

Nicht immer sind die angelieferten Daten neu. Gibt es eine Spalte mit einem eindeutigen Identifier, z.B. eine Personennummer, wird der Import als Update ausgeführt. Update Dann wird der Spalteninhalt gegen ein Feld verglichen und nur wenn es keinen passenden Datensatz gibt, wird ein neuer angelegt. Sonst werden die Feldinhalte mit denen aus der importierten Tabelle überschrieben.

Nicht immer gibt es in der zu importierenden Tabelle eine eindeutige ID oder sie hat nichts mit derjenigen in der Datenbank zu tun. Trotzdem sollen keine doppelten Datensätze, z.B. Personen importiert werden. Dann wird zuerst auf Dubletten überprüft. Das Ergebnis ist eine Spalte, die bei Dubletten-Datensätzem deren eindeutige ID einträgt.Dubletten

Abstraktionsschichten

Durch Abstraktion wird der Importer weitgehend generisch. So braucht der Importer nicht für jede weitere Tabelle neu programmiert zu werden. Die erste Abstraktionsebene ist der Import-Editor mit der 4D View-Tabelle, den Zuordnungen der Tabellen-Spalten zu Datenbank-Feldern und die Verwaltung weiterer Parameter. Die weiteren Abstraktionen sind auf Methoden-Ebene einzurichten. Es sind 4 Schichten. Auf der äußersten Schicht 1 werden die Spalten der Tabelle den Datenstrukturen zugewiesen, in Schicht 4 die Daten an die Datenbank angepaßt. Die Methoden der Schichten 1 bis 3 sind weitgehend generisch. Nur die innerste Schicht 4 muß an die jeweilige Datenbank angepaßt werden. Handeln Tabellen-Trigger die Feldinhalte ab, kann auf Schicht 4 verzichtet werden. Abstraktion in Schichten

  1. 1 Oberfläche
  2. hier werden die Einstellungen des 4D View-Bereiches und der Zielfelder der Datenbank sowie Sichern und Laden der Einstellungen abgehandelt
  3. 2 Importer
  4. liest die Daten aus der 4D View-Tabelle
  5. 3 Content2Data
  6. konvertiert die Text-Daten aus der Tabelle in die geeigneten Datenformate und weist Sie den Feldern der Datenbank zu. Die Feldern können zu verschiedenen Tabellen gehören. Es werden Auswahllisten aus den realen Daten erzeugt oder es werden Klassifizierungen eingerichtet. Der Import kann als Update laufen, ggf. mit vorheriger Duplettenprüfung.
  7. 4 Helper_FieldContent
  8. Sammel-Methode, die die Daten nachbereitet - triggert. Dieser Teil ist anwendungsspezifisch und muß an die jeweiligen Datenstrukturen angepaßt werden. Hier werden anwendungsspezifisch Feldinhalte auseinandergenommen, Querverbindungen gezogen, M-zu-N Datensätze angelegt.

Zielgruppe

sind 4D-Entwickler. Anwender einer Lösung müßten in dieser Ausbaustufe immer noch die Struktur kennen. Ich kann mir jedoch vorstellen, als Entwickler mit Hilfe dieses Editors die Einstellungen vorzunehmen und an den Kunden das Parameter-Blob zu schicken. Für den Kunden reduziert sich der Aufwand darauf, mir eine Mustertabelle zu schicken und dann die Einstellungen auf seine Tabellen anzuwenden. Sind es regelmäßig wiederkehrende Infos macht sich der Aufwand schnell bezahlt.

Workshop - statt nachbauen?

Der Importer ist generisch, doch: 4D-Entwickler mögen kaum 4D-Komponenten. Sie hätten gerne die komplette Datenbank im Griff. Das kann ich nachvollziehen! Wem es zu aufwendig ist, die Methoden und Details zum beschriebenen Verfahren selbst zu entwickeln, kann einen Workshop buchen. Anfragen bitte per eMail.

Zusätzlich zum Thema Abstraktion sehen Sie sich auch den Artikel Alles zusammenhalten an. Dieser beschreibt eine mögliche Form der Kapselung mit den Mitteln von 4D, die auch im Importer Anwendung findet.

* der Importer könnte ohne Leistungsverlust Listboxen einsetzen, Spalten und Zeilen würden vertauscht und nur eine kleine Anzahl Datensätze würde zur Kontrolle eingelesen. Dazu würde Schicht 1 angepaßt

4D Themen: Berichte in Arbeit