Pentaho BI Suit: Adhoc-Reporting
Das Pentaho Adhoc-Reporting, oft auch unter seinem alten Namen „WAQR“ zu finden, soll den Endnutzern eine Möglichkeit bieten, einfache Reports in diversen Ausgabeformaten selbst zu erstellen, ohne sich mit SQL auszukennen oder all zu viel über die Datenbank-Struktur zu wissen. Es geht also darum, innerhalb weniger Minuten eine brauchbare Aussage aus den Daten zu kitzeln. Prima, genau das, was wir mögen. Da die Demo-Installation auch Demo-Daten beinhaltet, können wir gleich mal einen Blick darauf werfen.
Der Nutzer wird in 4 einfachen Schritten durch die Erzeugung eines Reports geführt:
Schritt 1: Business-Modell und Template
Im ersten Schritt wählt man ein Business-Modell und ein Template aus. Das Busines-Modell bestimmt, welche Daten für den Report zur Verfügung stehen, das Template bestimmt, wie der Report am Ende aussieht. Unter den mitgelieferten Templates ist das „Pentaho“-Template am brauchbarsten, als Business-Modell wähle ich zum Testen das Modell „Orders“. Darunter kann sich sicher jeder was vorstellen.
Die einzigen aktiven Schaltflächen zu diesem Zeitpunkt sind „Cancel“ und „Next“. Ich gehe also mit „Next“ weiter zum nächsten Schritt.
Schritt 2: Auswahl der Daten
Das im ersten Schritt gewählte Business-Modell enthält eine Menge Daten. Im Fall des gewählten Modells finden sich Daten aus den Bereichen „Kunden“, „Aufträge“, „Zahlungen“ und „Produkte“. In jedem dieser Bereiche gibt es wiederum viele Daten-Felder, zu einem Kunden gehören beispielsweise eine Kundennummer, ein Name, Adressdaten usw.
Im zweiten Schritt sieht man links alle verfügbaren Daten. Diese lassen sich per Drag & Drop in einen der Bereiche auf der rechten Seite ziehen. Für dieses Beispiel nehme ich mal an, dass ich einen Report haben möchte, der mir Kundennummer, Kundenname Auftragsnummer und Auftragswert anzeigt. Das ganze soll nach Gebiet zusammengefasst werden und ich möchte nur abgeschlossene Aufträge erfassen. Dazu ziehe ich erst mal das Feld „Territory“ nach rechts in den Bereich „Groups => Level 1″. Damit ist schon mal für die Gruppierung nach Gebiet gesorgt. Die restlichen Daten („Customer Number“, „Customer Name“, „Order Number“ und „Total“) ziehe ich in den Bereich „Details“. Um nur abgeschlossene Aufträge zu selektieren ziehe ich noch das Feld „Status“ in den Bereich „Filter“. Dort kann man jedes Datenfeld ablegen, nach dem man filtern möchte, dessen Wert aber nicht im Report erscheinen soll.
In dem Moment, in dem man mindestens ein Datenfeld in den Bereich „Details“ gezogen hat, färbt sich der „Go“-Button grün. Jetzt ist es möglich, sich eine Voransicht des Reports erzeugen zu lassen. In der Regel sollte man das aber erst nach Schritt 3 tun, denn derzeit sind noch keine Filter aktiv und der Report könnte sehr lang werden und je nach Datenmenge den Computer in die Knie zwingen. Also auf zum nächsten Schritt.
Schritt 3: Die Feinheiten
In Schritt 3 kann man eine ganze Menge machen, es ist allerdings alles recht unkompliziert. Links findet sich nun die Spalte mit unseren in Schritt 2 gewählten „Groups“, „Details“ und „Filters“. Wenn man dort irgend etwas anklickt, kann man im rechten Bereich diverse Einstellungen vornehmen. Das gehe ich jetzt mal durch:
Ich klicke links unter „Groups“ auf den grünen Kasten „Level 1″. Rechts kann ich jetzt Einstellungen für diese Gruppierung vornehmen. Inhaltlich wichtig ist nur die Auswahl, ob ich eine Summenzeile unter der Gruppe haben möchte („Show Group Summary“). Der Rest bezieht sich nur auf die Optik. Erwähnt sei noch das Häkchen bei „Repeat Group Header“. Dadurch wird die Gruppierungs-Kopfzeile auf jeder Report-Seite wiederholt, falls die Gruppe sich über mehrere Report-Seiten erstreckt. Das ist natürlich nur bei Ausgabeformaten sinnvoll, die überhaupt Seiten haben. Auf die Ausgabeformate „HTML“ und „Excel“ hat es zum Beispiel keinen Einfluss, auf einen PDF-Report wirkt es sich aber aus.
Als nächstes klicke ich unter „Groups“ auf mein Datenfeld „Territory“. Rechts erscheinen auch hier diverse Optionen. Der Bereich mit den Zahlenformaten ist ausgegraut, da das Feld „Territory“ Text und keine Zahlen enthält. Rechts unten kann ich sehen, dass der Report nach „Territory“ in aufsteigender Reihenfolge sortiert wird. Es findet immer eine Sortierung nach allen Gruppen-Feldern statt. Rechts oben könnte man noch auf „Add a Constraint“ klicken und dann die erlaubten Wertbereiche für das Feld „Territory“ einschränken. Das mache ich aber später noch mit einem anderen Feld, deshalb erwähne ich es jetzt nicht weiter.
Dann klicke ich links unter „Details“ auf das Datenfeld „Total“. Das ist das Feld mit dem Auftragswert. Rechts sieht alles recht ähnlich aus, wie gerade eben. Diesmal kann ich allerdings ein Nummernformat wählen. Es gibt außerdem einen ganz neuen Abschnitt in der Mitte unten. Wenn es für meine Gruppe eine Summenzeile gibt, dann kann ich bei jedem „Detail“ wählen, ob es in der Summenzeile auftauchen soll und wenn ja, wie der Eintrag berechnet werden soll. Ich wähle, dass ich hier eine Summe der Auftragswerte sehen will. Der Bereich der die Sortierreihenfolge anzeigt (unten rechts) ist diesmal leer. Hier kann man definieren, wie die Einträge innerhalb der Gruppe sortiert werden sollen.
Als letztes bleibt mir noch ein Klick links auf meinen Eintrag in der „Filter“-Box. Jetzt habe ich rechts nur die Möglichkeit, den Wertebereich einzuschränken, der vom Report erfasst werden soll. Nach einem Klick auf „Add a Constraint“ wird mir diese Zeile präsentiert:

Wenn ich die Daten nicht so genau kenne und zum Beispiel nicht weiß, was bei einem abgeschlossenen Auftrag wohl als Status in der Datenbank steht, dann ist ein Klick auf das Lupen-Symbol hilfreich. Daraufhin öffnet sich ein Fenster, in dem man mit Platzhaltern nach möglichen Werten suchen kann. Wenn man einfach ein Sternchen eingibt und auf „Search“ klickt, erhält man eine Liste aller möglichen Werte. Bei manchen Datenfeldern könnte das natürlich eine blöde Idee sein, bei diesem kann man es aber durchaus mal so machen. Ich wähle als Filterkriterium den Status „Shipped“.
Jetzt ist es aller spätestens an der Zeit, auf den „Go“-Button zu klicken, um eine Voransicht des Reports zu erhalten. Dabei kann man zwischen diversen Ausgabeformaten wählen. Ich nehme mal Excel, da ich weiß, dass sich die späteren Nutzer sicher besonders für dieses Format interessieren werden. Das Ergebnis ist durchaus respektabel. Ich empfehle, jetzt noch ein wenig zu spielen. Man kann noch weitere Gruppierungs-Ebenen hinzufügen oder die Einträge innerhalb der Gruppe sortieren.
Schritt 4: Layout-Vorgaben
Der letzte Schritt bietet nur noch ein paar leicht verständliche Einstellungen zum Report-Layout. Es können Texte für die Kopf- und Fuß-Bereiche definiert werden und man kann ein Papierformat wählen. Letzteres macht natürlich mal wieder für die PDF-Ausgabe Sinn.