Kofax Capture kurz und bündig
Mit Kofax Capture kann man verschiedenste unternehmensrelevante Papierdokumente verarbeiten und zu den erstellten Bilddateien Metadaten erfassen, um sie abschließend an ein Backend-System abzugeben. Kofax Capture ist eine komplette Input Management Plattform. Dabei bietet es von Hause aus Funktionen wie Barcodeerkennung, OCR oder ICR, das Erstellen von PDF-Dateien für die Langzeitarchivierung, die Möglichkeit Metadaten zu den Dokumenten zu erfassen und zu validieren sowie verschiedene Export-Konnektoren für die Ablage der Informationen in Backend-Systemen namhafter Hersteller (Microsoft Sharepoint, IBM Content Manager). Diese Aufgaben werden von verschiedenen Modulen, sogenannten Warteschlangen, in einer definierten Abfolge durchgeführt. Dies geschieht nach dem EVA-Prinzip. Am Anfang steht daher fast immer das Scan-Modul und am Ende der Export mit der Ablage der gesammelten Informationen.
Die vorhandenen Module müssen aber nicht für jeden Anwendungsfall Sinn machen. Wenn der Kunde kein PDF/A präferiert, kommt dieses Modul auch nicht zum Einsatz.
Nicht jede Fachlichkeit kann von der Stange kommen
Wir treffen daher auf Situationen, in denen Kofax Capture von Hause aus mehr kann, als der Kunde eigentlich benötigt; aber wir treffen auch auf Situationen, in denen man, auf Grund gegebener Komplexität der Fachlichkeit, mit dem Standard nicht weiterkommt.
Was macht man, wenn der Standard nicht ausreicht? Was macht man, wenn beim Export die Metadaten in einem proprietären Format abgeliefert werden müssen? Wie realisiert man eine eigene Warteschlange für Aufgaben wie das Erstellen elektronischer Signaturen? Wie kann man bei der Validierung der Metadaten Kreuzprüfungen umsetzen, etwas was mit der Standard-Validierung nicht sauber geht? Was macht man, wenn der Kunde schon direkt im Scan-Modul auf die zuvor gescannten Dokumente eine OCR machen möchte und die erkannten Metadaten ebenfalls im Scan-Modul validieren möchte?
Alle diese Fragen sind uns über den Weg gelaufen und alle konnten für den Kunden zufriedenstellend beantwortet werden, denn Kofax Capture bietet dafür verschiedene Programmierschnittstellen und Erweiterungsmöglichkeiten.
Die Erweiterungsmöglichkeiten im Überblick
Kofax bietet folgende Erweiterungsmöglichkeiten, wobei hier nur die gängigsten aufgeführt werden:
- Erstellen von Skripten für Erkennung oder Validierung (SBL oder VB.NET)
- Erstellen eines OCX-Panels für die Module Scannen, Qualitätskontrolle, Validierung oder Bestätigung
- Erstellen einer eigenen Warteschlange, eines sogenannten Custom Modules
- Erstellen eines Workflow-Agenten, der die vorgegebene Reihenfolge der Warteschlangen beeinflussen kann
- Erstellen eines eigenen Export-Konnektors
Der Hersteller stellt für die verschiedenen Erweiterungen API Bibliotheken zur Verfügung:
Name der Bibliothek | Bedeutung |
Kofax.AscentCaptureModule.Interop.dll | Für OCX-Panels |
Kofax.AscentCaptureAdminMod.Interop.dll | Für OCX-Panel im Verwaltungsmodul |
Kofax.DBLite.Interop.dll | Für Custom Modules und den Zugriff auf Stapel |
Kofax.DBLiteOpt.Interop.dll | Für Custom Modules für weitergehende Informationen zu einem geöffneten Stapel |
Kofax.ACWFLib.Interop.dll | Für Workflow-Agenten |
Kofax.ReleaseLib.Interop.dll | Für Export-Konnektoren |
Interop.Scripting.dll | Für VB.NET Skripte |
Erstellen von Skripten für die Validierung (SBL oder VB.NET)
In der Dokumentenklasse einer Stapelklasse definiert man die Metadaten des Dokumentes. Jedes Indexfeld besitzt einen Feldtypen in Kofax Capture. Zum Beispiel die Versicherungsnummer soll numerisch und maximal acht Ziffern lang sein. In der Validierung der Eingaben würde Kofax Capture von Hause aus diese minimale Prüfung durchführen, ohne dass ich auch nur ein Stückchen programmieren müsste. Aber das reicht natürlich nicht.
Hierfür gibt es die Möglichkeit eigene Validierskripte zu programmieren.
Ursprünglich war das nur in SBL (Softbridge Basic Language) einem Visual Basic 6 Ableger möglich, seit Kofax Capture 8 kann man hier auch VB.NET Skripte erstellen, wenn man eine entsprechende IDE installiert hat.
SBL ist sehr alt und das merkt man im Editor, der einem ab und an sogar das Kopieren in die oder Einfügen aus der Zwischenablage versagt. Man kommt damit schon sehr weit und kann auch mit Hilfe der COM Technologie eigene .NET Assemblies ansprechen (late binding), aber manche Funktionen in VB6 sucht man hier vergebens, wie zum Beispiel die Replace-Funktion.
VB.NET Skripte entwickelt man in der komfortablen Visual Studio IDE, die man eventuell aus dem täglichen Umgang kennt und man kann aus der umfangreichen .NET Klassenbibliothek schöpfen. Darüber hinaus kann man den Code auch debuggen.
Erstellen eines OCX-Panels
Technisch gesehen handelt es sich hier um ein OLE Custom Control, das zur Laufzeit in eines der Module Verwaltung, Scannen, Qualitätskontrolle, Validierung oder Bestätigung eingebettet wird. Um abhängigen fachlichen Prüfungen zu realisieren, könnte man ein Panel für die Validierung konzipieren, das allein entscheidet, ob ein Dokument korrekt erfasst wurde oder nicht.
Für viele unserer Großkunden haben wir ein Panel für das Scan-Modul programmiert, was unter dem Namen Stapelgenerator läuft. Gerade in Mehrmandanten-Systemen und bei speziellen Anforderungen an den Aufbau des Stapelnamens nach der Anlage eines Stapels kapseln wir hier Fachlichkeiten, um den Scan-Operator über eine einfache GUI Stapel anlegen zu lassen.
Auch die Anforderung des Kunden im Scan-Modul direkt eine OCR zu machen und die Dokumente zu indizieren wurde über ein solches Panel realisiert. Zusätzlich musste man jedoch eine Bibliothek eines Drittherstellers für die OCR nutzen, da die OCR Engine von Kofax nicht anprogrammiert werden kann.
Erstellen eines Custom Modules
Ein Custom Module stellt die Erweiterungsmethode mit der größten Freiheit dar, aber dafür muss man sich hier um alles kümmern. Da ist zum Beispiel das Öffnen oder Schließen von Stapeln, das Navigieren zwischen den Dokumenten innerhalb eines Stapels, die Darstellung der Bilddateien in einer Viewer-Komponente oder das Logging um nur einige zu nennen. Wenn man so will ist es die Königsdisziplin. Das Validieren von Dokumenten in einem Custom Module ist hinsichtlich der Lizenzen für den Kunden interessant, da keine Lizenzen dafür anfallen im Gegensatz zur Standard-Validierung.
GUI des eigentlichen Custom Modules
Hier wurde zum Beispiel der Wunsch umgesetzt, mehrere Dokumente in einer logischen Klammer zusammenzufassen und die Metadaten des Vorgangs auf die der darin enthaltenen Dokumente zu vererben. Fehler werden per ErrorProvider neben den Feldern angezeigt, ohne den Erfassungsfluss durch die Anzeige einer MessageBox zu unterbrechen. Der ErrorProvider zeigt neben dem Feld mit einem fehlerhaften Inhalt ein Ausrufezeichen auf rotem Hintergrund an.
GUI des Viewers
Der Viewer verfügt über Möglichkeiten wie Thumbnail Anzeige, Anpassen der Größen, Lupenfunktion, Bereichs-OCR mit Übermittlung des Leseergebnisses an das Custom Module und eine Druckfunktion. All diese Möglichkeiten wurden eng an die Wünsche des Kunden angelehnt.
Erstellen eines Workflow-Agentens
Ein Workflow-Agent ist eine Assembly, die nach der Verarbeitung eines Stapels durch eine Warteschlange und vor der Verarbeitung durch die nächste Warteschlange von Kofax aufgerufen wird. Innerhalb dieser Einheit hat man Zugriff auf den Stapel, seine Dokumente und die Metadaten. Darüber hinaus weiß man an welcher Stelle man sich im Ablauf befindet, da man den Namen der vorherigen Warteschlange und der nächsten Warteschlange im Zugriff hat. Auch wenn man nur selten einen Workflow-Agenten benötigt, es gibt Anwendungsfälle dafür.
Dunkelverarbeitung
Angenommen man scannt Formulare eines bestimmten Typs und will per OCR eine Versicherungsnummer auslesen. Nach dem Erkennungsserver (Modul für die OCR in Kofax Capture) sollen in der Validierung nur die Dokumente angezeigt werden, deren Versicherungsnummer nicht sicher erkannt werden konnte. Wurde aber jede Versicherungsnummer korrekt erkannt und konnte auch validiert werden, so soll der Stapel die Validierung überspringen und direkt in den Export geleitet werden. Der Workflow-Agent würde seine eigentliche Arbeit aufnehmen, wenn die Warteschlange zuvor der Erkennungsserver war. Er kann nun Dokument für Dokument prüfen und die erkannte Versicherungsnummer über einen Datenbankzugriff oder WebService-Aufruf validieren und das einzelne Dokument als indiziert kennzeichnen. Wurden am Ende alle Dokumente des Stapels indiziert kann per Code der Stapel auf die Warteschlange Export gesetzt werden.
Setzen von Berechtigungen
Wenn man in Kofax Capture Benutzerprofile nutzt, um Stapel nur bestimmten Anwendergruppen zuzuweisen (VIP Post), dann kann der Workflow-Agent bei Auftreten eines bestimmten Datums ein Benutzerprofil auf eine Gruppe umsetzen, die allein für die Bearbeitung von VIP-Post vorgesehen ist. Damit kann danach der Stapel nur von Mitarbeitern verarbeitet werden, die dieser Gruppe angehören.
Erstellen eines Export-Konnektors
Es gibt, wie anfangs erwähnt, eine Menge an Konnektoren, die man standardmäßig einsetzen kann. Aber wenn es hier darum geht, eine Xml-Datei mit einem bestimmten Aufbau zu erstellen, dann kommt man um das Erstellen eines eigenen Konnektors nicht herum. Der Konnektor besteht aus einer Assembly mit zwei Einstiegspunkten für das Setup über das Verwaltungsmodul und für den Export der Dokumente.
Im Setup definiere ich zum Beispiel zur Entwurfszeit für meinen Stapel mindestens den Namen der HTML-Datei und den Ablageort für die HTML-Datei.
Weitere Beiträge
von Stefan Blank
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Stefan Blank
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.