Skip to main content

MESO-Archiveexport

Diese .NET Kommandozeilenanwendung exportiert Dokumente aus einem WinLine©-Archiv und unterstützt dabei verschiedene Filter- und Umwandlungsoptionen


Übersicht

Das Mesonc Archiv Export Tool ermöglicht das Extrahieren und Exportieren von Dokumenten aus einer Mesonic-Datenbank.
Folgende Hauptfunktionen werden bereitgestellt:

  1. Export-Dokumente nach IDs
    Exportiert eine definierte Liste von Dokument-IDs mit Hilfe des Befehls export-documents.

  2. Export-Dokumente nach Filter
    Exportiert alle Dokumente, die einem bestimmten Filter (z. B. Start-ID, Start-Datum, Formular-IDs usw.) entsprechen, via export-range.

  3. Export-Dokumente nach Archivexportparametern des Mandanten
    Exportiert alle Dokumente des angegebenen Mandanten auf Basis der letzten exportierten Dokument-ID. Mit --usearchiveexport.

Zusätzlich stehen optional folgende Funktionen zur Verfügung:

  • Umwandlung von SPL-Dateien in PDF.
  • Zusätzlicher Prefix (Dokumenten-ID) im Dateinamen.

Systemvoraussetzungen

Zurück zum Anfang

  • Kompatible WinLine Version: ab WinLine Edition 2022
  • MDP Runtime Lizenz (vom Mesonic Vertriebspartner bereitzustellen)
  • .NET 8 Runtime oder höher.
  • Zugriff auf die Mesonic-Datenbank (SQL Server) mit dem meso Benutzer oder mittels integrierter Sicherheit (Windows Authentication)
  • Schreibrechte in dem Verzeichnis, in das Dokumente exportiert werden sollen.
  • Das Tool benötigt Zugriff auf die Mesospool.exe-Datei, um ggf. SPL-Dateien zu PDF zu konvertieren.
  • Lizenz

Installation

Zurück zum Anfang

  1. Nachdem die aktuelle Version heruntergeladen wurde, sollte über die Dateieigenschaften der .ZIP-Datei (current.zip) im Bereich Sicherheit der standardmäßig blockierte Zugriff gelassen werden, damit die Anwendung beim Start nicht durch den Windows Smart-Screen Filter als Verdächtig identifiziert wird.

  2. Kopiere die bereitgestellten Dateien in ein beliebiges Verzeichnis.

  3. Stelle sicher, dass du eine gültige .NET-Runtime installiert hast (zum Beispiel .NET 8).

  4. Platziere die Anwendung so, dass du sie über die Konsole aufrufen kannst:

    cd C:\Pfad\zum\Tool
    MesoArchiveExport.exe --help
    
  5. Appsettings.json ergänzen:

    1. Lizenz eintragen (ohne gültige Lizenz läuft die Anwendung im Testmodus). Die Lizenzdaten sind in der Datei appsettings.json gespeichert.
    2. Optional: Einstellungen für den Export eintragen, falls nicht über Kommandozeilenparameter gestartet wird. Siehe Konfiguration über appsettings.json.]

License

  "License": 
  {
    "CustomerNr": "",
    "LicenseNr": ""
  }

Die License-Einstellung enthält die Lizenzdaten, die Ihnen von Ihrem Mesonic Partner mitgeteilt wurde.

Ohne Angabe der Lizenz läuft die Anwendung im Test-Modus, es werden alle Daten gelesen und ausgegeben (zu Testzwecken) aber nicht gespeichert.

  • CustomerNr: Die Kundennummer, die den Lizenzinhaber eindeutig identifiziert.
  • LicenseNr: Die Lizenznummer für die Softwareaktivierung.

Konfiguration über appsettings.json

Neben den Kommandozeilenparametern können alle erforderlichen Einstellungen auch in der appsettings.json hinterlegt werden. Wird die Anwendung ohne Kommandozeilenparameter gestartet, lädt sie automatisch die Konfiguration aus dieser Datei und führt den Export-Vorgang anhand der dort definierten Parameter aus.

Dies betrifft insbesondere folgende Bereiche:

  • ConnectionStrings
    Definiert den Connection-String zur Mesonic System-Datenbank (z. B. unter dem Schlüssel "WinLineSystem").

  • License
    Enthält die Lizenzdaten (CustomerNr, LicenseNr).

  • ArchiveExport
    Hier werden alle für den Export relevanten Einstellungen definiert:

    • ExportDirectory: Verzeichnis, in das die exportierten Dokumente geschrieben werden.
    • PathToMesospool: Pfad zur Mesospool.exe.
    • Company: Mandant, für den exportiert werden soll.
    • FormIds: Formular-IDs für den Filter-Export.
    • StartDate: Startdatum für den Export.
    • StartDocumentId: Start-Dokumenten-ID (Standardwert 0).
    • UseArchiveExportSettings: Gibt an, ob die Archivexport-Einstellungen des Mandanten genutzt werden sollen.
    • SplToPdf: Gibt an, ob SPL-Dateien in PDF umgewandelt werden sollen.
    • DocIdPrefix: Gibt an, ob die Dokumenten-ID als Dateinamen-Prefix genutzt werden soll.

Beispiel: appsettings.json

{
  "License": {
    "CustomerNr": "",
    "LicenseNr": ""
  },
  "ConnectionStrings": {
    "WinLineSystem": "Server=ws01;Database=CWLSYSTEMCRM;Integrated Security=true;TrustServerCertificate=true"
  },
  "ArchiveExport": {
    "ExportDirectory": "C:\\Exports",
    "PathToMesospool": "C:\\WinLineCrmDemo\\",
    "Company": "500M",
    "FormIds": [ 1, 2 ],
    "StartDate": "2025-01-01T00:00:00",
    "StartDocumentId": 0,
    "UseArchiveExportSettings": false,
    "SplToPdf": true,
    "DocIdPrefix": true
  }
}

Nutzung

Starten Sie die Anwendung ohne Kommandozeilenparameter:

MesoncArchivExportTool.exe

In diesem Fall werden die in der appsettings.json definierten Einstellungen automatisch geladen und der Export-Vorgang (z. B. über export-range) wird ausgeführt.
Hinweis: Falls gleichzeitig Kommandozeilenparameter angegeben werden, haben diese Vorrang vor den Einstellungen in der Konfiguration.


Aufruf und Optionen

Globale Optionen

Option Alias Beschreibung Pflicht? Beispiel
--winlinepath <DirectoryInfo> --w Pfad zur Mesospool.exe (in der Regel ein WinLine-Verzeichnis) Ja --winlinepath "C:\\Winline"
--server <String> --s SQL Server-Instanz der Mesonic System-Datenbank Ja --server "MyServer\\SQL2019"
--systemdatabase <String> --db Name der Mesonic System-Datenbank Ja --systemdatabase "mesoSystemDB"
--mesopassword <String> --p Passwort für den meso-Benutzer. Wenn --integratedsecurity aktiv ist, kann dies leer/optional bleiben. Nein (siehe Hinweis) --mesopassword "TopSecret"
--integratedsecurity <bool> --i Verwendet integrierte Windows-Sicherheit für die Datenbankverbindung (nur Windows). Falls true, wird --mesopassword nicht benötigt. Nein (default: false) --integratedsecurity true
--export-directory <String> --d Exportverzeichnis für die Dokumente. Wenn nicht angegeben, wird das aktuelle Verzeichnis verwendet. Nein --export-directory "D:\\Exports"
--mesocomp <String?> --c Welcher Mandant soll exportiert werden? Leer = alle.
Wichtig: Bei --usearchiveexport (siehe unten) ist ein Mandant Pflicht!
Nein (Pflicht mit --usearchiveexport) --mesocomp "MeinMandant"
--spltopdf <bool> (kein Alias) Sollen SPL-Dateien automatisch in PDF konvertiert werden? Nein (default: true) --spltopdf false
--docidprefix <bool> (kein Alias) Soll die Dokument-ID als Prefix für den Dateinamen genutzt werden, um Dateinamen eindeutig zu halten? Nein (default: true) --docidprefix false

Befehl: export-documents

Exportiert bestimmte Dokumente anhand einer Liste von Dokumenten-IDs.

Option Beschreibung Pflicht? Beispiel
--ids <List<int>> Kommagetrennte Liste von Dokumenten-IDs Ja --ids 101,102,500

Beispielaufruf:

MesoncArchivExportTool.exe export-documents 
    --winlinepath "C:\\Winline"
    --server "MyServer"
    --systemdatabase "mesoSystem"
    --mesopassword "MySecret"
    --ids 10,11,12
    --export-directory "C:\\ArchivExport"
    --spltopdf false
    --docidprefix false
  • Exportiert Dokumente mit ID 10, 11, 12 in C:\\ArchivExport.
  • SPL wird nicht in PDF umgewandelt.
  • Dokument-ID keine Prefix (Dateinamen).

Befehl: export-range

Exportiert alle Dokumente, die den angegebenen Filterkriterien entsprechen.
Ohne weitere Filter werden alle Dokumente (ab ID=0) eines Mandanten bzw. aller Mandanten exportiert.

Option Beschreibung Pflicht? Beispiel
--start <int> Ab welcher Dokumenten-ID soll exportiert werden (optional)?
Standard: 0 (beginnt bei ID=0).
Nein --start 500
--start-date <DateTime?> Ab welchem Datum (Schlagwort-Tagesdatum) soll exportiert werden? Nein --start-date 2024-01-01
--formids <List<int>> Kommagetrennte Liste von Formular-IDs (optional). Nein --formids 10,11,12
--usearchiveexport <bool> Wenn true, werden die Archivexport-Einstellungen (letzte exportierte Dok-ID) des Mandanten gelesen und aktualisiert.
Erfordert zwingend --mesocomp.
Nein (default: false) --usearchiveexport true

Besonderheit bei --usearchiveexport:

  • Die Option liest den zuletzt exportierten Stand aus den Mandanten-Einstellungen und setzt --start intern auf (letzteID + 1).
  • Nach erfolgreichem Export wird die neue Export-Dokumenten-ID automatisch in der Datenbank aktualisiert.
  • Wenn --mesocomp fehlt, wird ein Fehler gemeldet.

Beispielaufruf:

MesoncArchivExportTool.exe export-range
    --w "C:\\Winline"
    --s "SQLSERVER01"
    --db "mesoSystem"
    --p "geheim"
    --mesocomp "MeinMandant"
    --start 1000
    --start-date 2024-01-01
    --formids 10,12
    --spltopdf true
    --docidprefix true
  • Startet den Export ab Dokument-ID = 1000
  • Filter: Datum >= 2024-01-01, Formular-IDs 10 und 12.
  • SPL -> PDF-Konvertierung aktiviert, DokumentenID als Prefix.
  • Da --usearchiveexport nicht gesetzt ist, wird --start exakt so genutzt.

Beispiele

1. Einfacher Export von Dokumenten-IDs

MesoncArchivExportTool.exe export-documents
  --winlinepath "C:\\Winline"
  --server "MyServer"
  --systemdatabase "mesoSystem"
  --mesopassword "TopSecret"
  --ids 101,102,103
  • Dokumenten-IDs 101, 102, 103 werden exportiert.
  • Standardverhalten: SPL -> PDF, Dokument-ID als Prefix.

2. Range-Export mit integrierter Sicherheit (Windows Auth)

MesoncArchivExportTool.exe export-range
  --w "C:\\Winline"
  --s "MyServer" 
  --db "mesoSystem"
  --integratedsecurity true
  --start 500
  --start-date 2023-01-01
  --formids 10,12,20
  --docidprefix false
  • Nutzt integrierte Windows-Sicherheit (--integratedsecurity true), kein SQL-Passwort notwendig.
  • Export ab Dokumenten-ID = 500, Datum >= 2023-01-01, für Formular-IDs 10,12,20.
  • Ohne Dokument-ID-Prefix im Dateinamen.

3. Archivexport-Einstellungen verwenden (--usearchiveexport)

MesoncArchivExportTool.exe export-range
  --w "C:\\Winline"
  --s "SQLSERVER01"
  --db "mesoSystem"
  --p "geheim"
  --mesocomp "MeinMandant"
  --usearchiveexport true
  • --usearchiveexport true: Liest die zuletzt exportierte Dokument-ID aus der Systemdatenbank für Mandant "MeinMandant".
  • Startet dann ab der ID + 1.
  • Nach dem Export wird der neue Export-Stand gespeichert, sodass ein erneuter Aufruf später an der richtigen Stelle fortsetzt.
  • Filter wie --start, --start-date, --formids können zusätzlich kombiniert werden, falls gewünscht.

Fehlerbehandlung und Logs

  • Standard-Logs:
    • Eine Datei namens archiveexport_YYYYMMDD.log wird unter /logs angelegt, zusätzlich erfolgt eine Konsolenausgabe.
  • SQL-Verbindungsfehler:
    • Das Tool protokolliert den Fehler und gibt 1 als Exit-Code zurück.
  • Fehlende Mesospool.exe:
    • Das Tool gibt eine entsprechende Fehlermeldung aus, falls der angegebene Pfad ungültig ist.
  • ArchivDokumentNichtVorhandenException oder ArchivDokumentUngueltigException:
    • Das Tool protokolliert diese Fehler und fährt beim nächsten Dokument fort.

Verbesserungsvorschläge und Fragen

Bitte an [email protected]


Änderungen und Aktualisierungen vorbehalten.