Was ist "MEX-Reports" ?
Mit MEX-Reports können täglich hunderte Excel-Dateien (z. B. Umsatzstatistiken für den Aussendienst) auf einem UNIX/Linux-Server generiert werden.
Wie funktioniert das ?
Basis von MEX-Reports sind ein paar Shell-Scripts, welche Java-Programme aufrufen, die die Jakarta POI-Library benutzen.
Voraussetzung:
Pro Anwender werden flat files in der gewünschten Struktur
bereitgestellt. Aus diesen Dateien werden Excel-Files genereriert und
an die Anwender verschickt.
... und was ist das Besondere daran ?
Vielleicht ... weil es noch keine kommerzielle Lösung mit dieser Leistungsfähigkeit und der Flexibilität gibt - und es keine Lizenzgebührenkostet, diese Lösung zu nutzen!
Die zweite Besonderheit ist, dass es seit der letzten POI-Version möglich ist, zu jeder Exel-Datei ein Makro zu hinterlegen. Damit kann beim ersten Aufruf der Excel-Datei das Makro automatisch gestartet werden und es können beliebig komplexe Bericht-Layouts erzeugt werden!
Ziel
Für
mehrere hundert Aussendienstmitarbeiter werden Umsatz- und
Absatzstatistiken auf Excel®-Basis benötigt, die
täglich verteilt werden
sollen. Die Reports sollen flexibel einstellbar sein ("dynamische
Reports") und mit einer zuverlässigen serverbasierten
Lösung kostengünstig auf Open-Source-Basis realisiert
werden.
Für diese
hohen Anforderungen gibt es tatsächlich eine praxiserprobte
(!) und ungemein leistungsfähige Lösung: MEX-Reports.
Features
- Datenmenge
MEX-Reports kann mit sehr grossen Datenmengen umgehen. Wer sich schon einmal mit Business Intelligence (BI) Themen beschäftigen musste weiss, dass vor allem hier die Probleme liegen.
Unter Standardbedingungen kommt es schon zu erheblichen Datenmengen.
Beispiel:
- Ein Aussendienstmitarbeiter (ADM) hat max. 50 Kunden, an die er mehrere Produkte verkauft.
- Zu seinen Berichtsjahreszahlen will er immer das Vorjahr als Vergleich sehen.
- Jeder ADM benötigt zehn "Standardberichte".
- Die
Standardberichte sollen aber auch flexibel veränderbar sein,
d.h. es sollen Filter gesetzt werden können und das
Berichtslayout soll veränderbar sein.
Das hat zur Folge, dass jeden Tag die "tiefste Ebene" (alle Kunde-Produkt Kombinationen) für alle ADMs erzeugt werden muss, auf dem Server kommt es schnell zu langen Laufzeiten und pro ADM können mehrere Megabyte an Daten entstehen!
- Performanz
Die Lösung ist hoch performant und stark skalierbar, durch Erhöhung der Parallelitätsgrades kann die Verarbeitungsgeschwindigkeit gesteigert werden. - Plattform-Unabhängigkeit
Dadurch, dass MEX-Reports in Java und mit UNIX-Shell Scripts realisiert wurde, kann die Lösung einfach an andere Rechner-Plattformen angepasst werden. - Robustheit
Dieser Punkt ist im Grunde selbstverständlich, die Erfahrung zeigt aber, dass dem oft nicht so ist. Gute Ergebnisse wurden mit Unix/Linux-basierten System erzielt. - Einfache
Anpassbarkeit und Erweiterbarkeit
änderungen in den Berichten sollten problemlos und schnell durchführbar sein. Das gleiche gilt für neu hinzugekommene Felder (Kennzahlen, Merkmale). - Kosten
Der Einsatz von kommerziellen Produkten ist oft mit sehr hohen Lizenzkosten verbunden. Lizenzgebühren fallen bei der Open Source Lösung nicht an. - Standards
Dadurch dass Standards verwendet werden, entfällt die Einarbeitung in proprietäre Lösungen. Viele Kollegen in den IT-Abteilungen kennen Java, XML und SQL. - keine
kommerzielle Lösung verfügbar
Momentan ist mir keine kommerzielle Lösung bekannt, die die gleiche Funktionalität bietet und ebenso ausgereift ist wie die hier vorgestellte Lösung.
Erweiterungsmöglichkeiten
Durch seine einfache, klare Architektur ist MEX-Reports in vielerlei Hinsicht erweiterbar:
- Durch Änderung der Makro-Programme auf dem Client sind schnell neue Berichte erzeugt.
- Statt einer ASCII-Datei als Eingabeformat sind natürlich auch SQL-Selects direkt auf eine Datenbank oder csv-Dateien möglich.
- Die Laufzeiten können durch noch stärkere Parallelisierung nochmals verkürzt werden (dazu muss nur ein Variablenwert im Shell-Script verändert werden), die Systemlast steigt dann bis auf 100 %. Eine weitere Steigerung ist dann nur noch über zusätzliche Prozessoren oder schnellere Prozessoren möglich.
- Ferner ist es möglich, persönliche Filtereinstellungen pro Report in einer csv-Datei abzuspeichern, damit können sog. "Persönliche Berichte" realisiert werden.
- Es kann eine Reportvariante für Vertriebsleiter erstellt werden. Diese wird benötigt, wenn die Anzahl der Sätze in der Excel-Datei an die max. Zeilenanzahl, die Excel verarbeiten kann (65.000) herankommt. Bei dieser Variante wird z.B. die Materialnummer aus den Grunddaten herausgenommen.
- Selbstverständlich ist es mit dieser Lösung auch möglich, andere Formate als Excel zu erzeugen, s. POI-Dokumentation. (Wenn auf POI ganz verzichtet wird sind z. B. Lösungen denkbar, die OpenOffice Datei-Formate erzeugen.)
Tipp
Mein neues blog.clemens-kraus.de ist online. Schauen Sie doch vorbei.