Zum Hauptinhalt springen

Automatischer Datenimport in Dynamics NAV (via Codeunit)

💡 Artikel Übersicht

  • Dieser Artikel beschreibt, wie Sie den Tacto-Importer als Codeunit in Dynamics NAV einbinden und über die Aufgabenwarteschlange automatisiert ausführen.

  • Unterstützt werden Lieferanten (Vendors), Kontakte (Contacts) und Auftragsbestätigungen.

  • Voraussetzungen: eine freie Codeunit im Lizenzumfang, Berechtigung zum Importieren und Kompilieren von Codeunits, ein Verzeichnis, auf das der NAV-Dienst zugreifen darf.

  • Ergebnis: NAV liest die Tacto-Exportdateien in einem festen Zeitfenster selbstständig ein und legt sie danach in Unterordnern Archive bzw. Error ab.

❗ Wichtige Hinweise vorab

  • Der automatische Datenimport funktioniert für alle Dynamics NAV Versionen ab Dynamics NAV 2016. Ältere Versionen werden nicht vollumfänglich unterstützt.

  • Lieferanten werden ausschließlich aktualisiert, nie neu angelegt. Ein Lieferant, dessen Nummer in NAV nicht existiert, wird übersprungen.

  • Leere Felder überschreiben keine bestehenden Werte. Nur gefüllte Spalten werden übernommen.

  • Kontakte werden nur synchronisiert, wenn der Lieferant über eine Contact Business Relation mit einem Firmenkontakt verknüpft ist. Der Name des Firmenkontakts wird bewusst nicht überschrieben.

  • Der Import verändert Stammdaten und Bestellungen. Führen Sie den ersten Lauf in einem Testmandanten durch.


Schritt-für-Schritt Anleitung

Schritt 1: Identifizierung einer freien Codeunit in Dynamics NAV (e.g. 50001)

Wählen Sie eine freie Codeunit-ID (z. B. 50001). Berücksichtigen Sie dabei sowohl den Lizenzierungsumfang als auch die bereits verwendeten Codeunits. Eine Codeunit genügt für den gesamten Import-Job.


Schritt 2: Tacto stellt den Importer als .txt zur Verfügung


Schritt 3: Anpassung der .txt-Datei vor dem Import

a.) Anpassung der Codeunit in der .txt-Datei auf ausgewählte Unit (Zeile 1)

b.) Anpassung der konfigurierbaren Variablen

Anforderungen an die Verzeichnisse (gelten für beide Importpfade):

  • Der Microsoft Dynamics NAV Dienst benötigt Lese-, Schreib- und Löschrechte. Der Importer verschiebt Dateien, legt die Unterordner Archive und Error selbst an und schreibt Protokolldateien.

  • Der Zugriff erfolgt durch das Dienstkonto des NAV Service Tier, nicht durch den Client. Das Verzeichnis muss vom Server aus erreichbar sein.

  • In produktiven Umgebungen sollte ein Netzwerkpfad in korrekter UNC-Schreibweise verwendet werden (z. B. \\Server\Freigabe\Pfad).

  • Halten Sie den Pfad kurz. Sehr lange Verzeichnisnamen lassen keinen Platz für Dateinamen und führen zum Abbruch mit Fehlermeldung.

b1) Importpfad Lieferanten & Kontakte (gVCImportFolder)

Definiert das Verzeichnis, in dem die zu importierenden Dateien bereitliegen.

Über gVCDelimiter, gVendorPrefix und gContactPrefix stellen Sie das erwartete Trennzeichen sowie den gleichbleibenden Prefix der Dateinamen ein. Im Standard: ;, Vendor, Contact. Bei Rückfragen kontaktieren Sie hier Ihren zuständigen Solution Engineer.

b2) Importpfad Auftragsbestätigungen (gOCImportFolder)

Definiert das Verzeichnis, in dem die Auftragsbestätigungen bereitliegen. Dieser Pfad darf mit gVCImportFolder identisch sein, die Dateien werden über das Namensmuster unterschieden.

gOCDelimiter und gOCFilePattern legen Trennzeichen und Benennungsmuster der Auftragsbestätigungen aus Tacto fest. Diese Parameter müssen im Standard nicht angepasst werden. Bei Rückfragen wenden Sie sich auch hier an Ihren Solution Engineer.

b3) Zielfeld der order_confirmation_no setzen

Tacto exportiert Auftragsbestätigungen mit einer Auftragsbestätigungsnummer. Diese kann in NAV in zwei Felder geschrieben werden:

  • Vendor Order No. — empfohlen

  • Your Reference

b4) Lieferanten-Artikelnummern in „Item Vendor" erstellen

Setzen Sie gOCCreateItemVendor auf TRUE, wenn für NAV unbekannte Lieferanten-Artikelnummern automatisch angelegt werden sollen. Die Nummer aus der Auftragsbestätigung ist damit künftig in NAV bekannt.

Verhalten im Detail:

  • Fehlender Eintrag → wird angelegt

  • Vorhandener Eintrag ohne Nummer → wird gefüllt

  • Vorhandene, abweichende Nummer → wird nicht überschrieben, sondern protokolliert

c) Speichern Sie den Importer explizit mit der Endung .txt, also z. B. TactoImporter.txt.


Schritt 4: Import der angepassten .txt-Datei in Microsoft Dynamics NAV

a.) Öffnen der Codeunit-Ansicht in Dynamics NAV

b.) Neues File importieren, zur File Location navigieren und abgeänderten Importer importieren.

Sollte das File nicht angezeigt werden, das gesuchte Fileformat auf 'All files' umstellen UND sicherstellen, dass man beim Abspeichern im vorherigen Schritt die .txt-Endung zum Filenamen explizit hinzugefügt hat


Schritt 5: Kompilieren der Codeunit

a.) Auswahl der Codeunit in der Codeunit-Übersicht


b.) F11 drücken (oder via Edit => Kompilieren) die Kompilierung auslösen


Schritt 6: Einbindung der Codeunit in die Aufgabenwarteschlange

a.) Wechseln in die Aufgabenwarteschlangenposten-Ansicht via Suchfeld links oben

b.) Erstellung einer neuen Aufgabenwarteschlangepostens via "Neu" links oben

c.) Definition des Aufgabenwarteschlagepostens:

  • Art des ausführenden Objektes: Codeunit

  • ID des auszuführenden Objekts: Gewählte Codeunit ID

  • Aufgabenwarteschlangen - Kategoriecode: Beliebig / Abhängig von eigener Preferrenz

Wiederholung einstellen:

Intervall

Konfiguration

Empfohlen (mehrmals täglich)

Wochentage aktivieren, Startzeit 07:00, Endzeit 18:00, Anzahl der Minuten zwischen Ausführungen = 5

Einmal täglich

Alle Tage aktivieren, Startzeit setzen, Anzahl der Minuten zwischen Ausführungen = 0

Wöchentlich

Nur einen Wochentag aktivieren, Startzeit setzen (bevorzugt nachts), Anzahl der Minuten zwischen Ausführungen = 0

💡 Tipp:

  • Für den initialen Import & Test hier den aktuellen Zeitraum als Datum und Uhrzeit auswählen. So wird der initiale Import sofort gestartet.

d.) Status des Aufgabenwarteschlangepostens auf "Bereit" setzen

e.) Fertig. Der Posten ist aktiv und startet beim nächsten Ausführungszeitpunkt.


🔄 Was bei jedem Lauf passiert

  • Import: Jeder Lauf verarbeitet alle Dateien, die zu diesem Zeitpunkt mit passendem Prefix bzw. Namensmuster in den konfigurierten Verzeichnissen liegen.

  • Ablage danach: Fehlerfreie Dateien werden nach Archive verschoben. Dateien mit mindestens einer Warnung nach Error — zusammen mit einer gleichnamigen .log-Datei, die jede Warnung samt zugehöriger CSV-Zeile auflistet.

  • Umbenennung: Verarbeitete Dateien erhalten das Präfix Imported_JJJJ-MM-TT_. Bei Namensgleichheit wird ein Zähler angehängt.

  • Fehlertoleranz: Ein Problem mit einer einzelnen Bestellung oder Position wird protokolliert und übersprungen, der Lauf läuft weiter.

  • Harter Abbruch: Bricht ein Lauf mit einem Laufzeitfehler ab, bleibt die verursachende Datei im Importverzeichnis liegen und wird beim nächsten Lauf erneut gelesen. Der Aufgabenwarteschlangenposten zeigt in diesem Fall den Status Fehler samt Meldung.

  • Keine Erfolgsmeldung im Hintergrundbetrieb: Die Abschlussmeldung mit Zeilenzahlen erscheint nur bei manueller Ausführung mit Oberfläche. Die Kontrolle des automatischen Betriebs läuft über Archive und Error.

Regelmäßig prüfen: den Error-Ordner. Nur dort liegen Dateien mit nicht importierten Positionen.

Hat dies deine Frage beantwortet?