Befehlsübersicht DataMigrate Pro

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 --automapping

Mit 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.json

Eine 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.json

Ebenso 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.json
DataMigratePro -t getdata -s 2000000041 -n "BC Field" -m mapping\Field.mapping.json

Der 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 50001

Ausfü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= auto

Oder man kann dies temporär auf der Kommandozeile initiieren

DataMigratePro --service 8000

Hierbei 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:

  1. 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.
  2. Dateien hochladen: Jede Datei wird als Blob in die Tabelle Tenant Media hochgeladen. Dabei wird eine neue GUID für die Datei erstellt.
  3. Verknüpfung mit Zieltabelle: Die generierte GUID wird in das angegebene Media– oder Mediaset-Feld der Zieltabelle eingetragen.
  4. 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:\Produktbilder in das Media-Feld Produktbild der 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