Vier D HomeArchivSeminareNachrichten - Twitter4D Expertise
Antworten auf Ihre Fragen •
Datenbank-Pflege •
4D Coaching •
OpenDDDD •
Termine •
4D Expert
V11/V12-Service • Konzepte •
Alternativen •
Meine Apps
Gebrauchtes Mac + iPhone: zu verkaufenFinden Geo-Themen + Projekte GoogleMap-Integration • GeoDDDD • Database Publishing • Database PhotographyVerschiedenes |
22 Jun 2006 Generischer Daten-Importer mit 4D ViewKö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 Importwerkzeugverwenden. 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! WorkflowDer 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:
Hier das Prinzip im Editor-Formular:
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 DublettenNicht 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. 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. AbstraktionsschichtenDurch 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.
Zielgruppesind 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 ↵ |