Kofax Transformation Modules: SEPA-Mandate und handschriftliche Ergänzungen – oder: wer hat etwas auf mein Formular gekritzelt?

Keine Kommentare

Im Rahmen der europaweiten SEPA-Einführung mussten viele Unternehmen in den letzten Jahren sogenannte SEPA Lastschriftmandate von ihren Kunden unterschreiben lassen. Die meisten Unternehmen sendeten ein mit den Kundendaten ausgefülltes Formular (das SEPA-Mandat) an den Kunden. Dieser unterschrieb das Mandat und sendete es dann an das Unternehmen zurück.

Einer unserer Versicherungskunden nutzt Kofax Capture und Kofax Transformation Modules (KTM) zur automatisierten Eingangspostverarbeitung. In diesem Zusammenhang mussten dann natürlich auch die SEPA-Mandate erkannt und dem passenden Geschäftsprozess zugeordnet werden.

Hierbei gab es zunächst zwei Prozesse für die SEPA-Mandate:

  • Der Kunde hat das Mandat unterschrieben: Das Kennzeichen ‚SEPA-Mandat erteilt‘ wird gesetzt. Es erfolgt keine weitere Verarbeitung.
  • Der Kunde hat das Mandat nicht unterschrieben: Anstoss einer weiteren Verarbeitung durch Sachbearbeiter.

In KTM wurde die Unterschriftenerkennung über Zonenerkennung mit Schwärzungsgraden gelöst.

Im Laufe der Zeit wurde das Konzept allerdings etwas verwässert. Einerseits änderten oder ergänzten Kunden die im Formular enthaltenen Kundendaten handschriftlich, da die Daten falsch oder unvollständig waren. Andererseits erhielten manche Kunden auch ‚Blanko‘ SEPA-Mandate, die dann handschriftlich ausgefüllt wurden.

Dadurch wurde bei der Versicherung ein weiterer Verarbeitungsprozess für SEPA-Mandate notwendig:

  • Der Kunde hat das Mandat unterschrieben, aber in dem ‚Formularbereich‘, der die Kundendaten enthält, wurde etwas handschriftlich notiert. Hier muss nun ein Prozess zur Änderung bzw. Erfassung der Kundendaten angestossen werden.

Die Herausforderung für KTM bestand nun darin, zu erkennen, ob in bestimmten Regionen des Formulars Handschrift enthalten war.

Hier ein Beispiel eines vollständig maschinell ausgefüllten und vom Kunden unterschriebenen SEPA-Mandats:

SEPA01

Und hier nun ein Beispiel, in dem der Kunde handschriftliche Änderungen hinzugefügt hat:

SEPA02

Zur Identifizierung der handschriftlichen Einträge bietet sich in KTM die OCR-Engine ‚Gemischte Schrift‘ an. Sie dient normalerweise dazu Maschinenschrift und Handschrift auf einem Dokument zu lesen. Allerdings interessiert uns der Inhalt der Handschrift gar nicht, wir wollen ja nur wissen, ob überhaupt handschriftliche Notizen vorhanden sind. Die ‚Gemischte Schrift‘-Engine liefert in unseren Fällen auch meist keine inhaltlichen Ergebnisse, da Maschinen- und Handschrift häufig zeilenweise überlappen oder ineinander übergehen.

Allerdings liefert die Engine Informationen, ob Handschrift überhaupt gefunden wurde. Handschriftliche Kandidaten werden mit sogenannten ‚Boxes‘ gekennzeichnet. Diese kann man sich sehr gut mit dem XDOC Browser aus der KTM-Installation anschauen. Dazu lässt man über ein Dokument zunächst die ‚Gemischte Schrift‘-Engine laufen und schaut sich die daraus resultierende xdc-Datei mit dem XDOC Browser an:

xdoc

In der ‚Representation 0‘ (die ‚Gemischte Schrift‘-Engine) des obigen Beispiels gibt es drei ‚Boxes‘. Jede Box repräsentiert eine erkannte Stelle mit Kandidaten für Handschrift. Diese Boxes können auch per KTM-Skript abgefragt werden. Legt man nun noch den Bereich der Seite fest, auf dem nach existierenden Boxes gesucht werden soll, hat man bereits alle Voraussetzungen geschaffen, um zu beurteilen, ob handschriftliche Ergänzungen vorliegen.

Zur Festlegung des Suchbereichs könnte man zum Beispiel nach den Begriffen ‚one-off payment‘ (oben rechts, legt obere Grenze der Suchregion fest) und ‚Ich ermächtige‘ (Textblock unterhalb der Kundendaten, legt untere Grenze der Suchregion fest) suchen. Die Suche kann bspw. mit Formatlokatoren oder durch direkte Suche im OCR-Ergebnis durchgeführt werden. Im folgenden Beispiel wird einfach im OCR-Ergebnis gesucht. Die Funktion Ist_Handschrift liefert TRUE, wenn mindestens eine Box in der Suchregion gefunden wurde.

Damit das Beispiel funktioniert muss im KTM Scripting noch eine Referenz auf ‚Kofax Memphis Forms 4.0‘ gesetzt werden:

KMF

Im zugrundeliegenden Projekt wird standardmäßig zunächst die OCR-Erkennung mit der RecoStar- oder FineReader-Engine durchgeführt. Zum Test auf vorhandene Handschriftergänzungen kann dann die folgende Funktion genutzt werden:

Function Ist_Handschrift(pXDoc As CASCADELib.CscXDocument) As Boolean
'Prüfung, ob ein SEPA-Mandat handschriftlich vom Kunden ergänzt wurde

Dim i As Integer
Dim BoxAnzahl As Integer
Dim StartTOP As Long
Dim EndeTOP As Long

BoxAnzahl=0
StartTOP=0
EndeTOP=0
Ist_Handschrift=False

'Suche 'one-off payment' und addiere auf TOP noch 80. Nur südlich davon nach Handschrift suchen.
For i=0 To pXDoc.TextLines.Count-1
   If InStr(LCase(pXDoc.TextLines(i).Text),"one-off payment")>0 Then
      StartTOP=pXDoc.TextLines(i).Top
      StartTOP=StartTOP+80 'ungefähre Zeilenhöhe
      Exit For
   End If
Next

'Suche 'Ich ermächtige'. Nur nördlich davon nach Handschrift suchen
For i=0 To pXDoc.TextLines.Count-1
   If InStr(LCase(pXDoc.TextLines(i).Text),"ich ermächtige")>0 Then
      EndeTOP=pXDoc.TextLines(i).Top
      Exit For
   End If
Next

'Re-OCR mit Engine 'Gemischte Schrift'
FullPageRecognition_1(pXDoc, "", "Gemischte Schrift") 'Re-OCR mit Engine 'Gemischte Schrift'

'nur alle Boxen südlich von StartTOP zählen
'und nur alle Boxes nördlich von EndeTOP
'Box.width>200 um Klecksereien zu vermeiden
'Box.left>275 um den linken Rand auszulassen (Heftlöcher, Barcodes)

For i= 0 To pXDoc.Boxes.Count-1
   If pXDoc.Boxes.ItemByIndex(i).Top>StartTOP And pXDoc.Boxes.ItemByIndex(i).Width>200 And pXDoc.Boxes.ItemByIndex(i).Left>275 And pXDoc.Boxes.ItemByIndex(i).Top<EndeTOP Then
      BoxAnzahl=BoxAnzahl+1
   End If
Next

'OCR zurück nach RecoStar, damit Standardextraktion funktioniert
FullPageRecognition_1(pXDoc, "", "RecoStar")

If BoxAnzahl>0 Then 'gibt es mindestens eine Box: Handschrift gefunden!
   Ist_Handschrift= True
Else
   Ist_Handschrift= False
End If
End Function


Und hier noch die aufgerufene Prozedur FullPageRecognition_1, mit der eine Re-OCR ausgeführt werden kann:

Public Sub FullPageRecognition_1(ByVal pXDoc As CscXDocument, ByVal ImageCleanProfile As String, ByVal OCRProfile As String)
   'remove existing OCR results and perform OCR on page one with profile OCRProfile
   Dim i as Integer
   Dim oPRP As IMpsPageRecogProfile
   Dim oPR As New MpsPageRecognizing

   'OCR only on page 1
   pXDoc.CDoc.Pages(0).SuppressOCR=False

   '# Remove any representations, before proceeding to perform full page recognition
   For i = pXDoc.Representations.Count -1 To 0 Step -1
       pXDoc.Representations.Remove (i)
   Next

   Set oPRP = Project.RecogProfiles.ItemByName(OCRProfile)              '# Use the page recognition profile OCRProfile
   oPR.Recognize(pXDoc, oPRP, 0)                                        '# Perform recognition on the first page

   '# At design time the text lines need to be analysed. At runtime this will be done automatically
    If Project.ScriptExecutionMode = CscScriptExecutionMode.CscScriptModeServerDesign Then pXDoc.Representations(0).AnalyzeLines
End Sub

 

Ältere Blog-Artikel über KTM und KC:

Kofax Transformation Modules (KTM): ‘Freiformerkennung’ für handschriftliche Nummern

Kofax Capture – Dokumententrennung mit Barcodes

KTM im Versicherungseinsatz: Heller, grauer und dunkler Posteingang

Dokumentenklassifizierung mit Kofax Transformation Modules (KTM)

Kofax Transformation Modules – Formatlokatoren und dynamische reguläre Ausdrücke – Teil 2

Kofax Transformation Modules – Formatlokatoren und dynamische reguläre Ausdrücke

IBM Content Collector for SAP (formerly known as IBM CommonStore for SAP), Kofax Capture 10 und das IBM CommonStore Release Skript

Jürgen Voss

Jürgen Voss unterstützt unsere Kunden bei der Erfassung von Eingangsdokumenten, deren Klassifikation samt Datenextraktion und anschließendem Starten der Geschäftsprozesse.

Die erfassten Dokumente werden dabei in Archivsystemen sicher abgelegt. Dazu zählt auch die E-Mail-Archivierung und die Ablage über die SAP-Archivierungsschnittstelle ArchiveLink.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.