D365NAV — Microsoft Dynamics NAV

Konnektor für Microsoft Dynamics NAV. Unterstützt Lesen und Schreiben über OData.

Der D365NAV-Konnektor verbindet die DataBridge mit Microsoft Dynamics NAV über OData. Er ist auf die ältere NAV-API-Struktur ausgelegt und unterstützt auch OnPremise-Installationen mit NTLM-Authentifizierung.

EigenschaftWert
Lesen✅ unterstützt
Schreiben✅ unterstützt
Job-Filter✅ wird als OData-$filter an NAV übergeben
StatusFreigegeben
Getestete MindestversionNAV 2018

Verbindungsparameter

Cloud-Umgebung (OAuth2)

{
  "clientId": "<App-Registration Client ID>",
  "clientSecret": "<App-Registration Client Secret>",
  "tenantId": "<Entra Tenant ID>",
  "environment": "<NAV-Umgebungsname>",
  "companyId": "<Company ID (GUID)>",
  "url": "https://<server>/<pfad>/"
}

OnPremise-Umgebung (NTLM)

{
  "userName": "<domain\\benutzername>",
  "password": "<Passwort>",
  "url": "https://<server>:<port>/<pfad>/",
  "baseAddress": "https://<server>:<port>/",
  "authenticationMethod": "NTLM"
}

Optionale Parameter

ParameterStandardwertBeschreibung
scopehttps://api.businesscentral.dynamics.com/.defaultOAuth2-Scope beim Token-Abruf
baseAddress(leer)Basis-Adresse für den NTLM-Credential-Cache
authenticationMethodBasicSiehe Hinweis oben
maxPageSize5000Maximale Datensätze pro Abruf-Seite
languagede-DEKultur für die Interpretation von Zahlen- und Datumsformaten
httpClientTimeoutSeconds100Zeitlimit für einzelne HTTP-Aufrufe in Sekunden
keyVaultUrl(leer)Key-Vault-Secret-URL; ersetzt sämtliche übrigen Parameter
logCreateRequestsfalseProtokolliert die vollständigen Anfragen beim Anlegen
logUpdateRequestsfalseProtokolliert die vollständigen Anfragen beim Aktualisieren
logReceivedDatafalseProtokolliert die vollständigen Antwortdaten

Die drei Diagnose-Schalter erzeugen erhebliche Datenmengen und können Geschäftsdaten im Klartext protokollieren — nur gezielt für die Dauer einer Analyse aktivieren. Vollständige Beschreibung unter Verbindungen.


Tabellen- und Feldnamen

  • SourceTable / TargetTable: Name des OData-EntitySets, so wie er in $metadata steht
  • SourceField / TargetField: Exakter Feldname aus der NAV-OData-API (case-sensitive)

Unterstützte TargetKey-Typen

TypBeschreibung
PrimaryKeyNAV-nativer Primärschlüssel. Der Wert wird in Anführungszeichen gesetzt.
IdSystemeigene ID. Der Wert wird ohne Anführungszeichen eingesetzt.
CustomKeyBenutzerdefinierter Schlüssel über ein oder mehrere Felder
FilterSuche über Feldwert-Kombination

Bei CustomKey werden die Metadatentypen int32 und string unterstützt, bei Filter die Typen string und guid. Jeder andere Typ des Schlüsselfeldes führt zum Abbruch (Metadata type … not yet implemented for CreateKeyString).


SourceOperations

LookupValue

Liest einen Wert aus einer anderen NAV-Tabelle nach — Aufbau und Parameter wie beim D365BC-Konnektor.

{
  "Operations": [
    {
      "Name": "LookupValue",
      "Parameters": {
        "LookupType": "Attribute",
        "SourceField": "countryRegionCode",
        "LookupTable": "CountryRegions",
        "LookupField": "Name",
        "UseCache": true
      }
    }
  ]
}

Unterstützt wird ausschließlich LookupType: Attribute. Der Wert Name führt zu einem Abbruch (SourceOperation for Lookups).

ReadFromMessage

Liest einen Wert aus der NAV-Antwort — nur in ResponseJobs. Das SourceField muss einen _-Prefix haben. Verhalten wie bei D365BC.


Datentypen — Zieltyp und akzeptierte Quelltypen

Beim Schreiben bestimmt der Datentyp des Zielfeldes aus den NAV-Metadaten, welche Umwandlung angewendet wird.

Zieltyp (NAV-Metadaten)Akzeptierte QuelltypenVerhalten und Sonderfälle
Booleanboolean, stringLeerwert → null. Ein nicht als Wahrheitswert lesbarer Text führt zum Abbruch.
Datedate, datetime, stringAusgabe im Format yyyy-MM-dd. Leerwert → 0001-01-01.
DateTimeOffsetdate, datetime, stringAusgabe im Format yyyy-MM-ddTHH:mm:ss.fffZ. Leerwert → 0001-01-01T00:00:00.000Z.
Decimaldecimal, money, doubleInterpretation mit der Kultur aus language. Leerwert → null.
Decimalstring (ab v2.1)Interpretation immer als en-US (Punkt als Dezimaltrennzeichen), unabhängig von language.
Double (ab v2.1)decimal, money, doubleInterpretation mit der Kultur aus language. string wird nicht akzeptiert und führt zum Abbruch.
Guidguid, string, entityreferenceLeerwert → 00000000-0000-0000-0000-000000000000, nicht null.
Int32int32, optionsetvalue, stringLeerwert → null. Nicht als Ganzzahl lesbarer Wert → Abbruch.
Stringalle QuelltypenWert wird getrimmt. Leerwert → null. Liegt eine OptionMapping-TargetOperation vor, wird stattdessen der zugeordnete Wert geschrieben; ein unbekannter Quellwert führt zum Abbruch.

Jeder in der Tabelle nicht genannte NAV-Zieltyp führt beim Schreiben zu einem Abbruch (No Resolver defined for edmPrimitiveTypeKind …).


ResponseJob

Der NAV-Konnektor unterstützt das ResponseJob-Muster wie D365BC: Nach erfolgreichem Schreiben in NAV kann ein ResponseJob ausgelöst werden, der Felder aus der NAV-Antwort (z. B. neu vergebene Nummern) zurück ins Quellsystem schreibt. Aufbau und Konfiguration sind unter D365BC → ResponseJob beschrieben.


Änderungserkennung (Watermark)

EigenschaftWert
Empfohlener WatermarkTypedatetime oder date
Typisches WatermarkFieldSystemabhängig — z. B. Last_Date_Modified, Timestamp
Filterformat{{WatermarkField gt %watermark%}}

Im Gegensatz zu Business Central gibt es kein einheitliches lastModifiedDateTime-Feld. Das korrekte Watermark-Feld hängt von der NAV-Version und der verwendeten Seite bzw. Codeunit ab. Im Zweifelsfall mit dem NAV-Administrator klären.

Der Filterausdruck aus dem Job wird als OData-$filter an die NAV-Anfrage angehängt. Die Regeln zur Klammerung und zum Platzhalter %watermark% sind unter Jobs → Filter-Syntax beschrieben.


Fehlersuche

Fehler beim Schreiben werden mit dem Text Error in NAV-Communication protokolliert, zusammen mit der verwendeten relativen Adresse sowie dem neuen und dem bestehenden Datensatz. Bis einschließlich v2.0 lautete derselbe Text irreführend Error in BC-Communication — ältere Logeinträge einer NAV-Verbindung sind also trotz BC-Nennung dem NAV-Konnektor zuzuordnen.