Document Collector & Scan Management

Dieser Dienst besteht aus zwei Komponenten, die das Hochladen von Dokumenten in die Cloud oder direkt ins DMS übernehmen.

Architektur

Der erste Dienst (STP.IM.DocumentCollectorOnPremiseService)

Dieser Dienst übernimmt die Dokumentenverarbeitung. Sobald ein Dokument im Arbeitsordner eingeht, wird es vom Dienst abgeholt und entsprechend verarbeitet.

Im Arbeitsordner gibt es mehrere Unterordner, die bei der Dokumentenverfolgung helfen:

  • approved
  • error
  • info
  • originals
  • pending
  • processed
  • retained
  • temp
  • work

Der zweite Dienst (STP.IM.DocumentCollectorManagement)

Dieser Dienst ist eine visuelle Komponente und unterstützt bei grundlegenden Konfigurationen, Genehmigungen usw.

Entwicklung

Voraussetzungen

  • Klonen Sie das Repository nach C:\Projects\

Lokale Einrichtung

  • Aktualisieren Sie in der App.config die Beispiel-Einstellungen, um eine Verbindung zum entsprechenden Mandanten, Benutzerverwaltung (On-Premise) und LSB (On-Premise) herzustellen.
  • Für Debugging-Zwecke in den Visual Studio Debug-Eigenschaften /ui als Befehlszeilenargument hinzufügen.

Ausführen

  • Aktualisieren Sie die Beispielordnerkonfiguration in C:\ProgramData\STP AG\STP.IM.DocumentCollectorOnPremiseService\ScanFolders.
  • Erstellen Sie im Ordner C:\Users\Public\STP.Scanfolder einen Ordner mit dem Namen, wie er in Ihrer Ordnerkonfiguration angegeben ist.

Ein Dokument sammeln

Starten Sie den Dienst. Kopieren Sie Ihr Dokument in den Ordner C:\Users\Public\STP.Scanfolder\<IhrOrdner>.

Einstellungen

Es gibt zwei Orte, an denen Sie Einstellungen für den Dokumentensammler konfigurieren können:

  • Allgemeine Konfiguration, normalerweise unter C:\ProgramData\STP AG\STP.IM.DocumentCollectorOnPremiseService

    Beispiel für eine config.json-Konfigurationsdatei: json { "CountUploadWorkers": 3, "DurationToErrorQueueInMinutes": 60, "EnableUploads": true, "ErrorItemPath": "C:\\Users\\Public\\STP.Scanfolder\\ErrorItems", "ImageRenderingSettings": { "ImageRenderingMode": 4 }, "SmtpMailSettings": { "DefaultSenderAddress": null, "DefaultSenderName": null, "Domain": null, "Password": null, "Port": 0, "Server": null, "SSL": false, "UseDefaultCredentials": false, "User": null }, "UploadQueuePath": "C:\\Users\\Public\\STP.Scanfolder\\UploadQueue", "WorkingModeSettings": { "WorkingMode": 0 }, "RetentionCleanerWorkerRunAt": 15 }

    • CountUploadWorkers - Anzahl der parallelen Upload-Arbeiter. Optionaler Parameter vom Typ number. Standardwert ist 3.
    • DurationToErrorQueueInMinutes - Dauer in Minuten, nach der die Datei vom Upload-Ordner in den Fehlerordner verschoben wird. Optionaler Parameter vom Typ number. Standardwert ist 60 Minuten.
    • EnableUploads - Aktiviert den Start der Upload-Arbeiter. Optionaler Parameter vom Typ boolean (true/false). Standardwert ist true.
    • ErrorItemPath - Pfad, in den fehlerhafte Dokumente verschoben werden. Erforderlicher Parameter vom Typ string.
    • ImageRenderingSettings.ImageRenderingMode - Die Qualität, mit der die Bilder gerendert werden. Optionaler Parameter vom Typ number. Standardwert ist 4. Mögliche Optionen:
      • Hohe Qualität - 5
      • Normale Qualität - 4
      • Keine Bildkorrektur - 3
      • Salt And Paper Filtering - 2
      • Median Glättung - 1
    • SmtpMailSettings - Einstellungen für E-Mail-Benachrichtigungen bei fehlerhaften Dokumenten.
    • UploadQueuePath - Pfad, in den Dokumente für den Upload abgelegt werden. Erforderlicher Parameter vom Typ string.
    • WorkingModeSettings.WorkingMode - Die Art und Weise, wie der Dokumentensammler eingehende Dateien im Eingabeordner verarbeitet. Optionaler Parameter vom Typ number. Standardwert ist 0. Mögliche Optionen:
      • Nur Cloud - 0 - Die Dokumente werden in die IM-Cloud hochgeladen.
      • Nur On-Premise - 1 - Die Dokumente werden in einen konfigurierten Ordner verschoben, um vom DMS importiert zu werden.
    • RetentionCleanerWorkerRunAt - Lokale Uhrzeit (Stunde), zu der der Retention-Worker ältere Dokumente bereinigt. Optionaler Parameter vom Typ number. Standardwert ist 1.
    • MaxUploadFileSizeInBytes - Maximale Dateigröße, die gelesen und hochgeladen werden darf. Optionaler Parameter vom Typ number. Standardwert ist 262144000 (250MB).
  • Ordnerspezifische Konfigurationen (können mehrere Dateien sein)

    Beispiel für eine ScanFolders-Konfigurationsdatei: json { "DirectoryPath": "C:\\Users\\Public\\STP.Scanfolder\\Input1", "ScanIntervalSeconds": 5, "Enabled": true, "UseUploadApproval": false, "AutomaticApproveAfter": null, "MasksToTargets": [ { "TargetLaneName": ".automation", "FileMask": "*.*", "ClassName": ".automation", "OverridesTargetLaneByCode": [ ] } ], "IsBatchFolder": true, "DocumentSeparatorIdentifier": "DOCUMENT_SEPARATOR", "OutGoingMailOnly": true, "DmsImportFolder": "C:\\Users\\Public\\STP.Scanfolder\\Input1\\temp", "DmsImportFolderFallback": "", "ServiceMode": true, "EmailRecipientsOnError": "info@test.de", "KeepSeparatorSheet": true, "DmsImportFilePattern": null, "MinimumFileAgeInSeconds": 60, "RemoveEmptyPagesEnabled": true, "RemoveEmptyPagesThreshold": 5.0, "RetentionPeriods": { "OriginalsRetentionPeriodInDays": 7, "ErrorsRetentionPeriodInDays": 0, "ProcessedRetentionPeriodInDays": 0 } }

    • DirectoryPath - Ordner, in dem Dokumente zur Verarbeitung abgelegt werden. Erforderlicher Parameter vom Typ string.
    • ScanIntervalSeconds - Wie viele Sekunden der Dienst wartet, bevor ein Dokument abgeholt wird. Erforderlicher Parameter vom Typ number.
    • Enabled - Aktiviert den Ordnerscanner-Arbeiter. Erforderlicher Parameter vom Typ boolean.
    • UseUploadApproval - Wenn true, ist eine manuelle Genehmigung erforderlich (funktioniert mit DocumentCollectorManagement). Optionaler Parameter vom Typ boolean. Standardwert ist false.
    • AutomaticApproveAfter - Wie viele Sekunden der Dienst wartet, wenn UseUploadApproval auf true gesetzt ist (funktioniert nur mit DocumentCollectorManagement).
    • MasksToTargets.TargetLaneName - Input Management Lane, in die die Dokumente hochgeladen werden. Optionaler Parameter vom Typ string.
    • MasksToTargets.FileMask - Platzhaltermuster, das im gescannten Ordner verwendet wird, um Dateien auszuwählen (im Beispiel *.* bedeutet alle Dateitypen). Erforderlicher Parameter vom Typ string.
    • MasksToTargets.ClassName - Input Management Klasse, in der die Dokumente klassifiziert werden. Optionaler Parameter vom Typ string.
    • IsBatchFolder - Bestimmt, ob das Dokument direkt an IM gesendet wird (false) oder vom Dokumentensammler verarbeitet und dann an IM gesendet wird (true). Optionaler Parameter vom Typ boolean. Standardwert ist false.
    • DocumentSeparatorIdentifier - Dokumententrennungsmuster, das zur Trennung des Dokuments verwendet wird. Erforderlicher Parameter vom Typ string.
    • OutGoingMailOnly - Wenn true, wird Input Management umgangen und Dokumente werden in den DMS-Ordner gesendet, wenn ein wz-Barcode gefunden wird. Standardwert ist false.
    • DmsImportFolder - Ordner, den DMS direkt auf Dokumente mit wz-Barcodes scannt.
    • DmsImportFolderFallback - Backup-Ordner, den DMS direkt auf Dokumente mit wz-Barcodes scannt (funktioniert mit DocumentCollectorManagement).
    • ServiceMode - Funktioniert nur mit DocumentCollectorManagement. Optionaler Parameter vom Typ boolean. Standardwert ist false.
    • EmailRecipientsOnError - Liste der Empfänger bei Fehlern. Optionaler Parameter vom Typ string.
    • KeepSeparatorSheet - Behält oder löscht die Seite mit dem Trennblatt. Nicht verwenden mit Barcodes mit Inhalt! Optionaler Parameter vom Typ boolean. Standardwert ist false.
    • MinimumFileAgeInSeconds - Intervall in Sekunden, ab dem die Datei alt genug für die Verarbeitung ist. Optionaler Parameter vom Typ number. Standardwert ist 60.
    • RemoveEmptyPagesEnabled - Bestimmt, ob leere Seiten eines Dokuments entfernt werden. Optionaler Parameter vom Typ boolean. Standardwert ist false.
    • RemoveEmptyPagesThreshold - Schwellenwert, unterhalb dessen die Seite als leer markiert wird. Optionaler Parameter vom Typ double. Standardwert ist 0.0.
    • LexDmsImportFolder_OnPremiseOnly - Ordner, in den die Dokumente abgelegt werden, wenn WorkingModeSettings.WorkingMode in der allgemeinen Konfiguration 1 ist. Erforderlich, wenn die allgemeine Konfigurationsoption auf 1 gesetzt ist, vom Typ string.
    • SplitDocumentByFixedBatchSize - Trennt das Dokument nach einer festen Seitenanzahl. 0 bedeutet, dass es deaktiviert ist, und andere Arten von Trennungen können angewendet werden. Andernfalls wird das Dokument unabhängig von Trennungen im Inneren nach der eingegebenen Anzahl aufgeteilt. Optionaler Parameter vom Typ number. Standardwert ist 0.
    • RetentionPeriods - Das System speichert Dokumente nicht dauerhaft. Jeden Tag löscht der Dienst die Dokumente aus den Ordnern. Die Ausführungszeit ist in der Datei config.json im Ordner C:\ProgramData\STP AG\STP.IM.DocumentCollectorOnPremiseService konfigurierbar. Die Aufbewahrungszeit wird in Tagen angegeben. 0 bedeutet, dass Dokumente nicht gelöscht werden.
    • RetentionPeriods.OriginalsRetentionPeriodInDays - Wie viele Tage der Dienst wartet, bevor Dokumente aus dem Ordner originals automatisch gelöscht werden. Optionaler Parameter vom Typ number. Standardwert ist 7.
    • RetentionPeriods.ErrorsRetentionPeriodInDays - Wie viele Tage der Dienst wartet, bevor Dokumente aus dem Ordner error automatisch gelöscht werden. Optionaler Parameter vom Typ number. Standardwert ist 0.
    • RetentionPeriods.ProcessedRetentionPeriodInDays - Wie viele Tage der Dienst wartet, bevor Dokumente aus dem Ordner processed automatisch gelöscht werden. Optionaler Parameter vom Typ number. Standardwert ist 0.

Ausgehende E-Mails

Seit Version 24.08.15.2 unterstützt der Dokumentensammler folgende Kombinationen von p4-Barcodes und Trennblättern:

  • Trennung ausgehender Dokumentenstapel mit dem winsolvenz.p4-Barcode.
  • Trennung ausgehender Dokumentenstapel mit dem winsolvenz.p4-Barcode und Trennung ihrer Anhänge mit Dokumententrennblättern.
  • Trennung ausgehender Dokumentenstapel nur mit Dokumententrennblättern.

Es gibt einige Änderungen im Vergleich zu früheren Versionen:

  • Dokumentenstapel mit X- oder Y-Barcodes (Code39) werden basierend auf dem Barcode auf der ersten Seite des Dokuments gescannt und verarbeitet.
  • Barcodes auf den Seiten der Dokumente werden erkannt, und die Barcode-Seite selbst wird nicht gelöscht.
  • Wenn der Barcode erkannt wird, wird er im Dateinamen im Format <barcode><timestamp>-<document_number_grouped_by_barcode>.pdf geschrieben und über den konfigurierten DmsImportFolder-Pfad an den Dokumentenmanagementsystem-Sammler (DMS) übertragen.
  • Wenn kein Barcode erkannt wird, werden die Dokumente an das Input Management übertragen.
  • Wenn kein DocumentSeparatorIdentifier-Treffer vorliegt, werden die Dokumente basierend auf Barcodes verarbeitet.

⚠️ DocumentSeparatorIdentifier darf nicht denselben Wert wie die Barcodes haben, da sonst nicht unterschieden werden kann, ob ein Dokument oder ein Anhang getrennt werden soll. Wenn DocumentSeparatorIdentifier mit dem Barcode-Wert übereinstimmt, wird die Seite mit dem Barcode gelöscht und der Rest des Dokuments im Input Management verarbeitet.