Konfiguration
Die Konfiguration erfolgt über die Datei appsettings.json. Änderungen an der Konfiguration werden zur Laufzeit automatisch übernommen (Hot-Reload via IOptionsMonitor).
Beim Start werden die Pflichtparameter validiert. Fehlende oder ungültige Werte führen zu einem sofortigen Abbruch mit Fehlermeldung.
{
"License": {
"LicenseNr": "",
"CustomerNr": ""
},
"Company": "500M",
"ConnectionString": "XpoProvider=MSSqlServer;data source=WS01;integrated security=SSPI;initial catalog=CWLSYSTEM;TrustServerCertificate=True;",
"ImportPath": "C:\\Archivimport",
"FileFilter": "*.pdf",
"Belege": {
"Folder": "Belege",
"Regex": "^(?<nummer>[^-]+-[^.]+)\\.[^.]+$",
"KeywordMapping": "1=Kontonummer,43=Auftragsnummer,49=DatumLieferschein:dd-MM-yyyy",
"FileFilter": "*.pdf;*.tif"
},
"Artikel": {
"Folder": "Artikel",
"Regex": "^Artikel_(?<nummer>.+)\\.[^.]+$",
"KeywordMapping": "41=Artikelnummer"
},
"Personenkonten": {
"Folder": "Personenkonten",
"Regex": "^Konto_(?<nummer>.+)\\.[^.]+$",
"KeywordMapping": "1=Kontonummer"
},
"MandantenVerzeichnisse": false,
"EnableBelegKeyFallback": true,
"Watch": true,
"SuccessFolder": "Erfolgreich",
"ErrorFolder": "Fehler",
"Split": {
"Enabled": false,
"SplitPath": "C:\\Archivimport-Split",
"Strategie": "Barcode",
"Barcode": {
"Symbologien": ["QR_CODE", "CODE_128"],
"RenderDpi": 200
},
"Ocr": {
"Regex": "Lieferschein\\s*Nr\\.?\\s*(?<nummer>[0-9]+-[0-9]+)",
"Sprache": "german",
"RenderDpi": 300
}
}
}
Lizenz
| Parameter | Beschreibung |
|---|---|
License:LicenseNr |
Lizenznummer |
License:CustomerNr |
Kundennummer |
Die Lizenzprüfung erfolgt beim Start gegen https://license.css-edv-support.de (Produkt: MESO-ARCHIVEIMP). Ohne gültige Lizenz startet der Service im Demomodus (siehe unten).
In Container-Umgebungen können die Werte alternativ über Umgebungsvariablen gesetzt werden:
LICENSE_LICENSE_NRLICENSE_CUSTOMER_NR
Demomodus
Wenn keine gültige Lizenz vorhanden ist (fehlende Konfiguration, ungültige Daten oder Server nicht erreichbar), startet der Service automatisch im Demomodus. In diesem Modus:
- Dateien werden erkannt, Identifier extrahiert und Objekte zugeordnet
- Schlagworte werden ermittelt (aus Mapping und Schlagwortdateien)
- Die Ergebnisse werden als
[DEMO]-Warnung geloggt - Die Archivierung wird übersprungen - es werden keine Dokumente im MESONIC-Archiv abgelegt
- Dateien werden nicht in Erfolgs-/Fehlerverzeichnisse verschoben
Pflichtparameter
| Parameter | Beschreibung | Beispiel |
|---|---|---|
Company |
MESONIC-Mandantennummer (entfällt bei MandantenVerzeichnisse: true) |
"500M" |
ConnectionString |
XPO-ConnectionString zur MESONIC-Systemdatenbank | "XpoProvider=MSSqlServer;data source=WS01;..." |
ImportPath |
Pfad zum Importverzeichnis | "C:\\Archivimport" |
Optionale Parameter
| Parameter | Standard | Beschreibung |
|---|---|---|
FileFilter |
"*.pdf" |
Erlaubte Dateitypen als Wildcard-Muster. Mehrere Muster werden mit Semikolon getrennt (siehe FileFilter der Belege-Sektion in der Beispielkonfiguration oben) |
MandantenVerzeichnisse |
false |
Erste Verzeichnisebene als Mandantennummer interpretieren (siehe Mandantenverzeichnisse). Company wird dann aus den Verzeichnisnamen ermittelt |
Watch |
false |
Dauerüberwachung des Importverzeichnisses aktivieren |
EnableBelegKeyFallback |
false |
Bei Belegkey-Format auch über LadeBeleg suchen, wenn die direkte Suche fehlschlägt |
SuccessFolder |
"Erfolgreich" |
Name des Unterverzeichnisses für erfolgreich importierte Dateien |
ErrorFolder |
"Fehler" |
Name des Unterverzeichnisses für fehlgeschlagene Importe |
WorkFolder |
"InArbeit" |
Name des Arbeitsverzeichnisses, in das Dateien vor der Verarbeitung verschoben werden (verhindert Doppelverarbeitung bei Dateisperren) |
TestSentry |
false |
Löst eine Test-Exception aus, um die Sentry-Integration zu prüfen |
Split-Konfiguration (PDF-Zerlegung)
Alle Parameter unterhalb von Split:. Wird nur ausgewertet, wenn Split:Enabled auf true gesetzt ist.
| Parameter | Standard | Beschreibung |
|---|---|---|
Split:Enabled |
false |
Aktiviert die PDF-Split-Vorschaltstufe |
Split:SplitPath |
— | Pflicht wenn aktiviert. Wurzelverzeichnis der Sammel-PDFs. Muss existieren und sich von ImportPath unterscheiden |
Split:Strategie |
"Barcode" |
Trennstrategie: Barcode oder Ocr |
Split:Barcode:Symbologien |
[] (alle) |
ZXing-Barcode-Format-Namen, z.B. ["QR_CODE","CODE_128"]. Leer = alle unterstützten Formate |
Split:Barcode:RenderDpi |
200 |
Render-Auflösung für die Barcode-Erkennung |
Split:Ocr:Regex |
— | Pflicht bei Strategie Ocr. Regex zum Erkennen des Dokumentstarts; Identifier aus benannter Gruppe (nummer, belegkey, belegnummer) oder Gruppe 1 |
Split:Ocr:Sprache |
"german" |
PaddleOCR-Modellsprache ("german" → LatinV5, "english" → EnglishV5) |
Split:Ocr:RenderDpi |
300 |
Render-Auflösung für OCR |
Objekttyp-Konfiguration (Belege, Artikel, Personenkonten)
Jeder Objekttyp wird als eigene Sektion konfiguriert:
| Parameter | Beschreibung |
|---|---|
Folder |
Name des Erkennungsverzeichnisses (Unterverzeichnis von ImportPath), das diesem Objekttyp zugeordnet ist. Dieses Verzeichnis enthält Formular-Unterverzeichnisse |
Regex |
RegEx-Muster zur Extraktion der Objektnummer aus dem Dateinamen. Wenn leer, wird der Dateiname ohne Erweiterung als Nummer verwendet. Unterstützte benannte Gruppen: nummer, belegkey, belegnummer |
KeywordMapping |
Zuordnung von Schlagwortnummern zu Properties der MesoXPO-Klasse. Format: SchlagwortNr=PropertyName, kommagetrennt. Optional mit Datumsformat: 49=DatumLieferschein:dd-MM-yyyy |
FileFilter |
Optional: Überschreibt den globalen FileFilter für diesen Objekttyp, z.B. um zusätzlich TIFF-Dateien zu akzeptieren. Gleiche Syntax wie der globale FileFilter |
Keine Kommentare vorhanden
Keine Kommentare vorhanden