Skip to content

Basis-Konfiguration

Für jeden zu migrierenden Mandanten / Kunden muss ein eigenes appsettings.json erstellt werden. Es ist nicht möglich, mehrere Mandanten in der Konfiguration zu hinterlegen.

Die nachfolgenden Konfigurationen sind obligatorisch und müssen angegeben werden, damit das CMI MigrationTool lauffähig ist.

Zielsystem (CMI Server)

Je nachdem, welche der beiden Betriebsarten gewählt wurde, muss das Zielsystem (CMI Server) entweder mittels MetatoolFileClient oder MetatoolHttpClient mit StsClient konfiguriert werden.

MetatoolFileClient

Hier wird die Betriebsart Validierung über lokal hinterlegtes Modell konfiguriert (siehe Betriebsarten).

"MetatoolFileClient":
{
  "ModelXmlFilePath": "C:\\Temp\\MigrationNasa\\model.xml",
  "TargetSystemDataChecksPath": "C:\\Temp\\MigrationNasa"
  "TargetSystemDataCheckResultsFilePath": "C:\\Testmigration\\DataCheckResults.json"
},
  • ModelXmlFilePath: definiert die XML-Datei des CMI-Modells, welche für die Modellvalidierung verwendet werden soll.
  • TargetSystemDataChecksPath: definiert den Pfad im Dateisystem, wo die Datenprüfungen für das Zielsystem (DataChecks.json) abgelegt werden sollen.
  • TargetSystemDataCheckResultsFilePath: definiert die Json-Datei, welche die Resultate der Datenprüfungen aus dem Zielsystem beinhaltet (DataCheckResults.json). Ist nur dann obligatorisch, wenn das MigrationTool mit dem Parameter "convert" ausgeführt wird und somit ein Resultat der Datenprüfung aus dem Zielsystem (DataCheckResults) erwartet wird.

MetatoolHttpClient

Hier wird die Betriebsart Validierung direkt über Endpoint des CMI-Servers konfiguriert (siehe Betriebsarten).

"MetatoolHttpClient":
{
  "OwinPrivateUrl": "http://localhost:10003"
}
  • OwinPrivateUrl: Url des Owin-Privateport im CMI-Zielsystem

Hinweis: Im Zusammenhang mit dieser Betriebsart muss gleichzeitig der StsClient konfiguriert sein.

StsClient

Falls die Betriebsart MetatoolHttpClient konfiguriert ist, muss zusätzlich die Konfiguration für den STS vorgenommen werden. Für die Kommunikation mit dem CMI Server via Http-Endpunkt wird der STS vorausgesetzt.

"StsClient":
{
  "Enabled": true,
  "Authority": "https://sts3.cloud.local/dev",
  "Client_Secret": "meinClientPasswort",
  "Client_Id": "meineClientId",
  "Acr_Values": "dev"
}

Input Migrationsdaten

Je nachdem, welches Format die Migrationsdaten vorweisen, muss ein entsprechender DataReader konfiguriert sein (z.B. CsvDataReader bei LehrerOffice, iCampus oder JsonDataReader bei bestehendem CMI-Mandant).

Hinweis: Es darf nur entweder JsonDataReader oder CsvDataReader konfiguriert sein, da jeweils nur ein mögliches Format von Migrationsdaten (Input) definiert werden kann.

CsvDataReader

Hier kann konfiguriert werden, in welchem Ordner die Csv-Migrationsdateien abgelegt sind (Csv-Dateien mit Migrationsdaten von einem Drittsystem) und in welchem Format sie vorliegen.

"CsvDataReader":
{
  "FilesPath": "C:\\Temp\\Migration\\csvInput",
  "FieldDelimiter": "\t",
  "LineEnding": "\r\n",
  "Encoding": "UTF-8"
  "Quote": "\""
}
  • FilesPath: Angabe des Pfades der Csv-Migrationsdateien (obligatorisch)
  • FieldDelimiter: Angabe des Trennzeichens zwischen den Feldwerten (optional, Standartwert ist "\t")
  • LineEnding: Angabe des Zeichens am Ende einer Zeile (optional, Standartwert ist "\r\n")
  • Encoding: Verwendetes Encoding der Csv-Dateien (optional, Standartwert ist "UTF-8")
  • Quote: Angabe der Markierung von Spalten, sodass z.B. Multiline-Felder auch Zeilenumschläge enthalten können. Bei der Definition eines Quotes darf dieser nicht im Inhalt eines Felder erscheinen (optional, Standartwert ist \<keine Angabe>)

JsonDataReader

Hier kann konfiguriert werden, in welchem Ordner die Json-Migrationsdateien abgelegt sind (Json-Dateien mit Migrationsdaten von einem anderen CMI-Mandant) und in welchem Format sie vorliegen.

"JsonDataReader":
{
  "FilesPath": "C:\\Temp\\Migration\\jsonInput",
  "Encoding": "UTF-8"
}
  • FilesPath: Angabe des Pfades der Json-Migrationsdateien (obligatorisch)
  • Encoding: Verwendetes Encoding der Json-Dateien (optional, Standartwert ist "UTF-8")

Output Migrationsdaten

Falls das CMI MigrationTool mit Parameter "convert" ausgeführt wird, muss der Output der konvertierten Migrationsdaten konfiguriert werden.

DirectImportConverterService

Hier wird konfiguriert, in welchem Ordner die Json-Dateien für den CMI DirectImport abgelegt werden sollen.

"DirectImportConverterService":
{
  "FilesPath": "C:\\Temp\\Migration\\jsonOutput"
}

Die optionale Konfiguration “SingleFileTypesOrder” ermöglicht die Erstellung einer einzigen Json-Datei für den DirectImport. Dem Migrationstool muss mitgeteilt werden, in welcher Reihenfolge die Typdefinitionen in diese Datei exportiert werden sollen. Die Reihenfolge wird in einem Array mit den Schlüsseln der Typdefinitionen angegeben. Es können auch Supertypen angegeben werden, was bewirkt, dass entsprechende (nicht explizit erwähnte) Subtypen in beliebiger Reihenfolge in die Json-Datei exportiert werden.

"DirectImportConverterService":
{
  "FilesPath": "C:\\Temp\\Migration\\jsonOutput",
  "SingleFileTypesOrder": ["Land", "Kontakt", "Personaldossier", "AbstraktesGeschaeft"]
}

Log

Level

Die Konfiguration des Log-Levels erfolgt unter "Logging".

"Logging":
{
  "LogLevel": {
    "Default": "Information",
    "Microsoft": "Warning",
    "Microsoft.Hosting.Lifetime": "Information"
  }
}

Output

Unter "Serilog" kann die Art und Weise konfiguriert werden, wie geloggt werden soll (Konsole, File...)

"Serilog":
{
  "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
  "WriteTo": [
    {
      "Name": "Console",
      "Args": {
        "theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console",
        "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} <s:{SourceContext}>{NewLine}{Exception}"
      }
    },
    {
      "Name": "File",
      "Args": {
        "path": "C:\\CMI\\sadl\\Installation\\migration-schule.log",
        "outputTemplate": "{Timestamp:o} [{Level:u3}] ({Application}/{MachineName}/{ThreadId}/{ThreadName}) {Message}{NewLine}{Exception}"
      }
    }
  ]
}