Übertragen von Navisiondaten nach Excel

Nav123: Navision, Showare, OrderApp

Print Friendly, PDF & Email

Navision konnte schon immer seine Daten sehr schnell und einfach nach Excel übertragen – auch mit der nativen Navisionversion, also zwischen Navision 2.00, 2.01 über die 3er Version bis zu 2009R2. Seit Microsoft Dynamics NAV 2013 und folgende RTC-Wege wurde das dann immer einfacher. Bis zur reinen Webversion, da ist es wieder komplizierter. Microsoft…


Clipboard-Zwischenablage

Schon seit der Windows-Navisionversion 1.3 möglich, bis heute.
Listen: (Debitorenliste, Artikelliste, Kreditorenliste, Sachkontenliste…) gewünschte Filter setzen, STRG+A („Alles markieren“). Dann: Natives Navision: STRG+C („Copy“). Navision RTC: Shift+Strg+C. Die Liste steht nach kurzer Zeit in der Zwischenablage drin. „Kurze Zeit“ kann je nach Anzahl der Datensätze und der darin enthaltenen Flowfields durchaus auch ein paar Minuten sein. Grundsätzlich ist es übrigens keine gute Idee, in Listen Flowfields zu haben. Das gehört aber in das Thema performance Optimierung, dazu wird es auch noch einmal einen Leitfaden geben.
Karten: (Debitorenkarte, Kreditorenkarte, Artikelkarte…): Das geht NUR im nativen Navision, also bis Navision 2009R2. Nicht RTC. Nicht Webclient.

Im Zielprogramm, also Excel, Libre Office Tables, Google Tables, Word, Documents oder wo auch immer, werden die Daten dann einfach mit Strg+V einfügen.
Tipp, wenn Sie Spalten mit führenden Nullen haben, z.B. Postleitzahlen:
Direkt nach dem Einfügen diese Spalte(n) markieren (STRG+Leertaste), „Formatieren“ aufrufen (STRG+1), und Format „Text“ aufrufen. Dies für alle kritischen Spalten (also Spalten mit Daten, welche führende nullen 0 enthalten) wiederholen.
Danach in die Zelle A1 ganz links oben gehen (STRG+Pos1), und genau die gleiche Zwischenablage erneut einfügen (STRG+V): Voila, ale führenden Nullen bleiben nun erhalten!

Navision-Funktion Senden

Das Clipboard war und ist schon immer etwas langsam. Das hat tatsächlich auch massive technische Gründe: Navision bzw. Business Central muss sehr viele Daten für die Zwischenablage aufbereiten, in verschiedenen Formaten!. Navision kann nicht wissen, wo die Dateien am Ende eingefügt werden sollen. Im nativen Client gab es daher ab der 2009er (Navision 6.0) Version eine neue Funktion: Daten übertragen bzw. Daten senden. Als Ziel musste man sich direkt für Word oder Excel (oder ein praktisch nie benutztes Irgendwas) entscheiden. So konnte Navision schon die Daten direkt für das richtige Ziel aufbereiten, was vieeeel schneller ging. Als Faustformel: Wenn das Füllen der Zwischenablage etwa 1,5 minuten (~100 Sekunden) dauerte, so wurden die gleichen Daten mit Senden in ca. 10 Sekunden (1/10 der Zeit) gesendet. Und das auch noch hübsch formatiert, inkl. führenden Nullen, z.B. in Artikelnummern oder Postzeitzahlen. Endlich wurde das Problem mit fehlenden oder verschluckten Nullen bei Sachkonten und Debitorennummern abgestellt. Und ein wenig Formatierungsschnickschnack wurde auch gleich noch beigefügt. Ich glaube, schöner und universeller kann keine andere Warenwirtschaft beliebige Daten zu Excel übertragen.

Natives Navision bis zur Version 2009R2

RTC ab Navision, 2009R2 über NAV, Business Central 2015, 2016, bis 2019 Spring release Windows.Client

In beiden Fällen gilt der Shortcut STRG+E.

Sie haben eine Navision-version bis zur Version 2009R2, Sie sehen die oben dargestellten Buttons mit den Texten „An Microsoft Excel sen. (Strg+E)“ oder „An Microsoft Word send. (Strg+E)“, aber es passiert einfach nichts, wenn Sie draufdrücken, oder Strg+E drücken? Das passierte leider sehr oft: Systemhäuser haben damals einfach das vorhandene Navision genommen, und in die jeweils aktuelle Navision-Version importiert. Das ging damals auch noch kinderleicht und meist ohne Seiteneffekte, also nicht mehr wie die späteren Updates, z.B. von 2015 auf 2016.
Dadurch hat die neue Fin.exe oder die Finsql.exe dann auch direkt diese Schaltflächen angezeigt. Damit aber auch etwas funktioniert, mussten einige Objekte angepasst/eingespielt werden. Z.B. in der Codeunit 1 die neuen Trigger

LaunchApp(DataXML : Automation „‚Microsoft XML, v6.0‘.DOMDocument60“;StylesheetID : GUID;ApplicationXML : Automation „‚Microsoft XML, v
EXIT(AppLaunchMgt.LaunchApp(DataXML,StylesheetID,ApplicationXML));

SelectStyleSheet(ObjectType : Integer;ObjectID : Integer;VAR StyleSheetID : GUID) : Boolean
EXIT(AppLaunchMgt.SelectStyleSheet(ObjectType,ObjectID,StyleSheetID));

ManageStyleSheets(ObjectType : Integer;ObjectID : Integer)
StyleSheets.SetObject(ObjectType,ObjectID);
StyleSheets.RUN;

Es gehören aber noch mehr Objekte dazu: Codeunit 403 Application Launch Management,
Tables
1 2000000065 Send-To Program Ja 26.05.14 10:06:17 Ja
1 2000000066 Style Sheet Ja 26.05.14 10:06:17 Ja
1 2000000067 User Default Style Sheet Ja 26.05.14 10:06:17 Ja
Forms:
2 690 Manage Style Sheets Nein NAVW16.00 05.11.08 12:00:00 Ja
2 692 Import Style Sheet Nein NAVW16.00 05.11.08 12:00:00 Ja
2 694 Style Sheets Nein NAVW16.00.01 14.08.09 12:00:00 Ja
2 697 Manage Style Sheets – Pages Nein NAVW16.00 05.11.08 12:00:00 Ja

Sprechen Sie mich einfach mal an wenn sie diese Funktionen in Ihrem alten (es gibt kein „altes Navision, ist meine Meinung, sprechen sie mich bei Zweifeln auch dazu an) Navision vermissen.

Im RTC sind diese Funktionen fest eingebaut und funktionieren immer. Bei fehlenden Word/Excel wird die fertige Datei zum Download angeboten und kann auch in anderen Programmen (Libre Office, Google Tables) geöffnet werden.
Sowohl im Nativen 2009er Navision wie auch in den RTC und BC Versionen können Sie diese Formatierungen/Vorlagen (Templates) auch verändern, und so beliebige Farben und andere Formate fest vordefinieren. Das geht sogar pro Navision-Tabelle! Also z.B. Debitoren in Orange ausgeben, Artikel in Blau, Kreditoren in Grün und Sachkonten in feurigem, warnenden Rot. Auch diese Möglichkeit haben Sie in jedem Navision ab der Version 2009.

Übertrag per Programmcode

Die bisher vorgeschlagenen Optionen dienen dazu, fix und fertig sichtbare Daten aus Navision und Business Central z.B. nach Excel übertragen.

Oft muss man aber Daten erst aufarbeiten, um diese dann komprimiert oder angereichert zu übertragen.
Hierfür gibt es seit etwa Navision 3.01 die eingebaute Exceltabelle „Excelbuffer“ in Navision. Über diese können, z.B. aus Berichten/Reports heraus fertige KPI’s (Key Performance Indicators, hoch verdichtete Kennzahlen eines Unternehmes) fix und fertig in eine Exceltabelle übertragen werden.
Das sieht in einem Report mit Benutzung der Tabelle Excelbuffer z.B. so aus:

Screenshot aus dem nativen (nicht Business Central) Navision mit einer vollständigen Integration einer Excel-Datenausgabe aus einem Report heraus.

In meiner erweiterten Exceltabelle „Excelbuffer“ wurden noch einige Funktionen zusätzlich eingebaut, die das Erstellen von Exceltabellen aus Navision & Business Central heraus noch einfacher machen, als dies im Standard von Navision funktioniert. Z.B. die InsCell Funktion, mit der ich direkt in eine gestimmte Zelle einen Wert schreiben kann. Wesentlich einfacher als die Standardfunktionen im Excelbuffer, die Microsoft hier mitliefert. Z-B. auch einfaches Zufügen weitere Exceltabellen in einer einzigen Datei.

Diese Technik steht in Navision seit der version 3.01, Business Central RTC und Microsoft Dynamics 365 NAV zur Verfügung. Der Vorteil: Hier kann man noch einfacher Formeln einbauen, die Spalten in vernünftige Reihenfolgen bringen und insgesamt sehr detailliert auf die fertige Tabelle (oder auch Word-Dokument) Einfluss nehmen. Und: Der Benutzer hat -im Idealfall- keinerlei Formatierungsarbeit. Dies ist, besonders bei komplexen Daten, die einfach dargestellt werden sollen, die Ausgabe der Wahl. Auch bei wiederholt, z.B. jeden Freitag oder jeden Morgen, auszugebenden Daten. Denn man spart sich hier jegliche Nacharbeit! Knöpfchen drücken oder per automatischen Scheduler zur gewünschten Zeit raus werfen, mailen, und fertig. Sogar das Mailen kann Navision automatisch und zeitgesteuert übernehmen, notfalls mit meinem Cmail Connector.

Datenübergabe per Dataport / XML-port

Analog der Ausgabe über den Excelbuffer können Sie auch Daten kinderleicht per Dataport (Natives Navision) oder XML-Port (RTC) so aus Navision ausgeben, dass diese auch direkt in Excel importiert werden können. Es gibt für beide Techniken zahlreiche Videos bei Youtube, z.B. dieses hier oder dieses hier für XML. Daher erspare ich Ihnen hier die Hintergründe. Wenn Sie hierfür Unterstützung benötigen, sprechen Sie mich bitte an.

Report-Export nach Excel

Dies ist, besonders in den älteren Navision, vermutlich die geilste und leistungsfähigste der unbekannten Funktionen.
Sie können die Ergebnisse von allen Reports (Auswertungen) in jeder Navision bzw. Business Central Version nach Excel (oder Word) exportieren/importieren! Das ging schon mit der 3.53er oder 3.56er („DOS-Version“), über die ersten grafischen Financials unter NT, Windows oder OS/2, bis hin zu den immer noch viel verbreiteten RTC-Versionen. Wählen Sie eine der beiden für Sie passenden folgenden Anleitungen.

Report Export nach Excel oder Word unter RTC

Das ist in der Tat die einfachste Lösung von allen Navisions.
In jedem Report haben Sie die Möglichkeit, ihn als echten Druck, als PDF, Word oder Excel-Datei auszugeben:

Screenshot aus Microsoft Dynamics Navision / Business Central zur Ausgabe eines beliebigen Reports zu Excel oder Word.

Report Export/Übergabe nach Excel oder Word unter dem nativem (alten) Navision 2009R2 und davor

Auch in diesen Versionen (die 3.53/3.56 lasse ich hier mal weg. Nur soviel: Der Trick ist der CSV-Druckertreiber!) können Sie jeden (!) Bericht zu Libre-Office, Google Tabellen, Google Docs oder eben auch Excel und Word ausgeben!

nach dem Aufrufen eines Berichts rufen Sie bitte NICHT Seitenansicht auf, und auch NICHT Drucken. Gehen Sie stattdessen bitte auf Datei/Als HTML Speichern.
Speichern Sie das Ergebnis an einer Stelle, wo Sie es wieder finden, z.B. c:\temp\Debitor – Summen Saldenliste.htm

Starten Sie dann bitte Excel (oder Word), und rufen Sie auf:


In älteren Excelversionen erreichen Sie dies auch über Datei/Öffnen.

Sie haben nun schon den Bericht in Excel! Aber leider noch nicht so richtig gut zu editieren und weiter zu verarbeiten.
Aber auch dieses Wunschergebnis (pure, leicht weiter zu verarbeitende Daten) erreichen Sie mit wenigen weiteren Schritten.
1. Löschen Sie die Formatierungen:
1.1. STRG+A STRG+A (Alles markieren, wirklich 2 x hintereinander drücken, sicher ist sicher), dann Formate löschen

Screenshot von Excel (Formate löschen), um die Daten von Navision eleganter weiter zu verarbeiten

1.2. Optional! Dieser Schritt dient dazu, wenn Sie am Ende die ursprüngliche Reihenfolge der Daten wieder herstellen wollen oder müssen.
1.2.a Neue Spalte ganz links Einfügen
1.2.b In dieser Spalte je nach Gusto per Formel, oder per Ziehen, oder wie auch immer, eine Zahlenreihe 1-x einfügen:


1.2.c Wenn Sie die Reihe über eine Formel erzeugt haben: Kopieren und Werte einfügen (ansonsten geht die Formel mit der schönen Originalreihenfolge gleich kaputt)
1.3 Sortieren Sie die Tabelle nun nach einer sinnvollen Spalte, in unserem Beispiel die Spalte B (Debitorennummer)
(in dem folgenden Beispiel habe ich ohne die optionale Nummerierung weiter gemacht, denn für diese Liste brauchen wir das nicht)
Nun haben Sie einen Datenblock mit den echten richtigen brauchbaren Nutzdaten, und oben oder unten (oder oben und unten) Datenmüll:

Nun können Sie frei entscheiden Wie sie weiter arbeiten möchten. Vielleicht mögen Sie eine (!) der Überschriften wieder nach oben kopieren, vielleicht brauchen Sie verschiedene Spalten nicht. Löschen Sie nach Herzenslust!
Ab hier haben Sie saubere, nutzbare Daten für die weitere Verarbeitung.

Diese Schritte sind immer gleich, für jeden Vorgang, für jeden Bericht.

Konfigurationspakete

Seit der Version 2009R2 gibt es die Konfigurationspakete (in einigen Versionen auch als Rapidstart bezeichnet).
Diese Funktion war anfangs dafür gedacht, ein leeres Navision schnell z.B. für einen Handwerkerbetrieb, einen Lebensmittelhandel oder eine andere Fachanwendung zu initialisieren. Das war aber immer… na ja… ziemlicher Müll, da die mitgelieferten Konfigurationspakete nicht nennenswert besser als der Cronus-Mandant waren. Und, noch schlimmer: Unglaublich viele Systemhäuser haben genau diese Quellen -Konfigurationspakete oder Cronus AG- tatsächlich benutzt, um Firmen einzurichten. Völlig quere Nummernkreise, total verfehlte Zugriffsrechte waren die Folge. Und ein SKR03 oder SKR04, welcher jeden Buchhalter die Hände über den Kopf zusammen schlagen ließ. Und damit auch die Folgen, das in vieeelen Firmen, die Navision einsetzen, noch immer alle Benutzer als „SUPER“ Benutzer arbeiten, oder eine gerade gebuchte Rechnung/Lieferschein/Gutschrift nicht mit STRG+ENDE sofort gefunden wird. Traurig…
Lange Rede, kurzer Sinn:
Mit den Konfigurationspaketen können Sie auch super beliebige Tabellen von Navision nach Excel übergeben. Ganz ohne Report-HTML Export oder den Excelbuffer, und auch mit führenden Nullen, die nicht verloren gehen. Sie können für ein Konfigurationspaket beliebige Tabellen auswählen, und pro Tabelle auch beliebige Spalten. Beim Ausgeben des Rapidstart oder Konfigurationspaket wird dann eine Exceldatei erstellt, in der alle Tabellen in einer Datei enthalten sind.

ODBC

Bei jedem Navision, welches unter dem SQL server läuft, ist ODBC natürlich schon im Standard enthalten.

Beim nativen Navision brauchen Sie die Granule Query. Wenn Sie diese noch nicht in ihrer Lizenz haben, können Sie diese noch heute nachkaufen – wenn Sie noch in der Wartung sind. Wenn nicht, steht Ihnen dieser Weg (ODBC auf die native Datenbank) nicht zur Verfügung.
Sie finden die nötigen Setupdateien auf ihrer Navision-CD im Unterordner CODBC.

Unterordner auf der CD für CODBC bei den "älteren" (es gibt kein altes Navision) Navisionversionen.
Unterordner CODBC für die „älteren“ (es gibt kein altes Navision) Navisionversionen.

Nach dem Installieren finden Sie einen ODBC-Treiber für Ihr Navision in der ODBC Datenquelleneinstellung, in der Sie Zugangsdaten eingeben. Danach steht Ihnen eine Datenquelle analog dem folgenden SQL Server zur verfügung. Bitte schalten Sie den ODBC-Treiber unbedingt in den Read-Only Modus! Sie können sonst leicht ihre Navision-Datenbank bzw. deren Inhalt beschädigen oder zerstören.

In Excel gehen Sie dann auf Daten/Datenabruf

(Bei Navision ODBC: „Aus anderen Quellen“/“Aus Microsoft Query)

Nun geben Sie ihre Anmeldedaten für die Navision-Datenbank an. Tipp: Das sind die gleichen, wie Sie sie auch in der C/Side Entwicklungsumgebung benutzen! Wenn Sie diese noch benutzen…

Die folgenden 1-2 Fragen bestätigen Sie einfach (ich gehe davon aus, das Sie „Windows-Authentifizierung“ benutzen), und es geht die Liste der Navision / Business Central Tabellen auf.
Vergessen Sie alle Tabellen mit VSIFT am Ende, das sind die Schlüsseltabellen für die Flowfielder. I.d.R. können / brauchen Sie diese nicht für Ihre Excel-Daten.

Sie können in dem Suchfeld einen Teil der englischen (originalen) Tabellenbezeichnung eingeben, was die Suche sehr erleichtert:

Sie finden die englischen Tabellenbezeichnungen kinderleicht im Navision / Business Central Client, wenn Sie an der gewünschten Stelle STRG+ALT+F1 drücken:

Klicken Sie die gewünschte Tabelle an, dann auf „Laden“, und die komplette Tabelle wird in Ihr Excel-Arbeitsblatt geladen.

Das Ergebnis ist aber kein reines Excel Tabellenblatt, sondern ein Query. Dies verhält sich etwas anders als ein normales Tabellenblatt. Das Wichtigste: Sie können die Daten zu jedem Zeitpunkt erneuern! Meist nutzt man genau diese Rohdaten für weitere Verarbeitungen, z.B. eine Pivot Tabelle. Da fängt es dann an, magisch zu werden…

OData

Und hier kommen wir tatsächlich im 21. Jahrhundert an. Noch nie war es so einfach, Daten ganz gezielt für eine fertige Anwendung aufzubereiten und dann für Excel oder andere OData Konsumenten bereit zu stellen. Effektiv ist OData eine REST-Schnittstelle, welche Sie mit wenigen Klicks zusammen stellen können. Wir schauen uns hier einmal die einfache Version an, über eine Page. Für echtes professionelles Abfragen empfiehlt sich die Nutzung über einen XML Datenport. Dies wird aber „normale Anwender“, an die sich diese Info hier richtet, in fast allen Fällen überfordern.

Als Datenlieferant für eine OData Abfrage ist jede Listen-Page (Artikelliste, Hauptartikelliste, Debitorenliste, Zahlungsbedingungen, Aufträge…) geeignet. Natürlich auch selbst erstellte Pages!

Wir nehmen mal eine Artikelliste, die es bereits gibt: Die Lookup-Page, und geben diese Frei.
Welche Page ist es? STRG+Alt+F1 auf der Lookup-Page: Page 32!

Nun geben wir diese Page als OData (OpenData) URL frei: Strg+F3, dann web s (für web services). Auf Deutsch müsste es eigentlich web die für Web Dienste sein, ich finde das web s aber griffiger.

In der Liste gibt es bereits zahlreiche OData Abfragen, Sie können sich anhand dieser Anleitung später mit jeder einzelnen beschäftigen, die Möglichkeiten sind grandios.

Wir fügen unsere Artikel-Auswahlliste als OData Datenquelle hinzu:

„Neu“ Drücken, Objektart = Seite, Objekt-ID 32 (haben wir im ersten Schritt gefunden), Fehlermeldung ignorieren, Servicename eingeben (hier Artikelauswahlliste), „Alle Tenanten“ = Ja, Veröffentlichen = Ja.

Mehr Eingaben sind nicht nötig, den Rest generiert Navision.

Nun die ODaata URL kopieren (NICHT V4, das kann Excel nicht) oder notieren, dabei den Rechnernamen zu der IP Adresse ändern.
Ansonsten kommt später die Fehlermeldung „Der Zielprinzipalname ist falsch“, was einem auch nicht so weiterhilft. Denn diese Meldung hat nichts mit OData selbst zu tun, sondern mit falschen/fehlenden DNS-Zertifikaten.

Der fertige String sieht dann z.B. so aus:
http://x.0.16.xx:7048/xxx/OData/Company(‚1‘)/Artikelauswahlliste
Mit der 1 in Company können Sie den Mandanten umschalten, wir bleiben erst einmal beim ersten Mandanten.

Nun gehts in Excel weiter (Word und andere Datenkonsumenten funktionieren so ähnlich)

In 1 fügen wir die vorhin kopiere V4 URL ein, in zwei fügen wir einen gültigen Windows/Navision-Benutzernamen ein.


Lustigerweise können Sie hier in vielen Fällen eingeben was Sie wollen, OData V3 gibt Ihnen trotzdem die Daten.
Um Probleme wegen fehlender Autorisierung zu vermeiden, geben Sie aber gleich einen richtigen Namen ein.

Sollten Sie allerdings folgende Fehlermeldung erhalten, so tricksen wir ein wenig!

In diesem Fall stellen Sie den Abfragebildschirm bitte so ein:

In dem folgenden Bildschirm geben Sie testweise ihren korrekten Windows-User mit Kennwort ein, oft funktioniert es auch, wenn Sie hier einfach Unsinn eingeben.
Sie erhalten nun die Auswahlliste mit der vordefinierten Abfrage:

Excel will nun diese Abfrage sofort speichern, füllen Sie bitte die Felder nach Wunsch aus:

Nun können Sie noch angeben, was Sie mit den zurück gelieferten Daten machen wollen.
Empfehlung: Erst mal ganz normal als Tabelle importieren, Pivot etc können Sie später noch drüber legen.

Nach kurzer Zeit liefert Ihnen Excel die Navision-Daten dieser Ansicht frei Haus.
Das geht mit jeder Page… und auch noch dazu mit Abfragen.

Übrigens verbraucht Navision die meiste Zeit, die diese Abfrage benötigt, für das Berechnen der Spalte „Inventory“.
Ohne diese reduziert sich die Abfragezeit deutlich!
„Kalkulierte Felder“, Sie wissen schon… Der Geschwindigkeitskiller schlechthin in Navision, wenn man sie falsch benutzt.

Voraussichtliche Lesedauer: 21 Minuten