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 Lizenz-Änderungen nur noch mit aktivem Wartungsplan

Der Hersteller von Jet Reports lässt ab dem 1.10.2014 keine Lizenz-Änderungen mehr zu, wenn kein aktueller Jet Reports Wartungsplan (Annual Enhancement Program) abgeschlossen wurde.

Bisher konnte man die Jet Report Lizenz noch gegen das Zahlen einer Gebühr anpassen lassen, wenn man den AEP nicht erworben hat. Diese Option gibt es ab dem 1.10.2014 nicht mehr. Der Hersteller hat uns als Jet Reports Partner deutlich darauf hingewiesen, dass keine Ausnahmen von dieser Regel gemacht werden.

Sofern noch nicht erfolgt, werden Sie beim nächsten Erwerb von Dynamics-NAV Modulen (Tabellen, Pages, Benutzer, AddOns, etc.) mit hoher Wahrscheinlichkeit eine neue Dynamics-NAV Lizenznummer von Microsoft erhalten. Wenn Sie keine aktiven AEP und zu der neuen Lizenznummer keine passende Jet Reports Lizenz haben, dann wird das dazu führen, dass Sie entweder ganz auf Jet Reports verzichten müssen, oder dass Sie die den gesamten, ausgelassenen Wartungszeitraum von Jet Reports nacherwerben müssen.

Schauen Sie in diesem Fall, ob Sie von Microsoft bereits Ihre neue Dynamics-NAV Lizenznummer erhalten haben. Wenn nicht, dann bitten Sie Ihren Dynamics-NAV Partner darum Ihnen eine neue Lizenz aus dem Partner-Source abrufen zu lassen, damit Sie sich vor dem 1.10.2014 noch die Jet Reports Lizenz ändern lassen können. Die Nummer Ihrer Dynamics-NAV Lizenz wird mit sehr hoher Wahrscheinlichkeit Ihre Kundennummer bei Microsoft werden. Wenn Ihre Lizenz von Microsoft bisher noch nicht umgestellt wurde, dann geben Sie für die zukünftig neue Jet Reports Lizenznummer Ihre Kundennummer bei Microsoft an. Fragen Sie Ihren Dynamics-NAV Partner dazu nach Ihrer Voice-Account Nummer.

Bei Fragen wenden Sie sich bitte an Ihren Jet Reports Partner. Wir freuen uns natürlich auch, wenn wir Sie bei Ihren Fragen direkt unterstützen dürfen.

Andreas Koblischke
www.datenkultur.de

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

Open Database Connector nur noch pro Datenbank

Mit der Preisliste vom April 2014 können neue Open Database Connectoren nicht mehr für beliebig viele ODBC oder OLE-DB Datenbanken verwendet werden. Zukünftig darf ein Connector nur noch für genau eine Datenbank verwendet werden.

Andreas Koblischke
www.datenkultur.de

Wartungsplan für Jet Reports (AEP)

Wie bei Microsoft Dynamics NAV gibt es auch für Jet Reports einen Wartungsplan. Jet Reports nennt den Wartungsplan AEP (Annual Enhancement Program).

Der Plan beinhaltet:

  • Abrufen und verwenden der jeweils aktuellen Version von Jet Reports.
  • Unbegrenzte Anzahl von Anfragen beim technischen Support des Herstellers.
  • 24h-Stunden Zugriff auf die Jet Reports Knowledge Base.
  • Zugriff auf die Support-Webseiten von Jet Reports für jeden Designer.
  • Jet Reports Lizenz-Änderungen (Designernamen, NAV Lizenznummer, etc.).

Der Verkaufspreis für die Leistungen Beträgt 16% vom ursprünglichen Listenpreis der erworbenen Jet Reports Elemente (Paketpreise, Designer, Viewer, Konnektoren, etc.) pro Jahr. Der Erwerb des AEP ist beim Neukauf von Jet Reports obligatorisch. Die Laufzeit beträgt ein Jahr. Für Jet Reports Komponenten, die später zugekauft werden (Z.B ein zusätzlicher Designer) wird der AEP anteilig bis zum Ende des Wartungszeitraumes berechnet. Für Folgejahre ist der Erwerb des AEP freiwillig.

Der Wiedereinstieg in die Wartung ist möglich. Es müssen dazu auch die ausgelassenen Wartungsbeträge der Vergangenheit geleistet werden.

Lizenz-Änderungen konnten früher gegen eine Gebühr auch ohne aktivem AEP erfolgen. Wie Microsoft hat sich nun auch Jet Reports entschieden das Lizenz-Änderungen ohne aktive Wartung nicht mehr durchgeführt werden. Diese Änderung gilt ab dem 1.10.2014. Der Hersteller hat uns als Jet Reports Partner dringend darauf hingewiesen, dass keine Ausnahmen an dieser Regel gemacht werden dürfen.

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

Es wurde keine Jet Reports Lizenzdatei gefunden

Unsere Kunden melden uns vermehrt, dass Ihr Jet Reports nicht mehr läuft. Sie bekommen die folgende Meldung :

“Es wurde keine Jet Reports Lizenzdatei mit der Lizenznummer xxx in ‘C:\xxx’ gefunden. Die Jet Reports Lizenznummer muss mit der Navision Lizenznummer in der Navision Lizenzdatei übereinstimmen”

Keine Jet Reports Lizenz gefunden

Das ist kein Programmfehler. Es liegt daran, dass Microsoft das Lizenznummern-Format von Dynamics-NAV umgestellt.

Wenn Sie eine neue Dynamics-NAV Lizenz von Ihrem Partner erhalten, dann hat diese neuerdings oft eine 7-Stellige Zahl als Lizenznummer. Diese Nummer ist Ihr Kunden-Account bei Microsoft. Früher gab es für Dynamics-NAV bzw. Navision ein Text basiertes Lizenznummern-Format (Z.B. DE-ZA-014-MUBXA-0).

Die Meldung erscheint, weil die Lizenznummer von Jet Reports mit der Lizenznummer von Dynamics-NAV bzw. Navision bei Starten von Excel verglichen wird. Wenn eine neue Lizenz in den Dynamics NAV Server mit einer neuen Lizenznummer eingespielt wurde, dann schlägt der Vergleich der Lizenzen fehl. Das Ergebnis ist die vorliegende Meldung.

Was ist zu tun:

  1. Ermitteln Sie die neue Lizenznummer. (Classic Client: Extras->Lizenzinformationen, RTC: (?)->”Info zu Dynamcis NAV”->”Überprüfen Sie die Lizenzinformationen”.
  2. Fordern Sie bei Ihrem Jet Reports Partner die Änderung Ihrer Lizenznummer an (Das erfordert einen aktiven Jet Reports Wartungsplan (AEP). Ohne AEP ist das nur noch bis zum 31.9.14 möglich).
  3. Bis Jet Reports Version 13: Legen Sie die neue Jet Reports Lizenzdatei im konfigurierten Ordner ab.
  4. Bis Jet Reports Version 13: Legen Sie die neue Dynamics-NAV Lizenzdatei im Dynamics-NAV Client Programmorder ab.
  5. Starten Sie Excel neu.

Die Anleitung trifft nicht genau für jede Installation zu, da es inzwischen vierzehn unterschiedliche Versionen von Jet Reports gibt. Im Laufe der Zeit hat sich die Einrichtung der Versionen z.T. erheblich verändert. Wenn Sie es nicht gelöst bekommen, dann fragen Sie bitte Ihren Jet Reports Partner. Natürlich freuen wir uns auch, wenn wir Sie bei der Einrichtung unterstützen dürfen.

Andreas Koblischke
www.datenkultur.de

Jet Reports bekommt eine neue Aktivierung

Bis einschließlich der Jet Reports Version 2012R2 wurden die Berechtigungen über eine Jet Reports Lizenzdatei mit der Endung .JLF(Jet Reports License File) geprüft.

Ab der Jet Reports Version  2013 gibt es diese Lizenzdatei nicht mehr. Der Kunde erhält einen Aktivierungsschlüssel, der u.A. bei der Installation von Jet Reports eingetragen werden kann. Anhand des Schlüssels holt sich Jet Reports die Berechtigungen über das Internet aus einer Datenbank. Die Aktivierung ohne bestehende Internetverbindung ist möglich, aber aufwändiger. Jet Reports hat in der Knowledgebase einen Artikel zu den Aktivierungsarten verfasst.

Änderungen an der Jet Reports Lizenz werden bei bestehender Internetverbindung automatisch abgerufen. Änderungen von Benutzernamen sind damit ohne manuellen Aufwand wirksam, sobald die Daten von Jet Reports in die Datenbank eingetragen wurden.

Mit der Aktivierung wurde auch die Erkennung von Viewer- und Designerrechten umgestellt. Folgende Neuerungen haben sich ergeben:

  • Die Berechtigungen werden nicht mehr anhand des Office-Benutzernamens ermittelt, sondern am Windows-Anmeldenamen (Domainname\Benutzername)
  • Viewer müssen einem Windows-Benutzer zugeordnet werden, wenn keine Unlimited Viewer erworben wurden.

Jet Reports verhindert mit diesem Verfahren, dass mehr Designer oder Viewer genutzt werden, als in der Jet Reports Lizenz enthalten sind.

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