-
Info
- Neue Funktionen in ABBYY FlexiCapture 12
- Unterstützte Dokumenttypen in ABBYY FlexiCapture
- Kurzbeschreibung der Dokumentverarbeitung mit ABBYY FlexiCapture
- Installieren und Ausführen des Programms
- Architektur von ABBYY FlexiCapture
-
Konfigurieren des Programms
- Konfiguration von ABBYY FlexiCapture
- Mehrinstanzenfähigkeit
-
Erstellen eines Projekts
- Projekteigenschaften
- Umgebungsvariablen
- Bildimport
- Stapeltypen
- Workflow-Konfiguration
- Extras
- Standard-Stapelpriorität
- SLA-Einstellungen
- Benutzerdefinierte Operatorrollen
- Registrierungsparameter
- Hochladen eines Projekts zum Anwendungsserver
- Projekt testen
- Designeinstellungen
- Qualität der angezeigten Bilder
-
Dokumentdefinitionen
- Erstellen von statische Dokumentdefinitionen
- Erstellen einer Dokumentdefinition zum Verarbeiten nicht strukturierter und flexibler Dokumente
- Document Definitions without automatic fields extraction
- Dokumentenmappen
-
Dokumentdefinitionsfelder
- Texteingabefeld
- Checkmarks
- Gruppen von Auswahlfeldern
- Barcode
- Bilder
- Tabellen
- Feldgruppe
- Dienstfeld
- Indexfelder
- Link zu vorhandenem Feld
- Felder ohne Bereich
- Erstellen eines Felds mit einem nicht rechteckigen Bereich
- Felder mit mehreren Instanzen
- Felder mit mehreren Bereichen
- Ändern eines Feldnamens
- Kopieren, Verschieben und Löschen von Feldern
- Ausschließen eines Bereichs von der Erkennung
- Dokumentdefinitionsassistent
- Bearbeitung und Veröffentlichung einer Dokumentdefinition
- Zusammenstellung mehrseitiger Dokumente
- Eigenschaften der Dokumentdefinition
- Eigenschaften eines Dokumentdefinitionsbereichs
- Regelbasierte Validierung
- Konfigurieren des Datenexports
- Konfigurieren der Datendarstellung im Dokumentfenster
- Testen von Dokumentdefinitionen
- Lokalisierung einer Dokumentdefinition
-
Klassifizierung
- Klassifizierungsszenarien
- Klassifizierungsprofile
- Aufruf-Genauigkeit-Balance
-
Erstellen eines Klassifizierers
- Einrichtung von Klassifizierern
- Einrichten Ihrer Klassifizierer und Laden von Bildern
- Trainings-Klassifizierer
- Analysis of classification results
- Improving your classifier
- Exportieren und Importieren von Klassifizierern
- Zuordnung von Klassen zu Dokumentdefinitionsbereichen
- Klassifizierung anhand einer Unternehmensdatenbank_2
- Training für Feldextrahierung
- Arbeiten mit einem konfigurierten Projekt
-
ABBYY FlexiCapture für Rechnungen
- Funktionen von ABBYY FlexiCapture for Invoices
- Erfassen von Rechnungen
-
Einrichtung eines Projekts zur Rechnungserfassung
- Land- und Spracheinstellungen
- Verbindung mit Datenbanken für Lieferanten und Geschäftseinheiten
- Einstellungen für den Datenexport
- Der Status von Dokumenten in Projekten von ABBYY FlexiCapture for Invoices
- ABBYY FlexiCapture for Invoices Trainieren
- Regeln
- Erfassung zusätzlicher Rechnungsfelder
- Kontrolle von Rechnungspositionen
- Zusätzliche Programmfunktionen für Operatoren aktivieren
- Verwenden mehrerer Dokumentdefinitionen
- Einstellungen der Rechnungsverarbeitung in XML-Dateien bearbeiten
- Aktualisierung der Dokumentdefinition für Rechnungen
- Spezifikationen
- Capturing receipts
- Capturing purchase orders
-
Verarbeiten nicht strukturierter Dokumente mit NLP
- Installation des NLP-Moduls
- Erstellen einer neuen Dokumentdefinition
- Erstellen von NLP-Modellen
- Trainieren Ihrer NLP-Modelle
- NLP model training based on feedback from verification operators
- Laden eines vorhandenen NLP-Modells
- In welchen Fällen Sie Extraktionsskripte verwendet sollten
- Bekannte Einschränkungen
- Glossar
- Benutzeroberfläche von ABBYY FlexiCapture
-
Anhang
-
Verwenden von Skripten in ABBYY FlexiCapture
- Besonderheiten von in .Net-Sprachen geschriebenen Skripten
- Externe Assemblys
- Objektmodell
-
Skripte für die benutzerdefinierte Anpassung der Verarbeitungsphasen
-
Skripttypen
- Skriptregel
- Autokorrekturskript
- Exportskript
- Benutzerskript (benutzerdefinierte Aktion)
- Skript für Dokumentzusammenstellung
- Benutzerdefiniertes Erkennungsskript
- Phasenregel
- Verarbeitungsskripte
- Aktualisierungsskript für Datensätze
- Validierungsskripte für Datensätze
- Skript für die Dokumentklassifizierung
-
Event-Handler
- Stapel erstellt
- Stapel gelöscht
- Stapelparameteränderung
- Änderung der Stapelstruktur (Seite hinzugefügt/Seite gelöscht/Dokument hinzugefügt/Dokument gelöscht)
- Seiten verschoben
- Stapel geöffnet/geschlossen
- Stapelintegritätsprüfung
- Dokumentparameter geändert
- Dokumentstatus geändert
- Export abgeschlossen
- Skript, das nach Regelprüfungen ausgeführt wird
- Vor der Zuordnung
- Feldüberprüfungsanforderung
-
Objekte
- IActionResult
- IAssemblingError
- IAssemblingErrors
- IBatch
- IBatchCheckResults
- IBatchItem
- IBatchItems
- IBatchTypeClassifier
- IBatchTypeClassifierResult
- IBinarizationParams
- IBoxedBoolean
- ICharacterParams
- ICharactersParams
- ICheckmarkGroupValue
- ICheckmarkValue
- IDataSet
- IDataSetQuery
- IDataSetRecord
- IDocument
- IDocuments
- IDocumentExportResults
- IDocumentsExportResults
- IDocumentDefinitionInfo
- IDocumentDefinitionInfoArray
- IEditablePictureObject
- IExportFieldsToRedact
- IExportImageSavingOptions
- IField
- IFieldRegion
- IFieldRegions
- IFields
- IFlexiCaptureTools
- ILocalContrastParams
- IMatchedSectionInfo
- IMatchingInfo
- IPage
- IPageClassificationResult
- IPages
- IPictureObject
- IPictureObjectsInfo
- IPrincipal
- IPrincipals
- IProcessingCallback
- IProject
- IProperties
- IProperty
- IPropertyModificationInfo
- IRecordCheckResult
- IRecordset
- IRect
- IRects
- IRoutingRuleResult
- IRuleContext
- IRuleError
- IRuleErrors
- IRuleTag
- IRuleTags
- IScriptBinaryAttributes
- IScriptDefinitionContext
- ISectionDefinitionInfo
- ISectionDefinitionInfoArray
- IShadowsHighlightsParams
- IStageInfo
- IUserAttachment
- IUserAttachments
- IUserSessionInfo
- IValue
- IVARIANTArray
- TAssemlingErrorType
- TBatchItemType
- TColorToFilter
- TExportFieldType
- TExportType
- TImageCompressionType
- TPageClassificationType
- TPdfAVersion
- TPdfDocumentInfoType
- TPdfTextSearchAreaType
- TPrincipalType
- TProcessingPriority
- TPropertyType
- TRuleErrorType
- TStateType
- Beispielskripte
- Interne Namen der Erkennungssprachen
-
Skripttypen
-
Skripts für die Verarbeitung von Schnittstellenevents
-
Event-Handler
- Bei Aktivierung des Dokuments
- Bei Schließen des Projekts
- Bei Aktivierung des Dokuments
- Bei Steuerelement des Feldes aktivieren
- Bei Rückgabe von Task
- Bei Benutzerbefehl
- Bei Steuerlement des Felds deaktivieren
- Bei Schließen des Dokuments
- Bei Schließen des Tasks
- Bei Schließen des Projekts
- Bei Bereichsänderung
- Bei Änderung des Taskfenstermodus
- Bei Öffnen des Dokuments
- Bei Taskfenster erstellen
- Bei Taskablehnung
- Bei Bereichssteuerung zeichnen
- Bei Senden des Tasks zur Phase
- Bei Textfeld Überprüfung
-
Objekte
- IBoolean
- IBoxedFieldControl
- IDocumentEditor
- IDocumentItem
- IDocumentItems
- IDocumentsCollection
- IDocumentsWindow
- IDrawContext
- IErrorControl
- IErrorControls
- IErrorsWindow
- IFieldControl
- IFieldRegionControl
- IFieldRegionControls
- IFormWindow
- IImageWindow
- IMainMenu
- IMainWindow
- IMenu
- IMenuItem
- IPageControl
- IPageItem
- IPageItems
- IPagesCollection
- IPoint
- ISelection
- IShellRational
- IShellRect
- IShellRects
- ITaskWindow
- ITextEditor
- IToolbar
- IToolbarButton
- IToolbars
- TCommandBarType
- TCommandID
- TDockingType
- TDocumentState
- TErrorType
- TSelectionType
- TTaskWindowMode
- TTextSize
- TUserRole
- TWorkWindowType
-
Event-Handler
- Benutzerskript für Web-Überprüfungsstation
- Erstellen von maschinenlesbaren Formularen
-
Tastenkombinationen
- Tastenkombinationen für die Projektkonfigurationsstation
- Tastenkombinationen für die Überprüfungsstation
- Tastaturbefehle im Hauptfenster der Datenverifizierungsstation
- Tastenkombinationen für den Dokumentdefinitionseditor
- Tastaturbefehle im Fenster für die Gruppenüberprüfung
- Tastaturbefehle im Fenster für die Feldüberprüfung
- Tastenkombinationen
- Zusätzliche Optionen
- Description of Processing Server commands
- ABBYY FlexiCapture-Beispielprojekte
- Unterstützte Erkennungssprachen
- Supported classifier languages
- Schriftarten für die korrekte Darstellung von Zeichen
- Unterstützte Texttypen
- Unterstützte Barcodetypen
- Unterstützte Eingabeformate
- PDF-Dateien werden verarbeitet
- Exportdateiformate
- Datumsformate
- Alphabet in regulären Ausdrücken
- Patente
- Drittpartei-Technologien
- Glossar
- Technischer Support
- Informationen zum Kauf von ABBYY FlexiCapture
- Endbenutzer-Lizenzvertrag (EULA)
-
Verwenden von Skripten in ABBYY FlexiCapture
Sample assembly scripts
Assembly script with conditional documents depending on the value of a field
Das Skript in diesem Beispiel dient der Zusammenstellung von Dokumenten in Dokumentenmappen, die mit einer Dokumentenmappendefinition definiert werden. Die Dokumentenmappendefinition enthält einen Bereich mit dem Namen Kreditnehmerformular und Verweise zu den folgenden Dokumentdefinitionen:
- Reisepass
- Bürgendokumente
- Dokumente des 2. Kreditnehmers
- Arbeitgeberreferenz
Der Bereich Kreditnehmerformular enthält die folgenden Felder:
- Name des 2. Kreditnehmers
- Kreditsumme
Welche Dokumente in der Dokumentenmappe enthalten sein müssen, ist vom Wert des Feldes Kreditsumme abhängig. Das Skript hat zwei Grenzwerte, die bestimmen, welche Dokumente in der Mappe enthalten sein müssen:
- Ist die Kreditsumme kleiner als der erste Grenzwert, muss die Dokumentenmappe nur einen Reisepass enthalten.
- Ist die Kreditsumme höher als der erste Grenzwert, aber kleiner als der zweite Grenzwert, muss die Dokumentenmappe einen Reisepass sowie eine Arbeitgeberreferenz enthalten.
- Ist die Kreditsumme höher als der zweite Grenzwert, muss die Dokumentenmappe einen Reisepass, eine Arbeitgeberreferenz und Bürgendokumente enthalten.
Darüber hinaus gilt: Enthält das Feld Name des 2. Kreditnehmers einen Wert, muss die Dokumentenmappe Dokumente zum Bürgen enthalten.
Das folgend Skript verwendet diese Logik, um Dokumentenmappen zusammenzustellen.
usingSystem.Collections.Generic; intcreditSum=0; boolcreditSumFound=false; stringcocreditor=""; intformCount=0; stringformName="Borrower's form"; // In der Dokumentenmappe verwendete Dokumentdefinitionen intreferenceFromWorkCount=0; stringreferenceFromWorkName="Arbeitgeberreferenz"; intguaranteeDocsCount=0; stringguaranteeDocsName="Bürgendokumente"; intcocreditorDocsCount=0; stringcocreditorDocsName="Dokumente des 2. Kreditnehmers"; intpassportCount=0; stringpassportName="Passport"; foreach(IBatchItemiteminBatchItems){ // Formular finden und die Kreditsumme bestimmen if(item.Type==TBatchItemType.BIT_Page) { if(item.AsPage.SectionName!=formName) AssemblingErrors.AddCustomError("Kann die folgenden Bereiche nicht enthalten: "+item.AsPage.SectionName,1); else { cocreditor=item.AsPage.Document.IndexedItemValue("Name des Kreditnehmers").ToString(); stringcreditSumText=item.AsPage.Document.IndexedItemValue("Kreditsumme").ToString(); if(!int.TryParse(creditSumText,outcreditSum)) AssemblingErrors.AddCustomError("Kreditsumme wurde nicht erkannt: "+creditSumText,1); else creditSumFound=true; formCount++; } } // Zählen der Dokumente in der Mappe elseif(item.Type==TBatchItemType.BIT_Document){ if(item.AsDocument.TemplateName==referenceFromWorkName) referenceFromWorkCount++; elseif(item.AsDocument.TemplateName==guaranteeDocsName) guaranteeDocsCount++; elseif(item.AsDocument.TemplateName==passportName) passportCount++; elseif(item.AsDocument.TemplateName==cocreditorDocsName) cocreditorDocsCount++; else AssemblingErrors.AddCustomError("Die Dokumentenmappe kann das Dokument nicht enthalten "+item.AsDocument.TemplateName,1); } } // Prüfen Sie die Anzahl der ereiche und Dokumente in der Mappe if(formCount>1) AssemblingErrors.AddCustomError("Zu viele Dokumente des folgenden Typs enthalten: "+formName,formCount); elseif(formCount<1) AssemblingErrors.AddCustomError("Die folgenden Dokumente fehlen: "+formName,1); if(passportCount>1) AssemblingErrors.AddCustomError("Zu viele Dokumente des folgenden Typs vorhanden: "+passportName,passportCount); elseif(passportCount<1) AssemblingErrors.AddCustomError("Die folgenden Dokumente fehlen: "+passportName,1); // Prüfen, ob das Dokument einen 2. Kreditnehmer enthält, wenn ein Name des 2. Kreditnehmers im Formular vorhanden ist if(cocreditor!=""&&cocreditorDocsCount<1) AssemblingErrors.AddCustomError("Die folgenden Dokumente fehlen: "+cocreditorDocsName,1); elseif(cocreditor!=""&&cocreditorDocsCount>1) AssemblingErrors.AddCustomError("Zu viele Dokumente des folgenden Typs vorhanden: "+cocreditorDocsName,cocreditorDocsCount); elseif(cocreditor==""&&cocreditorDocsCount>0) AssemblingErrors.AddCustomError("Zu viele Dokumente des folgenden Typs vorhanden: "+cocreditorDocsName,cocreditorDocsCount); // Prüfen, ob die Dokumentenmappe alle erforderlichen Dokumente enthält, die aufgrund einer Kreditsumme erforderlich sind, die einen der Grenzwerte überschreitet if(creditSumFound) { if(creditSum>50000)// erfordert eine Arbeitgeberreferenz { if(referenceFromWorkCount>1) AssemblingErrors.AddCustomError("Zu viele Dokumente des folgenden Typs vorhanden: "+referenceFromWorkName,referenceFromWorkCount); elseif(referenceFromWorkCount<1) AssemblingErrors.AddCustomError("Die folgenden Dokumente fehlen: "+referenceFromWorkName,1); } if(creditSum>500000)// requires the guarantor's documents { if(guaranteeDocsCount>1) AssemblingErrors.AddCustomError("Zu viele Dokumente des folgenden Typs vorhanden: "+guaranteeDocsName,guaranteeDocsCount); elseif(guaranteeDocsCount<1) AssemblingErrors.AddCustomError("Die folgenden Dokumente fehlen: "+guaranteeDocsName,1); } }
Assembly script that checks for missing documents
Das Skript in diesem Beispiel arbeitet mit Identifikationsdokumenten der Dokumentenmappendefinition Die folgende Dokumentenmappendefinition enthält Verweise zu den folgenden Dokumentdefinitionen:
- Reisepass
- Führerschein
Document sets produced by the script may only include one document of each of these types but at least one document of these types.
The script below uses this logic to assemble document sets.
using System.Collections.Generic; using System; string docSetName = "Identification Documents"; int pagesCnt = 0; // List of the types documents that may be included in the set List<string> allowed = new List<string> {"Passport", "Driver's license"}; // Limit on the number of documents of each type in the set List<int> allowedCount = new List<int>{1,1}; // The number of documents detected in the set List<int> foundCount = new List<int>{0,0}; // Anzahl der Dokumente und Seiten in der Mappe foreach(IBatchItem itemin BatchItems) { if(item.Type == TBatchItemType.BIT_Document) { if(item.AsDocument.TemplateName == docSetName) AssemblingErrors.AddCustomError("Kann keine verschachtelte Mappe enthalten", 1); else if(allowed.Contains(item.AsDocument.TemplateName)) { int i = allowed.IndexOf(item.AsDocument.TemplateName); foundCount[i]++; } } else if(item.Type == TBatchItemType.BIT_Page) pagesCnt++; } // Prüfen der Anzahl von Dokumenten und Seiten if(foundCount[0] + foundCount[1] == 0) AssemblingErrors.AddCustomError("Es ist mindestens ein Identifikationsdokument erforderlich", 1); for(int i = 0; i < allowed.Count; i++) { if(foundCount[i] > allowedCount[i]) AssemblingErrors.AddCustomError("Maximale Anzahl Dokumente: " + allowed[i] + ": " + allowedCount[i]); } if (pagesCnt > 0) AssemblingErrors.AddCustomError("The document set cannot contain pages that do not belong to a document", pagesCnt);
14.01.2021 14:17:18