Produkt registrieren
Den secret-key erhalten Sie mit dem Demolizensierung oder per E-Mail nach offizieller Bestellung
DataMigratePro --registration <secret-key> --tenantid <TenantID>Schnittstellen festlegen
Sowohl die SQL-Server Datenbank als auch die Business Central Instanz muss dem Programm zur weiteren Arbeit bekannt gemacht werden.
Um eine Datenübertragung zu ermöglichen muss eine sogn. App-Resource angelegt und in Business Central konfiguriert und mit den entsprechenden Berechtigungen versehen werden. Näheres liefert die Dokumentation How to Register Business Central App with API Permissions in Azure Portal – NAVUSER
DataMigratePro /
--sqlconnection "Data Source=localhost;Initial Catalog=Demo Database NAV (6-0);Integrated Security=SSPI;" /
-w "https://api.businesscentral.dynamics.com/v2.0/<TenantID>/<Environment>/ODataV4/Upload_LoadData?company=<Company>" /
--tenantid <TenantID> --clientid <ClientID> /
--clientsecret <Client Secret> /
--sourcecompany <Source Company> /
--mappingdatabase <Mappin
--destinationcompany <Destination Company> Nachdem die Schnittstellen über obigen Befehl festgelegt wurden, hat DataMigratePro die Datei settings.json erstellt.
{
"SqlConnectionString": "Data Source=localhost;Initial Catalog=Demo Database NAV (6-0);Integrated Security=SSPI;",
"SourceDatabase": "Demo Database NAV (6-0)",
"SourceCompany": "<Source Company>",
"DestinationCompany": "<Destination Company>",
"TenantInfo": {
"TenantId": "<TenantID>",
"ClientId": "<ClientID>",
"ClientSecret": "<Client Secret>"
},
"BlobMagicSignature": [ 2, 69, 125, 91 ],
"EndpointUrl": "https://api.businesscentral.dynamics.com/v2.0/<TenantID>/<Environment>/ODataV4/Upload_LoadData?company=<Company>",
"MappingDatabase": "Migration"
}Übertragung der Mapping-Konfiguration
Über folgenden Befehl werden die Mapping-Konfigurationen vom Quellsystem zum Zielsystem übertragen
DataMigratePro -t saveconfigurationÜber folgenden Befehl werden die Mapping-Konfigurationen vom Zielsystem zum Quellsystem übertragen
DataMigratePro -t loadconfigurationÜbertragen aller Stamm- und Einrichtungsdaten
Sobald die Navision-Datenbank um die Konfigurationstabellen erweitert wurde, kann die erste Übertragung gestartet werden.
DataMigratePro -t putalldata --automappingMit dem Schalter putalldata werden alle Tabelleninhalte nach Business Central gesendet, deren Kategorie Stammdaten oder Einrichtung ist.

Übertragen aller gebuchten Belege und Posten
Mit putalldata werden auch dann vor der Übertragung der Daten die Daten der Zieltabelle gelöscht, wenn in der Konfiguration zur jeweiligen Tabelle die Option Delete before Transfer gesetzt wurde.
DataMigratePro -t putalldata --tablegroup "3,4" --automappingÜbertragen geänderter Daten
Sofern in Navision für Tabellen das Änderungsprotokoll ausgeführt wird, werden über folgenden Befehl nur die Änderungen nach Business Central gesendet.
DataMigratePro -t putalldata --changesonly 1 --automappingÜbertragung einzelner Tabellen
Sofern aus eigenen Abfragen heraus Daten erzeugt und an Business Central gesendet werden sollen, muss neben dem eigentlichen Befehl auch zuvor eine Mapping Datei angelegt werden. Hier erst einmal der Befehl.
DataMigratePro -t putdata -s 50149 \ -i "SELECT Feld1,Feld2 FROM Datenbank.dbo.MeineTabelle" \ -m mapping\MeineTabelle.mapping.jsonEine passende Mapping-Datei könnte dann so aussehen:
{
"MeineTabelle": [
{
"FieldNo": 1,
"FieldName": "Feld 1",
"MappedName": "Feld1",
"Validate": false
},
{
"FieldNo": 2,
"FieldName": "Feld 2",
"MappedName": "Feld2",
"Validate": false,
"Format": "yyyy-MM-ddTHH:mm:ss"
}
],
"ValidateOnInsert": false,
"ValidateOnModify": false,
"ValidateOnDelete": false
}Empfangen von Daten
Soll festgestellt werden, was zuletzt an Business Central gesendet wurde, muss zuvor über einen Befehl diese Information abgefragt werden:
DataMigratePro -t getdata -s 50005 -n "BC Table Statistics" -m mapping/TableStatistics.mapping.jsonEbenso kann man die aktuelle Struktur der Tabellen in Business Central in die Konfiguration Datenbank einlesen
DataMigratePro -t getdata -s 2000000058 -v "WHERE(Field1=1(1))" -n "BC Table" -m mapping\AllObjWithCaption.mapping.jsonDataMigratePro -t getdata -s 2000000041 -n "BC Field" -m mapping\Field.mapping.jsonDer erste Befehl lädt alle verfügbaren Tabellen ein, während der zweite Befehl die zugehörigen Felder ausließt. Die entsprechenden Tabellen BC Table und BC Field sind anschließend aktualisiert.
Löschen von Daten in Business Central
Komplette Inhalte oder eine gefilterte von Datensätze können über deletedata gelöscht werden. So wird im folgenden Befehl der Datensatz der Tabelle Payment Terms mit dem Primärschlüssel LM gelöscht.
DataMigratePro -t deletedata -s 3 -v "WHERE(Field1=1(LM)"Ausführen von Codeunits
Mit folgendem Befehl wird die Codeunit 50001 ausgeführt.
DataMigratePro -t execute -s 50001Ausführen von DataMigratePro als Service
Man kann entweder DataMigratePro als permanenten Hintergrunddienst laufen lassen indem man diesen als Service installiert.
sc create DataMigrateProService binPath= "\"C:\path\to\DataMigratePro.exe\" --service 8000" start= autoOder man kann dies temporär auf der Kommandozeile initiieren
DataMigratePro --service 8000Hierbei ist die Portnummer frei zu wählen. Indem man die Funktion SendDataToBusinessCentral in der mitgelieferten Codeunit BC Migration Manager mit dem einzigen Parameter RecordRef aufruft, wird genau dieser Datensatz sofort aber asynchron an Business Central gesendet. Zuvor wurde in der lokalen Konfiguration in Navision der PC-Name und der Port angegeben, auf dem dieser Service läuft.

Import von Bildern und Dateien in Business Central (noch nicht implementiert)
Der Parameter -t importimages ermöglicht das automatische Einlesen einer Verzeichnisstruktur und das Hochladen von Dateien in das Business Central System. Diese Dateien werden einem Media– oder Mediaset-Feld einer bestimmten Tabelle zugeordnet. Nach dem Import steht in dem jeweiligen Feld eine GUID, die auf die Tabelle Tenant Media verweist, in der die eigentlichen Dateien gespeichert werden.
Befehlssyntax:
DataMigratePro -t importimages -s <TableNo> --field <FieldName> --sourcepath "<Pfad zur Verzeichnisstruktur>"Parameterbeschreibung:
-s <TableNo>: Gibt die Ziel-Tabelle in Business Central an, in die die Bilder importiert werden.--field <FieldName>: Gibt das Zielfeld in der Tabelle an, das als Media oder Mediaset konfiguriert ist.--sourcepath "<Pfad zur Verzeichnisstruktur>": Gibt das Quellverzeichnis mit den zu importierenden Dateien an.
Funktionsweise:
- Verzeichnis scannen: Das angegebene Quellverzeichnis wird rekursiv durchsucht, um alle unterstützten Dateiarten zu identifizieren. Der jeweilige Verzeichnisname bestimmt den Primärschlüssel der Zieltabelle.
- Dateien hochladen: Jede Datei wird als Blob in die Tabelle Tenant Media hochgeladen. Dabei wird eine neue GUID für die Datei erstellt.
- Verknüpfung mit Zieltabelle: Die generierte GUID wird in das angegebene Media– oder Mediaset-Feld der Zieltabelle eingetragen.
- Speicherung in Tenant Media Set: Falls ein Mediaset verwendet wird, werden die hochgeladenen Dateien mit einem Tenant Media Set verknüpft.
Beispiel:
DataMigratePro -t importimages -s 50000 --field "Produktbild" --sourcepath "C:\Produktbilder"- Dieser Befehl importiert alle Bilder aus
C:\Produktbilderin das Media-FeldProduktbildder Tabelle 50000 (z. B. Artikel). - Die Bilder werden in Tenant Media gespeichert, und die Feldwerte in der Artikeltabelle enthalten nach dem Import die entsprechenden GUIDs.
Voraussetzungen:
- Die Zieltabelle muss ein Media– oder Mediaset-Feld enthalten.
- Die Business Central Instanz muss für die Verwendung von Media-/Mediaset-Feldern konfiguriert sein.
Unterstützte Dateiformate:
- Bilder:
jpg,png,gif,bmp,tiff - Dokumente:
pdf,txt,docx