Category Archives: Anfänger

Jet Reports verbindet Dynamics-NAV (Navision) mit Excel. Es können aber auch andere Datenbanken mit Jet Reports ausgewertet werden. Dieser Blog bietet Tipps, Beispiele und Neuerungen zu dem beliebten Reporting-Tool. Sie kennen Jet Reports noch nicht? Auf unseren Webseiten finden Sie Produktinformationen.

In der Gruppe Anfänger werden grundlegegende Funktionen von Jet Reports behandelt.

Glossar der BI Begriffe

Es gibt in der Welt des Business Intelligence wirklich viele Begriffe. Jet Reports hat sich die Mühe gemacht die wichtigsten in einem BI-Glossar zusammen zu fassen.

Bei Fragen zu den Begriffen freue ich mich über eine Nachricht. Ich helfe gern weiter.

Andreas Koblischke
datenkultur GmbH

 

 

Einfach Auswerten – Denormalisieren

Die meisten ERP Systeme, unter anderem auch Microsoft Dynamics NAV (Früher bekannt als Navision), verwenden „normalisierte“ Datenbanken. Diese Datenbanken sind für die Dateneingabe optimiert. Aus technischen Gründen enthalten solche Datenbanken sehr viele verschiedene Tabellen. Das spart viel Platz auf den Festplatten, weil die Daten nicht doppelt gespeichert werden müssen (Redundanzen vermeiden). So kann der Anwender seine Daten möglichst schnell und einfach eingeben. Zur Auswertung fügt man die aufgeteilten Daten wieder zusammen, indem mehrere Tabellen miteinander verknüpft.

Ein Beispiel: Wenn Sie einen Auftrag eingeben, dann wählen Sie einen Debitor nur aus. Sie müssen nicht jedes Mal die Adresse und die Telefonnummer neu erfassen. Diese Werte sind in der Debitorentabelle einmalig hinterlegt und werden automatisch in Ihren Auftrag übernommen.

Debitor Lookup

Die Zahlungsbedingung wählen Sie dann wieder aus einer anderen Tabelle, ebenso wie Lieferanschrift und Lieferbedingungen. Wäre Ihre Datenbank nicht normalisiert, hätten Sie bis hierher schon viel Arbeit gehabt, diese Daten erneut einzugeben.

Danach erfassen Sie die Artikel in den Auftragszeilen. Auch hier gibt es wieder eine Tabelle, aus der Sie die gewünschten Zeilen auswählen können: Die Artikeltabelle. Preise und Rabatte werden automatisch aus zwei weiteren Tabellen geholt: Tabelle Verkaufspreise und Verkaufsrabatte. Sie merken, ein ERP System wie Dynamics NAV ist für die Dateneingabe optimiert und beinhaltet sehr viele eigenständige Tabellen.

EinfachAuswerten - Artikel Lookup

 

Der Vorteil bei der Dateneingabe ist ein leider ein Nachteil beim Auswerten. Zum Auswerten muss man die Struktur der Daten gut kennen. Zudem muss man wissen, wie man mehrere Tabellen miteinander verknüpfen kann. Das überfordert das Fachwissen mancher Anwender deutlich.

Ein Beispiel aus dem Dynamics NAV:

Wollten Sie schon einmal alle offenen Auftragszeilen mit Artikeln der Artikelkategorie „Geschirr“ und Verkäufer „Meier“ sehen? Wie haben Sie dies gelöst?

Die Auftragszeilen in NAV stehen in der Tabelle Verkaufszeile. Die Artikelnummer und die Restliefermenge sind dort als Information vorhanden. Der Verkäufercode steht allerdings in der Tabelle Verkaufskopf. Verkaufskopf und Verkaufszeile sind über die Belegnummer verknüpft.

Sie müssten also bei den Verkaufsköpfen mit Verkäufercode gleich „Meier“ beginnen. Doch wie kommt man dann an die Zeilen? Merkt man sich die Belegnummern und filtert dann ggf.? Das geht sicherlich, wenn Sie wenige Aufträge im System haben. Aber merken Sie sich mal mehr als 10 Belegnummern und fügen Sie diese zu einem Filter zusammen. So könnten wir das Problem lösen. Es ist allerdings nur wenig komfortabel.

Eine Alternative ist, dass Sie sich von Ihrem NAV Betreuer im System ein neues Feld in der Verkaufszeile anlegen lassen: den Verkäufercode. Das kostet Sie aber einiges:

  • Geld, denn ein ERP Entwickler muss es für Sie durchführen. Jedes Feld verändert zu dem den Standard des ERP-Systems. Es kostet also bei jedem Upgrade wieder Geld.
  • Performance, denn zusätzliche Felder müssen automatisch vom ERP Programm gefüllt werden.
  • Übersicht, denn viele Hilfsfelder in einer Tabelle lenken von den wesentlichen Daten ab.
  • Speicherplatz, denn die zusätzliche Felder für Auswertungen werden statt einmalig in Stammdaten in allen Detaildatensätzen eingetragen.

Wenn Sie weitere Felder, wie die Lieferbedingung auf den Zeilen auswerten wollen, dann muss dann auch das Feld Lieferbedingung auf den Zeilen hinzugefügt werden. Gleiches mit dem Feld Zahlungsbedingung und und und… Irgendwann ist Ihre Tabelle Verkaufszeilen überladen mit Informationen. Dies wäre also die zweite Lösung, die uns aber immer noch nicht gefällt.

Zudem möchte Sie ja auch noch einen Filter auf die Artikelkategorie „Geschirr“ setzen. Sollen Sie sich jetzt hier alle Artikelnummern der Kategorie merken und als Filter setzen? Nein! Und die Artikelkategorie wiederum als Feld im NAV in der Tabelle Verkaufszeile anlegen lassen? Nein!

EinfachAuswerten - ERD ERP

 

Die Lösung hier ist ein sogenanntes Data Warehouse (Datenlager). Eingangs erwähnt sind ERP Systeme zum Eingeben der Daten optimiert. Ein Data Warehouse ist für das Auswerten optimiert. Sie werden eben nicht normalisiert, sondern man ergänzt die Tabellen „einfach“ um die Felder, die man zum Auswerten benötigt. Auch berechnete Felder oder das Nachtragen von Daten ist kein Problem.

Dieses Data Warehouse ist eine eigene Datenbank, welche mit den Daten aus Ihrem ERP System gefüllt wird. Der große Vorteil: Sie ändern nichts an Ihrem ERP System, weder an den Daten noch an der Programmierung. Sie verlieren im ERP System keine Performance.

Das Data Warehouse wird mit den Daten aus dem ERP System gefüllt – automatisiert nachts, oder zu jedem anderen Zeitpunkt, wenn Sie aktuelle Daten benötigen. Formeln sind möglich und werden vorberechnet, sodass Sie auch hier beim Auswerten keinen Performance Verlust haben.

Beim Abholen der Daten erweitern Sie die Tabellen im Datawarehouse und erstellen in der Tabelle Verkaufslieferzeilen einfach die eben genannten neuen Felder: Die Artikelkategorie holen Sie aus der Artikeltabelle und speichern dieses Feld als echten Wert. Gleiches mit den Verkäufercode: der wird aus dem Verkaufskopf geholt und gespeichert. Sie erhalten dadurch eine Datenbank, die nicht mehr normalisiert und Eingabeoptimiert ist. Und das ist hier völlig in Ordnung, denn hier wollen Sie ja keine Daten eingeben, Sie möchten optimal auswerten.

EinfachAuswerten - Business Intelligence ERP

Also können Sie schließlich auf dieser Tabelle einen Filter auf Verkäufer = „Meier“ und Artikelkategorie = „Geschirr“ setzen. Und schon sehen Sie die gewünschten Werte.

Mit dem BI-Tool Jet Enterprise ist das Denormalisieren von Datenbanken simpel zu erreichen. Für Dynamics NAV und AX sowie für das CRM Online werden sogar fertige BI Projekte mitgeliefert. Wir haben für unsere Kunden bereits eine Vielzahl von weiteren Datenbanken zur Auswertung optimiert. Fragen Sie uns gern nach Ihrem System.

Andreas Koblischke
datenkultur GmbH

Jet Enterprise macht auch Jet Essentials besser

Mit dem Einsatz von Jet Reports Enterprise werden viele Jet Essentials Berichte…

  • beschleunigt.
  • einfacher zu erstellen.
  • leichter zu pflegen.
  • ein vergleichbares Ergebnis liefern.

Warum das so ist, das möchte ich im folgenden erklären:

Eine der wichtigsten Aufgaben von Jet Enterprise ist das Bereitstellen einer optimalen Datenablage für Auswertungen. Ein ERP System wie z.B. Dynamics NAV (Navision) ist nämlich immer für die Eingabe optimiert. Daher gibt es in einem ERP-System meist enorm viele Tabellen. Für Auswertungen ist es aber viel praktischer, wenn nur wenige Tabellen mit den wesentlichen Inhalten bereitstehen.

Das Data-Warehouse
In einem Business Intelligence (BI) Projekt findet man oft eine separate Datenbank, in der Daten für die Auswertung bereit gestellt werden. Jet Enterprise verwendet auch hier den Microsoft SQL-Server. Aus dem Quellsystem  (Z.B. Dynamics NAV) werden einzelne Tabellen ausgelesen. Auf dem Weg in die Data-Warehouse Tabellen werden die Daten bereinigt, ergänzt, optimiert und zusammengefügt. Als Ergebnis finden sich Tabellen, die für die Auswertung perfekt geeignet sind.

Jet Essentials und das Data-Warehouse
Mit Jet Enterprise bekommt man automatisch auch das Recht die Data-Warehouse Tabellen mit den bekannten Jet Essentials Befehlen (NL und NF) auszulesen. Nachfolgend bringe ich ein paar Beispiele dafür vor:

Im Dynamics NAV gibt es sogenannte Posten-Tabellen. In diesen Tabellen werden Buchungssätze gespeichert. Die Tabelle Wertposten beinhaltet die Betragsbuchungen für Artikel. Diese Tabelle möchte ich für die Beispiele verwenden.

  • Fehlende Daten ergänzen
    In der Tabelle Wertposten gibt es ein Buchungsdatum (Wann wurde die Buchung durchgeführt). Es fehlt aber das Belegdatum (Ab wann wird die Fälligkeit berechnet). Dieser Wert steht bei Dynamics NAV nur in den Tabellen für bereits gebuchte Belege (Gebuchte Rechnung, Gebuchte Gutschrift, usw.). Mit einem Business Intelligence Werkzeug wie Jet Enterprise kann man die Data-Warehouse Daten beim Füllen mit weiteren Daten aus anderen Tabellen anreichern. In der Data-Warehouse Tabelle für die Artikel-Betragsbuchungen (Z.B. Gebuchte Verkaufstransaktionen) sind nun sowohl das Buchungsdatum als auch das Belegdatum zur Auswertung verfügbar. Es braucht nur im NL-Befehl darauf gefiltert werden. Das macht ein Jet Essentials Auswertung deutlich übersichtlicher und viel schneller, da die langsamen Jet Essentials Befehle Link und Filter nicht gebraucht werden.
  • Tabellen zusammenfügen
    In der Tabelle Wertposten werden nur Betragsbuchungen für Artikel gespeichert. Im ERP-Dynamics NAV gibt es noch weitere Positionsarten (Ressourcen, Sachbuchungen, Anlagen, …) die Beträge aufweisen können. Deren Buchungen werden in weiteren Tabellen gespeichert (Gebuchte Verkaufsrechnung, Gebuchte Verkaufsgutschriften,…). Mit einem Business Intelligence Werkzeug wie Jet Enterprise kann man eine Data-Warehouse Tabelle (Z.B. Gebuchte Verkaufstransaktionen) aus verschiedenen Quellen füllen (Wertposten, Geb. Verkaufsrechung, Geb. Verkaufsgutschrift, …). Die verschiedenen Daten können im NL-Befehl summiert werden. Das macht eine Jet Essentials Auswertung übersichtlicher und schneller, weil nur ein NL-Befehl für mehrere Tabellen erforderlich ist.
  • Nur Benötigte Felder und Tabellen verwenden
    In einer Quelldatenbank wie Dynamics NAV gibt es sehr viele Tabellen und Felder. Der Großteil davon ist für Auswertungen gar nicht relevant. Mit einem Business Intelligence Werkzeug wie Jet Enterprise kann man explizit auswählen welche Tabellen und Felder dem Auswertenden zur Verfügung gestellt werden. Es ist auch einfach möglich die Tabellen und Felder einen verständlicheren Namen zu geben. Im Dynamics NAV gibt es in der Tabelle Wertposten z.B.  Felder für den Wert des ursprünglichen Einkaufsbetrages [Einkaufsbetrag] und dem Lagerwertanteil [Einstandsbetrag]. Die Felder sind dann auch noch in tatsächlich (Kosten bereits gebucht) und erwartet (Kosten nur erfasst) aufgeteilt. Nicht jeder Designer eines Jet Essentials Berichtes kennt die Unterschiede. Das führt schnell zu falschen Auswertungen. Wenn Sie nur die Summe der beiden Einstandsbeträge als Feld im Data-Warehouse anbietet, dann kann ein Jet Essentials Designer gar kein falsches Feld mehr verwenden. Es sind auch keine Excel-Hilfsspalten zur Addition erfoderlich. Das mach eine Auswertung übersichtlicher und schneller. Ähnliche Berichte werden zu dem ein vergleichbares Ergebnis liefern.

Fazit
Ein Data-Warehouse beschleunigt und vereinfacht Jet Essentials erheblich. Berichte anderer Jet Essentials Designer werden vergleichbar, weil nur bereitgestellte Formeln und Felder verwendet werden können. Das Zusammenstellen der Data-Warehouse Tabellen ist das Intelligence aus Business Intelligence. Das Erstellen der eigentlichen Auswertungen ist danach recht simpel. 

Andreas Koblischke
datenkultur GmbH

Jet Reports 2013 Performance Boost

Der Jet Reports Datenzugriff für Dynamics-NAV 2013 über den Webservice ist etwas behäbig. Viele Berichte unserer Kunden liefen unter NAV 2009 über C/Front deutlich schneller als unter der neueren Dynamics-NAV 2013 Version per Webservice. Seit dem Update 1 von Jet Reports 2013 gibt es einen neuen Datenquellentyp:

Dynamics NAV 2013 und höher (SQL Server)

Dieser neue Typ ist beim Abrufen der Daten z.T. erheblich schneller als der Zugriff über den alten Datenquellentyp “Dynamics NAV 2013 und älter”. Wir haben schon Verbesserungen auf ein Fünfzigstel der vorherigen Laufzeit beobachtet. Der Zugriff über den neuen Typ ist häufig sogar erheblich schneller als der alte Zugriff über C/Front.

Warum ist der neue Datenquellentyp so viel schneller?

Der ältere Datenquellentyp für Dynamics-NAV 2013 verbindet sich ausschließlich über die Webservice-Schnittstelle. Für jeden Zugriff auf die Daten müssen viele Programm-Schritte durchgeführt werden:

  • Zugriff auf den Dynamics-NAV Web-Service.
  • Ausführen des Jet Reports C/AL Codes zum Abrufen der Daten.
  • Zugreifen auf den SQL Datenbank Server.

Jeder Schritt kostet Zeit und jeder Schritt wird für jeden Jet Reports Befehl des Berichtes ausgeführt. Der neue Datenquellentyp kommuniziert direkt mit dem SQL-Server. Anstatt das Abfragen der Daten von Dynamics-NAV per C/AL Code durchführen zu lassen, erstellt Jet Reports beim neuen Typ aus den Jet Reports Befehlen sofort SQL-Befehle. Diese Befehle werden direkt an den Microsoft SQL-Server gesendet. Der Datenbank Server kann diese Befehle enorm schnell bearbeiten. Besonders bei Gruppierungen ist der Datenbank Server sehr viel schneller als C/AL.

Ein Beispiel zur Veranschaulichung:

=NL(“Zeilen”;”Artikelposten”;”Bundesland”)

Dieser Befehl erstellt eine Liste der Bundesländer für die jemals eine Lagerbewegung stattgefunden hat. Es gibt im Navision keinen expliziten Schlüssel auf das Bundesland. Um die Bundesländer zu ermitteln wird Jet Reports jede Zeile der Artikelposten durchlaufen. Jeder neue Wert wird mit den bisher gefundenen Werten verglichen. Wenn es den neuen Wert noch nicht gab, dann wird die Ergebnismenge um diesen Wert erweitert. Für jede Zeile der Artikelposten werden einige C/AL-Befehle benutzt und eine SQL-Abfrage an den Datenbank Server gesendet. Das kann bei 5.000.000 Posten schon eine ganz erhebliche Weile dauern. Der neue Datenquellentyp braucht für die selbe Abfrage nur eine einzige SQL-Anweisung und der SQL-Server ist für diese Art von Anfragen auch noch hoch optimiert. Während der alte Datenquellentyp mehrere Minuten brauchen wird liefert der neue Datenquellentyp die Daten innerhalb von Sekunden.

Wo ist der Haken an der Sache?

Wenn man sein Dynamics-NAV 2013 komplett in der eigenen, technischen Umgebung installiert hat, dann gibt es keinen Haken. Für diesen Fall empfehlen wir wärmstens den neuen Datenquellentyp zu verwenden. Wer sich aber mit dem Cloud Dienst Microsoft Azure angefreundet hat, der kann den direkten SQL-Server Zugriff nicht verwenden. Man kann die Datenbank-Verbindungsdaten unter Azure nicht fest in der Jet Reports Datenquellenverwaltung hinterlegen, da sich die Verbindungsdaten zur Laufzeit ändern können. Wie ich Jet Reports so kennen wird es aber bald auch einen Windows Azure taglichen SQL-Server Client geben.

Die neuen Versionen darf jeder herunterladen und verwenden der die Jahreswartung für Jet Reports erworben hat.

Andreas Koblischke
www.datenkultur.de

Unterschiede der Editionen – Enterprise

Jet Reports Express ist seit der NAV 2009 Version Bestandteil der Produktlizenz von Dynamics-NAV. Wir sind oft gefragt worden was die Kauf-Versionen von Jet Reports mehr leisten können als die Express Version. In diesem Blog-Post möchte ich die Unterschiede zur Enterprise Version erklären.

Der Funktionsumfang der Editionen baut aufeinander auf. Die Essentials-Version beinhaltet auch alle Funktionen der Express-Version. Entsprechend beinhaltet die Enterprise-Version auch alle Funktionen der beiden kleineren Editionen.

Jet Reports Enterprise
Diese Version der Jet Reports Produktreihe beinhaltet alle Funktionen der Essentials-Version. Nachfolgend werden nur die zusätzlichen Funktionen beschrieben.

Die Enterprise Version ist etwas ganz anderes, als die beiden kleineren Editionen. Während Express und Essentials Daten visualisieren stellt die Enterprise Version Daten zur Visualisierung bereit.

Business Intelligence (BI)
Wikipedia legt den BI-Begriff recht weit aus. Ich beschränke mich auf die wesentlichen Komponenten für das Auswerten eines ERP Systems wie Dynamics NAV (Früher bekannt als Navision). Ein ERP System ist für die zügige Eingabe von Daten optimiert. Ein BI-System fügt unstrukturierte Daten zusammen, bereinigt die Daten und berechnet die Zwischenergebnisse für einfache und schnelle Auswertungen.

Der ETL-Prozess
Die Daten werden zeitgesteuert aus einem oder mehreren Quellsystemen ausgelesen. Das geschieht in drei Schritten: (E)extrahieren, (T)ransformieren und (L)aden. Die meisten Business Intelligence Systeme verwenden eine eigene Datenbank.

Daten aus den Quellen auslesen (Extrahieren)
Jet Enterprise setzt auf den Microsoft SQL-Server, den die meisten Dynamics-NAV Kunden ohnehin bereits haben. Die Daten werden aus dem Navision ausgelesen und in die Datenbank für die Rohdaten (Staging Area) eingelesen.

Daten bereinigen (Transformieren)
Daten in einem ERP-System sind oft unvollständig. Ein typisches Beispiel dafür sind neu eingeführt Dimensionen. Ältere Buchungen konnten noch nicht mit den neueren Dimensionswerten erstellt werden. Beim Einlesen der Daten in die Staging Area können Daten ergänzt oder korrigiert werden. Bei dem Beispiel könnten man z.B. für ältere Werte die Vorgaben vom Debitor übernehmen. Das ist zwar nicht immer perfekt, aber oft viel besser als gar keine Zuordnung.

Daten strukturieren (Laden)
In Postentabellen (Buchungen) werden nur eindeutige Schlüsselwerte auf die Stammdaten eingetragen (Platz in der Datenbank sparen). Für Auswertungen ist es viel besser zusammengehörige Daten in einer einzigen Tabelle zu kombinieren. Für diese Funktion benutzt Jet Reports Enterprise noch eine zweite Datenbank, die Data Warehouse (DWH) genannt wird. Die kombinierten Tabellen des Data Warehouse werden definiert und aus den bereits bereinigten Daten der Staging Area gefüllt.

Beispiele für das Strukturieren von Daten sind

  • Mehrere Tabellen mit vergleichbarem Inhalt
    Im Dynamics-NAV sind die gebuchten Verkaufsrechnungen und die gebuchten Verkaufsgutschriften in zwei verschiedenen Tabellen. Im Data Warehouse kann man die beiden Tabellen in eine Tabelle zusammenführen. Zusätzlich braucht man den Datensätzen nur einen Typ mit geben (Rechnung, Gutschrift), an dem man die Daten in der gemeinsamen Tabelle unterscheiden kann.
  • Fehlende Daten in einer Postentabelle
    Im Dynamics-NAV sind z.B. in den Artikelposten (Lagerbewegungen) die Orte des Debitors nicht enthalten. Beim Füllen des Data Warehouse kann man jeden Satz automatisch um den Ort aus dem Debitor ergänzen. Das geht auch über mehrere Tabellen.

Erstellen des ETL-Prozesses
Das Erstellen von ETL-Prozessen ist auf dem Microsoft SQL-Server fast eine Raketenwissenschaft. Es ist ganz anders, als man es selbst als erfahrener Entwickler mit SQL gewohnt ist. Mit Jet Enterprise ist aber zum Glück gar nicht nötig den Analysis-Service und den Integration-Service persönlich zu kennen. Das nimmt einem der Jet Data Manager ab. Alle Prozesse vom Konfigurieren der Datenquelle über das Erstellen zusätzlicher Felder bis zum Anlegen eines OLAP Würfels können per Drag & Drop erstellt werden. Auch das zeitgesteuerte Füllen und Berechnen der Daten wird über den Jet Data Manager ausgeführt. Wer ein wenig Erfahrungen mit Tabellen und ERP-Systemen hat, der lernt die Handhabung innerhalb von 2 Tagen.

Visualisieren des Data Warehouse
Auf den bereinigten und strukturierten Daten des Data Warehouse kann man Daten recht einfach auswerten. Da die Enterprise Version auch die komplette Jet Reports Essentials Version beinhaltet kann man die bereitgestellten Daten ohne viel Mühe zu ansehnlichen Berichten zusammenstellen. Das entlastet auch die IT-Abteilung. Man muss die komplexe Tabellenstruktur ja nur einmal bereitstellen. Die erforderlichen Berichte können sich die Endanwender jederzeit selbst erstellen.

Wer bereits mit Jet Reports Essentials arbeitet, der kann auf diesem Weg seine komplexeren Berichte evtl. erheblich beschleunigen. Statt viele langsame Filterfunktionen oder gar viele unnötige Daten nach Excel zu laden kann man mit Jet Reports Essentials direkt auf das Data Warehouse zugreifen. So kann auch ein Jet Reports Anfänger selbständig professionelle Berichte erstellen.

Multidimensionale Auswertungen
Das Data Warehouse ist auch Grundlage für das Bilden von multidimensionalen Würfeln (Cubes). Ein Cube ist wie das Data Warehouse einer separaten Datenbank ähnlich. Die Daten werden nur anders im Datenbank-Server abgelegt. Auch über Cubes und OLAP (Online Analytical Processing) lässt sich bei Wikipedia einiges nachlesen. Einfach gesprochen können Filterkriterien (Dimensionen)  und Ergebniswerte (Measures) definiert werden. Für alle Kombinationen werden die Zwischenergebnisse berechnet.

Als Beispiel mag die Finanzbuchhaltung von Dynamics-NAV dienen: Das Feld Betrag in den Sachposten ist ein Ergebniswert (Measure). Das Buchungsdatum und die Sachkontonummer sind Filterkriterien (Dimensionen). In einem Cube werden nun alle Kombinationen aus den Werten der beiden Dimensionen vorberechnet abgelegt. Die Frage welchen Betrag ich auf welchem Konto habe oder was im Januar auf die Erlöskonten gebucht wurde liefert das System innerhalb von Millisekunden. Die Berechnung hat ja schon beim ETL-Prozess stattgefunden.

Visualisieren der multidimensionalen Würfel
Erstes Mittel der Wahl sind bei Cubes aus dem Microsoft SQL-Server immer die Pivot-Tabellen von Excel. Es ist nämlich mit nur wenigen Mausklicks möglich eine Excel-Pivot-Tabelle direkt aus einem Cube zu erstellen. Man hat dann praktisch alle relevanten Daten aus dem ERP-System per Drag and Drop zur Verfügung. Damit kann jeder auswerten. Das ist so einfach, dass auch die Chefetage und der Vertrieb damit locker zurecht kommen. Es ist dabei auch noch rappelschnell.

Die Würfel können aber auch mit den Funktionen von Jet Essentials verwendet werden. So kann ich jedes Design in Excel mit Daten füllen und trotzdem die Power von OLAP nutzen.

Unterschiedliche Datenquellen
Mit Jet Enterprise können unterschiedliche Datenquellen zusammengeführt werden. Es läuft mit allen Datenquellen zusammen, die einen Zugriff auf die Datenbank per ODBC oder OLEDB zulassen. Jet Enterprise ist damit nicht allein auf Dynamics-NAV zugeschnitten. Man kann es beispielsweise auch mit SAP, Oracle oder Sage verwenden. Es gibt für Dynamics-NAV aber eine besonders optimierte Datenbank-Verbindung. Zu dem steht für Dynamics-NAV ein vordefiniertes Set an Cubes bereit, das im Lieferumfang enthalten ist und selbständig an die eigenen Bedürfnisse angepasst werden kann. Besondere Datenbank-Verbindungen mit Cube Sets gibt es auch für Dynamics-AX und Great Plains.

Nachteile von Jet Enterprise
Die Daten werden in regelmäßigen Zyklen aus den Quellsystemen durch den ETL-Prozess in die Auswertungsdatenbanken geladen. Die Daten sind daher so gut wie nie ganz vollständig, wenn man eine Auswertung laufen lässt. Für die meisten Auswertung reichen die Daten des Vortages. Für einen Bericht, der absolut aktuell die Daten aus dem ERP System darstellen muss, sind die OLAP Funktionen von Jet Reports Enterprise eine schlechte Wahl. Wie gut, dass auch alle Funktionen von Jet Essentials in dem System enthalten sind. Denn Auswerten auf den Ursprungsdaten ist gerade die Stärke von Jet Essentials.

Fazit
Gemeinsam sind wir noch stärker. Jet Essentials ist schon eine Macht. Zusammen mit Jet Enterprise ist es aber kaum zu schlagen. Ich kann nur empfehlen es sich mal anzuschauen. In unserer Jet Enterprise Broschüre finden Sie noch weitere Informationen.

Andreas Koblischke
www.datenkultur.de

Unterschiede der Editionen – Essentials

Jet Reports Express ist seit der NAV 2009 Version Bestandteil der Produktlizenz von Dynamics-NAV. Wir sind oft gefragt worden was die Kauf-Version Jet Reports Essentials mehr leisten kann als die Express Version. In diesem Blog-Post möchte ich die Unterschiede erklären.

Der Funktionsumfang der Editionen baut aufeinander auf. Die Essentials-Version beinhaltet auch alle Funktionen der Express-Version. Entsprechend beinhaltet die Enterprise-Version auch alle Funktionen der beiden kleineren Editionen. Um die Unterschiede zu erklären beschreibe ich jeweils die zusätzlichen Funktionen der jeweiligen Version.

Jet Reports Essentials
Diese Version der Jet Reports Produktreihe beinhaltet alle Funktionen der kleineren Express-Version. Nachfolgend werden nur die zusätzlichen Funktionen beschrieben.

NL-Funktion
Mit diesem zusätzlichen Excel-Befehl können aus jedem Bereich Ihres Navisions (oder aus Ihrer ODBC-Datenbank) Werte ermittelt werden. Als Parameter geben Sie an aus welcher Tabelle die Daten kommen, welches Feld betrachtet werden soll und auf welche Datensätze gefiltert werden soll. Ein weiterer Parameter bestimmt was der Befehl aus geben soll.

Für eine einzige Excel-Zelle kennt der NL-Befehl folgende Funktionen:

  • Die Ausgabe eines gefunden Wertes (Z.B den Namen des Artikels mit der Nummer AO999)
  • Die Summe von Zahlen (Z.B. der Vorjahresumsatz der Artikel aus der Gruppe Maschinen)
  • Die Anzahl von Datensätzen (Z.B die Anzahl der freigegeben Aufträge für den Januar)
  • Die Anzahl unterschiedlicher Datensätze (Z.B die Anzahl der verkauften Artikelgruppen in KW3)
  • Ein Bild aus der Datenbank (Z.B. Das Bild des Artikels AO999)
  • Die Bezeichnung einer Tabelle oder eines Feldes in der aktuellen Sprache (Z.B. für multilinguale Auswertungen)

Der Befehl kennt auch Funktionen mit denen mehr als eine Excelzelle gefüllt werden kann:

  • Die Auflistung von Werten in Excel-Zeilen (Z.B. eine Liste der offenen Einkaufsbestellnummern)
  • Die Auflistung von Werten in Excel-Spalten (Z.B. die angesprochenen Kostenträger des Monats)
  • Die Auflistung von Werten auf Excel-Blättern (Z.B. die Debitornummer der letzten Verkäufe)

Zusätzlich kann der Befehl auch zum erweiterten Filtern über mehr als eine Tabelle verwendet werden.

Alle diese Befehle kann man wunderbar kombinieren. Im Post Replikatoren: Zeilen, Spalten, Blätter im Abschnitt “Replikatoren verwenden” steht beschrieben, wie man mit vier einfachen NL Befehlen bereits einen netten Bericht erstellen kann. Für die Erstellung des Berichtes habe ich nicht mal zwei Minuten gebraucht.

Optional kann jedem NL-Befehl mitgegeben aus welcher Datenbank er lesen soll und/oder aus welchem Mandant die Daten gelesen werden sollen. Damit kann man z.B. Mandanten auf einem Excel-Blatt konsolidieren oder die Navision Datenbank mit einer externen Zeiterfassungssoftware gemeinsam auswerten.

NF-Funktion
Mit der NF Funktion kann man mehrere Felder eines Datensatzes mit nur einem Datenbankzugriff ermitteln. Die Funktion bietet auch Flowfilter Felder für Flowfields in Dynamics NAV.

NP-Funktion
Dieser Befehl liefert Hilfs- und Mengenfunktionen sowie Auflistungen für das Erstellen von Berichten mit Jet Reports.

  • Es gibt eine Funktion zu Beschleunigung bei volatilen Funktionen wie z.B. =heute()
  • Man kann aus zwei Datumswerten einen Navision Filter erstellen 1.1.12..31.12.12
  • VBA übliche Formatierungen können in Excel Zellen verwendet werden
  • Das Ergebnis einer Codeunit kann via Webservice abgerufen werden
  • Für multilinguale Auswertungen kann der gewählte Sprachcode des aktuellen Excelbenutzers ausgelesen werden

Man kann sich die Grundlage der Mengenfunktionen wie temporäre, interne Tabellen vorstellen. Folgende Mengenoperation können mit dem Befehl bearbeitet werden:

  • Es können mehrere Ergebniswerte mittelsTrennzeichen zusammengesetzt werden. Man kann damit z.B. Navision-Filter wie 1000|2000|3000 erstellen.
  • Texte können anhand eines Trennzeichens in Einzelwerte aufgeteilt werden. Eine Anwendung wäre zum Beispiel Semikolon separierte Werte in Einzelwerte aufzulösen.
  • Es können Mengen vereinigt werden. Eine klassische Anwendung dafür ist das Zusammenfügen von Schlüsselwerten aus verschiedenen Tabellen wie z.B. die Belegnummer aus gebuchten Rechnungen und gebuchten Gutschriften.
  • Schnittmengen können erstellt werden. Das ist z.B. nützlich, wenn man ermitteln möchte welche Debitoren sowohl in diesem als auch im letzen Jahr etwas gekauft haben.
  • Differenzenmengen können erstellt werden. Mit dieser Funktion kann man z.B. ermitteln welche Artikel nur in einem der beiden vergangenen Monate gekauft wurden.

Folgende Auflistungen liefert der Befehl

  • Eine filterbare Liste von Ganzzahlen ohne Datenbankzugriff
  • Eine filterbare Liste von Datumsbereichen ohne Datenbankzugriff
  • Eine filterbare Liste der Mandanten
  • Eine Liste der eingerichteten Jet Reports – Datenquellen

Tablebuilder
Der Tablebuilder ist bietet folgende zusätzliche Funktionen:

  • Es können auf Basis der Datenfelder individuelle Berechnungsfelder erstellt werden
  • Die Tablebuilder Konfiguration kann gespeichert und geladen werden
  • Die Favoriten für Felder und Tabellen können verwendet werden

Steuerbefehle
Es gibt einige Steuerbefehle, die Jet Reports Ausgaben automatisch optimieren.

  • Berichte können mit Optionen wie z.B. einen Zeitraum oder die Debitorennummer versehen werden. Der Benutzer des Berichtes kann dadurch Parameter eingeben, ohne den Bericht genauer zu kennen.
  • Eine Zeile oder Spalte ist im Design zu sehen, aber im ausgeführten Bericht ausgeblendet.
  • Eine Zeile oder Spalte ist im Design zu sehen, aber im ausgeführten Bericht ausgeblendet, wenn eine bestimmte Bedingung erfüllt. Damit kann man z.B. leere Ergebniswerte automatisch Ausblenden lassen.
  • Eine Spalte oder Zeile wird nach der Berichtsausführung auf die optimale Breite bzw. Höhe gestellt.
  • Im Designmodus wird der Blattschutz aus- und im Berichtsmodus angeschaltet.
  • In einem ausgeführt Bericht werden statt Jet Reports Formeln nur noch die Ergebniswerte angezeigt. Damit kann ein Bericht auch an Excel-Nutzer ohne Jet Reports gesendet werden.
  • Sofortaktualisierungen durch Parameteränderungen können auch im ausgeführten Berichtsmodus erlaubt werden. Damit kann man z.B. ein Dashboard erstellen.

Berechtigungen
Es gibt drei verschiedene Anwendungsarten für das Erstellen, Aktualisieren und Anschauen von Jet Reports Auswertungen.

  • Designer
    Die Designer können Berichte ausführen und neuen Berichte erstellen. Ihnen stehen alle Funktionen und Assistenten zur Verfügung. Designer sind namentlich in der Lizenz geführt. Für den Design-Modus muss Jet Reports installiert sein.
  • Viewer
    Die Viewer können Berichte ausführen (Werte aktualisieren). Sie können die Formeln nicht bearbeiten. Wenn der Designer Parameter für einen Bericht vorgegeben hat, dann kann ein Viewer die Parameter anpassen. Für den Viewer-Modus muss Jet Reports installiert sein.
  • Exceluser
    Ausgeführte Berichte können von jeden Excel-Benutzer geöffnet werden. Das Aktualisieren der Daten ist nicht möglich. Jet Reports braucht nicht installiert zu sein.

Scheduler
Erstellte Berichte können zeitgesteuert automatisch ausgeführt werden. Die Berichte können als Excel-Tabelle, als PDF oder als HTML ausgegeben werden. Das erstelle Dokument kann in einem Dateiorder abgelegt oder per Mail versendet werden.

Report Wizard
Mit diesem Assistenten kann man sich einfache Berichte per Mausklick erstellen. Es werden Jet Reports Befehle daraus erstellt, die einen einfachen Einstieg für komplexere Berichte ermöglichen.

Report Builder
Mit diesem Assistenten kann man sich auf übersichtliche Weise komplexe Berichte erstellen, ohne die Jet Reports Befehle zu kennen. Der Report Builder ermöglicht das einfache Erstellen von Berichten mit multiblen Gruppierungen und multiblen Tabellen.

Konfiguration
Für das automatische Versenden von ausgeführten Berichten per EMail kann ein SMTP-Server angegeben werden. Die Anwendungs- und Datenquellenkonfiguration kann unternehmensweit auf einen MS-SQL-Server ausgelagert werden. Alternativ zum Zugriff über CFront kann der Zugriff über Web-Service eingerichtet werden. Damit kann Jet Reports auch nur mit dem RTC-Client betrieben werden. Es können beliebig viele Datenquellen angelegt werden, wenn mehr als eine Datenbank ausgewertet werden soll.

Lizensierung
Diese Version ist ab der Navision Client Version 3.10 freigegeben. Mit leichten Einschränkungen kann diese Version auch ab der Navision Client Version 2.01b eingesetzt werden.  Den vollen Funktionsumfang der aktuellen Version erhält man aber erst ab der Dynamics NAV Client Version 4.02. Für jeden Navision-Lizenzschlüssel muss man eine Jet Reports Connector Lizenz erwerben. Zusätzlich zum Navision-Connector wird auch eine Jet Reports ODBC Connector Lizenz angeboten. Damit kann man alle Jet Reports Funktionen auch auf beliebigen ODBC Datenquellen anwenden. Für den Betrieb von Jet Reports ist das CFront-Granule in der Navision Lizenz erforderlich.

Zusammenfassung
Jet Reports Essentials ist eine Macht. Man kann damit jeden in Excel darstellbaren Bericht automatisch aus einer oder mehreren Datenquelle abrufen. Aus jeder Tabelle und aus jedem Feld der Datenbank. Per Knopfdruck sind alle Zahlen des Berichtswesens aktuell. Alle Formatierungen sind bereits erledigt. Die Express Version ist nur ein Appetit Happen zum Kennenlernen. Die Essentials Version spielt in einer anderen Liga. In unserer Jet Reports Essentials Broschüre finden Sie noch weitere Informationen.

Andreas Koblischke
www.datenkultur.de

Unterschiede der Editionen – Express

Jet Reports Express ist seit der NAV 2009 Version Bestandteil der Produktlizenz von Dynamics-NAV. Wir sind oft gefragt worden was die Kauf-Versionen von Jet Reports mehr leisten können als die Express Version.

Der Funktionsumfang der Editionen baut aufeinander auf. Die Essentialsversion beinhaltet auch alle Funktionen der Express-Version. Entsprechend beinhaltet die Enterprise-Version auch alle Funktionen der beiden kleineren Editionen. Um die Unterschiede zu erklären beschreibe ich die zusätzlichen Funktionen der jeweiligen Version in einem separaten Blog-Post.

Jet Reports Express

Lizensierung
Für Dynamics-NAV Kunden ab der Version 2009 mit laufendem Wartungsvertrag bei Microsoft (BREP), ist diese Edition ohne Zusatzkosten zum Download verfügbar. Das erforderliche CFront-Granule können sich die Kunden kostenfrei in die Dynamics-NAV Lizenz aufnehmen lassen.

Konfiguration
Es kann auf einem Rechner genau eine Verbindung zu einer Navision Datenquelle eingerichtet werden. Der auszuwertende Standard-Mandant kann vorgegeben werden.

GL-Funktion
Diese Funktion ist für das komfortable Auswerten der Finanzbuchhaltung konzipiert. Es handelt sich um einen zusätzlichen Excel-Befehl (GL). Mit diesem Befehl kann in einer Excel-Zelle ein Wert aus der Navision-Datenbank abgerufen werden. Es können ein Saldo, ein Haben-Betrag, ein Soll-Betrag oder ein Budget für ein oder mehrere Sachkonten ausgelesen werden. Die Werte können auf Datumsbereiche, Kostenstellen oder Kostenträger gefiltert werden. Zusätzlich kann der Mandant vorgeben werden.
Mit der GL-Funktion können sehr einfach statisch definierte Finanzberichte, wie z.B. eine GuV in Excel erstellt und auf Knopfdruck aktualisiert werden.

Tablebuilder
Dieser Assistent von Jet Reports ermöglicht das dynamische Erstellen einer Excel Tabelle anhand von Daten aus Dynamics NAV. Die resultierende Excel-Tabelle kann als Datenquelle per Pivot in Excel ausgewertet werden. Der Assistent erlaubt das Verknüpfen von beliebig vielen Tabellen aus der Datenbank (Z.B. Artikelposten->Artikel->Lagerbuchungsgruppe). Die abzurufenden Daten können gefiltert werden. Entweder grundätzlich (Z.B. Artikelpostenart = Verkauf) oder vor der Berichtsausführung durch den Benutzer (Z.B. Artikelnr. = ???).

Berechtigungen
Erstellte Berichte können von jedem aktualisiert werden, der die erforderlichen Tabellen-Leseberechtigung im Navision hat. Änderungen an dem Berichtsaufbau kann jeder Excel-Benutzer durchführen.

Zusammenfassung
Es ist sehr empfehlenswert das kostenlose Tool mal auszuprobieren. Für statische Buchhaltungsberichte und sonstige Auswertungen mit kleineren Datenmengen kann man die Express Version bereits gut einsetzten.

Andreas Koblischke
www.datenkultur.de

Replikatoren: Zeilen, Spalten, Blätter

Mit Jet Reports kann man dynamische Listen erstellen. Dynamisch bedeutet hier, dass die Anzahl der Elemente erst ermittelt wird, wenn die Liste ausgeführt wird. Eine Liste der Sachbuchungen pro Monat enthält in der Regel für jeden Monat eine andere Anzahl an Zeilen (Dynamischer Aufbau). Mit den Jet Reports Replikatoren kann man dynamische Listen erstellen.

Die Replikatoren rufen Datenmengen aus der Datenbank ab. Das Ergebnis kann daher beliebig viele Datensätze enthalten. Eine Replikator-Funktion steht aber in genau einer Excel-Zelle. In dieser Zelle kann auch nur genau ein Wert angezeigt werden. Wenn mehr als ein Datensatz gefunden wird, dann fügen die Replikatoren der Excel-Mappe neue Elemente hinzu (neue Excel-Zeilen, neue Excel-Spalten oder neue Tabellenblätter).

Zeilen

Die neuen Zeilen werden zwischen der Zeile des Befehls und der nachfolgenden Zeile eingefügt. In die neue Zeile wird die gesamte ursprüngliche Zeile kopiert. Die Spalte in der der Zeilenbefehl steht wird mit dem Ergebniswert der betreffenden Zeile überschrieben. Als Ergebnis haben wir eine neue Zeile mit dem zugehörigen Ergebiswert, die ansonsten exakt die selben Excel-Formeln hat wie die Ursprungszeile.

=NL(“Zeilen”;”Sachposten”;”Sachkontonr.”;”Buchungsdatum”;”1.12.2010..31.12.2010″)

Mit meiner Cronus Datenbank von Navision listet dieser Befehl insgesamt 72 unterschiedliche Sachkontonummern untereinander auf. Wenn man in den Zellen die Formeln betrachtet, dann steht in der ersten Zelle der ursprüngliche Befehl. In den 71 folgenden Zeilen steht lediglich das Ergebnis (als Formel in Anführungszeichen, damit Excel keine impliziten Formatierungen darauf ausführt). Wenn man die Steuerspalte A beim ausgeführten Bericht einblendet, dann findet man in allen neu eingefügten Zeilen den Begriff “Auto”. Daran erkennt Jet Reports welche Zeile gelöscht werden muss, wenn man wieder in den Design-Modus zurückschaltet. Tragen Sie in diese Spalte nie etwas anderes ein als die verfügbaren Jet Reports Steuerparameter. Jet Reports könnte anderfalls Ihr Berichtsdesign ruinieren, wenn Sie in den Designmodus zurückschalten.

Spalten

Der Spaltenbefehl funktioniert analog zu dem Zeilen-Befehl. Die neuen Spalten werden zwischen der Spalte des Befehls und der nachfolgenden Spalte eingefügt. In die neue Spalte wird die gesamte ursprüngliche Spalte kopiert. Die Zeile in der der Spaltenbefehl steht wird mit dem Ergebniswert der betreffenden Spalte überschrieben. Als Ergebnis haben wir eine neue Spalte mit dem zugehörigen Ergebiswert, die ansonsten exakt die selben Excel-Formeln hat wie die Ursprungsspalte.

=NL(“Spalten”;”Sachposten”;”Buchungsdatum”;”Buchungsdatum”;”1.12.2010..31.12.2010″)

Mit meiner Cronus Datenbank von Navision listet dieser Befehl vier Tage nebeneinander auf, sofern man die Zelle als Datum formatiert hat. Wenn man in den Zellen die Formeln betrachtet, dann steht in der ersten Zelle der ursprüngliche Befehl. In den 3 folgenden Spalten steht wieder lediglich das Ergebnis. Wenn man die Steuerzeile 1 beim ausgeführten Bericht einblendet, dann findet man in allen neu eingefügten Spalten erneut den Begriff “Auto”. Daran erkennt Jet Reports welche Spalte gelöscht werden muss, wenn man wieder in den Design-Modus zurückschaltet. Auch hier handelt Weise, wer nur erlaubtes in diese Zeile einträgt.

Blätter

Der Blätterbefehl hebt sich von den beiden Kollegen etwas ab. Es werden keine Excel-Zellen eingefügt werden, sondern ganze Tabellenblätter. Das Prinzip ist aber wieder das Gleiche. Die neuen Blätter werden hinter das Blatt mit dem Befehl eingefügt. In das neue Blatt wird das gesamte ursprügliche Blatt kopiert. Die Zelle in der der Blätter-Befehl steht wird mit dem Ergebniswert des betreffenden Blattes überschrieben. Als Ergebnis haben wir ein neues Blatt mit dem zugehörigen Ergebiswert, das ansonsten exakt die selben Excel-Formeln hat wie das Ursprungsblatt.

=NL(“Blätter”;”Sachposten”;”Kostenträger Code”;”Buchungsdatum”;”1.12.2010..31.12.2010″)

Mit meiner Cronus Datenbank von Navision erstellt dieser Befehl vier Blätter. Das Erste hat den Namen “(2)”, das Zweite den Namen “MERCEDES”, usw. Die Namen der Blätter sind die Ergebniswerte aus den Datensätzen. Jet Reports hat das erste Blatt “(2)” genannt, da ein Excel-Blatt einen Namen haben muss und der erste Datensatz einen Leeren Text geliefert hat. Wenn wir uns die Formeln anschauen, dann steht auf dem ersten Blatt wieder der Befehl und auf den folgenden Blättern ist wieder nur der Wert eingefügt worden. Bei eingefügten Blättern findet man in der Zelle A1 den Text “+AutoBlatt”. Daran erkennt Jet Reports, dass das gesamte Blatt gelöscht werden muss, wenn man wieder in den Design-Modus zurückschaltet. Ich habe schon erwähnt, dass man in der Zeile 1 und der Spalte A nur Jet Reports Parameter eintragen sollte, oder?

Replikatoren verwenden

Die verschiedenen Replikatoren können mehrfach in einem Bericht verwendet werden. Sie können auch miteinader Kombiniert werden. Das folgende Beispiel kombiert alle drei “Achsen” in einer Auswertung.

Jet Report: Zeilen, Spalten und Blätter - Designmodus

Designmodus

Jet Report: Zeilen, Spalten und Blätter - Ausgeführter Bericht

Berichtsmodus

Das Ergebis ist ist ein Bericht, der für einen gewählten Zeitraum:

  • Ein Blatt für jeden gebuchten Kostenträger anlegt
  • Alle gebuchten Sachkonten in den Zeilen auflistet
  • Jedes verwendete Buchungsdatum in den Spalten auflistet
  • Und die Summe des Buchungsbetrags für jede Kombination aus Sachkonto, Buchungsdatum und Kostenträger berechnet.

Das ganze mit lediglich 4 simplen Excelbefehlen. Gut, oder?

Untersuchen Sie den Bericht gern selbst:

JetReports-Zeilen-Spalten-Blaetter.xls

Andreas Koblischke

Informationen und Tips zu Jet Reports

Sehr geehrter Leser,

die datenkultur GmbH hat sich seit dem Vertriebstart von Jet Reports in Deutschland auf das beliebte Reporting System spezialisiert. Wir haben schon mehr als 100 Versionen verkauft, wir haben hunderte Trainings gehalten, wir haben mehr als 1000 Clientinstallationen absolviert, wir haben noch viel mehr Berichte mit Jet Reports erstellt und wir lieben Jet Reports immer noch.

Dieser Blog soll Tips zum Erstellen von Jet Reports geben. Wir werden auch regelmäßig auf neue Versionen und neue Funktionen hinweisen. Es lohnt sich daher diesen Blog als RSS Feed zu abonieren.

Einsteigern in Jet Reports empfehlen wir eine Basis-Schulung zu Buchen. Die Tips in diesem Blog bauen auf Grundkenntnissen auf. Jet Reports ist prima, aber der Einstieg ohne Trainier ist nicht leicht. Natürlich bieten wir auch Schulungen für Jet Reports an.

Ich hoffe, dass Ihnen unser Blog die Arbeit mit Jet Reports erleichern wird.

Andreas Koblischke