Produktdatenblätter automatisch erzeugen - wie geht das?
Für das automatische Erzeugen von Produktdatenblättern können Sie verschiedene Techniken einsetzen: zum einen lokale Programme auf Ihrem Desktop verwenden und zum anderen Server seitig arbeitende Dienste nutzen. Bei lokal installierter Software ist Adobe Indesign zum Setzen von werblichen Dokumenten weit verbreitet, hat aber den Nachteil, dass das von diesem Programm erzeugte Dateiformat mit Nicht-Adobe-Software nicht einfach reproduziert werden kann.
Datenblätter automatisch lokal erzeugen über Office-Programme
Eine Alternative zu Indesign können Office-Programme sein. Ein Office-Dokument ist reproduzierbar und eignet sich damit für die auf Templates basierende Erstellung von Drucksachen. Beim Format hat man die Auswahl zwischen MS-Office (Format: Office Open XML - siehe zu diesem Format aber auch die Kritik)und Libreoffice (Open Document).
In vielen Unternehmen wird mit den gängigen MS-Office-Programmen gearbeitet. Um Produktdatenblätter automatisch über Word, Excel oder Powerpoint auszugeben, können Sie lokal am Arbeitsplatz per Batch-Lauf Ihre Produktdaten mit vorhandenen Templates verbinden. Als Datenquelle kann hier Ihr PIM-System, eine Datenbank oder eine JSON- bzw. XML-Datei wie BMECat dienen. Ein hilfreiches Tool, dass die Einrichtung von Vorlagen dafür erleichtert wäre zum Beispiel docx42.
Alternative: Report Designer wie JasperStudio
Eine sehr gute Alternative zu Office-Programmen ist die Erzeugung von Template basierten Ausgaben per Report-Generator wie zum Beispiel JasperReports (OpenSource - GNU AFFERO GENERAL PUBLIC LICENSE). Für das Einrichten von Datenverbindung und Templates gibt es bei diesem OpenSource-Programm eine intuitiv bedienbare Desktop-Oberfläche genannt “JasperStudio”.
Datenblätter automatisch online erzeugen
Alternativ zur Desktop-Anwendung kann man seine Datenblätter auch online - quasi “on demand” ausgeben lassen. Dafür muss auf einem Serversystem eine PDF-Generator Software installiert sein, und es müssen Vorlagen und Daten auf dem System vorliegen. Die Templates werden dann online mit den Produktdaten verbunden und zum download angeboten. Als Datenquelle nutzen Sie normalerweise auch hier Ihr PIM-System, eine Datenbank oder eine JSON- bzw. XML-Datei mit strukturieren Produktdaten.
Bei den Templates müssen Sie sich nicht auf Office-Formate fokussieren sondern können Ihre Templates auch in HTML erstellen. Mit einer geeigneten PDF-Engine können die Server seitig erzeugten HTML-Daten dann automatisch in PDF gewandelt heruntergeladen werden. Bekannte professionelle PDF-Engines sind PDFReactor oder PrincePDF, im OpenSource-Bereich gibt es DomPDF oder Pandoc.
Der dritte Weg: JasperReports Server
Auf beim Online-Erzeugen von Dokumenten sollten wir den dritten Weg über Report-Generatoren nicht unerwähnt lassen. So können zum Beispiel die in JasperStudio angelegten Datenquellen und XML-basierten Dokumenten-Templates auch zur Server seitigen Erstellung von Dokumenten genutzt werden. Dazu müssen nur Daten und Templates über den JasperReports-Server (OpenSource - GNU AFFERO GENERAL PUBLIC LICENSE) verbunden werden. Als Ausgabe per Download ist dann von PDF über Word und Excel bis hin zu HTML alles möglich.
Wie funktioniert der JasperReports Server?
Die Vorlage für einen Jasper Report kann ganz einfach über die recht intuitiv bedienbare Oberfläche des Reportdesigners in JasperStudio erstellt werden. In diesem Tool wird auch die Verbindung zur Datenquelle konfiguriert. Die so erstellte Konfiguration, bestehend aus Template und Datenverbindung kann nun in das Repository des JasperServers geladen werden. Aktuelle Dokumente lassen sich auf dieser Basis vom Server abrufen. Faszinierend ist dabei die sehr gute Performance des Systems. So können ansprechende und dabei auch komplexe Dokumente mit hunderten von Seiten in wenigen Sekunden erzeugt werden.
Besonders hervorzuheben ist, dass die Ausgabe über REST-API aufgerufen wird und dadurch auch Parameter an das dynamisch zu erzeugende Dokument weitergeben werden können. Der Report-Server kann so zum Beispiel im Hintergrund einer Webseite laufen, auf der aktuelle, live gerenderte Dokumente angezeigt werden sollen.
Vorteile durch den Einsatz eines Jasperreports Servers
Der Flaschenhals beim Einsatz “gewöhnlicher” Programm-Bibliotheken zum Erzeugen von Dokumenten ist die Anpassung der Templates und Layouts durch das eigene Personal. In vielen Fällen, in denen Dokumente Server seitig dynamisch erzeugt werden, müssen die benötigten Templates wie auch die Datenquellen durch Entwickler oder mindestens speziell ausgebildete Web-Administratoren erstellt werden. Mit JasperStudio hingegen können Templates intuitiv per Template-Designer und Datenverbindungen geführt eingerichtet werden. Die Grundqualifikation und Einarbeitungszeit wird damit erheblich reduziert. Schnelle Anpassungen der Dokumentenvorlagen sind damit auf dem ganz kurzen Dienstweg umsetzbar. Das langwierige Beauftragen von Änderungen in der IT-Abteilung oder bei einer Werber- bzw. Webagentur fällt weg.
Wie trenne ich Daten und Layout (und Logik)?
Für die dynamische Ausleitung von formatierten Inhalten ist es wichtig, dass Daten, Layout und Logik voneinander getrennt sind und nur bei Bedarf zusammen geschaltet werden. Hinweis: es gibt Experten, die sagen würden, dass die Darstellung auch Teil des Inhalts ist, und die strikte Trennung von Form und Daten daher nicht immer zwingend nötig ist. Wir lassen diese Sicht der Einfachheit halber im Folgenden aber außer Acht.
Welche Datenquelle verwende ich für meine Produktdaten?
Um Produktdatenblätter, Produktinfos auf Webseiten oder Produkt-Verpackungen automatisch auszugeben, benötigen wir perfekt und möglichst differenziert granular gepflegte Produktdaten. Als Plattform dafür eignet sich zum Beispiel Alterra::PIM hervorragend. Das System zeichnet sich dadurch aus, dass im Standard der größtmögliche Funktionsumfang für das Pflegen von Produktdaten vorhanden ist - wie z.B. Vererbungsfunktionen, automatische Berechnung oder Umrechnung von Werten und vieles mehr. Zudem können die für eine Produktbeschreibung benötigten Datenfelder ganz individuell konfiguriert werden, bis hin zu kombinierten Feldern und Abhängigkeiten zwischen Datenfeldern.
Verbindung zum Datendienst
Ist der Produktdatensatz dann einwandfrei gepflegt, geht es darum, möglichst einfach eine Verbindung zum Datendienst aufzubauen, um die Daten mit einem Layout zu verbinden. Dies kann im Fall von Alterra::PIM auf mehrere Arten und Weisen geschehen. Hier die wichtigsten:
- Webservice: REST-API (JSON)
- Webservice: XML-Ausgabe mit Parametern (optional BMECat)
- Webservice: SOAP
- CSV-Export
- ODBC/JDBC-Schnittstelle
Layout: wie baue ich das Template?
Passend zum JasperReports Server gibt es eine Desktop Anwendung namens Jaspersoft Studio. Sie hat eine grafische Benutzeroberfläche, in der man sowohl Datenquellen als auch Vorlagen und Daten-Mappings pflegen kann. Die Anwendung ist in Java geschrieben und daher für Windows, Mac und Linux verfügbar. Der Template-Designer hat Widgets für verschiedene Ausgabetypen wie zum Beispiel für statische und dynamische Textfelder oder auch Bildfelder.
An ein Template kann eine Datenquelle angehängt werden. Die in der Datenquelle enthaltenen Datenfelder können per Drag and Drop als Platzhalter in die Layouts übernommen werden. Danach wird dann die Formatierung der Ausgabe gewählt. So kann man z.B. an einem Textfeld Schriftart, Ausrichtung, Schriftgröße u.v.m. einstellen.
Während der Arbeit am Template kann man jederzeit lokal auf seinem Desktop das Ergebnis überprüfen. Hier stehen dann auch direkt alle möglichen Ausgabeformate zur Verfügung. Ist man mit dem Template zufrieden, kann man die lokale Version der Datenquellenbeschreibung wie auch das Template inklusive Datenmapping auf einen Jasperreports Server verschieben. Final werden dann Daten und Templates vom Server zusammengeführt. Gestartet wird dies über die REST-API des Report-Servers.
Dabei wird über die Endung gesteuert, welches Format ausgegeben werden soll. Beispiele für Ausgabeformate sind:
HTML: http://localhost:8888/jasperserver/rest_v2/reports/case1/report1.html PDF: http://localhost:8888/jasperserver/rest_v2/reports/case1/report1.pdf Word: http://localhost:8888/jasperserver/rest_v2/reports/case1/report1.docx Excel: http://localhost:8888/jasperserver/rest_v2/reports/case1/report1.xls
Logik: wie kann ich die Anordnung beeinflussen z.B. Kreuztabellen erzeugen?
In der Praxis benötigt man häufig vergleichende Ansichten von Produkten, von deren technischen Eigenschaften oder ganz einfach von Preisen verschiedener Varianten. Hierfür bietet JasperReports extra eine passende Ausgabe an: das Kreuztabellen-Element. Hier lassen sich über einen Wizzard das Gruppierfeld, die Zeilenbeschriftungen wie auch der Datenbereich festlegen.
Hier noch einmal kurz zusammengefasst die Abläufe bei der Konfiguration von Ausgaben über JasperReports Schritt für Schritt:
-
Die Produktdaten werdern in PIM angelegt, übersetzt und vervollständigt.
-
Danach richten wir in JaspersoftStudio eine Datenquelle an, die die REST-API von Alterra PIM (Ausgabe von JSON-Daten) nutzt. Hier können auch direkt Datenbereiche gefilter werden.
-
Das Template wird nun in JaspersoftStudio mittels grafischer Benutzeroberfläche angelegt. Am Template wird dann auch das Mapping von Datenfeldern aus Alterra::PIM und den für das Layout nutzbaren Datenfeldern vorgenommen.
-
Nun kann die Vorlage gelayoutet werden. Dabei können wir alle Datenfelder aus dem Mapping in Schritt 3 verwenden, diese einfach per drag and drop in das Template ziehen. Hier wird auch die Ausgabelogik gesteuert, indem man bestimmte Datenfelder in die Bereiche “Berichtskopf”, “Seite”, “Seitenkopf”, “Detail” “Seitenfuß” und “Berichtsfuß” einfügt. So kann man zum Beispiel sich wiederholende Kategoriebezeichnungen automatisch in den Seitenkopf einfügen.
-
Am Ende testet man die Dokumentenausgabe in der Entwicklungsoberfläche des JasperStudios. Passt alles, wird die Datenquelle wie auch Mapping und Template auf den JasperReports-Server hochgeladen - auch dies bequem über die GUI. Danach können wir per Aufruf der passenden URL das Dokument in diversen Formaten ausgeben - Word, PDF, Excel, Powerpoint. Gesteuert wird das Ausgabeformat ganz einfach über die Dateiendung in der URL, z.B. http://localhost:8888/jasperserver/rest_v2/reports/case1/report1.html für die HTML-Ausgabe und analog dazu http://localhost:8888/jasperserver/rest_v2/reports/case1/report1.pdf für das PDF und so weiter.
Welche alternative Software kann man zum Erstellen von Produktatenblättern nutzen?
Neben dieser hier detailliert geschilderten Methode der Datenausgabe gibt es natürlich diverse andere je nach Einsatzzweck ebenfalls sinnvolle Alternativen. So ist bekannt, dass man in vielen Bereichen des Marketings kaum um das Fachwissen von Grafikern herum kommt, die meist mit Indesign arbeiten. Aus diesem Grunde nutzen viele Unternehmen Automatisierungstools die auf dieser Technik aufbauen. Aber Vorsicht: Adobe Datenformate wie auch Indesign sind größtenteils patentgeschützt und nicht “offen”. Sie lassen sich daher nicht als Webservice implementieren, man muss hier auf nicht ganz billige Server-Tools von Adobe zurückgreifen.
Sehr weit verbreitet und auch sehr effizient PDF-Libraries wie PDFReactor oder PrincePDF. Diese Bibliotheken ermöglichen es, Vorlagen in HTML anzulegen und zusammen mit den Daten dann daraus PDF zu generieren. Die Ergebnisse sind je nach Vorlage und Datenqualität hervorragend. Es lassen sich daraus also auch Hochglanzkataloge dynamisch erzeugen.
Eine Alternative im MS-Office Bereich ist dox42, dass ähnlich JasperStudio arbeitet, aber in MS-Office integriert ist. Es können damit zum Beispiel in MS-Word Vorlagen gebaut und Dokumente automatisch ausgegeben werden.
Libreoffice Headless
Last but not least sei hier LibreOffice erwähnt, das im Headless-Modus serverseitig Dokumente erzeugen kann. Die dafür benötigten Templates können in Libreoffice Writer angelegt werden. Besonders zu erwähnen ist, dass auch die anderen Teile der Libreoffice-Suite templatebare Datenvormate haben. Es kann sowohl Impress als auch Calc dynamisch ausgegeben werden. Hier ist aber zu bemängeln, dass es für das Templating keinerlei grafische Unterstützung gibt. Es kann nur das Dokument als XML-Datei vorbereitet werden und das XML dann als Grundlage für die Datengenerierung genutzt werden. Also alles in allem eher etwas für Spezialisten.
Ist JasperReports die richtige Template-Engine für mich?
Bleibt die finale Frage, ob JasperReports das richtige Tool für meine Zwecke ist. Wofür sind die Tools geeignet, und wo verwende ich besser alternative Methoden? Grundsätzlich eignen sich Tools wie JasperReports für Fachabteilungen, in denen erst einmal kaum oder kein Programmier-Know-How vorhanden ist. Ist eine Datenquelle für einen Bericht erst einmal eingerichtet und die Datenfelder zugreifbar, ist es über die GUI recht einfach ansprechende Dokumente zu konfigurieren. Das Gruppieren und Agregieren von Daten wird dabei durch die Aufteilung des Dokumentenentwurfs in Gruppier-Bereiche auch ohne Kenntnisse in SQL, XSL oder JSON-Filter möglich gemacht. Dadurch, dass man seine auf dem Desktop eingerichteten Report-Konfiguration einfach auf einen JasperReports-Server hochladen kann, ist es sogar für Laien möglich dynamische Dokumente per URL über das Web aufrufbar zu machen. Auch die Performance des Systems ist sowohl im Bereich Desktop als auch beim Server sehr ansprechend.
Realistisch muss man jedoch eines auch ganz klar festhalten: müssen Daten in eine komplexe Anordnung gebracht oder Daten vor der Ausgabe umgerechnet oder kombiniert werden, stößt auch die beste GUI an Grenzen. Jedoch können dann durch einfaches Umschalten von der Drag and Drop-Oberfläche in den Source-Code-Modus auch komplexe Anforderungen umgesetzt werden. Insofern ist das Tool sowohl für Nichtprogrammierer als auch für Experten sehr gut zu gebrauchen.
Muss man sich also aus betrieblichen Gründen nicht dem Zwang unterwerfen, Adobe-Software zum Generieren von Dokumenten zu verwenden, ist die Automatisierung der Ausgabe von Produktinformationen per JasperReports eine absolut empfehlenswerte Alternative.
Whitepaper
Kontakt
Sepia GmbH & Co. KG
Ernst-Gnoss-Strasse 22
D-40219 Düsseldorf
Kundenhotline: +49 211 51 419 75
Verwaltung: +49 211 74 958 712 0
Email: info@sepia.de
Beratung oder Online Demo erwünscht?
Hier anfordern.