Bodo's Dynamics NAV Blog

Bodo ist ein Dynamics NAV Urgestein. Er programmiert NAV seit DOS Zeiten und hat auch keine Scheu vor .NET und schon gar nicht vor Dynamics 365 oder Azure. Viele Neueinsteiger wurden von ihm in den letzten Jahren zu NAV Entwicklern ausgebildet.

In diesem Blog veröffentlichen Bodo und andere Superhelden Interessantes aus der Welt von Dynamics NAV, Dynamics 365 und Azure.

Excel-Auswertungen über Dynamics NAV OData-Webservices

Verfasst von Silas am Montag, 27. Januar 2014

Tags: 2013, 2013 R2, r2, OData, webservices, Excel, Auswertung

Heute schreibt mein lieber Kollege Silas: Microsoft hat mit der Version Dynamics NAV 2013 die Objektart „Query“ eingeführt. Diese ist hervorragend geeignet, um einen Datenfeed zu veröffentlichen. Damit können Sie in Excel Auswertungen erstellen, deren Daten sich per Knopfdruck direkt aus NAV aktualisieren.

Eine Query sieht vom Aufbau her auf den ersten Blick einem Report ähnlich. Doch es gibt einige Unterschiede zu beachten.

1. Die DataItems müssen immer verschachtelt werden, da man sonst diese Fehlermeldung bekommt:

2. Es gibt einen „Data Item Link Type“ in den Eigenschaften eines „Data Items“. Dieser ist wichtig um zu bestimmen, was passiert, wenn durch den „Data Item Link“ keine Datensätze gefunden werden. „Use Default Values if No Match“ lässt die entsprechenden Felder leer und „Exclude Row If No Match“ schließt die komplette Zeile aus dem Ergebnis aus.
Als dritte Option gibt es noch „SQL Advanced Options“. Diese Einstellung erlaubt es den „SQL Join Type“ zu wählen. An dieser Stelle sei nur der Typ „Cross Join“ erwähnt, der es ermöglicht den „Data Item Link“ wegzulassen und über alle Datensätze des Data Items zu laufen.

3. Die Eigenschaften der Query selbst, erlauben es über die Eigenschaft „Order By“ eine beliebige Sortierung unabhängig von den Tabellenschlüsseln festzulegen.

Beispiel:

Wir erstellen eine Query, die die Artikelposten pro Debitor ausgibt:

blog-20140127-image2.png

Als nächstes veröffentlichen wir diese Query als Web Service. Hierzu gehen wir im Windows Client auf Abteilungen/Verwaltung/IT-Verwaltung/Allgemein/Web Services und klicken auf „Neu“

Die Objektart ist Query und die Objekt-ID in unserem Beispiel 50.000. Sobald der Haken „Veröffentlichen“ gesetzt ist füllt sich die Spalte „OData-URL“ und der Web Service ist erreichbar.

blog-20140127-image3.png

Nun öffnen wir Microsoft Excel 2013 und erstellen eine neue leere Arbeitsmappe. Im Reiter „Daten“ im Abschnitt „Externe Daten abrufen“ wählen wir nun „Aus anderen Quellen“: „Aus OData-Datenfeed

blog-20140127-image4.png

In dem folgenden Fenster geben wir als „Speicherort des Datenfeeds“ die OData-URL aus der Web Service Übersicht in NAV ein und klicken auf „Weiter“:

Nach einem kurzen Moment öffnet sich das folgende Fenster, wo wir nur den Haken setzen und auf „Fertigstellen“ klicken:

Excel fragt uns, was wir mit den Daten machen wollen. Wir entscheiden uns zunächst für die einfachste Variante: „Tabelle“ und klicken auf „OK“.

Jetzt fügt Excel die Daten aus NAV in das Tabellenblatt ein. Diese Daten können wir wie gewohnt mit Excel auswerten. Zum Beispiel können wir eine Pivot Tabelle erstellen, indem wir eine Zelle der Tabelle auswählen und unter dem Reiter „Einfügen“ auf „Pivot Table“ klicken und den Dialog mit „OK“ bestätigen.

blog-20140127-image8.png

Jetzt ziehen wir einige Felder in die Zeilen und Summenwerte entsprechend folgender Abbildung:

blog-20140127-image9.png

Das ist so noch etwas unübersichtlich, darum wechseln wir oben in den Reiter Entwurf und stellen das Berichtslayout auf „In Tabellenformat anzeigen“…

blog-20140127-image10.png

…und „Teilergebnisse“ auf „Teilergebnisse nicht anzeigen“, da wir sonst zu viele Teilergebnisse angezeigt bekommen.

blog-20140127-image11.png 

Um jetzt Teilergebnisse pro Artikel zu sehen, aktivieren wir dies für das Feld „ItemDescription“:

Das Ergebnis sieht wie folgt aus und lässt sich über die Schaltfläche „Alle aktualisieren“ im Reiter „Daten“ mit den aktuellen Werten aus NAV befüllen:

Zu guter Letzt ändern wir noch die Überschriften:

Fertig.


Kontakt

Comporsys Hansa GmbH
Spitzerdorfstr. 3
22880 Wedel, Deutschland

Tel. +49 (0)4103 12117 - 0
Fax +49 (0)4103 12117 - 29
E-Mail: info@comporsys.de