Generierung eines BMEcat XML Kataloges aus CSV Dateien

BMEcat ist ein XML-Standard für die Übertragung elektronischer Produktkataloge. Mit ihm lassen sich Artikeldaten standardisiert speichern und zwischen verschiedenen System übertragen. Entwickelt wird der Standard seit Ende der 90er Jahre vom Fraunhofer IAO Institut in Stuttgart und der Universität Duisburg-Essen.

In einem aktuellen Projekt sollte basierend auf vorhandenen Artikeldaten aus unterschiedlichen Quellen so ein Katalog im BMEcat - Format erstellt werden. Alle Quellen lagen als CSV - Dateien vor und definieren pro Zeile jeweils einen Artikel und seine Eigenschaften. Die Datensätze werden mit Hilfe der Artikelnummer verknüpft, welche als Primärschlüssel dient.

Für die Umsetzung des Projektes habe ich mich gegen verfügbare Softwarepakete entschieden und ein eigenes Programm in Java entwickelt, welches zuerst die Quellen parst und alle vorhandenen Datensätze in internen Datenstrukturen ablegt. Zusätzlich wird eine hierarchische Kategoriestruktur auf den <CATALOG_GROUP_SYSTEM> - Tag umgesetzt. Aus diesen Daten wird dann ein XML-Baum aufgebaut, welcher der Struktur des BMEcat - Formates entspricht. Dafür verwende ich die bereits vor einiger Zeit vorgestellte Klasse XMLTree, mit der so ein Baum aufgebaut und anschließend ausgegeben werden kann.

Eine Besonderheit stellt die Behandlung der Bilder dar: In den Quelldaten werden diese mit ihren URLs definiert. Im Zielkatalog können aber nur die Dateinamen der Bilder angegeben werden, da beim Upload des Kataloges immer auch das Bildmaterial mit hochgeladen werden muss. Diese Einschränkung ist durch das Zielsystem vorgegeben. Der BMEcat Standard sieht durchaus vor, dass Bilder relativ zu einem Rootverzeichnis angegeben werden. Allerdings kann das Zielsystem die Bilder nicht selbständig herunterladen und erwartet sie stattdessen in einem Verzeichnis auf dem FTP-Server. Deshalb speichere ich beim Verarbeiten der Bilder die URLs in einer Liste zwischen und übergebe diese anschließend an ein Unterprogramm, welches alle Bilder nacheinander herunterlädt und sie in einem Ordner ablegt. Dieser kann dann zusammen mit dem XML-Katalog per FTP übertragen werden.

Die Vorteile einer Eigenentwicklung im Vergleich zu einer fertigen Lösungen waren bei diesem Projekt klar zu erkennen: Ein eigenes Programm bietet volle Flexibilität was das Einbinden bestehender Quelldaten angeht. In der Firma gab es bereits hochwertige Artikeldaten inkl. Kategorieinformationen, welche natürlich weiter verwendet werden sollten. Außerdem konnte nur so die Besonderheit bei den Bildern effizient gelöst werden. Ein fertiges Programm hätte hier viel zu viel manuelle Sortier- und Nacharbeit verlangt, was schlussendlich in Verbindung mit dem Anschaffungspreis deutlich teurer geworden wäre.

Haben auch Sie Interesse an einer individuellen Lösung zur Erstellung eines BMEcat Kataloges basierend auf Ihren Artikeldaten? Kontaktieren Sie mich für eine unverbindliche Anfrage.

Geschrieben am 13.08.2008 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: Projekte XML Java E-Business BMEcat