Introducing ABBYY FlexiCapture

ABBYY FlexiCapture is a highly scalable platform for intelligent data and document capture which can be successfully used to extract data from unstructured as well as structured paper documents, scans, e-mail messages, and other sources for subsequent use in document management systems. The four basic data extraction operations in ABBYY FlexiCapture include classification, optical recognition, verification, and export to ERP, ECM or BPM systems.

ABBYY FlexiCapture is capable of handling the full range of data processing needs, from small-scale projects to distributed industrial capture of large volumes of data, providing high levels of security and reliability expected from enterprise-grade software solutions.

The basic document processing scenario is as follows:

1.Documents are placed in the automatic scanner feeder and scanning begins. Images can also be imported from email or a mobile device, etc.

2.Scanned document images are submitted for recognition, at which point the software automatically identifies documents, including multipage documents, locates meaningful fields, extracts data and loads check rules.

3.After the recognition has been completed the extracted data undergoes an automatic check rules. If necessary, the process of visual check for data and rule errors is launched.

4.Recognized and verified data along with electronic copies of documents are saved to a database, an information system, or a file.


What's new in ABBYY FlexiCapture 12

Auto-learning

galochka

The new auto-learning capabilities help accelerate your time to production and reduce ongoing system maintenance costs. The technology allows the user to train the system to process flexible or irregular document layouts while the Administrator retains full control to edit, fine-tune or discard auto-learning results. Not only will the system learn and improve itself based on feedback from users, but the cost of supporting and maintaining the system will be greatly reduced.

Advanced Classification

galochka

Inbound communication can be classified by form and content, and thus support your organization in optimizing information-driven processes. It detects every incoming document type, applying logical form that leads to faster response times and prompt decision-making.

Classification technology comprises image classification, which takes advantage of deep learning (Convolutional Neural Networks) and allows sorting of documents by appearance or pattern, and text classification, which relies on statistical and semantic text analysis. ABBYY FlexiCapture allows users to use any of these technologies separately or to take advantage of both simultaneously.

Scalability and Enhanced Performance

galochka

FlexiCapture can be scaled both vertically and horizontally when deployed to support both high volume and fast processing scenarios. Whether you need to process more than 1 million pages per day, the architecture of FlexiCapture can scale to meet your processing requirements. You can control distributed infrastructure, documents processing and Operators via centralized configuration and management.

Service Level Agreement Support

galochka

SLA monitoring is the cornerstone of how business operates. Perform monitoring and analytics with new SLA Monitoring feature to ensure your systems are delivering the optimum results and performance. Set document time processing by batch type and change the order of tasks in a queue to speed up for the required timescales. Distribute tasks close to expiration manually in case of overloading. Meet your processing and timing requirements, ensure the system is delivering with standard reports and dashboards.

SLA settings

Multi-tenancy

galochka

Create a secured and isolated environment for tenants and apply common policies to different users with the Multi-tenancy feature. Use secure, centralized administration tools to protect data across multiple workgroups with less time for set-up.

Multitenancy

Document Sets for case management

galochka

Predefine document sets for specific processes, transactions or use cases like customer onboarding cases (accounts opening, getting mortgage or other loans) or incident management (insurance claims, customer service) with the new Document Sets for Case Management feature. Present all valuable information from documents in the summary section and speedup verification of a whole Document Sets. Automatically check document completeness and compliance through pre-defined rules.

Document sets

Multi-channel Input for All Document Types

galochka

The Multi-channel input enables you to process both paper and digital documents coming from multiple sources in a single flow – MFPs, network scanners, e-mails, FTP, web post or hot folders and mobile devices. Word, Excel, PDF, email bodies, scanned images, and other digital documents can be processed in the same flow. Text layer of digitally- born documents will be used for data extraction which ensures a high quality of data.

Image pre-processing options

Advanced Monitoring and Analytics Tools

galochka

These tools help you analyze document processing flow, ensure continuity of business process, optimize and prioritize resources or packages to tune performance and eliminate bottlenecks.

Administration and Monitoring Console

Smooth Integration and Customization

galochka

FlexiCapture API and customization scripts enable development of custom solutions, support specific business scenarios and ensure easy integration into enterprise workflows. They meet the requirements of customized business processes or tailored processing stages and routing to boost specific customer tasks.

Integrating Web Stations into third-party systems

Mobile Capture

galochka

Use mobile devices and other document sources to increase data availability and processing speed. High quality of mobile uploads is ensured by the image enhancement tools. Use Mobile Client for FlexiCapture to send and process end-users documents photographed in front office.

Mobile Client for FlexiCapture

HTML5 stations ensure cross-browser support and modern UI

galochka

FlexiCapture HTML5 web-stations support Chrome, Firefox, Safari, IE, Opera, and other browsers. Using remote stations global companies can distribute and manage relevant business processes across remote locations through responsive Web interface.


What types of documents can be processed with ABBYY FlexiCapture

Show/Hide Hidden Text

ABBYY FlexiCapture is software solution for single-flow data capture from documents of various types.

Various documents can be processed in a single flow. You can also set up the program to process documents of mixed type, e.g. documents that contain both structured and semi-structured sections. The type of documents affects system configuration only, namely the method of creating Document Definitions. The nature of the Operator's work is not affected by the type of documents processed.

ABBYY FlexiCapture can be configured for automated input of the following documents, including in a single flow:

Structured fixed forms;

Structured forms are documents containing a set of marked information fields whose formatting, number and layout does not change from one document instance to the next. Such documents are called fixed forms. For example, most questionnaires and application forms are fixed forms. Such forms are usually distributed as blank forms and filled out by hand.

To identify a fixed form in a document flow and to extract data from it, you need to create a single fixed layout that will tell the program the location of the fields containing data to be extracted.

Fixed forms created to meet the requirements of automatic input can be processed most effectively. Such forms are called machine-readable forms.

The program includes a convenient tool for designing machine-readable forms ABBYY FormDesigner (supplied together with ABBYY FlexiCapture). You can read about designing forms with the help of ABBYY FormDesigner in the User Guide and help topics.

The basic stages of creating a Document Definition are described specifically for structured documents.

note Note: Fixed forms received by fax can be distorted: their size and the relative positions of their fields may be altered. Due to this, we recommend using a FlexiLayout to increase recognition quality when processing such forms.
Semi-structured flexible forms and documents;

These are documents containing a set of information fields whose design, number and layout may vary significantly in different instances of the document. These documents are called flexible. For example, bills are semi-structured documents, since they often vary both in terms of the number of items and their formatting, due to the fact that they are received from different companies. All bills have a bill number and an amount due for payment, but are located in different places.

To identify flexible forms and to extract data from them, ABBYY FlexiCapture uses a flexible layout (FlexiLayout). A flexible layout is created with the help of a special module called ABBYY FlexiLayout Studio. Details of this module are available in the User Guide and help topics.

The processing of semi-structured documents differs from the processing of fixed forms only at the stage of creating and loading a layout. For details see Creating a Document Definition for semi-structured document processing.
Unstructured documents with free-style design.

ABBYY FlexiCapture can be used to process unstructured documents containing information presented in a free style, for example contracts, letters, orders, and graphs. The program can automatically identify unstructured documents as annexes to fixed or flexible forms, or it can identify them with the help of a flexible layout and then export them as PDF searchable files or as graphic files. You can extract index fields from unstructured documents both automatically with the help of a flexible layout and by way of manual input.

NLP can be used to process unstructured documents. This technology uses NLP models to extract information from text.

A typical scenario for the processing of unstructured documents is when a hardcopy archive needs to be converted into electronic form and there is a requirement to extract two or three index fields in order to organize a quick attribute-based search.

For details see Creating Document Definitions for unstructured and semi-structured documents.


Brief description of document processing using ABBYY FlexiCapture

This section provides a general overview of how to process documents using ABBYY FlexiCapture.

listPicture Overview of program settings for document processing

listPicture Overview of operations with a configured program

The process of using the program is described in more detail in the sections Program settings and Operating a configured project.


Brief description of program settings for document processing

Navigation: Introducing ABBYY FlexiCapture > Brief description of document processing using ABBYY FlexiCapture >

Return to chapter overview

Overview of program settings for document processing

The Administrator configures the program for processing certain types of document. To prepare the program for document processing, you need to create:

1.A project
A project is a collection of settings related to a specific business process, it includes image import profiles, Document Definitions, and document batches for processing.

2.One or several Document Definitions
Creating a Document Definition is the most critical stage in configuring a project. If you plan to process various types of documents in a single flow, you need to create several Document Definitions as part of a single project.

3.Batch types
The type of a batch determines how FlexiCapture will process it. Batch types include settings that affect how images are recognized and processed, how the program checks the integrity of batches and how it exports data.

4.Image import profiles
Import profiles are created for convenience and to streamline the work of Operators. If import profiles are not configured, each time you add images you have to select the import source and configure settings. Import profiles allow you to add images at the click of a button and to switch easily between import sources.

5.A document batch
Documents submitted for processing are added to batches. The principle of assigning documents to batches is user-defined: you can process all documents in a single batch or form batches from documents added on the same date or from a batch scanned in a single pass. If you add images for which there are no batches, a batch will be created automatically.

See also:

details Program settings


Distributed work

ABBYY FlexiCapture (Distributed Installation) is a distributed client/server data capture system.

ABBYY FlexiCapture (Distributed Installation) includes several stations and servers. Each station is responsible for certain processing routines. The servers ensure the operation of the entire complex, connect the stations, and distribute workload among the stations. Before documents can be processed, the servers must be set up.

A brief overview of the components follows:

·Administration and Monitoring Console
After you install the system, you must establish a database connection and grant appropriate permissions to the Operators. This is done in the Administration and Monitoring Console by the user that has the Administrator permissions.
The Administration and Monitoring Console is a Web interface that controls the Application Server. The console can be accessed from any computer connected to the Application Server at http:\\<ApplicationServer>\FlexiCapture12, where<ApplicationServer> is the name of the computer on which the Application server is installed.
While processing documents, the console can be used to obtain statistics and generate reports.

·Project Setup Station
The next step is to create and set up a project. For this purpose, the Operator of the station creates Document Definitions, batch types, and define the order of processing. Once the system is set up, the project is uploaded to the Application Server and document processing can start.

·Scanning Station
The Scanning Station may be the first station where the documents to be processed arrive. The Operator of this station creates batches and adds document images into them. If required, the added images may be edited. Then the batch is sent on to ABBYY FlexiCapture for further processing.
The use of a Scanning Station is not required when images to be processed arrive from a Hot Folder.

·Processing Station
The Processing Station runs unattended and performs the following operations: getting images from Hot Folders, applying Document Definitions and recognizing documents, rule validation, and exporting the results to user-defined destinations.

·Data Verification Station
The purpose of this station is to check the captured data. The Operator of the station first reviews the unreliably recognized characters in group view and then in field view. Then the batch is sent on to the Verification Station. In the event of a processing error, the Operator of the Data Verification Station may send the batch or documents to the exceptions queue, where they are processed by the Senior Verification Operator.

·Verification Station
This station performs more complex checks than the Data Verification Station. Besides data checks, the station can process problem batches or documents, correct assembly errors, check rules, and check batch integrity.

·Processing Server
The Processing Server distributes the workload among the Processing Stations. Together with the server, a Processing Server Monitor is installed, which is used to monitor the operation of the server and to set task priorities.

·Application Server
The Application Server connects the stations together and ensures their operation. Before installing the server, make sure that all the components required for the normal operation of the server are installed.

·Database Server
The Database Server stores the data required for processing operations: information about the Operators, batches, events, etc. For demo projects, you can use Microsoft SQL Server Express Edition. For other projects, the use of the full version of Microsoft SQL Server and File Storage Folder is recommended.

·File Storage Folder
The project files can be stored either in a database or in a separate File Storage Folder, which is a regular folder located on the computer where the Application Server is installed. A File Storage Folder can be set up in the Administration and Monitoring Console.

·Licensing Server
A protection key is required for the normal operation of the system. ABBYY FlexiCapture License Manager is an application for managing protection keys.

See also:

details Installing ABBYY FlexiCapture

details Processing Server and Processing stations setup

details ABBYY FlexiCapture architecture

details Application Server setup

details Multitenancy


Creating a project

To process different documents as part of a single project, the project must have several Document Definitions. If document flows do not intersect and their processing settings differ considerably, you can create separate projects for them.

To start, you first need to create at least one project.

To create a new project, start the Project Setup station and select File → New Project....

See also:

details Creating a project


Overview of creating a Document Definition

Navigation: Introducing ABBYY FlexiCapture > Brief description of document processing using ABBYY FlexiCapture > Overview of program settings for document processing >

Return to chapter overview

Creating a Document Definition

Show/Hide Hidden Text

Creating a Document Definition is the most critical part of configuring a project and determines the quality of data obtained after processing.

A Document Definition describes the location of document elements and indicates fields to be used in data extraction.

To create a Document Definition, run the Document Definition Wizard:

1.In the Project Setup Station main window, select Project → Document Definitions...

2.In the Document Definitions dialog box, click the New... button.

3.Follow the instructions of the Document Definition Wizard.

The main stages of Document Definition creation depend on the type of documents being processed.

The main stages of creating a Document Definition for fixed forms

1.Create a new Document Definition with the help of the Document Definition Wizard. With the Wizard running, open the document page image that will be used to perform Document Definition marking.

2.Mark static elements anchors and identifiers, configuring their properties. Static elements are used for Document Definition matching and identification. Normally, static elements are detected automatically and assigned default properties.

3.Mark fields on the image. Fields are used for data extraction.

4.Configure field properties. Field properties both affect the quality of recognition and determine whether field values will be exported and submitted for verification by the Operator. They specify the types of data and range of values of a field.

5.Create Document Definitions for multipage documents: adding pages and repeating all stages for each page.

6.Configure data export.

7.If required, you can configure the way data is displayed in the document window, checked against rules, etc.

8.Test a Document Definition using images of several documents.

note Note: If you have created machine-readable forms with ABBYY FormDesigner, instead of the first three stages you only need to import a file with the *.xfd extension. A page image with ready marking will open (or images of several pages if you used ABBYY FormDesigner to create a multipage form). For details see Importing a Document Definition for forms created with ABBYY FormDesigner.
Main stages of creating a Document Definition for semi-structured documents

1.Create a FlexiLayout (a file with the *.afl extension) using ABBYY FlexiLayout Studio. For details, see the Help Topics of ABBYY FlexiLayout Studio.

2.Create a new Document Definition with the help of the Document Definition Wizard. With the Wizard running, open an image of a document page and attach a FlexiLayout (the *.afl file you have created). After the Wizard has finished, the field marking will be present on the image.

3.Configure field properties. Follow the procedure for configuring Document Definition properties for a fixed form.

4.Configure data export.

5.If required, you can configure the way data is displayed in the document window, checked against rules, etc.

6.Test a Document Definition using images of several documents.

For mixed-type documents containing pages with fixed forms and semi-structured sections, you can attach a FlexiLayout as one of the Document Definition sections. Start creating a Document Definition from any section (flexible or fixed) and then add a new section of a different type.

Documents of various types can be processed in a single flow: within the same project, you can create Document Definitions for fixed forms, semi-structured documents, and mixed-type documents. The program will select appropriate Document Definitions automatically.

To process documents with annexes, create a Document Definition and enable the option Enable annex pages in the Document Definition properties. See Creating Document Definitions for documents with annexes.

To process a document set (i.e. a set of related documents intended for the same purpose, such as personal loan applications or insurance reports), create a Document Definition for the document set. For details, see Document sets.

See also:

details Document Definitions


Creating batch types

Documents are processed in batches. Batches are created when documents are imported or scanned. At the same time, each batch is assigned a type.

Batch types predetermines the following document processing parameters:

·image pre-processing

·matching Document Definitions with their corresponding documents

·batch integrity check

·default batch export

·batch processing

See also:

details Batch types

details Creating document batches


Creating import profiles

Navigation: Introducing ABBYY FlexiCapture > Brief description of document processing using ABBYY FlexiCapture > Overview of program settings for document processing >

Return to chapter overview

Creating image import profiles

Document processing starts with adding new images into the batch. These can be paper documents to be scanned or electronic images to be imported.

Images can be added:

·automatically on the Processing Stations. To automate image import, you need to create an image import profile on the Project Setup Station and specify the Hot Folders to be used. Images will be imported from the Hot Folders automatically.

·manually by the Operators of the Scanning Stations. To scan pages, the Operator of a Scanning Station must create scanning profiles.

If images are often obtained from different sources, several import profiles can be created and the Operator can then select the appropriate profile for each source.

On the Project Setup Station, you can debug Document Definitions by creating batches, adding document images into them, and processing them. The process of adding images can also be automated: the Operator of the Project Setup Station can create an image import profile that uses a scanner.

See also:

details Image import profiles


Overview of the work of operators with a configured program

Operators use a program that is preconfigured. Document processing includes the following stages:

1.Adding images
Document processing starts with acquiring images - either by scanning or by loading images automatically using import profiles (e. g. Hot Folders). Scanning is performed by the Operator of the Scanning Station, automatic loading is performed by the Processing Stations.

2.Recognition
Recognition is carried out automatically on the Processing Station: the program selects the appropriate Document Definition based on the positions of the static elements, applies the Document Definition, and recognizes the data in the fields specified in the Document Definition.

3.Verification
Verification the process of checking data is the most labor-intensive part of the Operator's work. It comprises:

oVerification of document assembly checking whether document pages have been assembled correctly;

oGroup verification a visual check on groups of identically recognized characters;

oField verification a check on uncertainly recognized characters within the context of fields with a known range of values;

oRule validation checking for rule errors.

oBatch integrity check - starting the integrity scripts and correcting any errors.

Documents can be verified on two stations.
Basic verification is done on the Data Verification Station, where only group and field verification modes are available to the Operator.
More complex verification is performed on the Verification Station, where apart from data verification the Verification Operator and the Senior Verification Operator may check document assembly, correct rule errors and perform batch integrity check.

4.Data export
Data are exported automatically on the Processing Station in accordance with the settings provided in the Document Definition. A batch is exported either immediately after it has been processed or after it has been confirmed by the Senior Verification Operator (the corresponding settings are made by the Administrator).

See also:

details Operating a configured project


Operators of ABBYY FlexiCapture

Operator is a user of ABBYY FlexiCapture for whom a document processing role and corresponding permissions have been specified. The Operators' access permissions differ depending on their areas of responsibility. An Operator's access permissions depend on the Operator's role.

The following roles are available in ABBYY FlexiCapture (each role is set up for the current project):

·Scanning Operator - an Operator in this role can work on a Scanning Station

·Data Verification Operator - an Operator in this role can work on a Data Verification Station and on a Verification Station

·Verification Operator - an Operator in this role can work on a Verification Station (only data checks, assembly errors, and rule validation are accessible to the Operator)

·Senior Verification Operator - an Operator in this role can work on a Verification Station (the entire functionality of the station is accessible to the Operator)

·Monitoring Operator - an Operator in this role can work in the Administration and Monitoring Console (all features are accessible except setup)

·Project Setup Editor - an Operator in this role can work on a Project Setup Station

·Administrator - an Operator in this role can work in the Administration and Monitoring Console (the entire functionality of the console is accessible to the Administrator). Besides, the Administrator can access any station in the system and the Administrator permissions apply to all projects uploaded to the Application Server, not only to the current ones.

note Note: If necessary, the Administrator may configure user roles that will be displayed in the general list of roles (for details, see Custom Operator roles).

A role defines the set of stations accessible to the Operator in this role, as well as the queues from which the Operator may get tasks during document processing.

The roles of Administrator and Monitoring Operator apply to the entire system. Other Operator roles apply only to individual projects. Additionally, the roles of Scanning Operator, Data Verification Operator, and Senior Verification Operator have different access permissions to batches of different types. Thus, a user may simultaneously have the following roles:

·Project A: Project setup Operator

·Project B:

oType 1 batches: Senior Verification Operator

oType 2 batches: Data Verification Operator


Creating document batches

Documents to be processed are put into batches. The principles of grouping documents into batches are determined by the user. For example, the user may choose to process all documents as one batch, or group together documents imported on the same day or scanned at one go.

Batches can be created automatically when images are imported from Hot Folders or scanned on the Scanning Station. To create a new batch manually, right-click the batch list in the main window and select New Batch... from the shortcut menu.

note Note: To change the name of a batch, left-click the appropriate batch in the batch list and press the F2 key. Please note that the name of a batch may not exceed 90 characters.

When a batch is created, its type is specified, which determines the order in which the batch is to be processed.

See also:

details Batches


Adding images

Usually, images are added on the Scanning Station (see Scanning Station Help for detailed information). However, the Senior Verification Operator can also add images on his/her station.

To add images on the Verification Station, select the batch to which to add images. Images can be added in of the two ways:

·Scanning (click File → Scan Images...)

·From image files (click File → Load Images...)

To debug Document Definitions, you can add images on the Project Setup Station.

See also:

details Adding page images


Starting the recognition process and analyzing and applying a Document Definition

Navigation: Introducing ABBYY FlexiCapture > Brief description of document processing using ABBYY FlexiCapture > Overview of the work of Operators with a configured program >

Return to chapter overview

Recognition, analysis, and Document Definition matching

Usually documents are recognized, analyzed, and Document Definitions are applied automatically. However, these operation scan be started manually on the Verification Station and on the Project Setup Station.

To recognize the images, select Recognition → Recognize from the main menu.

To analyze the images, select Recognition → Analyze from the main menu. If a Document Definition matches a document, the page and its document will have the corresponding names. If one of the Document Definitions in the project does not match an image, the page is marked as unknown.

The system also allows you to apply a particular Document Definition to a page or to the entire document. In most cases, a correctly created Document Definition will be matched with its pages automatically, but in some cases this may need to be done manually. To match a Document Definition, select the page or document with which you want to match the Document Definition and then select Recognition → Match Document Definition... from the main menu.

See also:

details Recognition


Verification

Verification consists in checking that the data have been recognized, pages have been assembled into documents correctly, and rules returned no errors. Verification is done on the Data Verification Station (where recognition accuracy is verified) and on the Verification Station (where all types of checks can be performed). Verification is performed for tasks.

Verification starts once a task has arrived to the station. First comes group verification, followed by fields verification. If a Document Definition contains no fields included in group or field verification, the corresponding verification stage is skipped.

When creating a Document Definition, you need to configure the document assembly rule: sequence and number of page repetitions. You can also configure assembly verification based on the values of key fields: in this case the values of key fields must be identical on all pages of the document. Pages are assembled into documents automatically in the recognition stage. In the verification stage you need to correct possible document assembly errors for multipage documents. Documents with assembly errors are marked by the following symbol [image]. A description of the error is provided in red letters below the name of the Document Definition. In the event of a mismatch of the values of key fields, the relevant message will appear and the values will be highlighted in red. Assembly errors can be corrected most easily in page outline mode, where a good view of page images and the different documents to which they belong are realized.

During group verification, groups of identically recognized characters are submitted for verification. The task of the Operator is to identify differing characters that have been recognized incorrectly. They then correct their values, after viewing the image of the field containing this character. If it is impossible to correct characters, you can mark them as questionable.

During field verification, fields with a known range of values are submitted for verification. The task of the Operator is to check uncertainly recognized characters within the context of the entire field. Field verification has two modes: a single field view mode with cuttings of characters and a multiple same-type fields view mode.

Verification is also performed in the document window which opens when you double-click the name of a document or page. The document window does not display separate fields but only the entire document. It also shows all uncertainly recognized characters, rule errors, etc.

Unfulfilled rules and format errors affecting one field are flagged with a yellow flag icon [image] (warning) or a red flag icon [image] (error). Warnings and errors generated by rules that effect several fields are flagged with the [image] and [image] icons respectively. The Operator needs to check fields with errors and, if possible, correct their values. Documents with errors can be verified later by comparing them with hardcopy documents or other available sources. If a field with an error is hidden at this processing stage, the Operator will notice that the document that contains a hidden field with an error is flagged with a gray flag icon [image] .

The [image] icon is also used to indicate instances when fields from FlexiLayouts could not be applied. An Operator can manually specify regions for such fields on the document image.

See also:

details Verification of recognized data


Export

Navigation: Introducing ABBYY FlexiCapture > Brief description of document processing using ABBYY FlexiCapture > Overview of the work of Operators with a configured program >

Return to chapter overview

Data export

Show/Hide Hidden Text

Data are exported automatically. If required, a separate export confirmation queue may be created by the Verification Operator. In this case, export is done after confirmation is obtained. Data are exported based on the settings provided in the Document Definition.

Manual export of documents

To export documents manually, select one of the items in the File → Export To menu:

·Data to Files... to export the data to a file

·Images to Files... to export the images to a file

·Database... to export the document to a database

Change the default export settings if required and export the data.

See also:

details Exporting recognized data


Installing and running the program

This section contains basic information about installing, protecting, and running ABBYY FlexiCapture. It also covers the system requirements for installation.

listPicture System requirements

listPicture Installing ABBYY FlexiCapture

listPicture License Manager

listPicture Repairing and removing ABBYY FlexiCapture

listPicture Running the program


System requirements

Show/Hide Hidden Text

Servers

CPU

Application Server: 2 GHz or faster with 2 cores

Other servers: 2 GHz or faster

Operating system

·Windows Server 2008 R2 SP1

·Windows Server 2012

·Windows Server 2012 R2

·Windows Server 2016

·Windows Server 2019

note Note: To use a localized version of ABBYY FlexiCapture, make sure your operating system supports the corresponding GUI language.

RAM

At least 2 GB for each component

note Note: An additional 4 GB RAM is required if Database Server is installed.

Disk space

1.Application Server: 500 MB for installation

2.Processing Server: 400 MB for installation

3.Licensing Server: 100 MB for installation

4.2 GB for SQL Server database

5.Additional space is required for the file storage

Browser

(to open Administration and Monitoring Console)

·Google Chrome 55 or later (32-bit)

·Mozilla Firefox 50 or later (32-bit)

·Microsoft Edge 41 or later

note Note: ABBYY FlexiCapture works best with Google Chrome and other Chromium-based browsers.

·Internet Explorer 11

note Note: To ensure that Internet Explorer 11 works correctly, install .NET Framework 4.7.2 on the computer with the Application Server or add the address of an application server to the list of websites that are opened in compatibility mode.

warning Important! Disclaimer for Internet Explorer users/Known Issue

Due to the known limitations of Internet Explorer 11, you may observe the issues while processing more than 100 pages or having numerous verification tasks with ABBYY FlexiCapture. Using Internet Explorer browser for an extended period of time can cause the browser to consume a lot of the machine's memory and slow down the client performance and eventually crash the browser.

To avoid the unwanted interruptions of ABBYY FlexiCapture processing tasks ABBYY recommends you to use Microsoft Edge, Google Chrome or other browsers for the professional verification tasks. Nevertheless, ABBYY FlexiCapture web-stations are fully functioning in Internet Explorer 11, thus they should be used for ad-hoc processing preferably.

Important notes for users of Internet Explorer

1.In the event of a verification malfunction, the operator will not be able to resume the task immediately after the session is restored. This task will become available only after the inactive sessions have been purged. By default, inactive sessions are purged every 4 hours. You can change this setting in the web.config file on the Processing Server. We do not recommend purging inactive sessions too often. The recommended minimum setting is 10 minutes.

2.Starting from FlexiCapture R3 Update 1, each new task is opened in a new tab to optimize memory use. However, this also means that operators will not be able to receive new tasks automatically. To revert to the old behavior, open the web.config file for the web station and set the IEVerificationNewWindow key to false.

3.In Internet Explorer 11, users will not be able to enter Japanese text using the corresponding Microsoft IME.

Other requirements

1.The computer where the server is installed must be connected to your domain

2.Video card and display with a resolution of 1024×768

3.Internet Information Services 7 or higher

4.Microsoft .NET Framework 4.7.2 or higher

5.Microsoft SQL Server 2012 SP4, 2014 SP2, 2016 SP2, 2017, 2019;
Microsoft Azure;

note Note: Additionally, Microsoft SQL Server Native Client 2012 or later is required for creating databases.
Oracle Database 12c, 18c, 19c.

6.Visual C++ 2015 Redistributable

Stations

CPU | 2 GHz or faster
Operating System | ·Windows 7 SP1 ·Windows 8.1 ·Windows 10 ·Windows Server 2008 R2 SP1 + Desktop Experience ·Windows Server 2012 + Desktop Experience ·Windows Server 2012 R2 + Desktop Experience ·Windows Server 2016 + Desktop Experience ·Windows Server 2019 + Desktop Experience note Note: To use a localized version of ABBYY FlexiCapture, make sure your operating system supports the corresponding GUI language.
RAM | Project Setup Station, Verification Station, Data Verification Station: 2 GB Processing Station: at least 2.5 GB for each CPU core Scanning Station: 1 GB
Disk space | Scanning Station: 1 GB (including 200 MB for installation and sufficient disk space for scanned images) Other stations: 4 GB (including 2 GB for installation)
Other requirements | 1.A scanner with TWAIN, WIA or ISIS support 2.Video card and display with a resolution of 1024×768 3.The computer where the station is installed must be connected to your domain 4.Microsoft .NET Framework 4.7.2 or later 5.Microsoft Office (version 2007 or later) or LibreOffice (version 4.0 or later)

HTML 5 Web Stations

CPU

1.6 GHz or faster

Operating System

·Windows 7 SP1

·Windows 8/8.1

·Windows 10

·Windows Server 2008 R2 SP1 + Desktop Experience

·Windows Server 2012 + Desktop Experience

·Windows Server 2012 R2 + Desktop Experience

·Windows Server 2016 + Desktop Experience

·Windows Server 2019 + Desktop Experience

note Note: To use a localized version of ABBYY FlexiCapture, make sure your operating system supports the corresponding GUI language.

RAM

1 GB

Disk space

·Sufficient space to install a browser

·At least 100 MB for program operation

·An additional 60 MB is required to install the ABBYY Scanning Plugin for the Web Scanning Station.

Browser

·Google Chrome 55 or later (32-bit)
Security settings for Google Chrome:

1.JavaScript = Allow all sites

2.plugins = Run automatically

note Note: All plugins are disabled by default. To enable a plugin, open chrome://plugins/ in the browser and select the Always allowed option for the desired plugin.

·Mozilla Firefox 50 or later (32-bit)
Security settings for Mozilla Firefox:

1.Java scripting = Enable

2.Firefox will remember history (Options → Privacy)

·Microsoft Edge 41 or later
Security settings for Microsoft Edge:

1.JavaScript = Allow all sites

2.plugins = Run automatically

note Note: ABBYY FlexiCapture works best with Google Chrome and other Chromium-based browsers.

·Microsoft Internet Explorer 11
Browser security settings: Internet Explorer medium-high protection level. Detailed required settings for Internet Explorer:

1.Run ActiveX controls and plugins = Enable

2.Script ActiveX controls marked safe for scripting = Enable

3.Active scripting = Enable

note Note: To ensure that Internet Explorer 11 works correctly, install .NET Framework 4.7.2 on the computer with the Application Server or add the address of an application server to the list of websites that are opened in compatibility mode.

note Note: The Metro-style version of Internet Explorer 10 that comes with Windows 8 is not supported.

warning Important! Disclaimer for Internet Explorer users/Known Issue

Due to the known limitations of Internet Explorer 11, you may observe the issues while processing more than 100 pages or having numerous verification tasks with ABBYY FlexiCapture. Using Internet Explorer browser for an extended period of time can cause the browser to consume a lot of the machine's memory and slow down the client performance and eventually crash the browser.

To avoid the unwanted interruptions of ABBYY FlexiCapture processing tasks ABBYY recommends you to use Microsoft Edge, Google Chrome or other browsers for the professional verification tasks. Nevertheless, ABBYY FlexiCapture web-stations are fully functioning in Internet Explorer 11, thus they should be used for ad-hoc processing preferably.

Important notes for users of Internet Explorer

1.In the event of a verification malfunction, the operator will not be able to resume the task immediately after the session is restored. This task will become available only after the inactive sessions have been purged. By default, inactive sessions are purged every 4 hours. You can change this setting in the web.config file on the Processing Server. We do not recommend purging inactive sessions too often. The recommended minimum setting is 10 minutes.

2.Starting from FlexiCapture R3 Update 1, each new task is opened in a new tab to optimize memory use. However, this also means that operators will not be able to receive new tasks automatically. To revert to the old behavior, open the web.config file for the web station and set the IEVerificationNewWindow key to false.

3.In Internet Explorer 11, users will not be able to enter Japanese text using the corresponding Microsoft IME.

Other requirements

1.Video card and display with a resolution of 1024×768

2.For Web Scanning Station:

a.A scanner supporting the TWAIN interface. WIA scanners can be accessed from the station but they may not operate properly

b.ABBYY Scanning Plugin (see below)

ABBYY Scanning Plug-In

You can install one of the two versions of ABBYY Scanning Plugin:

·The Scanning Plugin that supports PDF (selected by default). Requires ~70 MB of free space.

·The Scanning Plugin without the PDF support. Requires ~17 MB of free space.

The table below lists the operating systems on which the ABBYY Scanning Plugin can be installed with various permissions:

ABBYY Scanning Plugin
OS | Permissions | UAC | EXE
Windows 7 SP1 | Administrator | Recommended |
 |  | No |
 | User | Recommended |
 |  | No |
Windows Server 2008 R2 SP1 | Administrator | Recommended |
 |  | No |
 | User | Recommended |
 |  | No |
Windows 8.1 | Administrator | Recommended |
 |  | No |
 | User | Recommended |
 |  | No |
Windows Server 2012* | Administrator | Recommended |
 |  | No |
 | User | Recommended |
 |  | No |
Windows Server 2012 R2 | Administrator | Recommended |
 |  | No |
 | User | Recommended |
 |  | No |
Windows 10 | Administrator | Recommended |
 |  | No |
 | User | Recommended |
 |  | No |

note Note: To allow the ABBYY Scanning Plugin to be installed on Windows Server 2012, run the executable file Setup.exe as Administrator or change the security policy by setting the value of the registry key HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer DisableMSI to “0”.

Remote Verification Station

CPU | 2 GHz or faster
Operating System | ·Windows 7 SP1 ·Windows 8.1 ·Windows 10 ·Windows Server 2008 R2 SP1 + Desktop Experience ·Windows Server 2012 + Desktop Experience ·Windows Server 2012 R2 + Desktop Experience ·Windows Server 2016 + Desktop Experience ·Windows Server 2019 + Desktop Experience note Note: To use a localized version of ABBYY FlexiCapture, make sure your operating system supports the corresponding GUI language.
RAM | 1 GB
Disk space | 400 MB
Other requirements | 1.Video card and display with a resolution of 1024×768 2.Microsoft .NET Framework 4.7.2 or later

ClickOnce Scanning Station

CPU

2 GHz or faster

Operating System

·Windows 7 SP1

·Windows 8.1

·Windows 10

·Windows Server 2008 R2 SP1 + Desktop Experience

·Windows Server 2012 + Desktop Experience

·Windows Server 2012 R2 + Desktop Experience

·Windows Server 2016 + Desktop Experience

·Windows Server 2019 + Desktop Experience

note Note: To use a localized version of ABBYY FlexiCapture, make sure your operating system supports the corresponding GUI language.

RAM

1 GB

Disk space

1.5 GB (including 550 MB for installation and sufficient space for scanned images). The size of downloadable file is 270 MB

Browser

For ClickOnce deployment:

·Internet Explorer 11

note Note: To ensure that Internet Explorer 11 works correctly, install .NET Framework 4.7.2 on the computer with the Application Server or add the address of an application server to the list of websites that are opened in compatibility mode.

warning Important! Disclaimer for Internet Explorer users/Known Issue

Due to the known limitations of Internet Explorer 11, you may observe the issues while processing more than 100 pages or having numerous verification tasks with ABBYY FlexiCapture. Using Internet Explorer browser for an extended period of time can cause the browser to consume a lot of the machine's memory and slow down the client performance and eventually crash the browser.

To avoid the unwanted interruptions of ABBYY FlexiCapture processing tasks ABBYY recommends you to use Microsoft Edge, Google Chrome or other browsers for the professional verification tasks. Nevertheless, ABBYY FlexiCapture web-stations are fully functioning in Internet Explorer 11, thus they should be used for ad-hoc processing preferably.

Important notes for users of Internet Explorer

1.In the event of a verification malfunction, the operator will not be able to resume the task immediately after the session is restored. This task will become available only after the inactive sessions have been purged. By default, inactive sessions are purged every 4 hours. You can change this setting in the web.config file on the Processing Server. We do not recommend purging inactive sessions too often. The recommended minimum setting is 10 minutes.

2.Starting from FlexiCapture R3 Update 1, each new task is opened in a new tab to optimize memory use. However, this also means that operators will not be able to receive new tasks automatically. To revert to the old behavior, open the web.config file for the web station and set the IEVerificationNewWindow key to false.

3.In Internet Explorer 11, users will not be able to enter Japanese text using the corresponding Microsoft IME.

Other requirements

1.A scanner with TWAIN, WIA or ISIS support

2.Video card and display with a resolution of 1024×768

3.Microsoft .NET Framework 4.7.2 or later

Virtual Environments

The system has been tested on the following virtual machines:

1.Virtual platforms that imitate physical machines:

oVMWare Workstation (any version)

oHyper-V (any version)

note Note: Hyper-V version corresponds to the version of the operating system.

note Note: Hyper-V virtual machines do not work with USB devices.

oOracle VirtualBox (any version)

oVMWare ESXi (server included with VMWare vSphere, any version)

2.Virtual platforms imitating workplaces / applications:

oVMWare Horizon 5.2.0

oCitrix XenApp 7.13

3.Cloud services:

oMicrosoft Azure

oAmazon Cloud


Installing ABBYY FlexiCapture

Before installing ABBYY FlexiCapture, we recommend closing down all other applications (e.g. Microsoft Outlook, Microsoft Word etc.).

warning Important! The setup program copies temporary files into the folder defines by the environment variable %temp%. If you encounter installation problems, make sure that this folder is accessible and there is enough space to store the temporary files.

Installing ABBYY FlexiCapture includes the following stages:

1.Installing the ABBYY FlexiCapture servers.

2. Installing the ABBYY FlexiCapture stations.

Once the installation is complete, set up the system as required.

·Processing Server and Processing Stations setup


Installing ABBYY FlexiCapture servers

Show/Hide Hidden Text

The servers are installed from the ABBYY FlexiCapture disk via the setup menu. The following servers must be installed:

·Application Server

·Database Server

·Processing Server

· Licensing Server

Installation instructions for each server are provided below.

Application Server

Before installing the Application Server, make sure that the necessary components are installed.

If these components are not installed on your computer, all of them (with the exception of Internet Information Services) can be installed from the ABBYY FlexiCapture disk (Autorun, 1. Distributed Installation → 1. Install External Components).

If all of the above components are already installed, you can start installing the Application Server. On the Autorun menu, select 1. Distributed Installation → 2. Install Servers and follow the instructions of the setup wizard. in the Custom Setup dialog box, select Application Server.

To install Web Scanning station and Web Capture station in the Custom Setup dialog box, select the Web Stations option. In this case Operators will be able to access the stations via browser. Default installation paths cannot be changed.

note Note: Prerequisites (e.g. Msxml6) are installed only when installation or modification of the program is run via the setup.exe file.

Once the Application Server is installed, the Administration and Monitoring Console will be launched automatically, where you can set a database connection and grant right to the Operators.

Database Server

The Database Server stores the data required for document processing operations: information about the Operators, batches, events, etc. If there are no more than 50 Verification Stations in the system and no more than 100,000 documents are processed daily, you can use Microsoft SQL Server Express Edition. For larger volumes, the use of the full version of Microsoft SQL Server and/or File Storage Folder is recommended.

Microsoft SQL Server Express Edition can be installed from the ABBYY FlexiCapture disk: on the Autorun menu, select 1. Distributed Installation → 1. Install External Components.

Processing Server

The Processing Server distributes the workload among the Processing Stations. Together with the server, a Processing Server Monitor is installed, where you can monitor the operation of the server and set task priorities.

To install the Processing Server, on the Autorun menu, select 1. Distributed Installation → 2. Install Servers and follow the instructions of the setup wizard. in the Custom Setup dialog box, select Processing Server.

Once the Processing Server is installed, you must configure it (i.e. start the server, add the Processing Stations, etc.).

Licensing Server

The system requires a valid protection key which must be activated on the ABBYY activation server. This can be done via the License Manager application, which starts automatically once you have installed the Licensing Server.

To Install the Licensing Server, on the Autorun menu, select 2. Install Servers → 1. Distributed Installation and follow the instructions of the setup wizard. in the Custom Setup dialog box, select Licensing Server.

The License Manager allows you to manage your licenses, i.e. add, activate, select licenses and view their parameters.


Installing ABBYY FlexiCapture stations

The stations are installed from the ABBYY FlexiCapture disk via the setup menu. You can also install the stations from the server, if the station installed was copied to the server when installing the Application Server.

The following stations must be installed:

·Project Setup Station

·Scanning Station

·Data Verification Station

·Verification Station

· Processing Station

The Scanning, Data Verification and Verification Stations can work both in the local area network and remotely via the Internet. Authorization is carried out using a login and a password.


Installing ABBYY FlexiCapture in a local area network

ABBYY FlexiCapture can be easily installed and used in a local area network.

To be able to install the stations from the server, you need to select the Stations deployment package option when installing the Application Server. The files required to install the stations from the server will be copied onto the server.

ABBYY FlexiCapture can be easily deployed on multiple LAN computers. Network installation is done in two stages: first, the ABBYY FlexiCapture station files are copied onto the server when installing the Application Server; then the stations can be installed from the server over the LAN.

For detailed instructions, see the Administrator's Guide, which is available from the Autorun menu.


Upgrading from ABBYY FlexiCapture 10 and 11

ABBYY FlexiCapture 12 can be installed on the same computer where ABBYY FlexiCapture 10 or 11 is already installed. You cannot use the setup wizard to upgrade your ABBYY FlexiCapture 10 or 11 to version 12.

You cannot use your ABBYY FlexiCapture 10 and 11 serial numbers to run ABBYY FlexiCapture 12.

You can use ABBYY FlexiCapture and ABBYY FlexiLayout projects and FlexiLayouts created in earlier versions of the program. If you have documents already loaded into the system, we recommend that you first complete the processing of these documents and only then migrate to ABBYY FlexiCapture 12.

When you open an ABBYY FlexiCapture and ABBYY FlexiLayout project created in an earlier version of the program, it will be converted to the ABBYY FlexiCapture 12 format. Once a project is converted, it can no longer be opened in the earlier versions.

note Note:

After you install ABBYY FlexiCapture 12, it will become the default application for all FlexiCapture and FlexiLayout Studio projects (*.fcproj and *.fsp files respectively), even if ABBYY FlexiCapture 11 or 10 is installed on your computer. To open a project in ABBYY FlexiCapture 11 or 10, launch ABBYY FlexiCapture or ABBYY FlexiLayout Studio via the Windows Start menu and click File → Open Project....

Fore more information, see the Upgrading from ABBYY FlexiCapture 10 and 11 section of the System Administrator's Guide.


License Manager

The License Manager utility is used to manage protection keys and to gather information about the status of ABBYY FlexiCapture licenses.

To launch the License Manager utility:

·Go to Start → All Programs → ABBYY FlexiCapture 12 Servers and select ABBYY FlexiCapture License Manager.

Managing licenses

Adding a new license

In the ABBYY FlexiCapture License Manager main window, click Activate License.... In the dialog box that opens, enter a new serial number and click Next. Then select a license activation method and activate your license. The new license will appear in the License Manager main window. To start working with the activated license, select it from the Licenses list in the License manager main window, and click the Select button.

Updating a license

In the License manager main window, select a license you wish to update and click Update License.... You will also need to activate your license over the Internet or by e-mail. Follow the instructions displayed on the screen.

Deactivating a license

In the License manager main window, select a license you wish to deactivate and then select Deactivate... from the License menu. Deactivate the license following the instructions of the Deactivation Wizard.

License parameters

In the License Manager, you can view the parameters of your licenses. Select a license in the list and click License Parameters.... The parameters of the current license are displayed in brief view in the main application window.

License usage statistic

To view license usage statistics for a selected license, select the corresponding item in the Service menu. By default, gathering statistics option is enabled.

In the dialog box that opens, a total number of available and used pages for the license is displayed. You can specify the period for which the statistics should be formed. If the period has been changed, click the Refresh button to display actual information. To get detailed statistics for each station, click the Export... button and save the statistics file in *.txt or *.csv format. The resulting file contains information about the workstation name, the user name, the processing date and the number of processed pages. To turn off gathering statistics, select the corresponding item in the Service menu.


Types of protection

To use ABBYY FlexiCapture, a valid protection key is required.

ABBYY FlexiCapture can include one of the following types of protection key:

·hardware protection key

·software protection key

·online protection key

Hardware protection key

This is a dongle to be plugged into a USB port on your computer (USB dongle).

For ABBYY FlexiCapture to run with a hardware protection key, you need to install the iKey driver or CodeMeter Key. On 32-bit operating systems, both drivers are installed automatically. On 64-bit OS, you should manually run the setup file which is located in the iKey subfolder of the distribution folder. To use the program, your hardware protection key must be plugged in at all times.

The hardware protection key stores the parameters of your license.

Activation methods:

·Remotely via the Internet
An empty hardware protection key can be activated remotely, using only the serial number of your license. This is done in the License Manager utility, which contacts the activation server over the Internet, requests the parameters of the serial number, and saves them in the key.

·By e-mail
If you choose this activation method, an e-mail activation request will be generated automatically. Send this e-mail message to the address specified. To ensure a prompt reply from the mail robot, please do not alter the subject or the body of the e-mail message.

Software protection key

This is a license file.

For ABBYY FlexiCapture to run with a software protection key, the license file must be activated on the ABBYY activation server. You can activate your license file from the License Manager utility.

Information required to activate your license file is sent to ABBYY as a code (Product ID) which is generated based on the information about the computer on which ABBYY FlexiCapture is installed. No personal information is used to generate a Product ID and this code cannot be used to identify the user.

Activation methods:

·Via the Internet
Activation over the Internet is carried out automatically and takes seconds to complete. An active Internet connection is required for this method.

·By e-mail
If you choose this activation method, an e-mail activation request will be generated automatically. Send this e-mail message to the address specified. To ensure a prompt reply from the mail robot, please do not alter the subject or the body of the e-mail message.

In the case of activation over the Internet, no additional steps are required. In the case of activation via e-mail, you will receive an activated file from the activation robot. Save this file to your hard disk, run the License Manager utility and provide the path to the saved file in the Activation Wizard.

Repeat activation

You can re-install ABBYY FlexiCapture any number of times on the computer on which it was activated. However, if you make substantial upgrades, format the hard drive, re-install the operating system, or change the name of the computer (e.g., the name is changed when moving the computer from a workgroup to domain and vice versa) you may need to activate the product again.

note Note: If you are using an online license, a repeat activation will not be required. For more information, see Online licensing in ABBYY FlexiCapture 12.

The activation server keeps a log of how many times each serial number has been activated. Once a certain threshold for a serial number is exceeded, the serial number gets blocked and can no longer be activated.

You can de-activate an activated license in order to use it on another computer. When you de-activate a license, the activation server reduces the activation counter for this serial number by one.

warning Important! You will be able to use the activated program only on the computer on which the Product ID was generated. To move the program to another computer, first de-activate your license.


Online licensing in ABBYY FlexiCapture 12

An online license is a type of license for ABBYY FlexiCapture 12 that is designed specifically for virtual and cloud environments.

If your license is stored locally and is tied to the software of the computer on which the license was activated, you may experience the following issues when working with cloud services:

•Two or more licenses are required to implement a failover switch;

•If a virtual machine stops working, the administrator has to manually restore all relevant licenses;

•If the software of a virtual machine is upgraded or if the virtual machine is moved to a different host, the license has to be reactivated.

If required, you can use online license for ABBYY FlexiCapture 12 without tying it to a specific computer, which gives you more flexibility when optimizing your hardware for a large numbers of tasks. All online license parameter data is stored in-cloud on the ABBYY servers.

note Note: The parameters of an online license can also be viewed in the License Manager. However, this can only be done for the license that is currently in use on that particular computer.

The ABBYY FlexiCapture Licensing Service is hosted on the Microsoft Azure data processing centers, which operate in fail-safe mode. The service also has backup servers, ensuring continuous access to it. The ABBYY Licensing Service has high availability, which, together with the ability to use online licenses in offline mode for a set period of time, ensures the reliable operation of online licensing in ABBYY FlexiCapture.

How online license works

An online license lets you process a set number of pages throughout a set period of time (e.g. a month or a year). Online licenses can be accessed from different computers. Periodically, the Licensing Server and the ABBYY Licensing Service connect to the internet in order to the synchronize information about the number of processed pages. As such, the licensing service keeps track of all pages that have been processed using a single serial number on all computers tied to that serial number.

Licensing service synchronization

In order for online licensing to work as intended, the following licensing services require synchronization:

•Licensing Server on the computer or local network where ABBYY FlexiCapture is installed;

•ABBYY FlexiCapture Licensing Service.

warning Important! In order for the licensing services to synchronize automatically, make sure that you have an uninterrupted internet connection and that connections to *.abbyy.com on are allowed on port 443.

The Licensing Server is installed on your machine automatically together with ABBYY FlexiCapture. The Licensing Server then begins exchanging data with the ABBYY Licensing Service in intervals specified in the license parameters.

Synchronization parameters

Licensing service synchronization is set up using the following parameters:

•Synchronization period - determines the frequency with which data about the number of pages processed on all computers for a particular online license is exchanged. This information is collected by the ABBYY Licensing Service, while the frequency with which it is updated is set by this parameter. The duration of the period is determined by the license type.

•Offline functionality period - determines the period of time during which product functionality will be available even if no synchronization occurs between the licensing services. Throughout the whole of this period, the Licensing Server will keep attempting to establish a connection to the ABBYY Licensing Service. The duration of the period is determined by the license type.

Transfer of data between the licensing services

The Licensing Server only sends license identification and page counter data to the ABBYY Licensing Service. Data exchanged between the licensing services is encrypted independently of your hardware and cannot be de-encrypted. Information received by ABBYY about the environment in which the online license is used is completely anonymized.

Activating an online license

Online licenses should be activated using the Activation Wizard (ABBYY FlexiCapture 12 License Manager → Activate License...). For more information, see License activation.

warning Important! The Licensing Server requires an internet connection to activate an online license as well as in order for you to use the program itself.

Once activated, your license will appear in the list of available licenses.

warning Important! An online license can be activated only once and cannot be deactivated.

Using a single online license on several computers

You can access an online license using different computers. This may be required for deploying a cluster, migrating to a new environment, or restoring your system after a failure. To get access to an online license on a different computer, use the token that was generated for that particular license when it was activated. Such tokens are encrypted for storage. The number of computers that can be used to access the license is not limited.

To access a license on a different computer:

1.Save the license token on the computer on which the license was activated. To do so, select Service → Save Online Token… in ABBYY FlexiCapture 12 License Manager;

2.Upload the token to the computer on which you require access. To do so, select Service → Load Online Token… in ABBYY FlexiCapture 12 License Manager.

Once the corresponding license appears in the list of available licenses, you will be able to select it.

note Note: A token is tied to all online licenses activated on that computer. As such, if you activate several licenses and save the token file, uploading the token to a different computer will give you access to all of them.

warning Important! If the computer on which you usually use the license is no longer operable, the only way to continue using that license is by loading its token to the License Manager on a different computer. Store your license token files in a secure location, otherwise you risk losing access to your licenses.

Managing online license using the command line

You can manage your online license using the command line. This is done via the LicenseManager.Console.exe utility, which is provided along with both ABBYY FlexiCapture Distributed and Standalone. You can use the command line to activate online license, upload license tokens, and save license tokens as files. For more information, see Managing your licenses using the command-line console.


License parameters

Each license has its own serial number. A license includes a set of parameters which determine if the user has the right to perform certain document processing operations.

License parameters:

·Description - serial number, licensing method, availability of a virtual machine

·License purpose - license type (software or hardware), ability to provide document processing services

·Workstations, Tools - restrictions on the number of stations and development tools (FlexiLayout Studio, FormDesigner).

note Note: Depending on the license type, restrictions on the number of stations can be specified either separately for rich and Web-stations or together for both types of stations.

·Productivity - restrictions on the number of pages and CPU cores. The Page limit group displays both the total quantity of pages allowed for the license and the number of pages available at the moment.

·Processing - additional document processing parameters: the use of FlexiLayouts, a limit on the amount of fields, and additional recognition languages

note Note: A license with a limit on the amount of fields in Document Definitions precludes the use of table fields and repeating fields in projects.

·Custom components (including Document Definitions) - the use of components developed by the user

For you to be able to process invoices, Custom components must include one or more components from an ABBYY HQ vendor.

·EuropeanInvoice - for European invoices;

·USInvoice - for American and Canadian invoices;

·ANZInvoice - for invoices from Australia and New Zealand.

The EuropeanInvoice.AddOn.LineItems, USInvoice.AddOn.LineItems, ANZInvoice.AddOn.LineItems components allow a user to enable extraction of additional fields — Line items extraction.

·Import - additional import options; specifies whether ISIS protocol and opening PDF files are allowed

·Export - additional export options; specifies whether export to searchable PDF and advanced XML export are allowed


Changing the installation mode, repairing and removing ABBYY FlexiCapture

Navigation: Installing and running the program >

Return to chapter overview

Repairing and removing ABBYY FlexiCapture

To repair corrupted or deleted files:

1.Click Start → Control Panel → Add or Remove Programs, then select ABBYY FlexiCapture 12 Servers or ABBYY FlexiCapture Stations from the list of installed programs, and click Change.

2.Select the Repair item and click Next.

To remove ABBYY FlexiCapture from your computer:

1.Click Start → Control Panel → Add or Remove Programs, then select ABBYY FlexiCapture 12 Servers or ABBYY FlexiCapture Stations from the list of installed programs, and click Remove.

2.Confirm that you wish to remove the program.


Running the program

To launch ABBYY FlexiCapture

·in Administrator mode: go to Start → All Programs → ABBYY FlexiCapture 12 and select ABBYY FlexiCapture Administrator Station.

·in Operator mode: go to Start → All Programs → ABBYY FlexiCapture 12 and select ABBYY FlexiCapture Operator Station.

warning Important! Before running the program, ensure that:

·The scanner is connected to the PC and powered on. If your scanner has not been connected, refer to the scanner user guide. For the scanner to operate correctly, you must power on the scanner before you power on the PC.

·A protection key has been installed on your PC. You cannot run the program without it.

The server and processing station services are started automatically. The stations and the Processing Server may be either running or stopped. The processing Server is started from the Processing Server Monitor. The Processing Stations are started by the user or automatically by the Processing Server (if the corresponding settings have been selected).

To monitor and control the operation of the Processing Server and the Application Server, select the following items from the Start menu:

·Start → All Programs → ABBYY FlexiCapture 12 Servers → Processing Server to start the Processing Server Monitor.

·Start → All Programs → ABBYY FlexiCapture 12 Servers → Administration and Monitoring Console to open the main page of the console in your browser and control the Application Server

ABBYY FlexiCapture stations are started by selecting the corresponding menu items from Start → All Programs → ABBYY FlexiCapture 12 Stations.

Registry keys that control the launching of the application

You can use the following registry keys (in Shell\StartUp) to control how the application is launched:

These keys are not created in the registry by default. If required, the Administrator may add these keys into the registry of the user's operating system.

The registry keys can be overridden by the corresponding command line launch parameters.

Command line launch parameters

The following parameters can be used to launch the application via the command line:

FlexiCapture.exe [/Station:(Admin,Operator)] [/Project:"path to project"] [/Batch:"batch name"] [/ProhibitChangePath]

·[/Station:(Admin,Operator)] - defines whether the application runs in Operator or Administrator mode. If no mode is specified, a dialog box is displayed upon application launch which prompts the user to select the desired mode;

·[/Project:"path to project"] - sets the project that is opened automatically when the application is launched;

·[/Batch:"batch name"] - sets the batch that is opened automatically when the application is launched;

·[/ProhibitChangePath] - prohibits changing the batch and project that open automatically in Operator mode.

The following parameters are used to start stations from the command line:

"path to FlexiCapture.exe" [/Station:(Setup,Validator,RemoteValidator,Verificator)] [/Project:"path to project"] [/Batch:"batch name"] [/ProhibitChangePath]

·path to FlexiCapture.exe - for example, ?c:\Program Files (x86)\ABBYY FlexiCapture Stations\FlexiCapture.exe?

·[/Station:(Setup,Validator,RemoteValidator,Verificator)] - specifies the station (Project Setup station, Verification Station, Remote Verification Station, or Data Verification Station respectively). If no mode is specified, the program will prompt you to select a mode at startup;

·[/Project:"path to project"] - sets the project that is opened automatically when the application is launched;

note Note: The path to the project can be viewed in the corresponding station in the following registry branch:
[HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Shell\MRU_List.
The key List contains the list of projects that were opened in the station. From the value of this key, copy the path to the project on the server: http://<ApplicationServer>/<guid>/<project name>. Note that, in command line parameters, the project name must be enclosed in quotes.

·[/Batch:"batch name"] - sets the batch that is opened automatically when the application is launched. You may need to open a particular batch in the Project Setup station. Other stations operate with queues;

·[/ProhibitChangePath] - prohibits changing the batch and project that open automatically in Operator mode.

For example, to open the Invoices_Eng project from the server in the Verification station, the following command can be used:

"C:\Program Files (x86)\ABBYY FlexiCapture Stations\FlexiCapture.exe" /Station:Validator /Project:http://127.0.0.1/84506f53-8ca7-4095-9444-d6af76e0c192/Invoices_eng


ABBYY FlexiCapture architecture

ABBYY FlexiCapture is a set of applications that comprises document processing stations and servers.

Server components:

1.Application Server is a web service in Internet Information Services (IIS) which functions as the main gateway for all HTTP/HTTPS traffic in the system . This component provides user authentication and authorization functionality and enables communication between the server and client components.

2.License Server is a service that stores information about the current license and allowed uses of the system.

3.Processing Server is service that manages the Processing Stations. This component enables distributed processing.

4.Database stores the processing settings, information about the users, information about the documents that are being processed, and statistics for the documents that have been processed.

5.File Storage stores the images of the documents that are being processed and the data captured from these documents.

Each server component can be installed on a separate computer, allowing variable scalability and individual reliability and security settings.

Client components:

1.Administration and Monitoring Console is a web application that is used for setting up ABBYY FlexiCapture and monitoring its operation.

2.Project Setup Station is used for setting up document processing.

3.Processing Stations:

oAutomated Processing Stations import and process images, perform optical recognition, run user scripts, export extracted data to the user's storage system, and perform a number of service operations.

oManual Processing Stations (Scanning Station and Verification Station) is a set of applications for obtaining document images, feeding them to ABBYY FlexiCapture, and verifying extracted data. They can be installed as separate PC applications, as thin browser-based clients, or as mobile apps.

Component interaction

The flow chart below illustrates interaction among the ABBYY FlexiCapture components.

For details, see: Overview of interactions between ABBYY FlexiCapture components.


ABBYY FlexiCapture servers

ABBYY FlexiCapture (Distributed Installation) includes stations and servers. The stations are responsible for document processing routines whereas the servers ensure the operation of the entire complex. The complex includes the following servers:

·Application Server

·Database Server

·Processing Server

·Licensing Server

It is also recommended to create a File Storage folder to store your project files.

note Note: For Database Server and File Storage, it is possible to make a backup.


Application Server

The Application Server ensures the correct operation of the entire ABBYY FlexiCapture system. The stations communicate among themselves via the Application Server.

We recommend installing the Application Server before you install the stations. Before installing the Application Server, make sure that the necessary components are installed.

note Note: If the components are not installed on your computer, all of them (with the exception of Internet Information Services) can be installed from the ABBYY FlexiCapture disk. Internet Information Services is a Windows component and is distributed together with the Windows operating system.

warning Important!

1.If you use a firewall, be sure to allow the World Wide Web Publishing Service.

2.To authenticate the Scanning Station by a log-in and password rather than by using Windows authentication, you need to set up the Internet Information Services: enable Basic Authentication at the level FlexiCapture/Server.

Once the Application Server is installed, the Administration and Monitoring Console will start automatically (the console is installed together with the server), where you can set up a database connection and grant access permissions to the Operators.


Database Server

The Database server stores information about the Operators, batches, operations, task statuses, processing progress, and captured data.

From the ABBYY FlexiCapture disk, you can install Microsoft SQL Server Express Edition, which allows processing up to 100,000 pages per day and use up to 50 Verification Stations. For larger processing volumes we recommend using the full version of Microsoft SQL Server.

note Note: If a dedicated File Storage Folder is not used, the project files are stored in the database.


Processing Server

Show/Hide Hidden Text

The Processing Server distributes the workload among the Processing Stations. Together with the Processing Server, a Processing Server Monitor is installed, which is used for monitoring the server. Document processing proper is done on the Processing Station.

Once the Processing Server is installed, you should configure it: start the server, add, set up and start the Processing Stations.

note Note: Before starting the Processing Server, make sure that the Processing Server access permissions have been granted to the account under which the server is running ($).

A description of the setup process is provided below.

Starting the Processing Server

To start the Processing Server:

1.Launch the Processing Server Monitor by selecting Start → All Programs → ABBYY FlexiCapture 12 Servers → Processing Server.

2.On the server tree, select ABBYY FlexiCapture Servers, right-click, and select Add Server...

3.In the Add Processing Server dialog box, specify the server location (Network host or Local host).

4.Select Actions → Properties and provide the path to the Application Server (http://<ApplicationServer> where <ApplicationServer> is the name of the computer on which the Application Server is installed). If the Processing Server and the Application Server are installed on the same computer, specify its name directly, as the use of the IP address 127.0.0.1 or the localhost expression will render the Processing Stations inoperable.

note Note: On the Application Server, start the Administration and Monitoring Console and assign the corresponding role to the computer on which the Processing Server is installed.

5.Click StartServer to start the Application Server.

note Note: The Processing Server can be stopped by using hard or "soft" stop. If you need to stop the Processing Server, for example, for upgrade purposes or for moving a database, you can use the "soft" stop. For this, select Actions → Stop. In this case, all current tasks are completed and afterward the Processing Server is stopped. New tasks are not taken into processing.
To do a hard stop of the Processing Server, select Actions → Stop Immediately. In this case all current tasks will fail.

Starting the Processing Stations

To set up the Processing Stations:

1.In the server tree, select Stations and click AddStation. The Add Stations dialog box appears. Select the desired stations from the overall list. You can also specify the name of the computer or its IP address. You can specify the name of the computer even if dynamic IP addresses are used. Use IP addresses if you experience problems accessing the DNS network.

2.Select Actions → Properties and in the Station Properties dialog box, specify the parameters of the station:

oName - the displayed name of the station;

oStart automatically - this flag means that the station is started automatically by the Processing Server; by default this option is selected;

note Note: Frequent attempts to start too many stations may considerably slow down the Processing Server

oRequired disk space - the minimum disk space required for the operation of the Processing Stations; if there is not enough free disk space, the station will be stopped. The space specified in the field should be three times as large as the maximum size of an image that can be in processing. The optimal value of the minimum disk space is the doubled maximum size of a batch that can be in processing;

oMaximum number of processes - the maximum number of CPU cores that can be used for task processing;

oAllowed number of processes - the allowed number of CPU cores for task processing; this parameter is computed automatically based on your hardware and license parameters and cannot be changed;

oProcess priority - the priority of the process;

oAcceptable task types - the task types that the station can handle:

oImport images - import tasks;

oRecognize pages - recognition and export preprocessing tasks;

oVerification support - merging results of double verification as well as pre- and postprocessing tasks for the Web Verification Station;

oCustom processing - processing batch and document processing scripts;

oExport documents - document export tasks.

3.Click [image] to start the station manually or wait for the station to start automatically (if the Start automatically option is selected, the station starts automatically within a minute).

note Note: The Processing Station can be stopped by using hard or "soft" stop. If you need to stop the Processing Station, for example, for upgrade purposes, you can use the "soft" stop. For this, select Actions → Stop. In this case, all current tasks are completed and afterward the Processing Station is stopped. New tasks are not taken into processing.
To do a hard stop of the Processing Station, select Actions → Stop Immediately. In this case all current tasks will fail.

The stations receive the permissions to process documents from the Processing Server when they connect to the server.

Setting up the Processing Server log

To set up the Processing Server log:

1.Open the Processing Server Monitor Settings dialog box by selecting File → Settings....

2.Specify which messages should be logged (Errors, Warnings, Information messages).

3.Specify whether information about completed tasks should be deleted (Remove completed tasks from the list).

4.Specify which messages will trigger logging information about the task.

note Note: We do not recommend disabling the Remove completed tasks from the list option during normal operation of the system, as this may cause a pile-up of data and slow down the Processing Server Monitor. Disable this option only when setting up and tuning the system.

5.Click [image] to view the task log. To save a task log as *.txt file, in the dialog box that opens click the Export Log... button.

Viewing task info

To view task details, select Tasks in the Processing Server tree. For each task, the following parameters are displayed: task name, start-up time, progress, status, priority and the station name. Failed tasks are marked with failed. If besides error message, the task log also contains informational messages, the task is marked with [image].

Service log

Besides the regular task processing log, the Processing Server and the Processing Station can keep a service log. ABBYY technical support staff may need information from this log when handing your support requests. Service logging will not slow down your Processing Server or Processing Station, but information contained in this log is only useful to ABBYY's technical support engineers, so we do not recommend that you have service logging permanently enabled. If a technical support engineer asks you for a service log, please follow these steps:

1.Depending on which log is required, open the Processing Server Properties dialog box (select Properties on the shortcut menu of the Processing Server) or the Station Properties dialog box (select Properties on the shortcut menu of the Processing Station).

2.Select the Write processing log option and click OK.

3.Once the log files are created, you can find them in %programdata%\ABBYY\FlexiCapture\12.0\FlexiBrSvc\Logs. Send copies of these files to the ABBYY technical support service.

4.Disable service logging by clearing the Write processing log option and clicking OK.

Managing the Processing Server using command line

Processing Server can be operated via the command line. For command line operation, do the following:

·In the Start → Run Windows menu, type 'cmd' and click OK. A command line prompt window will appear;

·Type the path to the FlexiBRSvc.exe file (by default, "C:\Program Files\ABBYY FlexiCapture 12 Servers");

·Type "FlexiBRSvc Please obey" to enter the command mode. The commands are entered in the form of 'FlexiBRSvc Please '. The commands allow you to start or stop a station, display the stations list, start or stop the Processing Server, add or remove stations, view information about a station as well as to set server and station parameters;

·To show the list of allowed commands and other help information, type 'FlexiBRSvc.exe /?'.

For a more detailed description of all commands, see Description of Processing Server commands.


Licensing Server

The system requires a valid protection key which must be activated on the ABBYY activation server.

ABBYY FlexiCapture supports two types of protection key:

·hardware protection key

·software protection key

Hardware protection key

A hardware protection key is a "dongle" you plug into a USB port on your computer.

The hardware protection key must be plugged into a USB port on the computer on which you installed the Licensing Server. The hardware protection key can only be activated automatically via the Internet.

The parameters of your license are stored in the protection key. If you received your license on a USB dongle, you don't have to activate your license. Simply connect the USB dongle to the computer.

warning Important! To ensure the normal operation of the hardware protection key, make certain that the standard SmartCard is running.

Software protection key

A software protection key is a computer file ("license file").

The software protection key must be activated on the ABBYY activation server. Activation is performed in the ABBYY FlexiCapture License Manager, which starts automatically once the Licensing Server has been installed.

The data required for activation is sent to the server in the form of a Product ID which is generated based on the information about the computer on which ABBYY FlexiCapture is installed. No personal information is used to generate the Product ID and this code cannot be used to identify the user.

Activation methods:

·Automatically via Internet (recommended)
Activation over the Internet takes seconds to complete and requires an active Internet connection.

·By e-mail
An e-mail message is automatically generated on the computer where you installed the Licensing Server. This e-mail message contains the data required to activate your license file. To ensure a quick response form the activation server, please do not alter the text of this message.

·By e-mail from another computer
To send an activation e-mail message from a different computer, you must first generate an e-mail message on the computer where the Licensing Server is installed. Then paste the body text of this e-mail message into an e-mail on your other computer and sent it to the ABBYY activation server. To ensure a quick response form the activation server, please do not alter the text or subject of this message.

Repeat activation

You can re-install the Licensing Server on one and the same computer any number of times without activating it anew. However, if you make major changes to the hardware, format the hard drive, or re-install the operating system, you may need to activate the license file again.

For each serial number, the number of activations is monitored. If you exceed the maximum number of activations, you will no longer be able to activate your license file. You can release an activated license by initiating a deactivation procedure. This will decrement the activation counter.

Managing your licenses

Licenses can be added, activated, selected, deactivated and information about each license can be viewed in the ABBYY FlexiCapture License Manager, which is installed together with the Licensing Server.

To launch the ABBYY FlexiCapture License Manager select Start → All Programs → ABBYY FlexiCapture 12 Servers → FlexiCapture 12 License Manager.

Adding a new license

To add a license:

1.In the ABBYY FlexiCapture License Manager main window, click Activate....

2.Enter your new serial number, click Next and follow the instructions of the ABBYY FlexiCapture Activation Wizard.

note Note: If no licenses have been added, when you launch the ABBYY FlexiCapture License Manager, the ABBYY FlexiCapture Activation Wizard is launched automatically and the program prompts you to enter your serial number.

Updating a license

You can update your license by loading the up-to-date license information from the ABBYY registration server:

1.In the ABBYY FlexiCapture License Manager window, select the license to update and click Update....

2.Select an update method and update your license.

Selecting a working license

To select a license to be used:

1.In the ABBYY FlexiCapture License Manager window, select the license you wish to use.

2.Click the Select button or choose Select from the shortcut menu of the license.

For information about managing tenant licenses, see Administration and Monitoring Console Help.

License parameters

In the License Parameters field, you can view the following parameters for a selected license: serial number, license type, restrictions on the number of stations and development tools, time and performance restrictions, etc.

note Note: Depending on the license type, restrictions on the number of stations can be specified either separately for rich and Web-stations or together for both types of stations.

Deactivating a license

To deactivate a license, in the ABBYY FlexiCapture License Manager window, right-click the license to deactivate and select Deactivate from the local menu.


File Storage Folder

Navigation: ABBYY FlexiCapture architecture > ABBYY FlexiCapture servers >

Return to chapter overview

File Storage

Project files (i.e. documents, Document Definitions, etc.) should be stored in a dedicated File Storage folder. The File Storage folder should be specified in the Administration and Monitoring Console. The File Storage folder should be located on the same computer that hosts the Application Server. Be sure to specify the local (i.e. c:\\...) and not the network (i.e. \\server\...) path to the File Storage folder. If no File Storage folder is specified, project files are stored in a database.

note Note: Storing files in a database can load SQL Server significantly, as images being processed usually occupy a lot of space. For this reason it is best to avoid storing project files in a database (however, you can store demonstration project files in a database).

The size of the File Storage folder depends on images being processed. The required size can be roughly estimated as follows: average size of image to be processed * number of images in set * 2.

note Note: The formula above does not apply to formats that use vector graphics, specifically PDF. Images in vector formats will be converted to a raster format during processing, which will significantly increase their size.


ABBYY FlexiCapture stations

The complex includes the following stations:

·Project Setup Station

·Scanning Station

·Processing Station

·Data Verification Station

·Verification Station

·Remote Verification Station

·Web Scanning Station

·Web Verification Station

·Web Capture Station

The complex also includes an Administration and Monitoring Console.

Differences between different types of stations are listed in the comparison tables.


Project Setup Station

The Project Setup Station is the station where projects are created, set up, and debugged. A project specifies Document Definitions, batch types, image import, document export, and processing options.

To create and set up a project:

1.Create a project and upload it to the Application Server.

2.Open the project on the server and set its properties.

3.Create Document Definitions.

4.Create Batch Types.

5.Create Image Import Profiles.

warning Important! Only the Administrator may create new projects. A Project Setup Operator can only set up already created projects.

Creating a new project

Once the Administrator has established a database connection, the Administrator should:

1.Launch the Project Setup Station (Start → All Programs → ABBYY FlexiCapture 12 Stations → Project Setup Station).

2.Create a project.

3. Upload the project to the Application Server.

After the project is uploaded to the Application Server, the Administrator may grant setup permissions for the project to a project setup Operator.

Project properties

To set project properties, the Project Setup Operator should:

1.Launch the Project Setup Station.

2.Select File → Open Project from Server... and specify the path to the Application Server. A Open Existing Project from Application Server dialog box appears.

3.Select the project from the list of all available projects.

4.Select Project → Project Properties... and specify the project properties: image pre-processing options, document recognition options, event handlers, export settings, and processing options.

Creating Document Definitions

To determine how document types are to be identified and processed, the Project Setup Operator should create Document Definitions. A Document Definition includes information about the structure of the document, the positions of its fields, export and document processing options, etc. Document Definitions are created in a Document Definition Wizard and properties are specified in a Document Definition Editor.

Creating Batch Types

ABBYY FlexiCapture can process documents in batches: prior to processing, a batch is created and the document images are placed in this batch, which then goes through the various processing stages. Typically, a batch contains all the documents processed at one go or all the documents imported from a particular folder. The settings to be used for processing the documents, are specified in the batch type. You can create several batch types for the most commonly used sets of processing options. In this case, each time an Operator creates a new batch, they can specify its type and the batch will be processed in accordance with the settings specified for this batch type.

note Note:

1.If no batch types are created, all batches are processed with the <default> settings specified for the entire project.

2.Documents can be verified or exported either in batches or individually. This is also specified in the batch type settings.

Creating Image Import Profiles

To automate the process of adding images, image import profiles can be created on the Project Setup Station. Two types of profile are available: one involving the use of a scanner and one involving the use of a Hot Folder. A scanner profile may be used to debug the project. A Hot Folder profile imports images automatically on the Processing Station.

note Note:

1.A scanner profile is only available on the Project Setup Station.

2.To import images from Hot Folders, you must enable Hot Folders for your project in the Administration and Monitoring Console (click Settings → Projects).


Administration and Monitoring Console

warning Important! For the correct operation of the Administration and Monitoring Console, make sure that your browser allows the use of JavaScript and pop-up windows.

The Administration and Monitoring Console is used to set up the entire complex and to monitor its operation.

The Administration and Monitoring Console is a Web interface available to the user of the Application Server and provides access to the server via an Internet browser. The console can be opened on any computer that can access the Application Server by typing http://<ApplicationServer>/FlexiCapture12/Monitoring in the browser, where <ApplicationServer> is the name of the computer on which the Application Server is installed.

The Administration and Monitoring Console is launched immediately after the Application Server is installed, enabling the Operator to establish a database connection.

Besides connecting to a database, the Administrator must set up user access permissions and distribute the Operator roles.

warning Important! The permissions granted to the Administrator, Monitoring Operator, and Processing Server roles apply to all the projects. Therefore, they can be set up immediately after the database connection is established. Permissions to all other Operators are granted for individual projects. Therefore, before granting permissions to other Operators, the Administrator must create projects and upload them to the Application Server. Unless there are projects on the Application Server, the Administrator will not be able to add Operators and grant them access permissions.

Access permissions granted to a Monitoring Operator have the following restrictions:

·Deleting sessions on the Monitoring → Sessions page is not allowed. Viewing the page is allowed.

·Deleting batches on the Monitoring → Batches page is not allowed. Viewing the page is allowed.

·Viewing all pages on the Settings tab (Application Server, Cleanup, Out-of-Processing Documents, Event logging mode, Users, Groups, Requests) is not allowed.

Once the complex is set up, the Administration and Monitoring Station can be used to monitor the operation of the complex (i.e. to track the current status of the complex and generate reports). Based on the information about the current status of the complex, the Administrator makes changes in the configuration or re-allocates resources.

The Administrator may review the statuses of Batches, Tasks, Sessions, Current processing status, Event log and Error log.

To review the statuses, select a project and then select the appropriate item from the Monitoring menu. The resulting list can be viewed on-screen, printed out, or saved in CSV format.

The Monitoring Operator can not only obtain information about the current status of the complex, but also generate reports about the operation of the complex.

The following reports can be created:

·Productivity report allows you to assess the productivity of ABBYY FlexiCapture or individual tenants.

·Processing report allows you to calculate the average processing productivity and the processing productivity for a specific time period and compare it against a larger time period.

·Operators report allows you to evaluate the productivity of each Operator involved in the manual processing stages.

For detailed information about the Administration and Monitoring Console, see Administration and Monitoring Console Help.


Scanning Station

warning Important! For detailed information about the station, see Scanning Station Help.

The purpose of the Scanning Station is to facilitate scanning large amounts of documents. The Scanning Station can work both in a local and a remote network (via the Internet). Authorization is carried out using a login and a password.

The Scanning Station may be the first station into which a document arrives. The station is operated by a Scanning Operator, who can add images using one of the following two methods:

·create and use scanning profiles and/or add images manually;

·add the images of already scanned documents from a folder.

Profiles automate the process of acquiring images, enabling the Operator to add images using the previously made settings with only one click of the mouse.

Besides adding images, the Scanning Operator may edit added images (see Scanning Station Help for details).

The typical sequence of actions performed by the Scanning Operator would be as follows:

1.Launch the Scanning Station and receive batch types from the server if the corresponding option is specified in project setting or Scanning Station settings. If batch types are not loaded automatically, you can load them manually after the Scanning Station is launched.

2.If there is an unfinished batch left on the station, continue processing this batch. Otherwise, create a new batch.

3.If import profiles have already been created, select the appropriate profile and start the scanning process. If there are no ready-made profiles, create the necessary profiles and use them to scan the documents.

4.When adding the images, the Operator may visually control their property and edit them if required. If mere will not solve the problem, the Operator may change the scanning options and rescan the faulty pages.

5.Control the quality of document assembly and correct any assembly errors.

6.Once the batch is ready, specify its registration parameters and send it to the server.

7.Repeat the above steps for the next batch of images or shut down the Scanning Station.


Data Verification Station

The purpose of the Data Verification Station is to verify unreliably recognized characters. The Data Verification Operator reviews uncertain characters first in group verification mode and then in field verification mode. The Data Verification Station can work both in a local and a remote network (via the Internet). Authorization is carried out using a login and a password.

In group verification, the Operator is displayed groups of similar characters. The Operator should spot any incorrectly recognized characters and correct them, comparing them against the image of the corresponding field if required. If, for any reason, a character cannot be corrected, the Operator marks it as uncertain.

In field verification, the Operator is displayed fields whose value ranges are known in advance. The Operator should verify the uncertain character by examining them in their context. Two views are available in field verification: single-field display with extracted characters and multiple-field display, which shows all identical fields in the same screen.

note Note: Besides the Data Verification Operator, the Data Verification Station may be accessed by the Verification Operator and Senior Verification Operator. Whichever Operator is working on the station, they can only access the data verification queue.

To start data verification:

1.Launch the Data Verification Station by selecting Start → All Programs → ABBYY FlexiCapture 12 Stations → Data Verification Station.

2.Select the appropriate project.

3.Click GetTask to start verification.

note Note: First comes group verification, followed by field verification. If a Document Definition has no fields included in group or field verification, the document is not queued for verification.

You can enable the automatic mode of getting tasks by clicking [image] or Task → Automatic Task Receive.

Once the data verification is over, the batch or set of documents is sent to the next processing stage which is defined by workflow settings.

If the Data Verification Operator encounters problems processing the documents, they can send the batch or documents into the Exceptions stage by clicking [image].


Verification Station

The Verification Station allows more complex checks than the Data Verification Station. Besides verifying the data, the station allows its Operator to process problem batches or documents, correct assembly errors, apply data rules, and check batches for integrity. The Verification Station can work both in a local and a remote network (via the Internet). Authorization is carried out using a login and a password. For more details, please see Remote Verification Station.

The Verification Station can be operated by the following Operators: Data Verification Operators, Verification Operators, and Senior Verification Operators. Depending on which role the Operator selected when logging onto the station, they see and can process tasks from different queues:

·A Data Verification Operator can process only tasks from the Data Verification queue

·A Verification Operator can process tasks from any stage except the Exceptions stage and the Export Confirmation stage

·A Senior Verification Operator can process tasks from any queue. Besides the list of queues, the Senior Verification Operator can also access the list of certain batches (for details, see the description below) and the view mode for each stage where a particular task from the queue can be selected.

note Note: The Administrator can create additional processing stages and the corresponding queues. Whether an Operator can access these queues depends on the Operator's role and on the required permissions for these queues (these permissions are defined by the Administrator).

note Note: The list of available roles depends on the Operator's access permissions. If only one role is available to the Operator, the list of roles is not displayed.

The following queues are available on the Verification Station:

·<Any>
This queue includes tasks created in any of the other queues. The list of queues available to an Operator depends on the role selected by the Operator when logging onto the station. The tasks are taken in the order of their priority.

·Data Verification
The data verification process starts with group verification followed by field verification. If a Document Definition has no fields included into group or field verification, the document is not placed in the data verification queue.

·Document Assembly Check
For multi-page documents, document assembly errors may have to be corrected. Document assembly rules are created together with Document Definitions and define the order of pages and the number of page repeats. Additionally, document assembly may be checked based on key field values, in which case the values of the key fields must be the same on all the pages of a document. If the values differ, an error message is displayed and the values are highlighted in red. Assembly errors are best corrected in the page thumbnail view, as it provides a clear general view of the pages and it becomes immediately clear to which document they belong.

·Verification
If no special queues are specified by the processing parameters, the Verification queue contains all tasks with document assembly errors, data verification errors, and rule errors.

·Batch Integrity Check
The rules used for data integrity checks establish links among the data in the documents of a batch.

·Export Confirmation
Data export can be initiated manually or automatically. If the processing parameters do not define a separate Export Confirmation queue, the documents are exported automatically. If the processing parameters include a separate Export Confirmation queue, the Senior Verification Operator must first check documents of the task after which the task is sent to the Export queue. If an error occurs in the Export stage, the documents are automatically sent to the Exceptions queue.

·Exceptions
Problem batches or documents, which the Operators or stations failed to process, are sent to the Exceptions queue.

note Note: The document processing parameters (i.e. separate queues) are specified for batch types or for the entire project if no batch types are used.

To perform a task, select the desired queue in the list of queues and click GetTask.

You can enable the automatic mode of getting tasks by clicking [image] or Task → Automatic Task Receive.

On the Verification Station task documents preview is available in Details and Thumbnails view modes. In Details view, only the documents of the active task are displayed.

In addition to the list of task queues, the Senior Verification Operator also has access to a list of batches from the project that he has permissions for. These permissions and other Operator permissions can be assigned from the Administration and Monitoring Console. To view the list of batch, click Batches on the View menu or click the batch button on the toolbar.

In the batches view mode the Operator can get access to information about the batch confidence level, the number of pages and documents, the batch type, etc. With a mouse selection of a batch in the list you can send the selected batch to any processing stage, specify the batch priority, select a particular user to verify the batch and add comment. Thus you can collect documents, which belong to one batch, from different processing queues, and send them to one stage.

With a double-click you can open the batch to look through the list of documents, verify data, correct possible rule and assembly errors, etc. With a mouse selection of one or several documents, you can send the selected documents to a processing stage and create a separate task for them.

To mark selected documents for sending to Exceptions, Rescanning or any processing stage, select the corresponding item from the Task menu or in the document local menu. In the dialog box that opens, you can enter your comment or choose a comment from the Recent Comments list. You can choose from 10 latest comments to the sent tasks. If you want to edit text of a comment from the list, choose the desired comment, click OK and edit the text of the comment in the input field. If there is a rarely used comment in the list, you may delete it.

The list of comments is stored in the registry branch

[HKСU\Software\ABBYY\FlexiCapture\12.0\Shell\Stages\RecentStageCommentList]

Comments in the string are separated by a comma. If the comment text contains a comma, the comma is written as "/,". The symbol of a new line "/" is written as "//". A multiline comment is displayed as a single line divided by spaces. In comment text, any characters can be used.

Thus, different FlexiCapture users working in the local Verification station within a single Windows user session, use the same list.

For documents sent to Rescanning, you can also specify the Operator, the task will be assigned to. By default the Operator who scanned the document is selected. If this Operator does not have necessary permissions or images were imported from a Hot Folder, the user 'Any' is specified as a Scanning Operator.

Once the task is closed, documents marked for sending will be sent to the corresponding processing stages.

note Note: When sending batches to stages, make sure that the documents of the batch do not belong to already created tasks, otherwise empty tasks will be created. You can check whether the document belongs to a task in the Task ID column.


Remote Verification Station

Like the regular Verification Station, the Remote Verification Station is used for verifying data, processing problem batches or documents, correcting assembly errors, applying data rules, and checking batches for integrity.

The Remote Verification Station is intended for remote users who do not have access to the local area network where the ABBYY FlexiCapture servers and other components are installed. For more information about differences between the Remote Verification Station and the regular Verification Station installed locally, see Differences between stations.

Applying Document Definitions on the Remote Verification Station

The Remote Verification Station allows you to match Document Definitions to documents and pages. To change a Document Definition for a document, right-click the document or one of its pages and then click the Match Document Definition item on the shortcut menu. The document will be automatically re-recognized.

If you need to mark a page as an annex page, right-click the page and then click the Set Page as Annex item on the shortcut menu.

To clear the recognition results for a document or page, right-click the document or page and then click the Clear Analysis Results item on the shortcut menu.

note Note: On the Remote Verification Station, the Rerecognize, Reanalyze, and Recheck Rules commands are only available for documents that have already been recognized on the server. If the Remote Verification Station receives a document that has not been recognized, the document must be sent to the recognition stage before you can use these commands. You will still be able to match a Document Definition to a non-recognized document, but the document will not be automatically re-recognized. Instead, the document will be marked as "for processing" and sent to the server for recognition. The name of the Document Definition will appear in the Sending Note column.


Web Scanning Station

Web Scanning Station is used to scan paper documents and then send them to ABBYY FlexiCapture server for further processing. The Operator scans images or loads them from files, corrects them (if necessary) and then sends them to the server.

The Web Scanning Station works via the Internet. For connection to the station, either Basic authentication or authentication by means of FlexiCapture Authentication Module can be used. For login to the station, use the following link:

http://<ApplicationServer>/FlexiCapture12/Scanning - for login to the Web Station that uses HTML5

, where <ApplicationServer> is the name of the computer on which the Application Server is installed.

For more details on the Web Scanning Station, please refer to the Web Scanning Station help pages.

See also:

Tables of differences


Web Verification Station

Web Verification Station is used to verify the data, process problem batches or documents, correct assembly errors, apply data rules, and check batches for integrity. Web Verification Station can be operated by Operators with the following role types: Data Verification Operators, Verification Operators, and Senior Verification Operators. Depending on which role the Operator selected when logging onto the station, they see and can process tasks from different queues.

The Web Verification Station works via the Internet. For connection to the station, either Basic authentication or authentication by means of FlexiCapture Authentication Module can be used. For login to the station, use the following link:

http://<ApplicationServer>/FlexiCapture12/Verification - for login to the Web Station that uses HTML5

, where <ApplicationServer> is the name of the computer on which the Application Server is installed.

To enable processing tasks from queues in the Web Verification Station, in batch type properties, select the Enable Web Stations option for the queue (Batch Type Properties → Workflow tab).

note Note: Configuring access to operations on data and access to operations on tasks is not supported for the Web Verification Station custom role. Only the standard operator role configuration is available (Data Verification Operator, Verification Operator, Senior Verification Operator).

For more details on the Web Verification Station, please refer to Web Verification Station Help.

See also:

Tables of differences


Web Capture Station

The Web Capture Station is used to contribute information from paper documents to the system. The Operator scans paper documents, corrects scanned images (if necessary), verifies and corrects the recognized data, and then exports the corrected data.

The Web Capture Station works over the Internet. To connect to the station, either Basic authentication or authentication by means of the FlexiCapture Authentication Module can be used. To log in to the station, use the link http://<ApplicationServer>/FlexiCapture12/CaptureLegacy, where <ApplicationServer> is the name of the computer on which the Application Server is installed.

note Note: Some features of the rich stations are unavailable when working via the Web interface, for example:

·automatic checking of some rules (the check is performed when the user clicks the Check rules button or accepts a document or a batch)

·document analysis and re-recognition (for non-matched or incorrectly matched fields, the values must be entered manually; for FlexiLayouts, you can also use fast input of recognized data from the cache). Documents with fixed layout can be sent to the server where fields are re-recognized. Besides, for documents with both fixed and flexible layouts, you can mark Document Definitions to be matched and then send the documents to the Recognition stage for matching.

Once a batch has been processed, the processing results can be downloaded to the Operator's computer. To enable the Operator to download results, the project properties and the Document Definition should be set up as follows:

·in the Project Properties dialog box, the Export root path field must be left empty

·in the Document Definition, the export type must be set to Export to image files or Export to data files and a relative, not an absolute, path to the export files must be specified (e.g. Export\Results).

In this case, export results will be stored in the ABBYY FlexiCapture database (or in the File Storage Folder) and will be available for download by the Operator who exported them until the corresponding batch is removed from the server.

note Note: The Document Definition may include other export profiles, e.g. export to SharePoint. In this case, the Operator will be able to download export results for all the profiles that have been set up as described above.

note Note: It is strongly recommended to set up automatic cleanup to prevent storage overflow.

note Note: Configuring access to operations on data and access to operations on tasks is not supported for the Web Capture Station custom role. Only the standard operator role configuration is available (Data Verification Operator, Verification Operator, Senior Verification Operator).

For detailed information about using the Web Capture Station, please refer to the Web Capture Station Help system.


Processing Station

Processing Stations run in unattended mode and handle the following tasks: loading images from Hot Folders, applying Document Definitions and recognizing documents, exporting data to predefined storage locations. The Processing Stations receive tasks from the Processing Server.

To view the current tasks:

1.Launch the Processing Station Monitor by selecting Start → All Programs → ABBYY FlexiCapture 12 Stations → Processing Station. A Connect to Station dialog box opens.

note Note: To start the Processing Station, in the Processing Server Monitor, select a station and start it by selecting Start from the Actions menu or from the local menu of the station or by clicking the corresponding button on the toolbar. The station will run as a service.

2.Locate the Processing Server.

oNetwork host and the name of the computer on which the Processing Server is installed (if the Processing Server and the Processing Station are installed on different computers)
or

oLocal host (if the Processing Server and the Processing Station are installed on the same computer)

All the active tasks are displayed in the Tasks column. The following information is available for each task: start time, progress, status, priority, station, and creator. The tasks can be sorted by clicking on the name of the desired column.


Differences between stations (sorted by deployment type)

Show/Hide Hidden Text

ABBYY FlexiCapture Distributed stations can be deployed in a variety of different ways, with their architecture set up according to a customer’s specific needs. Stations can be deployed on a server or on a local machine. They can also be configured to be remotely accessed through a browser without the need to install the software locally. The stations are designed to be deployed and used without the need to always be connected to the server via the Internet, meaning that the software can be set up to be accessed remotely. This section describes the functional differences between the different stations, sorted by deployment type.

Scanning Station

Rich | Web HTML5 | Remote | ClickOnce
Installation
Windows Installer Package (usual, silent or advertise installation) | Installation of ABBYY Scanning Plugin required during the first launch | Windows Installer Package (usual, silent or advertise installation) | ClickOnce installation (single click on a link in a web browser)
Authentication
Windows, Basic, FC | Windows, Basic, FC, Single Sign-On | Windows, Basic, FC | Basic, FC
Interacts with (protocol)
Application Server (http, https) | Application Server (http, https) | Application Server (http, https) | Application Server (http, https)
Scanning interface
ISIS, TWAIN, WIA | TWAIN | ISIS, TWAIN, WIA | TWAIN
Barcodes recognition
Automatic during images adding, manual by user command | Automatic during images adding | Automatic during images adding, manual by user command | Automatic during images adding, manual by user command
Empty Page Detection
Automatic during images adding, manual by user command | Automatic during images adding | Automatic during images adding, manual by user command | Automatic during images adding, manual by user command
PDF opening and exporting
yes | yes (scanning plugin with PDF support) | yes | no
Export destinations
FC, ftp, files, script | FC | FC, ftp, files, script | FC, ftp, files, script
Working with attachments
yes | no | yes | yes
Documents assembly (automatic and manual)
yes | yes | yes | yes
Centralized Batch Type Management
yes | no | yes | yes
Sending batches according to schedule
yes | yes | yes | yes
Image Editing
Setup and configuration of image enhancement profiles | Rotate, Flip, Invert, Convert to bw, Deskew, Despeckle | Setup and configuration of image enhancement profiles | Setup and configuration of image enhancement profiles
Rescanning
yes | yes | yes | yes
Document set support
yes | no | yes | yes
Custom scripts
yes | no | yes | yes
Manual scanning of multiple batches
yes | no | yes | yes

Data Verification Station

Rich | Remote
Installation
Windows Installer Package (usual, quite or advertise installation) | Windows Installer Package (usual, quite or advertise installation)
Authentication
Windows, Basic, FC | Windows, Basic, FC
Interacts with (protocol)
Application Server (http, https) | Application Server (http, https)
Format checks
yes | yes
Rules
yes | yes
Results saving
yes | yes
Distributed data verification (verification of different document fields by different Operators)
yes | yes

Verification Station

Rich | Web HTML5 | Remote
Installation
Windows Installer Package (usual, quite or advertise installation) | No installation required | Windows Installer Package (usual, quite or advertise installation)
Authentication
Windows, Basic, FC | Windows, Basic, FC, Single Sign-On | Basic, FC
Interacts with (protocol)
Application Server (http, https), Protection Server (TCP/IP) | Application Server (http, https) | Application Server (http, https)
Data Verification
yes | no | yes
Rules check
Yes (local) | Yes (format errors and some rules checked locally, the rest is done on server) | Yes (local)
Fields re-recognition
Local | On server | Local
Manual Document Definition matching
Yes, with local re-recognition | Yes, with server re-recognition | Yes, with local re-recognition
Distributed data verification (verification of different document fields by different Operators)
yes | no | yes
Double data verification
yes | no | yes
Assembly errors correction
yes | yes | yes
Image Editing
Application of image enhancement profiles | Rotate | Application of image enhancement profiles
Adding new images in a batch
yes | no | no
Work under different roles
yes | yes (except the data verification operator role) | yes
Document set support
yes | no | yes
Permission support
yes | no | yes
Custom scripts
yes | no | yes
Thumbnails view
yes | yes | yes
Working with data sets
yes | yes | yes
Editing data sets (Invoice project only)
yes | yes | no

Web Capture Station

Web HTML5
Installation | No installation required
Authentication | Windows, Basic, FC, Single Sign-On
Interacts with (protocol) | Application Server (http, https)
Scanning interface | TWAIN
Barcodes recognition | Automatic during images adding
Empty Page Detection | Automatic during images adding
PDF opening and exporting | yes (scanning plugin with PDF support)
Scripts | no
Export destinations | FC
Working with attachments | no
Documents assembly (automatic and manual) | yes
Centralized Batch Type Management | yes
Sending batches according to schedule | yes
Exceptions queue | no
Image Editing at Scanning stage | Rotate, Flip, Crop, Invert,Convert to bw, Deskew, Despeckle
Rules check | Yes (format errors and some rules checked locally, the rest is done on server)
Fields re-recognition | On server
Manual Document Definition matching | Yes, with server re-recognition
Assembly errors correction | yes
Image editing at Verification stage | Rotate
Thumbnails view | yes
Working with data sets | yes


Processing stages and queues

Documents are processed in several stages, with certain routines performed at each stage, either automatically or assisted by the Operator. The stages have a specific order and to go through a particular stage the documents must first go through the previous stages. On the whole, the following stages are required: adding images, recognition, verification, export.

At each stage, a processing queue is formed (see Task creation for details). A queue represents a set of tasks in the corresponding stage. As the processing progresses, the documents are moved from the first queue (Scanning) towards the last queue (Processed).

In the case of large processing volumes, the verification stage can be subdivided into smaller stages, each processed by its own Operator. In other words, you can create separate stages for data verification, verification, document assembly checks, and export confirmation.

Some of the processing stages are required, while the other are optional. Whether the stage is required or not depends on the selected workflow scheme.

Stages

1.Scanning
Tasks from this stage are processed on the Scanning Station. In the Simple mode, the entire batches are processed.

2.Rescanning
Tasks from this stage are processed on the Scanning Station. The task is always sent to the Operator who did the scanning.

3.Recognition
Recognition is done automatically on the Processing Station. In the Simple mode, the entire batches are processed.

4.Document assembly check
The tasks from this stage are processed on the Verification Station. If no separate document assembly stage is specified in the settings, batches or documents with errors are processed in the verification stage.

5.Data verification
The tasks from this stage can be processed on the Data Verification Station or on the Verification Station.

6.Verification
If no separate stages are specified, all tasks with document assembly errors, data errors, and rule errors are sent to the verification stage. The tasks from this stage are processed on the Verification Station.

7.Batch integrity check
Batches with integrity errors are sent to this stage. Integrity check options are specified by scripts when setting up a batch type. The tasks from this stage are processed on the Verification Station.

8.Export confirmation
A stage which ensures greater accuracy of the captured data. A batch or document is exported only after the Operator confirms that it is suitable for export. The tasks from this stage are processed on the Verification Station.

9.Export
The tasks from this queue are processed on the Processing Station.

10.Processed
Processed documents are sent to this stage.

11.Exceptions
Documents with errors are sent to this stage after automated processing. Besides, Operators may also send documents to this stage if for some reason these documents cannot be processed.

If some of the batch documents are sent to Exceptions, the whole batch is excluded from processing and is not exported.

Task creation

To achieve the maximum efficiency during processing large amounts of documents, batches can be splitted into separate tasks.

Tasks are created from documents on the Application Server when documents arrive in the stage and become available for processing. Tasks are formed depending on the specified workflow settings.

In the Advanced mode, the number of documents in the task can be specified in the stage properties.

If the Wait for all documents of a batch option is selected, documents will be sent to the next stage only when all of them are processed in the current stage.

In the batch integrity check stage, access to all documents of the batch is required, so in this stage the Operator always receives the whole batch.

It is also possible to send to the stage the tasks that were created earlier, e.g. when sending documents to a stage from the Verification Station provided that the Create task option was selected in the Send To... dialog box.

note Note: For tasks created in earlier versions of ABBYY FlexiCapture or tasks that dropped out of processing, new tasks must be formed in the Administration and Monitoring Console.

The workflow mode is specified in the Batch type settings.

See also:

details Batch Types

details Workflow Setup

details Workflow


Workflow

Both pre-configured and custom schemes can be used for processing documents. Pre-configured processing schemes can be either unattended (the Unattended mode) or involve human Operators (the Simple mode). A custom processing scheme is configured in the Advanced mode. There is also a special mode for Web Capture station.

Specifics of the Simple, Advanced, Unattended and for Web Capture station modes

·In the Simple mode, human Operators are involved. In this mode, separate stages can be used for rescanning, data verification, document assembly check, verification, batch integrity check and export confirmation. For data verification, document assembly check, verification, batch integrity check and export confirmation stages, it is also possible to use web-stations. Documents (or entire batches) can go through these stages automatically (if there no processing errors) or after they are checked and corrected by an Operator. If an error occurs, the document is sent to the exceptions stage. Likewise, an Operator may send a document to the exceptions stage.

·In the Advanced mode, complex workflow schemas can be configured. In this mode, it is possible to modify settings of base stages as well as create custom stages and include them in the processing schema. You can also enable double verification, thereby documents will be verified by two different Operators in the Data Verification Station. In this mode you can also use scripts to process documents or entire batches.

·In the Unattended mode, no Operator involvement is required to process and export documents. In the event of an error, the unrecognized image may be saved to a dedicated folder, which can be selected on the Export tab, while the successfully processed documents are automatically exported. In the Unattended mode, batches are processed in their entirety.

·In the for Web Capture station, you can specify the condition under which documents are sent to verification. This mode applies to document processed in the Web Capture station.

The order of processing is specified for each batch type. When a new batch is created, it is assigned a type, which predetermines the order of processing.

If no batch types are created, all batches are processed with the <default> settings specified for the entire project.


Configuring the program

Navigation: »No topics above this level«

Return to chapter overview

Program settings

Prior to the mass input of documents, you need to configure the program for processing documents of the required type. All of the required settings are configured on Project Setup Station.

To configure document processing, create a project comprising:

·image import profiles

·one or several Document Definitions

·batch types for processing.

You may include various Document Definitions in the project, in which case various documents will be processed as part of the same project, depending on the Document Definition applied. However, if document flows do not cross, you may create separate projects for them.

listPicture Creating a project

listPicture Document Definitions

listPicture Image import profiles

listPicture Default export settings

listPicture Batch types

listPicture Batches

listPicture Index fields


ABBYY FlexiCapture Setup

To set up ABBYY FlexiCapture for distributed document processing:

1.Set up the Application Server in the Administration and Monitoring Console.

2.Upload the project to the Application server.

3.Grant access permissions to the Operators in the Administration and Monitoring Console.

4.Set up the Processing Server and Processing Stations in the Processing Server Monitor.

5.Set up the workflow on the Project Setup Station.


Application Server setup

Show/Hide Hidden Text

The Application Server is set up by the Administrator of the system in the Administration and Monitoring Console.

To set up the Application Server, you will need to connect it to a database. Open the Administration and Monitoring Console (Start → All Programs → ABBYY FlexiCapture 12 Servers → Administration and Monitoring Console) and click Settings → Application server.

Select one of the following options:

·Connect to existing database
or

·Create new database

note Note: An Operator that creates a database on the Application Server automatically receives Administrator permissions.

Next, specify the following:

·Database type:

oMS SQL

oOracle

·Server instance name: <server_name>\<database management system>

·Database name (only required for MS SQL).
Database naming considerations

oDatabase names can only include Latin and Cyrillic characters, underscores (_), the @ and # characters, and digits.

oDatabase names cannot start with digits. We also do not recommend using database names that start with the @ or # characters.

oDatabase names cannot contain more than 128 characters.

oDatabase names are not case-sensitive.

·Authentication settings

note Note: You can select either Windows Authentication or Database Server Authentication. It is recommended to use Database Server Authentication, as Windows Authentication can fail to work in some configurations. To check whether the selected connection type works, use the Test connection button.

·Use external file storage
The program stores project files in a file storage folder. Demo project files can be stored in the database, but other projects require a folder on the computer running the Application Server, unless the Application Server is deployed on a cluster. If you enable this option, specify the path to the folder where you want to store project files.

An update may require a different database structure. If this is the case, a script file that you can use to change the database structure will be provided with the update. To run the script, click Service → Application server in the Administration and Monitoring Console, click the Apply patch button and provide the path to the script file.


Granting access rights to users

Navigation: Program settings > ABBYY FlexiCapture Setup >

Return to chapter overview

Setting up user access permissions

Access permissions are granted by the Administrator in the Administration and Monitoring Console. The Administrator sets up user access permissions and distributes Operator roles.

For more details on access permissions, please refer to the help section of the Administration and Monitoring Console.


Processing Server and Processing Stations setup

The Processing Server is set up in the Processing server Monitor, an application that is automatically installed with the server.

To set up the Processing Server:

1.Launch the Processing Server Monitor by selecting Start → All Programs → ABBYY FlexiCapture 12 Servers → Processing Server.

2.Add the server by selecting Actions → Add Server....

3.Provide the path to the Application Server (Actions → Properties).

4.Start the Processing Server (Actions → Start)

note Note: To start the Processing Server, the Administrator must issue the user account permissions, under which the server is running (i.e. $).

5.Create the list of Processing Stations, specify their properties, and start them:

oTo add a station, go to the Stations node in the Processing Server tree and select Actions → Add Stations...

oTo set up a station, select it in the overall list of stations and from its shortcut menu, select Properties.

oSpecify the required station parameters: launch, priority, possible task types, etc.

warning Important! The maximum number of simultaneous process (Maximum number of processes field) may not be greater than the allowed number of processes (Allowed number of processes field). At the same time, the total number of simultaneous process on all Processing Stations may not be greater than allowed by your license. If you attempt to start more stations, they will not run.

Generally the Processing Stations and the Processing Server can run under different accounts. Though by default or if they are started under the Network Service, the Processing Stations run under the same account as the Processing Server. The permissions are granted to the stations by the Processing Server when the stations are connected to the server.

warning Important! System time on the Processing Server and on the Processing Stations must be synchronized. If the difference in system time is greater than 24 hours, the Processing Stations won't start.

Information about the type of the task (import from a Hot Folder, preprocessing, export), the time of starting the task execution, the batch name, the execution progress, the status, the priority, the author and the name of the station where the task is executed as well as a path to the project are available in the list of the tasks.

The status Successfully indicates that the task completed without errors. If an error occurs during the task execution, the status Failed is assigned to the task. The status is also displayed in the form of an icon next to the task name.

note Note: If information messages, warnings or errors appear during the task execution, but the task execution is still considered successful (problems are not critical for the task), you can trace states of such tasks by task icons. For example, such a situation can occur if non-obligatory export failed because access to the data receiver was denied.

The View Log item opens an additional window with detailed information on all actions executed by the program during processing a selected task. For example, you can trace how a required Document Definition is selected during recognition, or examine information messages and warnings.

The list of all events can be saved as a text file (*.txt). For this, select the Export List... item.

By default the Processing Server Monitor is configured so that information about successfully completed tasks is deleted from the tasks list automatically. In the File → Settings... dialog you can also configure the settings for displaying tasks and deleting them from the tasks list. If full statistics of tasks execution on the Processing Server need to be kept, deselect the Remove completed tasks from the list option.


Multitenancy

ABBYY FlexiCapture 12 offers multitenancy support, allowing the use of isolated instances of the software (tenants) by multiple independent users. The user of one tenant cannot access the projects, batches, users or groups in another tenant.

Multitenancy may be useful for large enterprises and corporations. Multitenancy can also be used for cloud solutions, where a separate tenant is created for each company or customer that wish to use ABBYY FlexiCapture functionality.

For detailed information about the multitenancy, see Administration and Monitoring Console Help.


Working with tenants

To upload a tenant's project to the server or make the project available within a specific tenant, open the Project Setup Station or a Verification Station and follow the instructions below:

1.Click File → Upload Project to Server... or Open Project from Server...;

2.In the dialog box that opens, specify the name of the FlexiCapture server (http://<ApplicationServer> where <ApplicationServer> is the name of the computer on which the Application Server is installed, example: http://localhost) and specify the name of the tenant in field Tenant name;

3.Check the connection and click OK.

If you are using the Scanning Station, you will need to specify the name of the tenant in the following cases:

·When connecting to the Application Server (click Tools → Options and specify the address on the FlexiCapture Server tab).

·When uploading batches to FlexiCapture (click File → Send Batch → to FlexiCapture... and specify the address on the FlexiCapture Project tab);

·When importing and exporting batch types (click Tools → Batch Types...).


Creating a project

Before you can start processing your documents, you need to create a project. A project includes:

·image import profiles

·one or more Document Definitions

·batch types

Once a project is created, upload it to the Application Server.

Projects should be created on the Project Setup Station and uploaded to the Application Server via the Administration and Monitoring Console.

When you launch the program, the Open Project dialog box opens, where you can select one of the existing projects or to create a new one.

warning Important! If you open a project created in an earlier version of ABBYY FlexiCapture, this project will be converted to the new format required by your current version of ABBYY FlexiCapture and you will no longer be able to use it in earlier versions of ABBYY FlexiCapture. The version of ABBYY FlexiCapture used for creating a project can be found in the corresponding Project.version.txt file, which is created for each new project and stored in the Attachments folder. The ABBYY FlexiCapture version in this file will be updated whenever you open the project in a newer version of ABBYY FlexiCapture or download the latest version of the project from the Application Server.

If ABBYY FlexiCapture is already running and a project has been opened, to create a new project select the menu item File → New Project....

To create a new project:

1.Click the Create New... button.

2.From the Project type drop-down list, select General as the project type.

note Note: ABBYY FlexiCapture for Invoices allows you to create projects geared to processing invoices. To create an invoice processing project select Invoice Processing as the project type. For details, see ABBYY FlexiCapture for Invoices.

3.Specify a folder for storing the project and a project name.

4.Click Create.

listPicture Project properties

listPicture Document Definitions

listPicture Image import profiles

listPicture Batch types

listPicture Batches


Project properties

The properties of a project can be viewed and changed in a separate dialog box that opens when you select Project → Project Properties... in the main window.

·The General tab displays the general properties of the project: the name of the project, the path to the project files, a description of the project, a default batch priority and image display quality. You can also specify the root folder for exporting to files in the Export root path field and configure tool settings.

·The Stage Tools tab contains the list of stage tools that can be used in the Advanced schema of the Workflow setup. A stage tool is a stage with a set of scripts and a customizable interface. You can both edit base stage tools and create custom tools. See Stage Tools for details.

·The Image Processing tab displays the image pre-processing options. These options apply to images that are added manually from a file. You can change these options if required. See Image pre-processing options for details.

·On the Recognition tab, you can specify the language of your documents. By default, only the languages for which dictionaries are provided are shown. To see all the available languages, select the Show all languages option. The languages that have the letters "ICR" next to them can be used for recognizing hand-printed as well as machine-printed text. If the language of your documents is not known in advance, you can specify several candidate languages from which the program will choose the right one at the recognition stage.

warning Important! Specifying too many languages may slow down document processing and may result in recognition errors.
On this tab you can also add a FlexiLayout classifier to your project.

oAdvanced prerecognition settings…

§You may select one or several options from the Correct page orientation, if page group for a page to rotate 180°, 90° clockwise or 90° counter-clockwise when its orientation is selected automatically.

§If necessary, specify the way a blank form will print (Typographic, Matrix printer, Typewriter) in the Text type section, add a sample pattern.

§Barcodes. Parameters of barcode processing:

·Disable barcode extraction. Select this option if barcodes should not be found on images. This will speed up document recognition considerably.

·Extract 2D barcodes: Data Matrix, Aztec, QR Code. Select this option if your images contain barcodes of specified types. If the option is not selected, Data Matrix, Aztec, and QR Code barcodes will not be found on images.

·Extract post barcodes. Select this option if your images contain postal barcodes. If this option is not selected, postal barcodes will not be found on images.

warning Important! Extracting postal barcodes slows down recognition.

§CJK pre-recognition

·Separated furigana mode. Select this option to improve recognition of phonetic tips (furigana) in the Japanese language.

§Named entity recognition: Extract named entities – extraction of information using NLP methods.

note Note: Requires an NLP module and a specific license type.

oVertical text extraction – Vertical text extraction parameters:

§Extract for all languages – Detects vertically-oriented text written in any of the supported languages.

§Do not extract – Prevents the detection of vertically-oriented text.

§Extract for CJK languages – Detects vertical text written in Chinese, Japanese or Korean.

·Click the Advanced... button to configure correction of linear and nonlinear distortions of images, specify direction of scanner's automatic feeder, etc.

note Note: Select the Correct linear distortion option to specify parameters of image spreading/compression by height and width. Images are scaled by existing anchors (black square, cross or corner) as well as horizontal and vertical separators.

·In the Classification section, specify whether to use a classifier or a script for the project.

·On the Verification tab, select the Group fields on Field Verification option to group fields in this stage. Fields are grouped according to the name of the field or the group specified in the verification properties.

·On the Export Destinations tab, you can specify, view or modify export settings for documents that have not been recognized. Recognized documents will be exported using the export setting, specified in the respective Document Definition.

·On the Workflow tab, you can set up your workflows (for the "default" batch type). See Workflow setup for details.

·The Event Handlers tab contains the list of events that can be handled with the help of a script. To create an event handler, select an event from the list and click the Edit Script... button. In the Script Editor window that will open, write the script text. See Event Handlers for details.

·On the User Roles tab, you can add user roles who can process stages based on custom Stage Tools. On the User Roles tab, you can add and edit user roles, which define users' permissions to access to documents, batches, and tasks in various stages, including those created from the custom stage tool.

·On the .Net References tab, you can add external assemblies to be used in scripts and global modules. Both standard and compiled user assemblies can be used. To add an assembly, click Add.... In the dialog box that opens select the type: Standard assembly name or Attached file. Depending on the selected type either enter the standard assembly name or browse to an assembly file. See External assemblies for details.

·On the Environment Variables tab, you can specify environment variables to be used in rules, export settings, and scripts. For details, see Environment variables.


Environment variables

Environment variable is a string that is used to store some text, such as a path to an external resource. Environment variables are specified in the properties of a project (Project → Project Properties → Environment Variables) and are used in Document Definitions and scripts.

When a project is run on another Application Server or on another computer, the paths to the external resources may change.

If the project includes several Document Definitions, multiple database check rules, and several scripts, editing all of these objects may take quite some time.

To avoid editing all the objects used by the project, you can specify the paths to the external objects in environment variables and use these variables when creating rules, setting up export or writing scripts. Now if you run your project in a different environment, you will simply need to edit the connection parameters in the Environment Variables dialog box.

Types of environment variable

There are two types of environment variable in ABBYY FlexiCapture:

·String This is a text variable.

·ADO connection string This a string used to connect to an ODBC-compatible database.

Creating and editing environment variables

To create a new environment variable:

1.In the Project Properties dialog box, click the Environment Variables tab and then click the New... button.

2.In the New Environment Variable dialog box, select a type and enter a name for the environment variable. You will not be able to change the type of the environment variable later.

3.Complete the Value field depending on the type of your environment variable:

oFor an environment variable of type String, enter a value (e.g. the path to a folder or e-mail address).

oFor an environment variable of type ADO connection string, specify the path to the database, the access parameters, and any other connection parameters required by the driver that you use.

4.Enter any necessary information in the Description field.

To edit or delete an existing environment variable, click Edit... or Delete.

Using environment variables

·Environment variables of the String type can be used to:

ospecify a source of input images;

ospecify settings that determine how documents are exported to files and images.

Use the following syntax to call an environment variable: <Env:Name_of_environment_variable> or <$:Name_of_environment_variable>.

·Environment variables of type ADO connection string can be used to connect to various databases:

oWhen creating a database check rule

oIn a Document Definition when setting up export

oIn a Document Definition when connecting a data set to an external database

oIn field properties, when specifying value constraints

·Environment variables of any type can be used in scripts. Use the EnviromentVariables property of IProperties, which is available in the IProject interface.


Image import

Document processing starts with adding new images: these can be either hard-copy documents that need to be scanned, or existing electronic images. Typically, new images are added on the Scanning Station (see Scanning Station Help for detailed instructions). However, new images can also be added on the Verification Station, on the Project Setup Station, or automatically from Hot Folders.

details Image import profiles

details Blank Pages Detection Settings

details User attachments

details Description file


Image import profiles

Show/Hide Hidden Text

You can automate the image adding routines on the Verification Station and the Project Setup Station if images are regularly imported from the same source. To automate the process, create an image import profile on the Project Setup Station. Additionally, you can configure the import of images at regular time intervals and the processing of imported images in background mode. Once the required settings have been configured, images can be scanned, imported, and processed (e.g.. despeckled) with a click of a button. If required, you can change the import source or its settings.

If your import sources change frequently, you can create several import profiles and switch between them to avoid changing import source settings each time you choose a different source.

Creating an import profile

To add an import profile, click Project → Image Import Profiles... in the main window. In the dialog box that opens, you can create new import profiles or edit, remove, or copy existing ones.

You can create a new import profile with the help of the Import Profile Wizard, which can be run by clicking New... in the Image Import Profiles dialog box. When the wizard prompts you, select an import source (e.g. a scanner or a Hot Folder).

Creating an import profile for a scanner

1.Select Scanner as the import source.

warning Important! The scanner must be connected. To connect the scanner correctly, consult the documentation supplied with the scanner. Be sure to install all of the software supplied with the scanner.

2.Configure the image scanning options:

oStyle of the settings dialog Choose how the program will interact with the scanner:

·FlexiCapture Scanner Settings: The Scanner settings dialog box of ABBYY FlexiCapture will be used. Click the Settings... button to configure scanning options. If you select the Show scanner settings before scanning option, then the Scanner settings dialog box of ABBYY FlexiCapture will appear prior to scanning when you select this import profile.

·Scanning Options: The dialog box of the scanner driver will be used. You will not be able to change the scanning options when creating an import profile, but the Scanner settings dialog box will appear each time you start scanning an image.

oSpecify whether you want to scan one or multiple images at a time.

3.Configure the image pre-processing options.

4.If required, change the default name of the import profile and add a comment.

Creating an import profile for a Hot Folder or a mail box

1.Select Hot Folder as the import source. Select the type of your Hot Folder:

§Local folder or LAN folder

§MAPI (mailbox)

§POP3 server

§IMAP server

§SFTP server

§FTP server

§Microsoft Graph Mail API

Click Browse... to specify the path to the Hot Folder or click Settings... to enter your login and password.

warning Important! To be able to add images from a Hot Folder, the user must have read and write privileges for that folder.

To set up import from a MAPI mailbox

oAn e-mail account must be configured on the computer.

oThe Operator Station or the Processing Station must be run under the user account that is used for accessing the mailbox.

note Note: Microsoft Outlook has to be started under this user account on the given computer at least once before the import profile is set up. The bitness of Microsoft Outlook has to be the same as the bitness of ABBYY FlexiCapture 12, e.g. if you are using the 64-bit version of ABBYY FlexiCapture 12, you will need to use the 64-bit version of Microsoft Outlook.

oClick Browse... and select the desired mail box.

To set up import from a POP3 server

oSpecify the address of your POP3 server (e.g. pop.server.com).

oClick Settings... and in the dialog box that opens, enter the user name and password required to access the messages on the server.

oUnder Type of encrypted connection, select one of the following:

·None – The connection will not be encrypted. Use this option for connections over an unsecured port.

·SSL – The connection will always be encrypted.

·Auto – The connection will be encrypted if a secured port is specified and will not be encrypted if no port is specified.

note Note: If all the settings are correct but ABBYY FlexiCapture is still unable to retrieve messages from the POP3 e-mail server, make sure that the e-mail server is not blocked by a firewall.

To set up import from an IMAP server

oSpecify the address of the IMAP server (e.g. imap.server.com).

oClick Settings... and in the dialog box that opens, enter the user name and password required to access the messages on the server.

oUnder Type of encrypted connection, select one of the following:

·None – The connection will not be encrypted. Use this option for connections over an unsecured port.

·SSL – The connection will always be encrypted.

·TLS – The connection will always be encrypted.

·Auto – The connection will be encrypted if a secured port is specified and will not be encrypted if no port is specified.

oClick Browse... and select a subfolder inside the mailbox.

note Note: If all the settings are correct, but ABBYY FlexiCapture is still unable to retrieve messages from the IMAP e-mail server, make sure that the connection to the e-mail server is not blocked by a firewall.

To set up import from an SFTP/FTP server

oSpecify the address of the SFTP/FTP server. If you are using a non-standard port to connect to the server, please specify it after the address using the following format: sftp://address:port/ or ftp://address:port/

oClick Settings... and in the dialog box that opens, enter the user name and password required to access the messages on the server.

oClick Next. If you are setting import from an SFTP server, you will see a public key validation dialog box.

note Note: If all the settings are correct but ABBYY FlexiCapture still cannot receive a response from the SFTP/FTP server, make sure that the server is not blocked by a firewall.

To set up import via the Microsoft Graph Mail API

oClick Sign in....The OAuth 2.0 Authorization Wizard will be launched.

oClick the link in the OAuth 2.0 Authorization Wizard to sign in to your Microsoft account.

oGrant the required permissions to the application (for more information, see Importing images using Microsoft Graph Mail API).

oReturn to the OAuth 2.0 Authorization Wizard and click Finish.

oIn the Import Profile Wizard, click Browse... and select a subfolder inside the mailbox.

note Note: Importing images using Microsoft Graph Mail API is not supported for shared mailboxes.

note Note: By default, the refresh token required to use the Microsoft Graph Mail API will expire after 90 days of inactivity and you will need to re-authenticate to obtain a new token. The token lifetime can be configured by an Active Directory administrator (see Microsoft documentation for details).

2.Specify the image loading options:

oCheck Hot Folder every Select this option and enter a regular time period for the program to check the Hot Folder for new images. If a mail box is selected as a Hot Folder, the program will check it for new e-mails after the first e-mail has been imported. If there are new e-mails in the mail box and free CPU cores are available on the computer where the Processing Server is installed, all the new e-mails will be imported one by one until the mail box is empty. The next check on the mail box will be performed at the end of the time period specified in this box.

note Note: To import images from Hot Folders, you must enable Hot Folder processing for your project in the Administration and Monitoring Console (click Settings → Projects).

oIn Batch Settings, select one of the following options to specify a batch to which new images should be added:

oAdd images to current batch Select this option to add images from the Hot Folder to the current batch.

oAdd images to specified batch Select this option and then select a batch name from the drop-down list to add images to a specific batch.

oCreate new batches for imported images automatically Select this option to create batches for new images automatically. Each time the Hot Folder is checked (the time interval can be specified in Check Hot Folder every), one or several batches will be created, and images from the Hot Folder will be added to those batches according to the rule you specify in this dialog box.
In the Batch type field, specify the batch type. If required, specify the batch registration parameters (click Registration parameters...) and modify the batch priority in the Priority field.

note Note: If import tasks are processed on the Processing Server, the Create new batches for imported images automatically option must be selected. The Add images to current batch and Add images to specified batch options can be used only if images are imported on the Project Setup Station, or if you are using a standalone edition of ABBYY FlexiCapture.

oAttach mail to batch (only for a POP3 server Hot Folder)
Select this option if you want to attach an e-mail message file in EML format to the newly created batch. Attached e-mail messages can be downloaded and opened using an e-mail client. For details, see User attachments.

oIn the Number of files to add drop-down list, select one of the following options, which determine the number of files to add to an existing or a newly created batch:

oAccording to description file Files will be added according to a description file. To specify the name and type of the description file, click the Settings... button. For details, see Description file.

note Note: To set up import from a mail box using a description file, add the XML description file as an e-mail attachment. Sample description file

This sample XML description file is used for importing 10 images from a POP3 server. The images are assembled into 2 documents, each containing 5 images.

<Batch>

<Name>batch 1</Name>

<SourceID>EXAMPLE</SourceID>

<Documents>

<Document Index="0">

<Name>1</Name>

<Images>

<Image Index="0" PageIndex="0" SourcePath="pop.server.ru" SourceFile="Image_00000001.tif" SourceFilePageIndex="0">1.pdf</Image>

<Image Index="1" PageIndex="1" SourcePath="pop.server.ru" SourceFile="Image_00000001.tif" SourceFilePageIndex="1">1.pdf</Image>

<Image Index="2" PageIndex="2" SourcePath="pop.server.ru" SourceFile="Image_00000001.tif" SourceFilePageIndex="2">1.pdf</Image>

<Image Index="3" PageIndex="3" SourcePath="pop.server.ru" SourceFile="Image_00000001.tif" SourceFilePageIndex="3">1.pdf</Image>

<Image Index="4" PageIndex="4" SourcePath="pop.server.ru" SourceFile="Image_00000001.tif" SourceFilePageIndex="4">1.pdf</Image>

</Images>

</Document>

<Document Index="1">

<Name>2</Name>

<Images>

<Image Index="0" PageIndex="0" SourcePath="pop.server.ru" SourceFile="Image_00000011.tif" SourceFilePageIndex="0">2.pdf</Image>

<Image Index="1" PageIndex="1" SourcePath="pop.server.ru" SourceFile="Image_00000011.tif" SourceFilePageIndex="1">2.pdf</Image>

<Image Index="2" PageIndex="2" SourcePath="pop.server.ru" SourceFile="Image_00000011.tif" SourceFilePageIndex="2">2.pdf</Image>

<Image Index="3" PageIndex="3" SourcePath="pop.server.ru" SourceFile="Image_00000011.tif" SourceFilePageIndex="3">2.pdf</Image>

<Image Index="4" PageIndex="4" SourcePath="pop.server.ru" SourceFile="Image_00000011.tif" SourceFilePageIndex="4">2.pdf</Image>

</Images>

</Document>

</Documents>

</Batch>

oAll files All files from the Hot Folder will be added. Files from subfolders will be ignored.

oFrom subfolder Files will be added from subfolders whose names comply with a naming scheme. Click Settings... to specify a naming scheme.

note Note: An asterisk (*) indicates any string of characters; a question mark (?) indicates any single character.

note Note: Rename a subfolder according to your naming scheme only after all the required files have been copied to it. Otherwise, file access conflicts may occur.

oSeveral files Several files will be added. To specify the number of files, click the Settings... button and enter a number or a range. Files from subfolders will be ignored.

note Note: If you specify a certain number of files, e.g. 5, and there are only 4 files left in the Hot Folder, these files will not be imported. If you specify a range, e.g. 1-5, the remaining 4 files will be imported.

note Note: When using the Microsoft Graph Mail API, only one e-mail message is imported per each import task. Importing messages in parallel is not supported — import tasks are carried out one by one on each Processing Station.

oSingle file One file will be added.

oAttached to the letter All the files attached to the e-mail message will be added.

note Note: New images are added to the batch according to their file names in ascending order.

oMessage bodies and attachments Both the attached files and the message bodies will be added.

3.Configure image pre-processing options. You can select the Use image processing options from batch type option to apply the document separation and image processing settings specified for the batch type.

4.The Profile Wizard will prompt you to specify options for Hot Folder cleanup after import. Successfully imported images can be either deleted or moved to another folder. Images that have been processed with errors (e.g. if the file is corrupt or there has been a network error) can be either left in the Hot Folder or moved to another folder.

note Note: Avoid keeping in the Hot Folder images that have been processed with errors. It may want to keep such images in the Hot Folder if:

oimages are imported manually (note that during automatic export, a corrupted file in the Hot Folder may prevent the other files in the Hot Folder from being processed);

oHot Folder processing is often interrupted due to an unstable network connection.

5.If required, change the default name of the import profile and add a comment.

You can also edit and create image import profiles in the Select Import Profile dialog box. Click File → Import Images... to open this dialog box.

listPicture Adding page images


Importing images using Microsoft Graph Mail API

ABBYY FlexiCapture 12 lets you automatically import and process document images from your e-mail via the Microsoft Graph Mail API. To be able to do so, you need to create an appropriate image import profile. For more information, see Image import profiles.

To access your e-mail, an application called FlexiCapture 12 Graph Mail Import is used. To finish setting up your import profile, log in to your Microsoft account and grant the following permissions to the FlexiCapture 12 Graph Mail Import application:

·Maintain access to data you have given it access to

·Sign you in and read your profile

·Read your mail

·Read and write access to your mail

note Note: You cannot change the e-mail import application or modify the permissions granted to it.

Depending on your security settings, one of the following will happen on your first authorization attempt:

·Access will be granted.

·Permission from the administrator will be required before you are granted access (for more information, see the official Microsoft website ).

OAuth 2.0 authorization

To set up image import via the Microsoft Graph Mail API, OAuth 2.0 authorization is required. For more information about the authorization process, see the official Microsoft website and section 4.1 of the OAuth 2.0 Framework.

Once authorized, you will be automatically directed to https://go.abbyy.com/oauth2redirect, which will further redirect you to http://127.0.0.1. If the authorization is successful, you can navigate back to the authorization wizard and continue setting up the import profile.

note Note: Redirection to https://go.abbyy.com/oauth2redirect is required in order to make use of the HTTPS protocol (for more information, please see the official Microsoft website). This step is completely safe: data collection is disabled at https://go.abbyy.com/oauth2redirect, and no other actions are performed.

During the import, the primary refresh token is replaced with secondary access and refresh tokens, which are used for authorization and to access your e-mail via the Microsoft Graph Mail API. Administrator permissions are nor required, as access is provided only to a specific user or a specific mail box.

note Note: Importing images using Microsoft Graph Mail API is not supported for shared mailboxes.

note Note: By default, the refresh token required to use the Microsoft Graph Mail API will expire after 90 days of inactivity and you will need to re-authenticate to obtain a new token. The token lifetime can be configured by an Active Directory administrator (see Microsoft documentation for details).

note Note: When setting up an import profile on the Project Setup Station, connection to the mail box will be established by the computer where the Project Setup Station is opened. For automatic import tasks, connection to the mail box will be established by Processing Station computers.


Empty Page Detection Settings

Navigation: Program settings > Creating a project > Image import >

Return to chapter overview

Blank Pages Detection settings

In this dialog box, you can specify detection settings for empty pages used for document separation. To open this dialog box, click Settings... after selecting separation by empty pages in image pre-processing options.

Option | Description
Ignore margins, mm | Select this option to automatically crop the page (in millimeters on top, bottom, left, and right) when it is defined whether the page is empty or not. After cropping, the resulting page will be checked for other parameters.
Black squares | Select this option if you want pages with a certain number of black squares (special form design elements) to be deemed empty. Specify the maximum number of black squares allowed on a page.
Text objects | Select this option if you want pages with a certain number of text objects to be deemed empty. Text objects include any separate text fragments. You can use this option, for example, for pages with headers and footers. Specify the maximum number of text blocks allowed on a page.
Barcodes | Select this option if you want pages with a certain number of barcodes to be deemed empty. Specify the maximum number of barcodes allowed on a page.
Percentage of blackness | Select this option if you want pages with a certain percentage of black color to be deemed empty. Select the maximum percentage of blackness allowed on a page. The black-to-white ratio is established after image binarization.

note Note: Using Black squares as the primary option is not recommended as unwanted dots can be introduced when scanning documents. The number of text objects is a more reliable option while restriction on the number of black squares can be used as an additional check.


User attachments

User attachments can be added for pages, documents and batches. Attached files can be later edited and downloaded.

You can attach files of any format , for example, you can add a file with digital signature when scanning images.

The following ways of adding attachments are available:

1.When importing images from Hot Folder according to settings specified in the description file.

2.On the Attachments tab of page, document or batch properties dialog box, click the Add... button. In the dialog box that opens, specify the attachment name and the path to the it.

3.By script using the IUserAttachments.AddNew method. Methods of the IUserAttachment interface also allows you to edit added attachments.

4.By using Web Service API. For details, please refer to Web Services API help file.

To save the attachment to a hard disk on your computer, click the Save As... button on the Attachments tab or use the IUserAttachment.ToFile method.

See also:

details Creating searchable PDF files


Description file

A description file is an auxiliary file that defines how a batch is formed when images are added from a Hot Folder. Depending on the format of the description file, different file sets are used to form a batch.

note Note: In addition to document images, you can also import and process files in office formats.

The program uses the following types of description file:

1.Captiva QuickScan
All the image files listed in the description file are added to the batch. The order of the image files in the batch is the same as in the description file.

2.Capture Software for Kodak
The image files that are located in the folder of the Kodak batch are added to the batch in the ascending order of the file names. The path to the folder from which images are added is specified in the Batch key of the Properties section of the *.ini description file:

[Properties]
BatchPath=\\computer\HotFolder\PathInHF"

Images from subfolders are also added to the batch.

note Note: Registration parameters cannot be added to description files of this type.

3.Empty file
This file serves as a marker showing that a new batch must be created. The contents of the file are irrelevant, only the name is important. Images are added from the Hot Folder in alphabetical order. When a file with the name corresponding to the mask specified in the File name field is found, the system will create a new batch. Thus, if the *.dat mask was specified and the Hot Folder contains the following files:

oContract1.jpg

oContract2.jpg

oContract3.dat

oContract4.jpg

oContract5.jpg

oContract6.dat

a batch will be created for Contract1.jpg and Contract2.jpg files (when Contract3.dat is found), and another batch will be created for Contract4.jpg and Contract5.jpg files (when Contract6.dat is found).

4.XML file
This is an XML file that contains a documented structure. An XML file is used when the other three types cannot be used but a custom description file can be generated. The image files listed in the description file are added to the batch.

File structure

An XML document must contain a root element, Batch, with the following child elements: RegistrationParams, Documents, and Images.

The Images element must include Image elements, whose number corresponds to the number of pages in the batch that is being created.

The Batch element has the following tags:

·Priority - the priority of the batch: Lowest, Low, Normal, High or Highest (This tag can be omitted. If priority is not specified, the priority specified in the import profile is used.)

·Name - a desired batch name

·TypeName - the name of the batch type (Applies if the Default batch type is specified in the import profile. If the Scanning Station output folder is used as a Hot Folder, the name specified in the tag must be the same as the name of the batch type on the Scanning Station. In this case, a batch of the specified type will be created.)

·Attachments - batch attachments

·SourceID - the string identifier of the batch source

·Description - a description of the batch

·RegistrationParams - the list of the batch registration parameters (Registration parameters from the description file are added to the registration parameters specified in the import profile.)

·Documents - the list of documents (excluded from the automatic document assembly)

·Images - the list of separate pages (included in the automatic assembly)

The Document element has the following tags:

·Index (mandatory attribute) - the index of the document in the batch (numbering starts from zero)

·Priority - the priority of the document: Lowest, Low, Normal, High or Highest (This tag can be omitted.)

·Name - the name of the document

·Barcode - the barcode value

·RegistrationParams - the list of document registration parameters

·Attachments - document attachments

·Images - the list of document pages

The Parameter element (child of the RegistrationParams element) has the following tags:

·Name (attribute) - the name of the registration parameter

·Value - the value of the registration parameter

The Image element has the following tags:

·Index (mandatory attribute) - the index of the page (the corresponding document for pages of the Images element) in the document (the documents of the batch). Numbering starts from zero.

·PageIndex (attribute) - the page number in a multipage import file (numbering starts from zero)

·SourcePath (attribute) - the path to a folder with source images

·SourceFile (attribute) - the source file with the page image (path relative to SourcePath)

·SourceFilePageIndex (attribute) - the page number in a multipage source file (numbering starts from zero)

·SourceDetails (attribute) - a description of the source (name of scanner)

·Attachments - page attachments

·Value - the path to the import file specified for a page relative to the Hot Folder

The Attachment element has the following tags:

·Name - the name of the attachment (If no name is specified, the name of the source file will be used.)

·Value - the path to the attachment (Paths relative to the HotFolder root can be specified.)

We recommend setting up the scanning program so that scanned images are placed into the Hot Folder itself or into its first-level subfolders. When creating a batch, the program will add to it all the images listed in the Image elements of the corresponding description file. The images will be added in the order in which they are arranged in the description file.

The order of the image files in the batch is the same as in the description file.


Batch types

Show/Hide Hidden Text

In ABBYY FlexiCapture, documents are processed in batches. Batches can be created automatically or manually when scanning documents or importing document images. Each batch must be assigned a type, which determines the document processing settings to be used for the batch. You can create multiple batch types for the most commonly used combinations of document processing settings. An operator will then select the batch type that best suits his/her document processing needs.

You can use multiple batch types within one project. Batch types are created in the Create New Batch Type dialog box.

To open the Create New Batch Type dialog box:

1.Start the Project Setup Station by clicking Start → All programs → ABBYY FlexiCapture 12 Stations → Project Setup Station) and open a project from the server (File → Open Project from Server....

2.On the Project menu, click Batch Types.... .

3.In the Batch Types dialog box, click New....

New batch types will be automatically uploaded to the Application Server and will become available to the operators.

The options available in the properties dialog box of a batch type are described below.

·On the General tab, you can provide a name and description for your batch type and specify the default priority of the batch type, the image quality to be used when displaying images on Processing Stations, and registration parameters.

·On the Image Processing tab, you can specify how documents should be separated, which preprocessing procedures should applied to images, and whether or not blank pages should be deleted.

·On the Recognition tab, you can specify in which order to apply Document Definitions and document sets, specify recognition settings, select a classifier, and enable the NLP feature if you need to extract named entities.

·On the Event Handlers tab, you can select and edit event handlers.

·On the Verification tab, you can group fields for field verification and select the language to be used for rule validation errors.

·On the Export tab, you can specify how documents should be exported. If no batch type is specified, batches will be exported using the default settings.

·On the Workflow tab, you can set up workflows.

·On the .Net References tab, you can add external assemblies.

The Recognition tab lets you choose between two types of Document Definition matching:

· [image] Use all Document Definitions

The list of Document Definitions and the order in which they are applied are specified in the Defaultbatch type.

· [image] Use selected Document Definitions

You can edit the list of Document Definitions using the Add... and Delete buttons.

Document Definitions will be applied in the order in which they appear in the list. You can change this order in the Document Definitions Order dialog box. Click Change FlexiLayout Matching Order....to open the Document Definitions Order dialog box and click the Move Up or Move Down button to move a Document Definition up or down.

To speed up FlexiLayout matching, select the Use first acceptable FlexiLayout option. If this option is not selected, the program will attempt to match all of the available FlexiLayouts and select the best match.

note Note: The Use first acceptable FlexiLayout option may be also selected in the Default batch type.

note Note: To enable operators to work with newly created batch types, the Administrator must specify which batch types are available to which operators. This can be done when assigning operator roles.


Batches

Navigation: Program settings > Creating a project > Batch types >

Return to chapter overview

Document batches

Documents to be processed are put into batches. The principles of grouping documents into batches are determined by the user. For example, the user may choose to process all documents as one batch, or group together documents imported on the same day or scanned at one go.

On the Processing Stations, batches are created automatically when importing images from Hot Folders. On Scanning Stations, batches can be created manually by operators or automatically (if the appropriate scanning profiles are available).

When a batch is created, its type should be specified, which defines how the batch is to be processed.

Page images are added during processing. See Adding page images for details.

On the Project Setup Station, Document Definitions can be debugged by creating batches, adding document images into the created batches, and processing them (i.e. recognizing, verifying, and exporting the results). To create a new batch, right-click the batch list in the main window and select New Batch... from the shortcut menu.

note Note: To change the name of a batch, left-click the appropriate batch in the batch list and press the F2 key. Please note that the name of a batch may not exceed 90 characters.

Working and test batches

Test batches are used by the Batch Setup Operator to test and debug Document Definitions. Working batches are intended for processing documents with ABBYY FlexiCapture. The Batch Setup Operator can also access working batches if errors occur during processing. In the event of an error, the operator can open the respective working batch and correct the error. Test batches and working batches are different in that the local Document Definition is used to process the documents in a test batch, whereas a published Document Definition is used to process the documents in a working batch. See Editing and publishing a Document Definition for details.

To open the list of batches, select the Working Batches or Test Batches item from the View menu on the Project Setup Station.

note Note: If necessary, documents can be copied or moved between batches. All the document information, including the matched Document Definition and recognized data, will be preserved. To copy or move documents (e.g. from a working batch to a test batch for debugging purposes), select them in the list and press Ctrl+C (to copy) or Ctrl+X (to move), or click [image] (to copy) or [image] (to move) on the toolbar, or click Copy or Cut on the Edit menu. Next, open the batch into which you want to copy or move the documents and press Ctrl+V, or click [image] on the toolbar, or click Paste on the Edit menu.

note Note: You can also make copies of documents inside any batch. To create a copy of one or several documents in a batch, select them and then click Tools → Duplicate Documents on the main menu. Each copy created this way will be placed immediately after the source document in the document list. A copy will be given a new identifier, while all the document information, including the matched Document Definition and recognized data, will be preserved.


Image pre-processing options

Show/Hide Hidden Text

Images are pre-processed when they are being added to a batch. More specifically, they are distributed between documents, despeckled, and rotated. If needed, you can configure a more complex pre-processing like automatic cropping, deletion of color marks, etc. For low-quality images you can use special image enhancement profiles.

Images are edited to correct possible errors that might take place during processing of document photos (including taken from mobile devices) and document scans with complex background that impedes recognition and data extraction (for example, certificates, passports, etc). This stage allows you to improve the quality of recognition results for low-quality images.

You can select pre-processing options on the Image Processing tab. The pre-processing options can be selected for:

1.A project.
In this case, the selected options will be used by default when new images are added manually into project batches. Select Project → Project Properties... in the main window and then click the Image Processing tab.

2.An import profile.
These options will be used when this import profile is used to add new images. When creating a new import profile, select image pre-processing options at the Image Processing stage.

3.Images added manually.
When adding images from a file, click the Image Processing Settings... button in the Load Images dialog box.

note Note: If images are scanned manually, no image pre-processing is done. Scanned images are only pre-processed if an import profile is used.

4.A batch type.
In this case, the selected options will be used when processing images from batches of the given type. When creating a batch type, select image pre-processing options on the Image Processing tab. The options specified for a batch type also apply to:

oImages received from the Scanning Station or Web Scanning Station if they were not assembled into documents on the corresponding station. The options specified in the Image processing section will apply to received images whether they are assembled into documents or not.

oImages added by Web Service API methods (if the ExcludeFromAutomaticAssembling flag is set to false). For details, please refer to the Web Services API help file.

oImages added from a Hot Folder (if the Use image processing options from batch type option is selected). See Image import profiles for more details.

oImages added manually from a file. In this case, the options specified for the batch type are used by default.

Users can select any of the following image pre-processing options:

·Delete empty pages. Mark this option for blank pages to be skipped for processing.

·Options that determine the principles of adding images into documents:

oAutomatically when Document Definition is applied Select this option if you wish images to be separated into documents during matching (during recognition). In this case, images will not be separated into documents immediately when they are added, and documents will be assembled only after the pages have been analyzed and recognized based on the structure described in the appropriate Document Definition. For details, see Creating Document Definitions for multipage documents and Assembling pages into documents.

oFor each image file If this option is selected, a new document will be created for each file (an image file can contain multiple pages).

oFor images separated by A new document will be created when the program reaches a separator sheet. To use blank pages as separators, select blank pages from the drop-down list. In the Blank Page Detection dialog box that opens, specify the parameters based on which empty pages will be detected. To use pages with barcodes as separators, select pages with barcode from the drop-down list. You can set additional parameters by clicking the Settings... button. Note that if you specify a barcode value, the document identifier will be changed to that value. If you do not need separator pages to be added into the batch, select Delete separator pages. If this option is not checked, separator pages will be added into the batch and will become the first pages of each document.

note Note: You do not have to use separator pages to separate pages into documents. Separator pages are indispensable in only one case: when the appearance of a page makes it impossible to determine whether it belongs to the previous document or to the next one. For example, this happens where a document may contain any number of identical pages, and the batch may contain more than one such document.

note Note: For documents scanned or added on the Scanning Station, batch and document separation options are specified on the Scanning Station in the batch type settings.

·Options used to process incoming images:

oBasic image processing. Make basic changes to images. It is recommended to use this option for images of acceptable quality that do not require a more complex processing.
Settings

General

·Rotate images by
Rotates images in the specified direction.

·Convert color and gray images to black-and-white
Converts images to black-and-white.

·Despeckle images
Removes noise from images.

note Note: If source text in images is very light or it includes thin type and if the size of elements to be despeckled is set by a user, it is necessary to make sure that significant elements like punctuation marks and thin letter elements are not deleted when the Despeckle images function is enabled.

·Remove all color marks
Removes all color marks from an image.

Recommended for photos
These options are recommended to be used when importing photos of documents.

·Correct resolution of photos
Automatically select optimal resolution for photos.

·Autocrop
The program automatically detects page borders on an image and crops fields that contain data to be extracted and corrects skews and distortions.

·Reduce ISO noise
Reduces digital noise on an image.

·Whiten background
Whitens the background of an image.

Deskew (will be applied to scans only)
By default, these options are selected and the program deskews newly added images relying on black squares and/or on vertical and horizontal separators and text. It is not recommended to turn off the deskewing options unless deskewing is done incorrectly (e.g. if the program interprets a stamp or a graph as a separator and attempts to deskew the image based on this faulty data).

·Use black separators to correct skew
If this option is selected, images are deskewed based on separator lines.

·Use black squares to correct skew
If this option is selected, images are deskewed based on black squares.

·Use text to correct skew
If this option is selected, images are deskewed based on the text on the image.

oUse image enhancement profile. Use a special image enhancement profile. This option is recommended to be used for specific images fed in a uniform or mixed flow that require more complex editing instruments.
If you intend to process photos that are fed in the mixed flow of images and require a set of tools, which differs from the basic one, mark the Use special profile for photos option and select the second profile.

oStore original image during processing. This option allows you to save original images in the file storage. With this option you can get back to the original image if significant data was deleted after automatic processing.

note Note: Saving original images will increase the space taken up by a project and result in slower processing speed. That's why it is recommended to enable this option only when you really need to get back to the original image.

·PDF processing options:

oAuto (FlexiCapture will choose between PDF text layer and OCR) – The optimal processing type will be chosen automatically depending on the availability and the quality of a text layer.

oPrefer PDF text layer if available – The text in the text layer will be used where available.

oUse OCR only – OCR will be performed on all documents, even on those with a text layer.

·Pre-processing options for files in office formats. In addition to processing imported document image files, you can also import documents in office formats and convert them to PDF using a built-in conversion module or third-party software.
To use third-party software for conversion to PDF, select either or both of the following options:

oAllow the use of LibreOffice® (supports LibreOffice 4.2, 4.3, 4.4, and 5)

oAllow the use of Microsoft® Office (supports Microsoft Office 2010, 2013, and 2016)

You can import document images and office files at the same time (see Supported input formats).

note Note:

1.If you import from e-mail, message bodies can be used as documents.

2.If both office file pre-processing options are selected, ABBYY FlexiCapture will select the most suitable office application automatically. The selected application will be indicated in the respective task log.

3.Conversion to PDF using a third-party application will only work if the respective application is installed on the processing station that is used to import documents.

4.If you are using Microsoft Office to convert office files:

oYour copy of Microsoft Office must be activated.

oYou must run the program as an administrator (click the Authentication... button to open the authentication settings dialog box).


Image Enhancement Profiles

Show/Hide Hidden Text

With image enhancement profiles, users can automatically make necessary changes to images on Scanning Stations or on the Application Server.

The program already includes two preconfigured profiles:

·Photo – This profile contains recommended editing settings for photos of documents.

·Scan – This profile contains recommended editing settings for scanned documents.

You can also create custom image enhancement profiles (see Creating a custom image enhancement profile for details).

To automatically apply an image enhancement profile to all incoming images, do one of the following:

·Assign the profile to a batch type on the Project Setup Station (in the batch type properties dialog box, click the Image Processing tab and select the Use image enhancement profile option).

·Assign the profile to an import profile on the Project Setup Station (in the import profile properties dialog box, click the Image Processing tab and select the Use image enhancement profile option).

·Assign the profile to a batch type or apply it automatically when loading images onto the Scanning Station.

An image enhancement profile can also be applied manually, either when you load images from files or after images have been loaded.

·To apply an image enhancement profile to images as you load them from files, open the Load Images dialog box, click the Image Processing Settings... button to open the Image Processing dialog box, and select the Use image enhancement profile option.

·To apply an image enhancement profile to images that have already been loaded, right-click a page or a selection of pages and click Edit Image → Apply Image Enhancement Profile. Alternatively, open the Edit menu and click Image → Apply Image Enhancement Profile.

Creating a custom image enhancement profile

Image enhancement profiles are created on a Scanning Station or in the Project Setup Station (the Image Enhancement Profiles tab of the Project dialog box → Project Properties...).

You can create a custom image enhancement profile with a set of image editing tools configured for a specific project. To do this:

1.Create a new profile by clicking New... on the Image Enhancement Profiles tab. The tab where you can create an image enhancement profile will open.

2.Load an image to test the set of editing actions being created (click the Load Preview button in the bottom left corner of the panel).

3.Compose a set of image editing tools using the on/off toggle to the right of each action on the image enhancement panel.
Image editing tools

·Split - splits an image horizontally / vertically for the selected number of separate pages

note Note: When using, this action you should make sure that documents on all images are placed evenly. Otherwise, significant information may be lost.

·Resolution - changes the resolution of an image

·Rotate - rotates an image

·Flip - flips an image horizontally / vertically

·Invert Colors - inverts colors of an image that contains light text on the dark background

·Autoсrop - automatically searches for page boundaries on an image, crops the area that contains data for extraction, and corrects skew and distortions (three available modes are Generic, Photo, and Scan)

·Remove ISO Noise - removes noise from an image

·Remove Motion Blur - removes blur that occurs when moving a document or a camera/scanner

·Photo Correction:

oWhiten Background - whitens the background of an image

oEqualize Brightness - equalizes the brightness of an image

·Remove Color Marks - removes all color marks from an image (you can this tool, for example, to remove stamps or signatures in colored ink)

oRemove marks of specified colors only - removes marks only of the specified color. note Note: If this option is not selected, all color marks except gray scale marks will be deleted. For example, if you need to delete blue stamps and leave green headings, select this option and select a color.

·Deskew:

oUse black separators to correct skew - allows you to correct image skew using separators

oUse black squares to correct skew - allows you to correct image skew using black squares

note Note: Avoid using the deskew tool for photos of documents, as this may adversely affect the quality of OCR.

·Remove Geometrical Distortions - removes geometrical distortions

note Note: The functionality of this tool is included in the Autoсrop tool (see above). For this reason, if you have added the Autoсrop tool to your profile, you do not need to select this tool.

·Remove Scanner Shadow - removes scanner shadow from an image

·Brightness & Contrast - allows you to configure the brightness and contrast of an image

·Convert to B\W - converts color and gray images to black and white

·Despeckle - removes very small noise elements from an image (this tool can only be used on black-and-white images)

warning Important! If you set the size of the elements to be despeckled and the text on the images is very light or is printed in a thin font, you should make sure that significant elements like punctuation marks and thin letter elements are not deleted when applying the Despeckle tool.

4.Set the sequence of actions. The sequence may be important in certain cases, for example, when you need to configure the brightness and contrast of an image before deleting color elements. Some actions have a fixed position, others can be moved around. To move an action to a different position, do one of the following:

·Hover you mouse pointer over the vertical three dots to the left of the action name, click and hold the left mouse button, and move the action to the desired position.

·Select an action from the list, press and hold the SHIFT key, and move the action using the UP and DOWN keys.

5.To apply the changes to the test image, click Apply. If you want editing changes to apply automatically on an image when selecting an action, enable the Auto Apply option. Bear in mind that auto-apply of changes takes some time.

6.In the Name field at the top of the panel, specify a name for your new profile and click OK.

The new profile will appear in the list of available image enhancement profiles. To edit a custom profile, select it from the list on the Image Enhancement Profiles tab and click Edit....

The preconfigured profiles cannot be edited, but you can always create a new profile based on a preconfigured profile, add or delete any actions, and save the new profile. To do this:

1.On the Image Enhancement Profiles tab, select one of the preconfigured image enhancement profiles and click Copy.

2.Select the copied profile from the list and click Edit....

3.In the panel that opens, edit the preconfigured profile.

4.In the Name field, specify a new name for your custom profile and click OK.

Importing and exporting an image enhancement profile

Custom image enhancement profiles may be exported to be used on a Scanning Station or on the Project Setup Station. Profiles are exported to an XML file.

To export an image enhancement profile, proceed as follows:

1.On the Image Enhancement Profiles tab, select the name of the profile that you want to import and click Export....

2.In the window that opens, select where the profile must be saved (either locally or on a server).

3.Enter the path and click ОК.

After that you will be able to import and use the image enhancement profile on the Project Setup Station (the Image Enhancement Profiles tab in the Batch properties dialog box) or an a Scanning Station (the Tools menu → Processing Profiles...).


Export settings

Navigation: Program settings > Creating a project > Batch types >

Return to chapter overview

Default export settings

Export settings are specified for each batch type. When a batch is created, its type is specified and, when selecting the File → Export to command, the batch is exported in accordance with the settings for this batch type.

If no batch types are created, all batches are exported with the <default> settings specified for the entire project (Project → Project Properties..., Export Destinations tab). If you select the File → Export to command for the batch whose type is not specified the batch is exported with the <default> settings.

On this tab you can enable deleting documents after export and specify export options for unrecognized documents. Recognized documents will be exported in accordance with Document Definition settings.

The following export options are available:

Option

Description

Export unknown documents

Select this option if you want to export unrecognized documents.

Image export settings group

Image format

Select the desired image saving format from the list.

Click the Options... button to specify options for the selected format. For all formats, the following options are available:

·Quality.

·Color Type.

·Changing resolution to a new value (in dpi).

Target

Select the desired export target from the drop-down list. Depending on the selected target specify additional export settings. You have the following choices:

·Create folder structure and filename using template
If you select this value, file names and the subfolder structure will form depending on the document parameters.

·Export documents as separate files
If you select this value, each document will be exported to a separate file. Specify the path and the first characters of the file name in the Name prefix field.

·Recreate filenames and structure of Hot Folder subfolders
If you select this value, the folder structure will mimic that in the Hot Folder the document images had been imported from. When configuring this export type, select the folder to mimic the Hot Folder structure in the Export path field.

Export path

The path to the folder to which you want to export files.

Template

File name generation settings. To change these settings, click the Edit... button. See Export file naming options for details.

If file exists

This drop-down list lets you specify what the program should do if a file with the generated name already exists.

Delete documents after export

Select this option if you want to delete documents after they have been exported.

note Note: Data on documents that were deleted immediately after they were exported will not be included in reports.

Delete processed batches after

This option lets you delay the deletion of processed batches and specify the duration of this delay. This option cannot be applied to batches that are stored locally. Settings that determine how batches are deleted during manual or automatic cleanup are available in the Administration and Monitoring Console. By default, the processed batches are deleted 14 days after the processing.


Workflow setup

Show/Hide Hidden Text

warning Important! A document set cannot be transferred to a different processing stage in parts — it has to be moved in its entirety. When determining the requirements for transferring the document set to the processing stage and the routes for transferring the batch out of the stage, FlexiCapture will use statistics gathered for the entire document set.

Batch processing order is specified for each of the Batch Types. When a batch is created, its type is specified and the batch is processed in accordance with the settings for this batch type.

If no Batch Types are created, all batches will be processed using the <Default Settings> configured beforehand (Project → Project Properties..., Workflow).

The batch processing settings are configured on the Workflow tab of the Batch Type Properties dialog box.

You can set a deadline by which the batch must be processed. To do this, click the Set Time Limit... button and specify the time when you need the batch to be completely processed. In the Warn in field, specify when a warning should be displayed informing the user that the time allotted for the batch is running out. If you leave this field empty, the warning will be displayed automatically. The specified deadline and the status of the batch will be displayed in the Expires on and Status columns of the list of batches on the Project Setup Station and the list of queued tasks on the Verification Station.

The following workflow modes are available: Simple, Advanced, Unattended, for Web Capture station, and Advanced for Web Capture station.

The Simple mode

The Simple mode includes the following stages: Scanning, Rescanning, Recognition, Data verification, Document assembly check, Verification, Batch integrity check, Export confirmation, Exceptions, Export and Processed.

You can specify the following processing options:

1.Process entire batches

oIf this option is selected, the entire batch is processed (i.e. the batch will not be forwarded unless all of its documents are processed).

oIf this option is not selected, each document from this batch is sent to next stage as soon as it is processed.

2.Skip verification and data verification if percentage of characters that need verification is equal or less than - the document will be sent for verification only if there are errors or if the number of highlighted characters is higher than the one specified in the % per document field.

note Note: If you selected Always for any field in the Field Verification settings, the document will be sent to verification under any circumstances.

3.Use separate stages for:

oRescanning

oData verification

oDocument assembly check

oVerification

oBatch integrity check

oExport confirmation

oExceptions

All stages except Verification are optional.
Creating separate verification stages divides the verification stage into substages, each handled by its own Operator. Thus, each Operator will be responsible for only one job: data verification, document assembly check, etc.
If all of the above stages are handled by one Operator, he/she will have to do all the tasks in turn: take the document from the Document Assembly Check stage, check the assembly, take the data from the data verification stage and verify them, etc.
You can also use web-stations for all stages, except the Rescanning stage. For this, in the Allow web-stations column select a checkmark next to corresponding stage. Data Verification will be executed in the Data Verification or Verification web-station, other stages will be executed in the Verification web-station.

The Advanced mode

The Advanced mode allows you to configure complex workflow schemas. In this mode you can both edit base stages and create custom stages.

note Note: There is a time delay between the time Advanced workflow settings apply in the Project Setup Station and when they are displayed in the Verification Station.

The Advanced schema consists of the following base stages:

·Exceptions

·Scanning

·Rescanning

·Recognition

·Unattended Processing

·Data verification

·Verification

·Document assembly check

·Batch integrity check

·Export confirmation

·Export

·Processed

Select the stages to be included in the workflow schema. All stages except Scanning and Processed are optional.

To change the sequence order of stages, use the Move Up and Move Down buttons on the right. For stages, which cannot be executed earlier or later, the corresponding buttons are greyed out.

For each stage, the maximum number of documents a task can contain is specified in the Documents Per Task column. To change the number of document per task for a stage, click on the number and enter a new value.

note Note: In the Batch integrity check and Processed stages, batches are processed in their entirety and not divided into tasks, so, for these stages, the number of documents per task cannot be changed.

The base type for each stage is specified in the Base Type column. The base type indicates the type whose base settings were used when creating the stage.

For each stage, you can view and edit its properties. To open a stage properties dialog box, select a stage and click the Edit... button on the right. For details, see Editing Stage Properties.

Apart from base stages, you can also create custom stages to be included in the workflow schema. Custom stages can be based on stage tools and allow you to create stages of the same base type but with different stage properties.

To add a stage, click the Stage... button on the right. In the window that will open, select a base stage on whose basis a new stage will be created and specify the stage properties. The new stage will be added to the schema. For details, see Creating Processing Stages.

To delete a custom stage, select the stage and click the Delete button on the right.

If transfer to the stage is conditional, the stage is marked with the [image] icon. If documents are always admitted to the stage, the stage has the [image] icon.

note Note: During verification, you can check the classification and document assembly results without having to verify the data. To do this, create a Verification stage, click the Field Set tab, and make sure that the Selected fields column is empty. Note, however, that if at least one field is selected, its data will be displayed on the data form awaiting verification.

The Unattended mode

In the Unattended mode, the documents are processed and exported without Operator intervention. If processing errors occur, the unrecognized image can be saved in a dedicated folder (this is specified on the Export tab) and the successfully processed documents will be automatically exported. In this mode, batches are processed in their entirety.

For Web Capture Station, workflow can be configured using the for Web Capture station and Advanced for Web Capture station modes.

The mode for Web Capture station

In the for Web Capture station, you can specify the condition under which documents are routed to verification. If the option Skip verification and data verification if percentage of characters that need verification is equal or less than is selected, documents will be sent for verification only if they contain errors or if the number of highlighted characters is higher than the one specified in the % per document field.

The Advanced mode for Web Capture station

The Advanced for Web Capture station mode similarly to the Advanced mode allows you to configure complex workflow schemas by editing existing stages and adding new ones. As compared with the Advanced mode, the Advanced for Web Capture station has the following restrictions:

·The set of predefined stages cannot be modified.

·A custom stage can be based on the Automatic stage only.

·In stage properties, only the stage name, exit routes, and enter conditions are allowed for editing.

note Note: When switching from the Advanced for Web Capture station mode to the Advanced mode and vice versa, all specified settings are reset to default.


Creating processing stages

To create a custom stage, you need to switch to Advanced mode when setting up a workflow. Then click the Stage... button on the right. A Create Processing Stage dialog box will open displaying a list of basis and previously created custom stages. You can use an existing stage as the basis for creating a new one. When you select a stage in the list, its properties are displayed at the bottom of the dialog box, under the caption Selected Settings.

There are three types of stage available to you in Advanced mode:

1.Automatic – Tasks of this type are executed on a Processing Station without operator intervention.
The Automatic stage includes the following substages:

oScanning

oRecognition

oUnattended processing

oExport

2.Interactive – Tasks of this type are processed by operators working on a Verification Station, Data Verification Station or Scanning Station.
The Interactive stage includes the following substages:

oData verification

oDocument assembly check

oVerification

oBatch integrity check

oExport confirmation

3.User Type – Tasks of this type are taken, executed, and sent to the next stage by external clients via the Web Service API.

note Note: To add a processing script to the workflow schema, select the Automatic stage. Then select a basic stage that you want to use to create a new stage and click OK. A Workflow Stage Properties dialog box will open, where you will see the following tabs:

oGeneral

oField Set (for the Data verification and Verification stages only)

oScript (for the Automatic stage only)

oExit Routes (for all stages except Exceptions, Rescanning and Processed)

oEntry Conditions (for all stages except Exceptions and Processed)

When a task is completed at one stage, the system need to select the appropriate next stage for the task. To do this, the system computes input conditions for subsequent stages.

oRoles (for stages based on custom Stage Tools)

The options available on each tab depend on which stage is selected. For a detailed description of stage properties, see Editing stage properties.

note Note: During verification, you can check the classification and document assembly results without having to verify the data. To do this, create a Verification stage, click the Field Set tab, and make sure that the Selected fields column is empty. Note, however, that if at least one field is selected, its data will be displayed on the data form awaiting verification.


Editing stage properties

In the Advanced mode of the Workflow setup you can specify stage properties when creating a new stage as well as edit properties of base or earlier created custom stages.

Stage properties are specified and edited in the Workflow Stage Properties dialog box. To open this dialog box for a selected stage, click the Edit... button on the right.

Properties are grouped in tabs. The number of tabs and the set of properties allowed for editing depend on the base type of a selected stage.

Option

Description

Stage

General tab

Name

In this field you can specify a different name of the stage

The property is available in all stages

Tool

From the drop-down list select a desired tool of the given base type. You can set up tools on the Stage Tools tab of the Project Properties dialog box.

note Note: For the Interactive stage, any tool can be selected:

·Document assembly check

·Verification

·Verification

·Batch integrity check

·Export confirmation

The base type assigned to the stage depends on the selected tool.

The property is available in the following stages:

·Interactive

·Document assembly check

·Data verification

·Verification

·Batch integrity check

·Export confirmation

Documents Per Task

Sets the maximum number of documents a task can contain

note Note: If the specified limit is less than the limit for the previous stage, tasks will be formed according to the limit in the given stage. You should either specify the same values for subsequent stages or select the Process entire batches option.

The property can be edited for all stages, except Batch integrity check and Processed

Wait for all documents of a batch

Specifies whether the entire batch is processed or each document from the batch is sent to next stage as soon as it is processed

The property is available in all stages, except Batch integrity check and Processed

Restrict set of Document Definitions being used

Allows you to specify which documents are admitted to the stage. For documents entering the stage, the check is carried out whether they meet the specified Document Definitions. Documents recognized with these Document Definitions are admitted to the stage.

note Note: If the set of Document Definitions is restricted and the Wait for all documents of a batch option is selected, then in the stage only documents from the specified set will be processed, but the task sent to the next stage will contain all documents of the batch.

note Note: You can restrict the set of Document Definitions used for recognition by using a script.

The property is available in all stages, except Exceptions and Processed

Enable web stations

Specifies whether web-stations can be used for processing

The property is available in the following stages:

·Exceptions

·Data verification

·Verification

·Batch integrity check

·Export confirmation

Linked to previous (operators will not be able to send tasks to this stage manually)

Allows or prohibits entering a given stage from the stage that directly precedes it in the routing schema. If this item is selected, this stage can be entered only from the stage that precedes it in the routing schema. This may be required if the stage depends on results of the previous stage and sending tasks to this stage omitting the previous stage is not allowed. To allow Operators to manually send tasks to this stage from other processing stages, clear this item.

The property is available in all stages, except Exceptions and Processed

Field Set tab

(available in the Data verification and Verification stages only)

Data being processed in the stage

Allows you to restrict the set of fields available in the stage (for distributed verification).

In the Available fields list, choose the fields to be processed. This list contains Document Definitions specified on the General tab.

Use the ">" and ">>" buttons to add desired fields to the Selected fields list.

·The ">" button adds a selected item (a Document Definition, a page, a group of fields or a field) to the list.

·The ">>" button adds all Document Definitions from the Available fields to the Selected fields list.

The "<" and "<<" buttons remove a selected item or all items from the Selected fields list respectively.

The property is available in the Data verification and Verification stages only

Hide page image outside selected fields

Specifies whether to hide fields not included in the Field Set. Select this option if a high security level must be ensured during the distributed verification.

The property is available in the Data verification stage only

Double verification

Specifies whether to enable double verification in the stage. If the option is selected, data verification will be performed by two different Operators.

The property is available in the Data verification stage only

Script tab

(is present in the Automatic stage only)

Type

From the drop-down list select one of the processing scripts: Document Processing or Batch Processing script.

The property is available in the Automatic stage only

Edit Script...

Opens the Script Editor window.

The property is available in the Automatic stage only

Exit Routes tab

(is missing in the Exceptions, Rescanning and Processed stages)

Next stage

Select how the next stage is defined:

·By routing schema

·Custom (the stage is selected from the drop-down list)

The property is available in all stages, except Exceptions, Rescanning and Processed

Conditions for sending documents to other stages

Contains the list of stages to which a task will be sent if the desired conditions are fulfilled.

To add a stage, click the Stage... button. The Next Stage dialog box will open. In this dialog box you can select a stage and specify conditions under which the task will be sent to this stage. Use the buttons on the right to configure the stage settings:

·Rule... - opens the Rule Settings dialog box where you can add a new rule.

·Edit... - opens the Rule Settings dialog box where you edit settings of the selected rule.

·Delete - deletes the selected item (a rule or a group of rules).

·Group... - opens the Rule Group dialog box which allows you to add a group of rules. Specify the name of the group and select the condition under which the group of rules is implemented: either when any one rule is implemented or all rule are implemented.

·Move Up - moves a selected rule or a group of rules one position up.

·Move Down - moves a selected rule or a group of rules one position down.

To edit the selected stage, click the Edit... button. The Next Stage dialog box that contains settings for a selected stage will open.

To delete the selected stage, click Delete.

Use the Move Up and Move Down buttons to change the order of stages.

The property is available in all stages, except Exceptions, Rescanning and Processed

Enter Conditions tab

(is missing in the Exceptions and Processed stages)

Documents are admitted to stage

Select whether documents are admitted to the stage always or under certain conditions. If the Under these conditions options is selected, use the buttons on the right to configure rules.

To add a rule, click the Rule... button. The Rule Settings dialog box will open.

To edit the selected rule, click Edit.... The Rule Settings dialog box that contains settings for a selected rule will open.

To delete the selected item (a rule or a group of rules), click Delete.

For adding a group of rules, click the Group... button. In the Rule Group dialog box that will open, specify the name of the group and select the condition under which the group of rules is implemented:

·any one rule is implemented
or

·all rule are implemented

Use the Move Up and Move Down buttons to change the rules order within a group.

note Note: If the condition is not satisfied, the document is moved to the next stage specified in the workflow schema.

The property is available in all stages, except Exceptions and Processed

note Note: Information about the selected exit route and enter conditions that have been checked is written to the Event log.


Rule Settings dialog box

In the Advanced mode of the Workflow setup you can specify exit routs and enter conditions for a stage by using rules.

You can specify both conditions under which a task will be sent to successive stages and conditions under which documents are admitted to the stage.

Sending rules are configured in the Next Stage dialog box which appears when you add or edit a stage on the Exit Routes tab of the Workflow Stage Properties.

Rules specifying conditions under which documents are admitted to the stage are configured on the Entry Conditions tab of the Workflow Stage Properties.

Exit routes and enter conditions can be specified either by standard rules or by a Stage rule script.

To add a new rule, click the Rule... button. For editing a rule, click Edit....

The Rule Settings dialog box contains the following fields:

Field

Description

Name

The name of the rule.

Condition type

You can select one of the following types:

·Standard rule

·Script

For the Standard rule condition type:

Rule is implemented, if

Select one of the following choices:

·The condition is satisfied

·The condition is not satisfied

Condition

Select one of the following conditions:

·The task was processed successfully.

·Number of characters for verification satisfies the expression

·Percent of characters for verification satisfies the expression

·Number of fields for compulsory verification satisfies the expression

·Number of characters for double verification satisfies the expression

·Has rule errors

·Has assembly errors

·Has batch integrity errors

·Field value satisfies the expression

For conditions that contain expressions, enter the reference value and select whether the value being checked must be equal, not equal, less, less or equal, more, more or equal as compared to the entered value.

For the Field value satisfies the expression condition, also choose a field whose value will be compared with the reference value. For this, click the Choose... button and choose the desired field from the list.

For the Script condition type:

Script...

Opens the Script Editor window where you can edit the stage rule. On closing the Script Editor, the saved script code is displayed in the Rule Settings window to the left of the Script... button.


Navigation: Program settings > Creating a project >

Return to chapter overview

Tools

Batch type tool settings

Stage tools


Tool Settings

Navigation: Program settings > Creating a project > Tools >

Return to chapter overview

Batch type tool settings

The Batch Type Tool Settings dialog allows you to configure handling certain events for all batch types. Tool settings apply to all batches irrespective of their types. Otherwise, the batch is processed in accordance with the settings specified for a given batch type.

Tool settings apply to batches they enter a stage. You can set up tools that are applied to batches during specific stages on the Stage Tools tab.

To open the Batch Type Tool Settings dialog box, click the Edit tool... button on the General tab of the Project Properties dialog box. The dialog box that opens, contains the following settings:

Option | Description
Event settings group
Add Event... button | Opens the Add Event dialog box where you choose an event to be handled. To write the script processing this event, click the Edit Script... button.
Edit Script... button | Opens the Script Editor where you can edit the script processing the selected event.
Delete button | Removes the selected event from the list.
Skin settings group
Edit Skin... button | Opens the Skin Settings dialog box where you can set up the appearance of the station.
Reset Skin button | Resets skin settings to default.


Stage tools

The Stage Tools tab of the Project Properties dialog box allows you to configure tools of the processing stages. On this tab you can add and delete custom tools and edit tools properties.

To create a new processing stage tool, click the Add... button. In the Create New Processing Stage Tool dialog box that opens, specify the name of the tool, enter the description and select the type of the stage from the Type drop-down list. The new stage tool will be added to the list of tools.

To edit a selected stage, click the Edit... button. The Processing Stage Tool Settings dialog box that opens, contains the following settings:

Option | Description
Event settings group
Add Event... button | Opens the Add Event dialog box where you choose an event to be handled in the stage. To write the script processing this event, click the Edit Script... button. The Script Editor will open.
Edit Script... button | Opens the Script Editor where you can edit the script processing the selected event.
Delete button | Removes the selected event from the list.
Skin settings group
Edit Skin... button | Opens the Skin Settings dialog box where you can set up the appearance of the stage.
Reset Skin button | Resets skin settings to default.


Default batch priority

The Default batch priority option determines the priority of batches created manually, for example, in the Project Setup Station.

Default batch priority is specified for each batch type. When a batch is created, its type is specified and its priority is set according to the batch type.

If no batch types are created, batches are created with the priority specified for the entire project (Project → Project Properties..., General tab).

Batches sent from the Scanning Station have the priority assigned to them in the Scanning Station. If batches are created when importing images from a Hot Folder, batch priority is specified in the image import profile settings.


SLA settings

A service level agreement (SLA) is a contract between two parties for processing documents that regulates the time constraints for such processing of processed documents.

In ABBYY FlexiCapture 12, SLAs are used to ensure that batches are processed on time. A time limit can be specified for processing batches, and tasks from batches that are approaching their deadlines will be moved up in queues. If there are overdue tasks in a queue, batches with the closest due dates will be processed first, regardless of task priority.

note Note: Tasks with the extra-high priority are excluded from this rule and will be processed before overdue batches.

If a queue has multiple tasks with the same due date, the tasks with the higher priority will be processed first.

SLA Settings

You can specify time constraints for batch processing on the Project Setup Station. The specified period will begin when documents are scanned on a Scanning Station if one is used, or when the batch is created on the server.

To specify a deadline for a batch:

1.Open the properties dialog box of the project or a batch type, select the Workflow tab;

2.Enable the Enable processing time limit for batches option and then click the Set Time Limit... button.

3.In the dialog box that opens, specify the time in which the batch must be processed using the Batch processing time limit N minutes/hours/days option.

Warnings about overdue batches can be:

·Set up automatically based on batch settings;

·Set up manually using the Warn in N minutes/hours/days option.

These warnings will be displayed in the Status column in the batch view of the Project Setup Station and Verification Stations. Once a warning for a batch is displayed, the batch will begin to quickly move up in the processing queue.

Using scripts to specify SLA settings

You can use scripts to set up time constraints for batch processing and the period during which warnings about deadlines will be displayed. Scripts can be used to specify more complicated settings such as time constraints that take the working hours of employees into account.

note Note: Scripts can only be used to specify SLA settings in custom batches of any type other than Default.

To specify a processing deadline for a batch using a script:

1.Open the Properties dialog box of a project or a batch type and select the Workflow tab.

2.Enable the Enable processing time limit for batches option and click the Set Time Limit... button.

3.Enable the Set processing time limit with script option and click the Edit button.


Custom Operator roles

Besides the standard Operator roles available in the system (i.e. Data Verification Operator, Verification Operator, Senior Verification Operator), you can create your own custom roles to control the Operators' access to data and queues in the processing stages.

note Note: Configuring access to operations on data and access to operations on tasks is not supported for the Web Verification Station and Web Capture Station custom roles. Only the standard operator role configuration is available (Data Verification Operator, Verification Operator, Senior Verification Operator).

For example, if a large number users are involved in a project, you can create custom roles, allowing different groups of users to access different verification stages where different sets of fields are verified for the same batch type. You can also use custom roles to control what the Operators can and cannot do. For example, you can prohibit a role from deleting documents, prohibit a role from sending documents from one processing stage to another, or, conversely, allow it to send documents only to one particular stage.

note Note: You can use methods other than roles to prohibit Operators from sending tasks to particular stages. See this example for more information.

You can create and set up a new role on the User Roles tab of the Project Properties dialog box (click Project → Project Properties...). Roles created on that tab are then assigned to Operators in the Administration and Monitoring Console.

note Note: You can create a new role when editing the properties of a stage that will be accessible to that role. This is done on the Roles tab of the Workflow Stage Properties dialog box (click Project → Project Properties... or Project → Batch Types..., then select the batch type to modify, click the Workflow tab, and when using the Advanced or Advanced for Web Capture station processing schemata, create an interactive stage or select an existing one and click Edit...). However, you will still need to go to the User Roles tab to grant access permissions to a role thus created.

Apart from creating (New...) and deleting (Delete) a role, you can create a new role from an existing role (Duplicate...) or modify an existing role (Edit...). When you click Edit..., a Role properties dialog box opens.

note Note: You cannot modify the standard Operator roles (i.e. Data Verification Operator, Verification Operator, Senior Verification Operator).

You can specify the following access permissions for a role in the Role properties dialog box.

·The list of stages from which the role may receive tasks. To specify the list of stages:

1.Click Stages for Getting Tasks....

2.Select appropriate items next to the stages that you want to make accessible to the role. If you want to make accessible all the stages of a particular batch type, select an item next to that batch type. Clicking Select/deselect all stages will select or clear all stages.

3.Click OK to save the changes and return to the Role properties dialog box.

·Access to operations on data.

Item | Access permissions
View list of project batches | 1.Viewing the list of batches.
Create/delete batches | 1.Creating and deleting batches 2.Working with batch attachments 3.Working with batch registration parameters 4.Changing batch types
Modify batch content | 1.Working with document attachments 2.Working with document registration parameters 3.Adding / deleting / moving pages / documents 4.Modifying images 5.Saving images to disk.
Assemble documents | 1.Saving/downloading attachments 1.Viewing registration parameters 2.Moving pages / documents 3.Modifying images 4.Saving images to disk. note Note: The Assemble documents role is enabled automatically together with the Modify batch content role. It can also be enabled independently.
Modify document layout | 1.Modifying the definition of a section / document, marking pages as attachments 2.Changing field region
Modify document content | 1.Changing field contents 2.Adding and removing field instances 3.Confirming fields 4.Working with document registration parameters 5.Starting verification (F7)

·Access to operations on tasks

Item | Access permissions
Create tasks or subtasks | Sending batches or documents to the processing stage
Postpone tasks | Postponing a task
View list of tasks in queue | Viewing the task queue in the processing stage accessible to the role and getting tasks from it note Note: If this permission is granted to role, user is allowed to handle tasks using Data Verification station regardless of presence of other permissions
Send tasks to any available stage | Sending tasks / subtasks to any processing stage accessible to the role for the given batch type note Note: If the item is cleared, the Operator will be able to send tasks only to the Exceptions and Rescanning queues (if allowed by the settings) and to any interactive stages allowed by the routing schema.
Change processing priority | Changing the priority of a task / document / batch

A role restricts the set of processing stages from which its Operators will receive tasks. For this reason, you can also grant access permissions to a specific processing stage on the Roles tab of the Workflow Stage Properties dialog box:

1.For batches of the Default type, click Project → Project Properties... For other batch types:

oClick Project → Batch Types...

oSelect the batch type which you want to make accessible or inaccessible

oClick Edit...

2.Go to the Workflow tab.

3.When using Advanced or Advanced for Web Capture station processing schemata, create an interactive stage or select an existing stage and click Edit...

4.In the Workflow Stage Properties dialog box, click the Roles tab.

5.Select appropriate items for the roles which will access the given processing stage.

6.If you need to add a new role, click New Role..., provide a name for the new role, and click OK.

note Note: To provide other access permissions a role thus created, you will still need to go to the User Roles tab.

Examples:

details Prohibit sending documents to a processing stage

details Prohibit sending documents from one processing stage to another

details Prohibit sending documents from one processing stage to any stage other than the specified stage


Prohibit sending documents to a processing stage

You can prohibit an Operator from sending documents to a processing stage without resorting to roles. Simply select the Linked to previous (operators will not be able to send tasks to this stage manually) item for the processing stage. You may wish to select this item for stages for which pre-processing is required. You cannot prohibit an Operator from sending documents to the Exceptions and Processed stages, so this item is not available for these stages.

To prohibit an Operator from sending documents to a processing stage:

1.For batches of the Default type, select Project → Project Properties... For other batch types:

oSelect Project → Batch Types...

oSelect the batch type which you want to make accessible or inaccessible

oClick Edit...

2.Click the Workflow tab.

3.When using the Advanced processing schema, select the processing stage and click Edit...

4.Select the Linked to previous (operators will not be able to send tasks to this stage manually) item.

5.Click OK to save the changes.


Prohibit sending documents from one processing stage to another

Show/Hide Hidden Text

This section describes how you can use roles to prohibit an Operator from sending documents from stage A to stage B.

If stage B is Exceptions

The only way to prohibit an Operator from sending documents to the Exceptions stage is to exclude this stage completely from the routing schema on the Workflow tab of the Project Properties dialog box (click Project → Project Properties...) or on the Workflow tab of the Batch Type Properties dialog box (click Project → Batch Types..., select the desired batch type, and click Edit...).
If stage B is Rescanning

Use the Advanced routing schema. First, open the properties of stage A and clear the item that allows sending documents to the Rescanning stage. Next, create a new role without granting it permissions to send documents to any stage. Finally, assign this role to the Operator in the Administration and Monitoring Console.

To prohibit sending documents to the Rescanning stage:

1.For batches of the Default type, click Project → Project Properties... For other batch types:

oClick Project → Batch Types...

oSelect the batch type which you want to make accessible or inaccessible

oClick Edit...

2.Click the Workflow tab.

3.In the Schema field, select Advanced.

4.From the list, select the stage from which documents should not be sent.

5.Click Edit....

6.In the Workflow Stage Properties dialog box, click the Exit Routes tab.

7.Clear the Allow operator to send tasks to rescanning stage item.

8.Click OK to save the changes.

Now you need to prohibit an Operator from sending documents to any stage. Create an appropriate role and assign it to the Operator in the Administration and Monitoring Console:

1.Click Project → Project Properties...

2.Click the User Roles tab.

3.Click New...

4.Provide a name for the role in the corresponding field.

5.Clear the Send tasks to any available stage item. Clear or select any other items depending on which permissions you need to grant to the Operator.

6.Click OK to save the changes.

7.Assign the role to the Operator for the corresponding batch type in the Administration and Monitoring Console.
If stage B is neither Exceptions nor Rescanning

In this case you need to create a role without ranting it permissions to send documents to any stage. Next, in the properties of stage A explicitly prohibit the Operator from sending documents to stage B. This can be achieved by either removing stage B from the allowed addressees or by allowing sending documents in automatic mode but not in manual mode.

To prohibit the Operator from sending documents to any stage, create an appropriate role and assign it to the Operator in the Administration and Monitoring Console:

1.Click Project → Project Properties...

2.Click the User Roles tab.

3.Click New...

4.Provide a name for the role in the corresponding field.

5.Clear the Send tasks to any available stage item. Clear or select any other items depending on which permissions you need to grant to the Operator.

6.Click OK to save the changes.

7.Assign the role to the Operator for the corresponding batch type in the Administration and Monitoring Console.

To prohibit the Operator from sending documents to stage B:

1.For batches of the Default type, select Project → Project Properties... For other batch types:

oClick Project → Batch Types...

oSelect the batch type which you want to make accessible or inaccessible

oClick Edit...

2.Click the Workflow tab.

3.In the Schema field, select Advanced.

4.To completely prohibit the Operator from sending documents to stage B, disable this stage by clearing the item next to the name of the stage, or remove the stage by selecting it from the list and clicking Delete.

5.If you need to prohibit the Operator from sending documents but allow the system to send documents automatically:

oFrom the list, select stage A, from which documents should not be sent.

oClick Edit....

oIn the Workflow Stage Properties dialog box, click the Exit Routes tab.

oSelect the name of the stage from the list.

oClick Edit....

oIn the Next Stage dialog box, clear the Allow operator to send tasks to this stage item.

oClick OK to save the changes to the sending options.

6.Click OK to save the changes to stage A.


Prohibit sending documents from one stage to any stage other than the specified stage

Show/Hide Hidden Text

This section describes how you can use roles to prohibit an Operator from sending documents from stage A to any stages other than B.

If stage B is Exceptions

To allow an Operator to send documents to the Exceptions stage, simply include this stage in the routing schema on the Workflow tab of the Project Properties dialog box (click Project → Project Properties...) or on the Workflow tab of the Batch Type Properties dialog box (click Project → Batch Types..., select the desired batch type, and click Edit...).
If stage B is Rescanning

Use the Advanced routing schema. First, open the properties of stage A and select the item that allows sending documents to the Rescanning stage:

1.For batches of the Default type, click Project → Project Properties... For other batch types:

oClick Project → Batch Types...

oSelect the batch type which you want to make accessible or inaccessible

oClick Edit...

2.Click the Workflow tab.

3.In the Schema field, select Advanced.

4.From the list, select the stage from which documents should be sent.

5.Click Edit....

6.In the Workflow Stage Properties dialog box, click the Exit Routes tab.

7.Select the Allow operator to send tasks to rescanning stage item.

8.Click OK to save the changes.

Now you need to prohibit an Operator from sending documents to any stage. Create an appropriate role and assign it to the Operator in the Administration and Monitoring Console:

1.Click Project → Project Properties...

2.Click the User Roles tab.

3.Click New...

4.Provide a name for the role in the corresponding field.

5.Clear the Send tasks to any available stage item. Clear or select any other items depending on which permissions you need to grant to the Operator.

6.Click OK to save the changes.

7.Assign the role to the Operator for the corresponding batch type in the Administration and Monitoring Console.
If stage B is neither Exceptions nor Rescanning

In this case you need to create a role that is not permitted to send documents to any stage. Next, in the properties of stage A explicitly allow the Operator to send documents to stage B.

To prohibit the Operator from sending documents to any stage, create an appropriate role and assign it to the Operator in the Administration and Monitoring Console:

1.Click Project → Project Properties...

2.Click the User Roles tab.

3.Click New...

4.Provide a name for the role in the corresponding field.

5.Clear the Send tasks to any available stage item. Clear or select any other items depending on which permissions you need to grant to the Operator.

6.Click OK to save the changes.

7.Assign the role to the Operator for the corresponding batch type in the Administration and Monitoring Console.

To allow the Operator to send documents to stage B:

1.For batches of the Default type, click Project → Project Properties... For other batch types:

oClick Project → Batch Types...

oSelect the batch type which you want to make accessible or inaccessible

oClick Edit...

2.Click the Workflow tab.

3.In the Schema field, select Advanced.

4.From the list, select stage A, from which documents should be sent.

5.Click Edit...

6.In the Workflow Stage Properties dialog box, click the Exit Routes tab.

7.Add the stage by clicking the Stage... button or select the name of the stage from the list and click Edit...

8.In the Next Stage dialog box, select the Allow operator to send tasks to this stage item.

9.Click OK to save the changes to the sending options.

10.Click OK to save the changes to stage A.

note Note: If the Create task option is not selected when a document is sent by the Operator, the conditions for entering stage B will be checked. If these conditions are not met, the document will be sent to the stage following stage A in the routing schema.


Registration parameters

Show/Hide Hidden Text

Registration parameters are textual properties that identify a specific batch or document. These properties can be the scanning date, the name of the scanning operator, etc. A registration parameter may be either required or optional.

Registration parameters can be assigned to a batch when it is created (if it is created automatically using image import profiles). Registration parameters can also be assigned to batches and documents on the Scanning Station and sent to ABBYY FlexiCapture together with the images.

Registration parameters can be configured on the Registration Parameters tab of the Batch Properties or Document Properties dialog box (click Properties... on the shortcut menu). You may need to modify registration parameters if:

·The FlexiLayout is used to check if certain data occur on a document.

·Some already known information that may affect field search is written into the registration parameters of a document. For example, a detected classifier class or a preset vendor may be written into the registration parameters and then passed into the FlexiLayout.

A registration parameter can be passed to a main or an additional FlexiLayout. In this case, the input named parameter of the FlexiLayout in ABBYY FlexiLayout Studio must be of type String and its name must be the same as the name of the registration parameter in ABBYY FlexiCapture.

note Note: It is recommended to specify different names for batch and document registration parameters. If the names are identical, the document registration parameter will be used (for example, when generating file names during export).

Named registration parameters

You can also use named registration parameters to specify document processing settings.

·fc_Predefined:DefinitionsToMatch
This registration parameter allows you to specify which Document Definitions should be used. The value of this registration parameter can be the name of a Document Definition, the name of a section, or the names of multiple sections separated by semicolons, for example:

"Document Definition 1; Document Definition 2\Section 1; Document Definition 2\ Section 2".

This registration parameter can be filled in by a scanning operator, either manually or by using a script. It is also possible to fill in this parameter at any stage preceding recognition if it becomes clear which Document Definition should be applied (e.g. as a result of classification).

·fc_Predefined:DocumentError
If this parameter is not empty, then, at the export stage, the document will be deemed to contain an error and will be exported using the export profile designed for exporting documents with errors. The error description will contain the value of the registration parameter.

Storing basic message headers in the registration parameters

When importing images from an e-mail folder using the MAPI, IMAP or POP3 protocols, the details of the corresponding e-mail message will be automatically written into the registration parameters of the newly created batch. The following parameters will be added:

·fc_Predefined:EmailSubject
The subject of the e-mail message.

·fc_Predefined:EmailSender
The sender's address.

·fc_Predefined:EmailAddressee
The addresses of the recipients in the "To" field.

·fc_Predefined:EmailCopyAddressee
The addresses of the recipients in the "Cc" field.

note Note: This parameter cannot be longer than 255 characters. If the total size of all the addresses in the "Cc" field exceeds 255 characters, the excess characters will be truncated.

·fc_Predefined:EmailDate
The date and time when the message was received.

note Note: If you don't want the details of the e-mail message to be written into the registration parameters of the newly created batch, set the following Windows registry key to "false":

[HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller] "UseHotFolderSpecialParameters"="false".


Uploading a project to the Application Server

Once you have created a project, you need to upload it to the Application Server. This will copy the project settings, Document Definition files, dictionaries, and other service data onto the Application Server.

warning Important! If batches have been created in the project, the batches will not be copied to the Application Server when you upload the project.

To upload your project to the Application Server, click File → Upload Project to Server... on the main menu of the Project Setup Station. In the dialog box that opens, specify:

·the URL of the server (i.e. http://<ApplicationServer> where <ApplicationServer> is the name of the computer on which the Application Server is installed) and the type of authentication to be used,

·Tenant name in the respective field.

note Note: Only the Administrator may create new projects. The project setup Operator can only set up already created projects. For this reason, after a project is uploaded to the Application Server and the station Operators are granted the required permissions by the Administrator, the project setup Operator must open the project on the Application Server by clicking File → Open Project from Server... and make the necessary settings (i.e. create Document Definitions, configure import profiles, specify export settings, etc.).

warning Important! For the export to be successful, the path to the project folder must be specified in UNC format (\\computer_name\share_name[\path] after uploading the project to the Application Server. Make sure all the stations involved in the export have access to the specified folder. Specifying the path in the format \[path]" will result in export errors. If you specify the relative path, the data will be accessible only via the API. To access the data using other methods, you need to specify the root folder for relative paths in UNC format (this can be done when configuring the project properties).

For instructions on uploading tenant projects to the server, please refer to Working with tenants.


Test project

A test copy of a project can be used if you wish to check that the project works correctly before applying changes to working project.

To create a test copy of a project, select Project → Create Test Copy.

In the Project Setup Station, only the user who created a test copy of a project can work with it.

Once you have made changes in the test copy of the project and tested its functioning, you can either apply changes to working copy, for this, select Commit Test Copy from the Project menu, or delete the test copy, for this, select Project → Delete Test Copy.


Skin settings

The Skin Settings dialog box allows you to customize the appearance of the station using Stage Tools and Tool Settings. To customize the appearance of the selected tool, click the Edit... button and in the dialog box that opens click Edit Skin...

On the Toolbars tab of this dialog box you can configure the set of toolbars for a selected tool. For each tool, the list of toolbars contains the four obligatory toolbars: Tasks, Standard, View and Navigation. To add a new toolbar, click the Add... button. In the dialog box that opens, specify the toolbar name and click OK. The toolbar will be added to the list. To change the name of a custom toolbar, click Rename...

On the Commands tab, you can rearrange the menu and toolbar commands. Select Menu or Toolbar and from the corresponding drop-down list choose a menu item or a toolbar you want to rearrange. The Commands group contains the list of commands available for the selected menu item or toolbar. For each command, the following options are available:

Option | Description
Add... button | Opens the Edit Command dialog box to add a new command.
Edit... button | Opens the Edit Command dialog box where you can change the name of the command.
Delete button | Removes the selected command from the list.
Up and Down buttons | Moves the selected command up or down in the list.
Reset button | Resets settings to default.

The Tooltip field contains the tooltip text for a command and a keyboard shortcut (if a shortcut is specified for the command).

note Note: When adding a user command, you can enter the tooltip text for this command. The maximum length of the tooltip text is 80 characters. Keyboard shortcuts for user commands are configured on the Keyboard Shortcuts tab of the Tools → Options... menu.

When adding or editing toolbar commands, you can select whether to display the command as text or as an icon. If the Use icon option is selected, click Browse (bmp, 24x24)... to load an image to be used as the command icon. The image must be in .bmp format and of size 24x24px. For commands of the Tasks toolbar, the image size must be 32x32px.

It is possible to manage visibility of custom toolbars from the menu. To add a menu item that will show/hide custom toolbars, on the Commands tab select a menu item to which the list of custom toolbars will be added and click Edit.... In the Edit Command dialog box that opens, select View from the Categories list and in the Commands list select Custom Toolbars. The Custom Toolbars item with the list of all custom toolbars will be added to the station menu.

note Note: The Custom Toolbars command cannot be added on a toolbar, but to the menu only.


Displayed images quality

Navigation: Program settings > Creating a project >

Return to chapter overview

Image display quality

The Image display quality option determines the quality of images which are loaded on the stations.

Image display quality is specified for each batch type. When a batch is created, its type is specified and the images of the batch are displayed with the specified quality.

If no batch types are created, batch images are displayed with the quality specified for the entire project (Project → Project Properties..., General tab).

Each image is stored as a set of files: the original file, its low-quality copies (color and black-and-white), and its thumbnail. The original image file is used for recognition and export. The smaller black-and-white copy is used when displaying the image on a station.

The following values are available for image display quality: 20%, 40%, 60%, 80%, and 100%.

Reducing the quality of displayed images can speed up loading images on Operators' computers if their connection speeds are low. Lower quality images will load faster due to their smaller file sizes.


Document Definitions

Creating a Document Definition is the main and most critical stage in configuring a project and determines the quality of data obtained after processing.

Document Definitions can only be created on the Project Setup Station .

A Document Definition describes the location of document elements and indicates fields to be used in data extraction. When creating a Document Definition, field properties are specified along with their range of values. Data export settings are also configured.

To start creating a Document Definition, run the Document Definition Wizard:

1.In the main menu of ABBYY FlexiCapture select Project → Document Definitions...

2.In the Document Definitions dialog box that opens click the New... button.

3.Follow the instructions in the Document Definition Wizard.

See also:

details Creating Fixed Document Definitions

details Creating Document Definitions for semi-structured documents

details Document Definitions without automatic field extraction

details Document sets

details Document Definition fields

details Document Definition Wizard

details Editing and publishing a Document Definition

details Creating Document Definitions

details Document Definition properties

details Properties of a Document Definition section

details Rule validation

details Export settings

details Configuring data presentation in the document window

details Testing Document Definitions

details Localizing a Document Definition


Creating fixed Document Definitions

Navigation: Program settings > Document Definitions >

Return to chapter overview

Creating Document Definitions for forms

Forms are documents containing a set of marked information fields whose formatting, number, and layout do not change from copy to copy. Examples of forms include questionnaires, surveys, and application forms. To identify a form in a document flow and to extract data from it, you need to create a fixed Document DEfinition that will tell the program where to look for the data fields. For details, see What ypes of documents can be processed with ABBYY FlexiCapture.

See more:

details Static elements

details Automatic detection of fields and static elements

details Importing a Document Definition for forms created with ABBYY FormDesigner


Static elements

Static elements are used for Document Definition matching and identification. No data is extracted from them.

To work with static elements in the Document Definition editor, switch to static elements mode by clicking the [image] button.

Static elements can be used for Document Definition matching and identification. Their method of use is determined when you configure element properties. Anchors are used to match the Document Definition with the form image. Identifiers are required for determining to which forms pages belong where various forms are processed in a single flow.

Static elements have no names, only regions on the image.

When a Document Definition is applied to a document image, the program searches for static elements and selects a Document Definition based on their location. Recognition of values of static elements (text and barcode) is performed only in case when it is required for identification purposes. See Specifying identifier values.

The program works with static elements of the following types:

Static element | Toolbar button
Anchor | Anchor
Separator | Separator
Anchor text |
Anchor barcode | Bar-code

The program searches for anchors automatically when an image is added.

How to create a static element manually:

1.Select the static elements mode

2.Select the tool for creating an element of the required type

3.Place the cursor in the corner of the element, left-click and drag diagonally to the opposite corner
or
use Shift-Click in the element region.

The static element region will be framed with a rectangle. Its color depends on the static element type. The static element is assigned default properties.

How to change the properties of a static element:

1.Highlight the element region on the image, right-click and select Properties... from the shortcut menu.

2.Modify static element properties in the dialog box that opens.

See also:

details Anchors

details Anchor text

details Separators

details Anchor barcode

details Specifying identifier values


Anchors

Anchors - static elements are highlighted on the image automatically.

To highlight anchors manually:

1.Switch to the static elements mode

2.Select Anchor on the toolbar

3.Place the cursor in the corner of an anchor, left-click and drag the cursor diagonally to the opposite corner.
or
Use Shift-Click in the anchor region.

Anchor properties

To modify anchor properties:

1.Highlight the anchor;

2.Right-click in the anchor region and select the Properties... item from the shortcut menu

3.Modify properties in the dialog box that opens:

oUse for Document Definition matching this option must be enabled for the program to use the anchor for Document Definition matching (recommended)

oUse for Document Definition identification enable this option to use the anchor for Document Definition identification

oAnchor type for correct Document Definition matching it is important to specify the anchor type: black square, cross, corner or timing mark


Anchor text

Anchor text - static element. This is any static text on the image headers, explanatory signatures.

To highlight anchor text:

1.Switch to the static elements mode

2.Select [image] on the toolbar

3.Position the cursor in the corner of the anchor text, left-click and drag the cursor diagonally to the opposite corner.
or
Shift-click in the anchor text region.

Anchor text properties

To modify anchor text properties:

1.Highlight text

2.Right-click in the anchor text region and select Properties... from the shortcut menu

3.Modify properties in the dialog box that opens:
On the General tab:

oUse for Document Definition matching this option must be enabled for the program to use the anchor text for Document Definition matching.

oUse for Document Definition identification enable this option to use the anchor text for Document Definition identification.

oValue if you are using anchor text as an identifier, you can set its value. To automatically insert a value, click the Hint button.

oMax number of errors - here you can specify the maximum number of allowed errors in the anchor text string.

On the Recognition tab you need to configure recognition options for the static text to be recognized with maximum accuracy:

oICR (hand-printed) enable this option if static text is handprinted.

oOCR (printed) enable this option if static text is printed. Select the print style from the dropdown list (typographic, dot-matrix printer, typewriter, etc.). See also Supported text types.

oAdvanced use this option to select several text types or specify a custom text type.

oData type select the language of the text. Use the Select... button to make your selection.

oLetter case select the case of static text letters; if the text has both lowercase and uppercase letters, leave the Auto value.

oOrientation specify the text orientation.

oEnable the One line option for one-line text.

oIf the text does not contain blanks, i.e., consists of a single word, enable the One word option.

oConfigure image processing options during recognition:

§Invert inverts the image.

§Remove texture removes texture.

§Despeckle enable this option to remove garbage from the image.

§Remove garbage of specified size only enable this option if you want to remove garbage of only specified size. Specify garbage size. If this option is disabled and only the Despeckle option is enabled, garbage size will be selected automatically.


Separators

Separators are static elements. These are any horizontal or vertical lines on the image.

To highlight separators:

1.Switch to the static elements mode

2.Select Separator from the toolbar

3.Place the cursor in the corner of a separator, left-click and drag the cursor diagonally to the opposite corner.
or
use Shift-Click in the separator region.

Separator properties

To modify separator properties:

1.Highlight the separator

2.Right-click in the separator region and select the Properties... item from the shortcut menu

3.Modify properties in the dialog box that opens:

oUse for Document Definition matching this option must be enabled for the program to use the separator for Document Definition matching

oUse for Document Definition identification enable this option to use the separator for Document Definition identification.


Anchor barcode

Anchor barcode - static element.

warning Important! A barcode can be highlighted as a field or as a static element. This depends on the barcode value in the documents being processed: if it is for Document Definition matching or identification, you need to create it in static elements mode. If a barcode is intended for data capture, you have to create it in field marking mode. Barcode properties differ depending on whether it is a field or static element. This section describes the properties of a static element an anchor barcode, see also barcode field.

To highlight an anchor barcode:

1.Switch to static elements mode

2.Select Bar-code from the toolbar

3.Position the cursor in the corner of a barcode, left-click and drag the cursor diagonally to the opposite corner
or
use Shift-Click in the barcode region.

Properties of an anchor barcode

To modify the properties of an anchor barcode:

1.Highlight the barcode

2.Right-click in the barcode region and select the Properties... item from the shortcut menu

3.Modify properties in the dialog box that opens:
On the General tab:

oUse for Document Definition matching this option must be enabled for the program to use the barcode for Document Definition matching

oUse for Document Definition identification enable this option to use the barcode for Document Definition identification

oValue if you are using an anchor barcode as an identifier, you can set its value. To automatically insert a value, click the Hint button

oRequired for Document Definition matching if this option is selected, the Document Definition will be matched only if the barcode is matched. Select this option if there are many very similar Document Definitions in the batch that can be distinguished only by the values of their barcodes or even by the values of one of their several barcodes. In this case, selecting this option will speed up Document Definition selection. Do not select this option if you wish the Document Definition to be matched even if there is no barcode or if it is too faint.

On the Recognition tab:

oCode type specify the barcode type (this is normally determined automatically)

oOrientation specify the barcode orientation.

oYou can also configure barcode image processing options:

oInvert inverts the image

§Remove texture - removes texture

§Despeckle enable this option to remove garbage from the image

§Clear the garbage of specified size only enable this option if you want to remove garbage of only specified size. Specify garbage size. If this option is disabled and only the Despeckle option is enabled, garbage size will be selected automatically.


Specifying identifier values

Identifiers serve to determine to which form a page belongs and are used to select a Document Definition where the batch contains several Document Definitions with the original set of anchors. In the event of simultaneous processing of several forms in a single flow, the program determines what form this page belongs to based on the location of identifiers.

If an anchor barcode or anchor text is used as an identifier, you can specify the values of such identifiers. In this case when applying a Document Definition the program will compare recognized data in the image with the value of the identifier, and the Document Definition match will be possible only if these values match.

The values of identifiers can be set in the properties dialog box of static elements on the General tab. Values of text and barcodes can be entered automatically. The Hint button is intended for this purpose.

note Note: If it is possible to identify a page with absolute certainty based on the location of elements alone, you do not have to set the values. You should use this functionality only when absolutely necessary because assigning the identifier value launches the recognition module at the stage of Document Definition application, thereby slowing down the matching of Document Definitions with images.


Automatic detection of fields and static elements

Automatic detection when adding an image:

When a page image is added, the program always detects anchors. If the image has standard anchors (such as black squares), these will be detected and marked. The program searches for text fields and checkmarks if the user has enabled the Text or Checkmarks options. The program performs automatic detection of text fields with a region and rectangular checkmarks particularly well. If entry fields on your form do not have a region, and checkmarks are inserted against a white background, they will normally need to be highlighted manually.

Automatic detection in the window of the Document Definition editor:

For automatic detection in the window of the Document Definition editor, select the required mode (fields or static elements) followed by the menu item Tools → Autodetect Objects by Type.... Mark the types of fields or static elements to be detected automatically.

If you need to detect specific objects on the image automatically, select the required mode (fields or static elements) and click Autodetect on the toolbar. If you click on the element it will be marked with a rectangle. The element type will be detected automatically.

Automatic detection of a region:

For a field or static element region of a specific type to be detected automatically, proceed as follows:

1.Select the required mode (fields or static elements)

2.Select the type of a field or static element with the help of an appropriate button on the toolbar

3.Press Shift

4.Left-click in the field or static element region


Importing a Document Definition for forms created with ABBYY FormDesigner

ABBYY FormDesigner is a convenient tool designed specifically for creating machine-readable forms. In addition to forms that meet all the requirements of automated document processing, designing forms with ABBYY FormDesigner also gives you a Document Definition that is almost completely ready for processing these forms in ABBYY FlexiCapture.

To obtain a Document Definition for processing forms designed with ABBYY FormDesigner, proceed as follows:

In ABBYY FormDesigner:

1.Create a form

2.Publish it

3.Export it to XML Form Definition format. You will get a file with the *.xfd extension.

For details about creating, publishing and exporting forms see the Help Topics and user guide of ABBYY FormDesigner.

In ABBYY FlexiCapture:

1.In the main program window, select the menu item Project → Document Definitions...;

2.In the Document Definitions dialog box click the Import... button;

3.In the Open file for import that opens, select XML Form Definition Files (*.xfd) from the Files of type drop-down list and specify the path to the *.xfd file;

4.The name of the new Document Definition will appear in the Document Definitions list of the Document Definitions dialog box.

After opening an imported Document Definition for editing, you will see that the marking of fields and static elements is already present in the image. All you need to do is edit field properties and configure export.

Using XFD files to update Document Definitions

A Document Definition that was created based on an XFD file can be updated using an XFD file without losing any changes made by the user in the Document Definition Editor.

To update a Document Definition using an XFD file, open the Tools menu in the Document Definitions Editor, click Update Definition with XFD... and specify the path to the XFD file in the dialog box that opens. Page images will be replaced with images from the XFD file and blocks will be created based on the new description in the XFD file. Document Definition fields that are not present in the updated Document Definition will remain in the document structure. They will be marked with an asterisk and their blocks will not appear on images. A warning will be displayed when these elements are updated.

note Note: If the Document Definition contains multiple sections, every section must be updated individually. To update a section, select it in the document structure and execute the Update Definition with XFD... command.


Creating Document Definitions for semi-structured and unstructured documents

ABBYY FlexiCapture can be used to process unstructured documents containing information presented in a free style, for example contracts, letters, orders, annexes. Unstructured documents with text or images separated by blank sheets or pages with barcodes are processed and exported to PDF searchable files or graphic files.

The processing of such documents normally involves converting documents to electronic form and running a search according to key field values.

If possible, the search for key fields (such as a contract number) in such documents is performed using a FlexiLayout created with ABBYY FlexiLayout Studio. See Creating a Document Definition for semi-structured document processing.

NLP can be used to process unstructured documents. This technology uses NLP models to extract information from text.

If automatic search of key fields is impossible, the Operator may input their values manually. To do this, create a Document Definition with one field (or several fields, if necessary), and enable the option Don't recognize (key from image field - will be entered manually) in the recognition properties of this field. When running the verification process the Operator will then be able to input key field values manually.

You need to configure export to enable data storage: you can export key field values to file or database and save document images in a convenient format. You can save document images in graphic files or PDF searchable files.

Pay close attention when assembling pages into documents: with unstructured documents it can be fixed to determine to which document a particular page belongs. To automate the assembly of unstructured documents we recommend separating documents with blank sheets or pages with barcodes. When adding images to a batch (by scanning, adding from file, or creating an import profile) you then need to enable the option For images separated by and select the value blank pages or pages with barcode from the dropdown list, depending on which pages are to be used as separators. Pages are assembled into documents automatically: pages will be added to the current document until the next separator page. For details see Adding page images.


Creating a Document Definition based on a flexible description

Navigation: Program settings > Document Definitions > Creating Document Definitions for semi-structured documents >

Return to chapter overview

Creating a Document Definition based on a FlexiLayout

For documents like bills, payment orders, or invoices, you cannot use an ordinary Document Definition with fixed field locations. This is because the location, size, and number of fields may vary from document to document and, consequently, a fixed Document Definition cannot be uniformly applied to all of them. For this kind of documents, a Document Definition must include a special logical description termed FlexiLayout, which helps the program to locate the necessary fields based on keywords and the position of the fields relative to one another.

FlexiLayouts can be created in ABBYY FlexiLayout Studio, which ships together with ABBYY FlexiCapture. For detailed instructions on creating FlexiLayouts, please refer to ABBYY FlexiLayout Studio Help.

After you create a FlexiLayout, you need to export it to an *.afl file and then attach it to your Document Definition in ABBYY FlexiCapture. A FlexiLayout can apply to the entire Document Definition or to one of its sections. A FlexiLayout may have multiple pages.

note Note: Besides one main FlexiLayout, you can create any number of additional FlexiLayouts for a document. The program will first apply the main FlexiLayout and then, one by one, each of the additional FlexiLayouts. If the names and types of the fields are identical in the main and in the additional FlexiLayouts, their fields will be merged. If the names of the fields are identical but their types are different in the main and in the additional FlexiLayouts, the additional FlexiLayouts will fail to load and error message will be displayed.

Attaching a FlexiLayout

A FlexiLayout can be attached at the stage of creating a Document Definition. To do this, in the second step in the Document Definition Wizard, add the document image, select the Load FlexiLayout option, and enter the path to the *.afl file containing the FlexiLayout.

You can attach a FlexiLayout from the Document Definition editor, using the properties dialog box of the Document Definition section.

1.Select a document section. (If the document consists of a single section, in the Document Structure window, click the Pages tab and select the name of the section.) Right-click and select Properties... from the shortcut menu.

2.Click the FlexiLayout tab.

3.Click Load...

4.Select the required *.afl file containing the FlexiLayout.

After you attach a FlexiLayout, the layout of the fields will be displayed on the image. Now you have to configure field properties as you do for a fixed Document Definition. Specify recognition, verification, and export properties and set the required rules.

Updating a FlexiLayout

To update FlexiLayouts used in the Document Definition, click Tools → Update FlexiLayouts.... In the dialog box that opens, specify the paths to FlexiLayouts and click Update.

note Note: When importing a FlexiLayout with text files that contain possible field values, the program uses the relative paths that were defined when creating the FlexiLayout. The relative paths are relative to the project file. To edit these files, save the project locally (click Project → Export Project...), edit the files, and update the project on the server (click Project → Update Project...).


Creating Document Definitions for documents that do not require automatic data extraction

A Document Definition without automatic data extraction may be useful in the following cases:

·When processing documents that must always be present in a document set but from which no data should or can be extracted. Examples include hand-written statements, notices, etc.

·When you need to classify and sort documents without extracting their data.

In cases like those described above, you can create a Document Definition that will cause its documents to skip the analysis stage. This will reduce the workload on the verification operator and will speed up the processing.

To create a Document Definition without automatic field extraction, the following conditions must be met:

·Your documents must have no anchor identifiers (otherwise, they will be treated as fixed forms).

·There must be no FlexiLayout loaded.

·Field training must be disabled.

In the Document Definition Wizard, select Documents that do not require automatic data extraction. As a result, a Document Definition with only one section will be created and any documents that don't require automatic data extraction will skip the analysis stage.

Typically, this kind of documents do not require OCR. If you are planning to use manual indexing or want your verification operators to be able to enter text by clicking it on the image, you must make sure that your documents have a text layer. To add a text layer to your documents, create at least one field with the Can have region option selected.

note Note: Alternatively, you can have a text layer added at the export stage by selecting the Create searchable PDF option.

Any Document Definition can be modified to prevent automatic field extraction. All you need to do is remove all the anchors and FlexiLayouts and disable field training.


Document sets

Many business processes use documents that are all related to one another because they serve some common purpose. In ABBYY FlexiCapture, documents of this sort can be grouped together into document sets. Examples include personal loan applications and insurance reports.

A typical document set often includes an application form and some accompanying documents. In most cases, each document in a document set can be examined independently and belongs to a separate document type, such as questionnaire, passport, bank statement, etc. To make sure that a complete set of documents has been submitted, we need to identify the type of each document in the set. Then data can be captured from the documents in the set and compared against a database, or documents can be checked for signatures and company seals.

note Note: A document set may contain documents from which no data should be captured. Such documents do not require optical recognition, but their type still needs to be detected to make sure that no documents are missing from the document set.

Document sets may be grouped into larger batches. An inventory list of documents may be provided with each batch.

See also:

Processing document sets

Checking document sets for completeness at the scanning stage

Verifying document sets


Processing document sets

Document sets are processed differently from both individual documents and documents with multiple sections.

To process a document set, special completeness rules are used to check that no documents are missing from the set. Completeness rules may vary from simple document listings to complex rules stipulating that a set must contain certain documents if they are referred to by other documents or if they are included on the inventory list.

A document set goes through the following processing stages:

1.Checking that the set contains all of the documents it should contain, checking the number of documents of each type, and, optionally, checking the order of the documents in the set.

2.Capturing data from one main document in the set or capturing data from multiple documents and detecting any contradictions (e.g. to make sure that all the documents are related to the same person or organization).

3.Visually checking documents for signatures and seals.

4.Creating a searchable PDF from all the documents comprising the set.

5.Exporting the captured data to a database, together with links to the original document images.

A document set may contain documents from which no data should be captured but whose images must still be included in the processing results. Such documents do not require optical recognition, but their type still needs to be detected to make sure that no documents are missing from the document set. Examples include hand-written applications, certificates, and receipts.

The process of document set recognition has a couple of distinct features:

It is not mandatory to list child documents. Instead, it suffices to specify only document sets to be recognized. To do this, go to batch type properties located in the Recognition tab. Sets that correspond to the specified definitions will be fully recognized.

If a child document is moved to the top level of a set, an assembly error occurs because the matched definition does not comply with the set structure. To avoid such errors it is necessary to add child document definitions to the general recognition list.

See also:

Creating and setting up document sets


Creating and setting up document sets

To form a document set, you must create a new Document Definition. The sections of this Document Definition will be existing Document Definitions and your own sections. Existing Document Definitions, i.e. already created and debugged Document Definitions of individual documents, are selected when creating the Document Definition for a document set, whereas your own sections can be added when debugging the Document Definition for the document set. Additionally, when creating the Document Definition for a document set, you can add a summary section, which makes it possible to verify the document set as a single unit.

Creating a Document Definition for a document set

1.Open the Project menu and click Document Definitions... (Ctrl + T).

2.In the Document Definitions dialog box, click the New... button.

3.In the Create New Document Definition dialog box, select the Document set option and from the list below select the Document Definitions of the documents that you want to include in the document set. These Document Definitions will become sections of the document set Document Definition.

4.Optionally, enable the Add Summary Section... option (see below for details). Click Next.

5.In the dialog box that opens, specify a name for the document set and provide a description (a name is required and a description is optional). Click Finish.

The new Document Definition will be opened in the Document Definition editor, and all of the sections you added to the Document Definition will be displayed in the Document Structure pane, including the summary section. The sections that were created from existing Document Definitions will contain only index fields from the original Document Definitions. You can also add more Document Definitions as sections to the Document Definition of the document set. To do this, in the Document Definition editor, click Document Definition → Add Link to Document.... To add a summary section, click Document Definition → Add Summary Section....

warning Important! If you add or remove index fields when editing a document set Document Definition, you will need to refresh them, otherwise they will not be displayed correctly. To do this, right-click the element and click Update Index Fields on the shortcut menu.

note Note: You can change the order of sections in the Document Definition on the Assembly tab of the Document Definition properties dialog box.

note Note: You can choose whether or not to display a section in the summary section by enabling or disabling the Show on verification option in the properties dialog box of the section.

Summary section

A summary section is a Document Definition section that displays all of the principal fields in a document set. This makes it much easier for the Operators to verify documents in a document set, because they will be able to see all of the errors and low-confidence data in one place. Besides, the Operators will only need to open documents that may contain errors.

A summary section:

·Does not contain pages or images.

·Does not affect how the Document Definition is applied.

·Usually contains links to existing fields from documents in the document set.

To add a summary section to a Document Definition, open it in the Document Definition editor and click Document Definition → Add Summary Section.... In the dialog box that opens, specify a name for your summary section and provide a description (optional). The new summary section will be displayed in the Document Structure pane. Any rules enabled in the Document Definition will affect the fields in the summary section as if they were fields in regular sections.

Displaying fields from repeating documents of a set

If repetitions of certain document types are allowed in your set, the information that will be extracted from them may be displayed in a summary section as a repeating group or a table.

For example, an operator works with a loan application that contains several IDs—an ID of a borrower, his wife, and a guarantor. In this set of documents, ID indicates a repeating type of documents. If you create a group of fields that refers to these documents, it will also be a repeating one, which will allow you to present it in the form of a table. In this case, when recognizing documents, all data will be conveniently displayed in a data form, where each document will be presented as one line of the table. This will allow the operator to immediately see all the necessary information without having to open all documents one by one, which will significantly reduce the time spent on verification.

To move to the image and the data form of the original document, double-click the table cell or select the Go to Original field command in the context menu.

When the operator adds documents of this type to the set, the corresponding line is added to the table. When you delete a document or move it to another set, the line is deleted.

Displaying fields from repeating documents of a set as a table

To configure the display of fields from a repeating set of documents as a table, add a group that will reference one of the set documents in a summary section. If the document is a repeating one (repeated more than once), the group becomes a repeating one as well. After that, a user needs to add to this groups those fields from the document that they want to display as a table in the summary section.

1.Add a summary section (Document Definition → Add Summary Section...).

2.In the Assembly tab of the document set settings, set the repetition of the relevant document.

3.In the summary section, set the field group that references the document. To do this, select Create Field → Link to Existing Field in the context menu of the summary section and specify the document. If the document is repeated more than once, the group will also be a repeating one.

4.In the group, create links to fields of the document that was selected during group creation (Create Field → Link to Existing Field), specify the fields to be displayed in the table. Only simple fields may be added to the group. They include text fields and images without repetitions and subgroups.

5.If you wish to configure displaying fields as a table, select the resulting group of fields in the document structure. In the data form the group will be highlighted with a green rectangle. Right-click the rectangle and select Show as Table.

If you add or delete a document from a set, the relevant line will be also added or deleted from the table.

Automatic assembly of document sets

Assembly rules for document sets are created similarly to assembly rules for documents with multiple sections.

A recognized document will be automatically added to a document set (a) if it is the first document in one of document set and sections order check is enabled or (b) if this document is a member of only one document set. Any subsequent documents will be added into this document set based on the assembly rules.


Checking document sets at the scanning stage

You may need to check document sets for completeness before they go through all the processing stages in ABBYY FlexiCapture, e.g. to see if a customer has submitted all the required documents. Suppose you only have a Scanning Station installed in your office. Then document sets can be checked immediately after the documents have been scanned. To implement this check, all the document images should be assembled into documents based on their types (this can be done manually or automatically). Next, the documents should be assembled into document sets and the type of each document and document set should be specified. Now before sending a batch to its intended destination, the program will check if it contains the required number of documents of certain types.

Configuring checks to be performed on document sets

To make the program check document sets after scanning, complete the following steps. In the Batch Type Properties dialog box, specify the document types your batch should contain and the expected document count. Next, select the Check document types and count option. For details, see Scanning Operator's help (Document Types section).

Tip. If some of the document types is optional and should not affect the check, set the minimum number of documents of this type to 0 or leave the field empty.

Assembling documents

After scanning, the images can be automatically separated into batches and documents using the settings specified in the Batch Type Properties dialog box (e.g. by using barcodes or based on the number of pages in each document). You can make adjustments to incorrectly assembled document sets and documents by dragging documents with the mouse or by using Create Document and Disassemble Document commands. The Create Document command can only be applied to selected documents that immediately follow one another.

Assigning document types

Document types can be created manually on the Scanning Station or imported from ABBYY FlexiCapture. If the documents are to be processed by means of ABBYY FlexiCapture, we recommend importing the relevant document types from ABBYY FlexiCapture. This will ensure that each document type on the Scanning Station will have a matching Document Definition in ABBYY FlexiCapture. The section and document counts will also be imported.

note Note: After importing document types, you can adjust them (e.g. change the document count for a document type).

Tip. Document types can be assigned at any time while document assembly is in progress. However, the recommended approach is to assemble separate images into documents first, then assign the document types, and only then form document sets.

For instructions on specifying document types, see Scanning Operator's help (Working with Batches, Documents, and Pages → To specify a document type).

Running the check before sending the document sets

If the Check document types and count option is selected for a batch type, then, prior to sending a batch to its intended destination, the program will check if it contains the required number of documents of the types you specified. If the batch passes the check, it will be sent to its intended destination. If the batch fails the check, it will not be sent anywhere and an error message will be displayed (e.g. saying that a document of a certain type is missing). You will need to correct the error (e.g. scan or load any missing documents) before attempting to send the batch again.


Document Definition fields

Fields are intended for data extraction.

To work with fields in the Document Definition editor, switch to Field Regions mode by clicking the [image] button.

All regions on the image from which you intend to capture data must be marked up as fields. Data in these fields will be recognized and recognized values can then be exported.

Fields have names, which are displayed in the Document Structure pane. Normally, a field will have a corresponding region on the image, but you can also create fields without regions (e.g. to store interim results).

The program can recognize the following types of fields:

Field | Toolbar button
Text entry field | Text
Checkmark | Checkmark
Checkmark group |
Barcode | Bar-code
Picture |
Table | Table
Region for field without region |
Non-recognized region |

To create a field:

1.Select the Field Regions mode.

2.Select the tool for creating a field of the required type.

3.Position the cursor in the corner of the field, hold down the left mouse button, and drag the cursor diagonally to the opposite corner
or
hold down the Shift key and click anywhere in the region of the field.

A frame will appear around the region of the field. The color of the frame will depend on the type of the field.

The created field will be given a name based on the explanatory text that is closest to its region. This name will appear in the list of fields that is displayed when you click the Fields tab in the Document Structure pane.

The field will be given the default properties.

An alternative method for creating a field is as follows:

1.In the Document Definition editor, click Edit → Create Field, or click the Fields tab in the Document Structure pane, right-click anywhere in the pane, and click Create Field. Then select the desired field type.

2.In the Field Properties dialog box, specify field properties and click OK.

3.The new field will be added to the list. It will be marked with a red asterisk indicating that thus field has no region.

4.To create a region for the field, click the [image] button on the toolbar and draw a region on the image. You will be prompted to select an appropriate field name from the pop-up list.

To exclude an area from recognition, draw a non-recognized region on the image using the [image] button.

Marking up fields inside a region

Sometimes you may need to mark up fields inside another region. This may be necessary, for example, if you need to extract an entire region (e.g. a full address) into one field and a portion of that region (e.g. the city and state) into another field.

In order to be able to mark up fields inside a region, you need to lock the region first. To do this, right-click the region and select Lock on the shortcut menu. Once locked, a region cannot be moved, but you can adjust its borders. If you attempt to mark up fields inside a region that has not been locked, you will end up selecting the entire region.

note Note: When a document is closed, any locked fields will be unlocked.

To have regions locked by default, select the Text segment option on the General tab of the field properties dialog box.

Selecting multiple fields

ABBYY FlexiCapture includes a feature that lets you select multiple fields quickly if you want to edit a group of fields by type. To do this, click Edit → Select Fields by Type... or press Ctrl+Shift+F. In the dialog box that opens, specify the field types you want to select and click OK. To select all fields at once, click the Select All button.

Field properties

It is very important that the properties of each field be configured correctly. Field properties affect the quality of recognition and determine whether their values will be exported and submitted to the operator for verification. Certain properties are very important for data recognition. For example, the marking method is important in the case of a text entry field: if it is specified incorrectly, some marking will not disappear during scanning and will not be separated from the characters, resulting in poor recognition quality.

Fields of each type have their own set of properties. When you create a field of a certain type on the image, it is given the default properties.

How to change field properties:

1.Select the name of the field in the document structure or select the field region on the image, right-click the selection, and select Properties... on the shortcut menu.

2.Modify the field properties in the dialog box that opens.

See also:

details Text entry fields

details Checkmarks

details Checkmark groups

details Barcodes

details Pictures

details Tables

details Field group

details Service fields

details Index fields

details Link to an existing field

details Fields without a region

details Creating a field with a non-rectangular region

details Fields with several instances

details Fields with several regions

details How to change a field name

details Copying, moving, deleting fields

details Exclusion of a region from recognition


Text entry fields

When you create a text field, it is assigned default properties. You can change properties by selecting Properties... from the shortcut menu. The properties modification dialog box comprises five tabs for different groups of properties:

listPicture General fields properties

listPicture Data types of the text entry field

listPicture Recognition properties

listPicture Verification properties

listPicture Rule validation

listPicture User Script (Custom Action)


Basic field properties

Navigation: Program settings > Document Definitions > Document Definition fields > Text entry fields >

Return to chapter overview

General field properties

You can specify the basic properties of a field on the General tab.

·Name
The name of the field. The name is assigned automatically when the field is created based on the explanatory text closest to the field. You can change this name by editing the properties (see How to change a field name for details).

·Caption
The caption of the field in the data form.

·Export field value
This option is available for all fields and determines whether the field should be exported. This option is selected by default, but you may want to clear it if, for example, the value of the field is only used to calculate the value of another field and does not need to be exported on its own (see Rule validation for details).

·Read-only
This option is available for Text, Barcode, Checkmark, and Checkmark Group fields and indicates that the field is read-only. If this option is selected, you cannot change the value of the field. This property may be useful for fields whose value is calculated automatically, e.g. fields whose value is determined by adding or merging the values of other fields (see Rule validation for details).

·Show on verification
This option is available for all fields and indicates whether or not the field should be displayed in the data form. This option is selected by default.

·Index field
This option is available for Text and Barcode fields. If this option is selected, documents can be sorted and retrieved based on the value of the field.

·Show field in preview pane
This option is available for Text, Barcode, Checkmark, Service Field, and Checkmark Group fields and indicates whether or not the value of the field should be displayed in the in preview pane when the group to which the field belongs is collapsed.

·Text segment
This option automatically enables the Lock feature for the region of the given field, enabling you to select other regions inside the locked region. This option may be useful when you need to extract both a paragraph in its entirety and individual words inside that paragraph. For example, you can extract a company's address into one field and the name of the country contained in that address into another field. Segment regions can overlap partially or completely. You cannot move a locked region, but you can adjust its borders by double-clicking it. The Lock feature can also be accessed by right-clicking a region on the image (but note that if you close the document and then open it again, the Text segment option will be applied).
The Text segment option becomes available when the Can have region option is selected.

·Can have region
This option is available for fields of all types except Service Field. When selected, this option indicates that the field or group can have a region. Child elements of the group are not bound to the region of the group and may be located anywhere on the page.

·Allow multiple regions
This option becomes available when the Can have region option is selected. When selected, this option allows you to specify multiple regions for a field. Data items from the regions will be recorded in the field in the order in which they appear on the document image. This option may be useful where a document field is split between two pages (e.g. a phrase starts on one page and ends on the next).

·Should be matched
This option becomes available only if the Can have region option is selected. Select this option if you want the program to highlight fields with undetected regions during verification. Unmatched fields will also be selectable in Go to Next Unmatched Field on Matching mode.

·Index field region
This option becomes available only if the Index field option is selected. If this option is selected, the region of the field will be indexed. As a result, the region of the field will be displayed even when the document is closed, provided that the document is a member of a document set. This option is used for displaying a link to an existing field together with the region of that field.

·Can be repeated
This option is available for Text, Barcode, Picture, and Field Group fields. When selected, this option indicates that the field or group of fields can repeat on a form.

note Note: This option is selected automatically when a field instance is created. If you clear this option in the properties of a field with multiple instances, all the instances will be deleted from the form.

·Has table layout
This option becomes available only for recurring groups when the Can have region option is selected and allows you to work with recurring field groups just like you work with tables. Selecting this option will speed up the marking of fields on a document image, allowing you to draw an entire table with regions and separators instead of drawing individual cells. Clear this option if you need to mark only cell regions (but please note that the Reanalyze Line Items Below command will become unavailable in this case).

note Note: If regions of a recurring group are located far apart and the table you created impedes the verification process, consider clearing this option. The Has table layout option does not impact the way the group is displayed in the data form. To modify the way the group is displayed, select it in the data form editor while creating a Document Definition, right-click the green frame that appears on the screen, and select Show as Table on the shortcut menu. For more information about table verification, see the example in the Verification of line items section.

·Use full-text recognition for quick fill-out
This option becomes available when the Can have region option is selected and is used to change the behavior of the program when a verification operator draws or adjusts the region of a field. When this option is selected, the program will prompt the operator to select the value extracted for this field by full-text OCR. Otherwise, the field will be recognized anew. The first method is faster, while the second may produce more reliable data capture results. For full-text OCR, the program uses the OCR settings specified on the Recognition tab of the Document Definition properties dialog box. For recognition of individual fields, the program uses the OCR settings specified on the Recognition tab of the field properties dialog box.

note Note: If this option is selected and you are not satisfied with the quality of data capture for a particular field, right-click the field and click Recognize on the shortcut menu. This will cause the program to recognize the corresponding image area anew using the OCR settings specified for the field on the Recognition tab of the field properties dialog box.

·Comment
A comment for the field.

note Note: To the right of the name of each field, you can see an icon indicating its type.


Data types of the text entry field

Show/Hide Hidden Text

Some of the most important text field parameters, that can affect the recognition quality, preliminary check and field data modification, are data type settings.

ABBYY FlexiCapture uses data types when recognizing text in fields. Specifying the correct data type improves recognition quality and increases the confidence percentage of recognized symbols, thereby reducing the workload of the Data Verification Operator.

ABBYY FlexiCapture's data type creation features are very flexible. You can select data types from a list of existing types or create custom types using the regular expression alphabet or a user dictionary that is suitable for the task at hand.

You can specify data types of text fields on the Data tab of a field's property dialog box. This article covers settings that are common to all fields and settings of specific field types.

General settings for text fields

·Data type (drop-down list)
Use this drop-down list to specify the field's data type (i.e. the type of data you expect to see in the field), such as an address, time, date, a sum of money, a name, a code, text or a number.

·Default value
The value automatically assigned to the text field if it turns out to be empty after the Document Definition is applied or the document is assembled.
The default value is also assigned to a field if the field's region is deleted. If the field was left empty by a user (this can be done, for example, on the verification stage), the default value will not be assigned to the field.
You can change the default value. If the default value is empty, fields will remain empty until a value is specified.

note Note: This option is available for text fields and text columns of tables.

·AutoCorrect options
These options determine the way the program automatically corrects the values of fields. Such corrections can include the replacement or deletion of extra characters or spaces and changing lower-case characters to the upper case and vice versa.
Automatic correction can be used to format data, decreasing the workload of Operators that prepare data for export. You can use the standard AutoCorrect options available in ABBYY FlexiCapture or a custom script, which can be particularly useful for performing complex formatting operations. For details, see Processing entered values.

·Validation
This group of options contains settings that determine how values are checked, and set limits on values, such as limits on the number of characters, the minimum and maximum values for fields that contain numbers, or a range of permitted dates.
The Cannot be blank option in this group determines whether this field is required.
External sources of permitted values

The range of permitted values of a field can be limited using an external database, text file or data set. Limitation and checking parameters depend on the field's data type. If recognized data does not satisfy the checking parameters, formatting errors will be reported in the document window during verification.

Using an external source of permitted values will let you:

oImprove the recognition quality of a field by specifying permitted words in addition to permitted characters. Values from this list will be used by the program during recognition, and output values will be either identical to an item from the list or as close to a list item as possible. If the program cannot find recognized data in the dictionary, only the alphabet will be used during recognition. Use content type settings of fields to set up custom dictionaries.

oA field that has already been recognized can be checked against a local or external list of permitted values. If the recognized value cannot be found in the list, a formatting error warning will be displayed. You can load and set up a list of permitted values using the validation options of fields.

·Use normalization
Use this option to specify the desired format of text fields of the Time, Date, Amount of Money and Number types. This option is disabled by default, and recognized data is displayed in the form and exported in its original format.

Setting of text fields of specific types

Address

Text fields of the Address type have the following settings:

·Details
Options in this group let you change the recognition language, specify a custom dictionary and select more specific types of data, such as e-mail addresses and postal addresses. This group of options is displayed when you click the Edit... button to the right of the text field with a summary of the selected field's properties.

oLanguage
The recognition language of the field.

oContent settings: General
In this case we recommend connecting a custom dictionary in order to improve recognition quality. To do this, enable the Use custom dictionary option and click Edit... to edit the dictionary. You can create a custom dictionary by adding words to it using the Add... button or by importing words from a TXT or DIC file. To import words from a file, click the Load... button and specify the path to the file.

oContent settings: Special
Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.

·Default value
The value automatically assigned to the text field if it turns out to be empty after the Document Definition is applied or the document is assembled. See above for details.

·AutoCorrect options
Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the replacement or deletion of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit... button to the right of the AutoCorrect options field. For details, see Processing entered values.

·Validation
Use the options in this group to place constraints on the contents of fields, such as a limit on the amount of characters it can contain.
For details, see Value range constraints for text data type.
The Cannot be blank option in this group determines whether this field is required.

Amount of Money

Text fields of the Amount of Money type have the following settings:

·Process value as text
Enable this option if you want the value of a field to be processed as regular text. This can be useful when a sum of money cannot be brought to the standard format, or when you do not need to process it as a number. A custom dictionary can be used to check the value, and value range constraints can be specified in the same way as for text. For details, see Value range constraints for text data type.

·Details
Use the settings in this group to change the recognition language, specify additional parameters for whole numbers and fractions, and select more specific data types such as two-digit numbers and Roman numerals. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.

oLanguage
The field's recognition language.

oContent settings: General
This group contains additional settings for whole numbers and fractions.
For negative numbers, you can allow the minus sign to be on the right of the number (example: - 54), and allow negative numbers to be written as numbers in parentheses, making (54) equivalent to -54.
The following options are available for fractions: Must have fractional part, Allow more than two digits in fractional part: 54.3679 and Allow space as decimal mark: 54 36.

§If the Only integer values option is selected, separators between the whole number and the fraction will be ignored. These include decimal points, commas, hyphens, equal signs and spaces.

note Note: The Allow space as decimal mark: 54 36 option will work only if the One word option on the Recognition tab is disabled.

§Currencies from Document Definition properties
Contains a predefined list of major currency codes and symbols. To modify this list, click the Edit... button next to the Currencies from Document Definition properties option. In the Currency Symbols dialog box that opens, you can add or remove currency codes or symbols. For more information about extracting amounts of money, see Document Definition properties.

oContent settings: Special
Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.

·Default value
The value automatically assigned to the text field if it turns out to be empty after the Document Definition is applied or the document is assembled. See above for details.

·AutoCorrect options
Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit... button to the right of the AutoCorrect options field. For details, see Processing entered values.

·Validation
Checks whether a value falls within a specified range. To specify this range, click the Edit... button to the right of the Validation field. For details, see Value range constraints for numbers.
The Cannot be blank option determines whether this field is required.

·Use normalization
Use options in this group to specify a custom format for values of the Amount of Money type. Click the Edit Normalization Settings... button to open the Currency Normalization Settings dialog that contains these options. The top part of this dialog contains an example of how a positive number and a negative number will look like after the settings are applied. These settings are described below:

oMinimum number of digits in integer part
Possible values range from 0 to 9.

oDigit grouping
Separates groups of three digits in numbers with spaces.

oDigit grouping symbol
The symbol that will be used to separate groups of digits. Possible values are space, comma, and period.

oDecimal symbol
The symbol used to separate the integer part of a decimal number from the fractional part. Possible values are a period or a comma.

oMinimum number of digits after decimal marker
The minimum number of digits in the fractional part of a decimal number. Possible values: 0 to 4.

oMaximum number of digits after decimal marker
The maximum number of digits in the fractional part of a decimal number. Possible values: 0 to 4.
If this parameter is set to 0, the decimal fraction will be rounded to the nearest integer.

oUse brackets for negative values
Enable this option if you want negative numbers to be enclosed in parentheses instead of preceded by a minus sign.

oCurrency format
Select the desired currency format from this drop-down list.

note Note: Normalized numbers have to be available for fields. If settings from the Use normalization group contradict settings from the Details group, an error will occur when the template is checked.

warning Important! Number data types shouldn't be used for fields that only contain digits but are more than just a number, such as card numbers and passport numbers. Using number data types for these fields can cause problems like the removal of zeroes from the beginning of values that start with zeroes. In such cases we recommend either creating a custom data type with an alphabet that includes all digits (from 0 to 9), using a regular expression. If you still want to use a number data type, you should enable the Process value as text option.

Code

Text fields of the Code (codes include letters and digits) type have the following settings:

·Details
Use the settings in this group to change the recognition language, specify a custom dictionary, and select more specific data types such as a social security number. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.

oLanguage
The recognition language for the field.

oContent settings: General
In this case we recommend connecting a custom dictionary in order to improve recognition quality. To do this, enable the Use custom dictionary option and click Edit... to edit the dictionary. You can create a custom dictionary by adding words to it using the Add... button or by importing words from a TXT or DIC file. To import words from a file, click the Load... button and specify the path to the file.

oContent settings: Special
Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.

·Default value
The value automatically assigned to the text field if it turns out to be empty after the Document Definition is applied or the document is assembled. See above for details.

·AutoCorrect options
Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit... button to the right of the AutoCorrect options field. For details, see Processing entered values.

·Validation
Options in this group can be used to specify constraints on a field's contents, including the number of characters. For details, see Value range constraints for text data type.
The Cannot be blank option determines whether this field is required.

Date

Text fields of the Date type have the following settings:

·Process value as text
Enable this option if you want the value of a field to be processed as regular text. This can be useful when a date cannot be brought to the standard format, or when you do not need to process it as a date. A custom dictionary can be used to check the value, and value range constraints can be specified in the same way as for text. For details, see Value range constraints for text data type.

·Details
This group of options can be used to change the recognition language, change the order of different parts of the date, add the time or day of the week, and select a more specific data type, such as a month in roman numerals. To change these options, click the Edit... button to the right of the field with a summary of the selected field's properties.

oLanguage
The recognition language for the field.

oContent settings: General
Settings for standard date types include: May include month in words (permits the month to be written in letters in addition to digits), May include day of week (permits the date field to include the day of the week), and May include time (permits the time to be included in the date field).

oContent settings: Special
Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.

oOrder of date components
Select one or more possible date types. If several date types are selected and the Use first acceptable date format option is not enabled, the suitable date format will be selected by the program.

·Default value
The value automatically assigned to the text field if it turns out to be empty after the Document Definition is applied or the document is assembled. See above for details.

·AutoCorrect options
Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit... button to the right of the AutoCorrect options field. For details, see Processing entered values.

·Validation
Checks if the date falls within a specified range. To specify this range, click the Edit... button to the right of the Validation field. For details, see Values range constraints for date.
The Cannot be blank option determines whether this field is required.

·Use normalization
Options in this group can be used to specify a custom output format of values of the Date type. To change these settings, click the Edit Normalization Settings... button. The top part of the Date Normalization Settings dialog contains examples of entries as they will appear after all settings are applied. These settings are described below:

oDate format
The output format for dates.

oDate delimiter
The character that will be used to separate different parts of the date.

oHas day of week
Indicates that the day of the week is the first part of the date. If no day of the week can be found during recognition, the program will determine the day of the week based on the date.

oHas time
Indicates that the date is followed by the time. If no time can be found during recognition, the value 00:00 will be added to the date. The format of the time is determined by the two following options.

oTime format
The output format of time values.

oTime delimiter
The character used to separate parts of the time value.

warning Important! Normalized numbers have to be available for fields. If settings from the Use normalization group contradict settings from the Details group, an error will occur when the template is checked.

warning Important! The program includes an intellectual data detection mechanism.

For example, if the program encounters an ambiguous date (say 01/02/02), it will offer a list of possible values based on the settings specified.

If the date contains a day of the week that does not match the date, a formatting error will be issued during verification.

Values with spelling or recognition errors will be automatically replaced with the correct ones(e.g. "Wensday " will be changed to "Wednesday" and "Septembere" will be changed to "September").

Name

Text fields of the Name type have the following settings:

·Details
Use the settings in this group to change the recognition language, specify a custom dictionary, and select more specific data types such as a last name or a surname. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.

oLanguage
The recognition language for the field.

oContent settings: General
In this case we recommend connecting a custom dictionary in order to improve recognition quality. To do this, enable the Use custom dictionary option and click Edit... to edit the dictionary. You can create a custom dictionary by adding words to it using the Add... button or by importing words from a TXT or DIC file. To import words from a file, click the Load... button and specify the path to the file.

oContent settings: Special
Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.

·Default value
The value automatically assigned to the text field if it turns out to be empty after the Document Definition is applied or the document is assembled. See above for details.

·AutoCorrect options
Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit... button to the right of the AutoCorrect options field. For details, see Processing entered values.

·Validation
Options in this group can be used to specify constraints on a field's contents, including the number of characters. For details, see Value range constraints for text data type.
The Cannot be blank option determines whether this field is required.

Number

Text fields of the Number type have the following settings:

·Process value as text
Enable this option if you want the value of a field to be processed as regular text. This can be useful when a number cannot be brought to the standard format, or when you do not need to process it as a number. A custom dictionary can be used to check the value, and value range constraints can be specified in the same way as for text. For details, see Value range constraints for text data type.

·Details
Use the settings in this group to change the recognition language, specify additional parameters for whole numbers and fractions, and select more specific data types such as two-digit numbers and Roman numerals. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.

oLanguage
The field's recognition language.

oContent settings: General
This group contains additional settings for whole numbers and fractions.
For negative numbers, you can allow the minus sign to be on the right of the number (example: - 54), and allow negative numbers to be written as numbers in parentheses, making (54) equivalent to -54.
The following options are available for fractions: Must have fractional part, Allow more than two digits in fractional part and Allow space as decimal marker.
If the Only integer values is selected, separators between the whole number and the fraction will be ignored. These include decimal points, commas, hyphens, equal signs and spaces.

note Note: The Allow space as decimal marker option will work only if the One word option on the Recognition tab is disabled.

oContent settings: Special
Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.

·Default value
The value automatically assigned to the text field if it turns out to be empty after the Document Definition is applied or the document is assembled. See above for details.

·AutoCorrect options
Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit... button to the right of the AutoCorrect options field. For details, see Processing entered values.

·Validation
Checks if the date falls within a specified range. To specify this range, click the Edit... button to the right of the Validation field. For details, see Value range constraints for numbers.
The Cannot be blank option determines whether this field is required.

·Use normalization
Use options in this group to specify a custom format for values of the Number type. Click the Edit Normalization Settings... button to open the Number Normalization Settings dialog that contains these options. The top part of this dialog contains an example of how a positive number and a negative number will look like after the settings are applied. These settings are described below:

oMinimum number of digits in integer part
Possible values range from 0 to 9.

oDigit grouping
Separates groups of three digits in numbers with spaces.

oDigit grouping symbol
The symbol that will be used to separate groups of digits. Possible values are space, comma, and period.

oDecimal symbol
The symbol used to separate the integer part of a decimal number from the fractional part. Possible values are a period or a comma.

oMinimum number of digits after decimal marker
The minimum number of digits in the fractional part of a decimal number. Possible values: 0 to 4.

oMaximum number of digits after decimal marker
The maximum number of digits in the fractional part of a decimal number. Possible values: 0 to 4.
If this parameter is set to 0, the decimal fraction will be rounded to the nearest integer.

oUse brackets for negative values
Enable this option if you want negative numbers to be enclosed in parentheses instead of preceded by a minus sign.

warning Important! Normalized numbers have to be available for fields. If settings from the Use normalization group contradict settings from the Details group, an error will occur when the template is checked.

warning Important! Number data types shouldn't be used for fields that only contain digits but are more than just a number, such as card numbers and passport numbers. Using number data types for these fields can cause problems like the removal of zeroes from the beginning of values that start with zeroes. In such cases we recommend either creating a custom data type with an alphabet that includes all digits (from 0 to 9), using a regular expression. If you still want to use a number data type, you should enable the Process value as text option.

Text

Fields of the Text type have the following settings:

·Details
Use the settings in this group to change the recognition language, specify a custom dictionary, and select more specific data types such as a last name or a surname. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.

oLanguage
The recognition language for the field.

oContent settings: General
In this case we recommend connecting a built-in or custom dictionary. The value of the field will be checked against this dictionary. To use a built-in dictionary, select the Use built-in dictionary option. To use a custom dictionary, enable the Use custom dictionary option and click Edit... to edit the dictionary. You can create a custom dictionary by adding words to it using the Add... button or by importing words from a TXT or DIC file. To import words from a file, click the Load... button and specify the path to the file.

warning Important! DIC files are basically text files containing a list of words, with one word per line. This file format originated in Microsoft Office.

oContent settings: Special
Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.

·Default value
The value automatically assigned to the text field if it turns out to be empty after the Document Definition is applied or the document is assembled. See above for details.

·AutoCorrect options
Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit... button to the right of the AutoCorrect options field. For details, see Processing entered values.

·Validation
Options in this group can be used to specify constraints on a field's contents, including the number of characters. For details, see Value range constraints for text data type.
The Cannot be blank option determines whether this field is required.

Time

The following settings are available for fields of the Time type:

·Process value as text
Enable this option if you want the value of a field to be processed as regular text. This can be useful when a sum of money cannot be brought to the standard format, or when you do not need to process it as a number. A custom dictionary can be used to check the value, and value range constraints can be specified in the same way as for text. For details, see Value range constraints for text data type.

·Details
Use the settings in this group to change the recognition language, change the formatting of times and select more specific data types such as time in the 12-hour format. To change these options, click the Edit... button to the right of the field with a description of the selected field's parameters.

oLanguage
The recognition language for the field.

oContent settings: General
Used for standard time notations.

oContent settings: Special
Use this option to select a data type from a list of predefined data types. The descriptions in the bottom part of the dialog will help you make the right choice. You can also create a custom data type if none of the predefined ones suit your needs. For details, see Creating custom data types.

·Default value
The value automatically assigned to the text field if it turns out to be empty after the Document Definition is applied or the document is assembled. See above for details.

·AutoCorrect options
Options from this group determine the way the program automatically corrects the values of fields. Such corrections can include the removal of extra spaces, changing lower-case characters to the upper case and vice versa, and replacing specific characters or fragments of text. This group of options is displayed when you click the Edit... button to the right of the AutoCorrect options field. For details, see Processing entered values.

·Validation
The Cannot be blank option in this group determines whether the field is required.

·Use normalization
Use options in this group to specify a custom format for values of the Time type. Click the Edit Normalization Settings... button to open the Time Normalization Settings dialog and specify the format of times and the symbol used to separate parts of times (e.g. separate minutes from hours with a colon).


Creating custom data types

To create a new data type, select the desired item from the Data type list on the Data tab of the field's properties. You can select any item from the list that corresponds to the semantics of your custom data type: this will not affect the nature of the new data type, but it will be stored in the selected category.

Click the Edit... button to the right of the Details field.

In the dialog box that opens, select Special in the Content settings field.

Click the New... button to the right of the Data types for selected language field.

Follow the instructions of the data type creation wizard.

In the first window pf the wizard, select how your data is to be created. You can create a new data type based on a dictionary, a regular expression, an alphabet, or an existing data type (e.g. by adding desired characters to its alphabet or by expanding its dictionary).

To create a new data type based on a dictionary, a regular expression or an alphabet:

1.Select New data type based on and then select the basis to be used for your new data type: a dictionary, a regular expression or an alphabet. Then select Language (locale) for your data type and click Next.

2.If you choose to create a new data type based on a dictionary, in the next window the wizard will prompt you to select the type of dictionary to be used.
Select Use built-in dictionary if you wish to use the built-in dictionary for the language selected in the previous window. To check if the dictionary contains a particular word, click View... and type the word. Clicking the View button will either display the inflected forms of the word or a warning message saying that there is no such word in the dictionary.
Select Use custom dictionaries if you wish to use a custom dictionary and click Edit... to edit the dictionary. You can create a custom dictionary either by adding words to one by one (click the Add... button to add a word), or by loading a list of words from a file (click the Load... button and specify the path to the desired file with the extension *.txt or *.dic). Click Next.

note Note: The DIC file is a Microsoft Office custom dictionary. This is a plain text file with a list of words, one word by line.

note Note: For a custom dictionary that contains words of the following type:
201.01.063.030
201.01.063.031
201.01.063.040
a *.txt file with the following data must be created:
DICTIONARY_PROPERTIES=USE_CONFIDENCE
201.01.063.030 100
201.01.063.031 100
201.01.063.040 100

3.If you choose to create a new data type based on a regular expression, the wizard will prompt you to enter a regular expression. Use the [image] button to the right of the regular expression field to build your regular expression. For details, see Alphabet used in regular expressions. Click Next.

4.If you choose to create a new data type based on an alphabet, or if you used characters in the regular expression that are not included in the alphabet of the language, the wizard will prompt you to specify an alphabet for your data type. You can either type the desired characters directly on the keyboard, or click Customize... and then use your mouse to select the desired characters.

To add punctuation marks and excluded (prohibited) characters, click Advanced Parameters.... You can either type the prohibited characters directly on the keyboard or click the button to the right and use your mouse to select the desired characters.

Click Next.

5.In the final window of the wizard, type in a name for your new data type and a short description. If you wish to edit the properties of the newly created data type, select the Edit properties option. Click Finish.

To create a new data type based on an existing data type:

1.In the first window of the data type creation wizard, select Data type based on existing types. Select the desired language(s) and click Next.

2.In the next window, select the source data type(s) based on which you are going to create your new data type. The data types that correspond to the selected languages are listed in the List1 in the left-hand side of the dialog box. The Text folder contains the natural languages selected in the first window. The Custom folder contains the data types created by users. The other folders contain the data types corresponding to the category and the special type of content.
To select a source data type, select it in the List1 field (hold down the Ctrl key to select more than one) and then click Add -> to transfer it to the right pane. Click Next.

note Note: If a new data type is based on several types, then the compliance of the whole field to at least one data type will be checked.

3.In the final window of the wizard, type in a name for your new data type and a short description. If you wish to edit the properties of the newly created data type, select the Edit properties option. Click Finish.

The newly created data type will appear in the list of predefined data types when you select the content that was selected when creating the data type.

To specify the newly created data type for your field:

1.On the Data tab of the field properties dialog box, select the desired item in the Data type list;

2.Click the Edit... button to the right of the Details field;

3.In the Content settings list, select Special;

4.In the list that appears, select the data type you created (custom data types are marked with a special symbol) and click OK.


Value range constraints for text data type

Show/Hide Hidden Text

In the Validation Settings dialog box, you can specify the value range constraints for text entered into the field.

note Note: The program will treat as text type not only the data types with Text content, but also data types with other content for which the Process value as text option is selected.

·Maximum length specify the maximum length of text in the field;

·In the Content constraint field, select Regular expression from the list if a regular expression should be used to check field values.
The [image] button will help you to form a regular expression correctly. For details, see Alphabet used in regular expressions.
To make error messages more readable, in the Regular expression description field, provide a description of the regular expressions that will be used in error messages.

·In the Content constraint field, select Allowed values from the list if you need to specify a list of allowed values. To add a value, click Add... and enter the value. To edit a value, click Edit...; to delete a value, click Delete. To load possible values from a file, click Load...
Working with allowed values

1.The following characters can be used as value delimiters in loaded files: comma (,), period (.), semicolon (;),colon (:), exclamation point (!), question mark (?), equal mark (=), parentheses, slash (/), pilcrow (¶), and space. For this reason, if an allowed value is made up of multiple words, the spaces between the words should be replaced with %0020.

2.If multiple files containing identical lines are loaded consecutively, allowed values are not duplicated.

3.When loading a list of allowed values from a rule, a repeat check is carried out after local edits are applied.

4.When entering a value in a data form field, suggestions in the drop-down list are arranged as follows. First come the values matching the first entered characters in the field (incremental filtering). They are followed by the remaining values arranged alphabetically.

note Note: Incremental filtering only works when values are entered into a field. Selecting a text fragment in a field does not count as field editing.

·Select the Use external source of allowed values option if recognized values need checking in the list of admissible values from an external text file, a database or a data set. To specify the source of values, click the Edit... button. In this type of check the list of admissible value is not copied to the project and connection to the external source is carried out straight during the check.

·Treat validation error as warning Select this option if you wish any non-compliance with the constraints you specified to be treated as a warning. Warnings do not prevent the Operator from sending documents to the next processing stage, while for uncorrected format errors, an additional confirmation from the Operator is required before sending.


Value range constraints for numbers

To specify the vale range constraints for numbers:

1.Enable the option Use constraints.

2.Specify the minimum and maximum number values.

3.Treat validation error as warning Select this option if you wish any non-compliance with the constraints you specified to be treated as a warning.

When processing documents, the program will check whether the entered value is within the specified interval.


Values range constraints for date

In the Validation Settings dialog box you can specify the interval for the date entered in this field.

1.Enable the option Date must be within the following interval.

2.Select Fixed to set a fixed time interval or select Relative to verification date to set a time interval relative to the document verification date.

3.Enter the beginning and end of the interval.

4.Treat validation error as warning Select this option if you wish any non-compliance with the constraints you specified to be treated as a warning.


Processing entered values

Show/Hide Hidden Text

For any data type, you can perform automatic processing of the entered value: remove white spaces, convert letters to uppercase or lowercase, automatically replace specific characters or text. To enable automatic processing of field values, on the Data tab of the field properties dialog box, click the Edit... button to the right of the AutoCorrect options field.

Select the desired automatic processing options.

If Apply AutoCorrect only once after recognition is selected, automatic processing is performed only once after the field value is recognized. Otherwise, automatic processing is performed each time the value in the field changes.

·To perform automatic replacement of characters in the recognized field value, click the Edit... button to the right of the Replace characters field. In the dialog box that opens you can add characters for automatic replacement. Added values are sorted in alphabetical order. If the specified characters occur in the recognized field value, they will be replaced automatically. You can specify the following replacement parameters:

1.In the Replace field, enter one or more characters to be replaced.

2.In the With field enter a character or a string for replacement.

note Note: The string can apply if replacement is done in the whole text. For other options (Prefix, Suffix, Prefix and Suffix), only the first character applies.

Show me the example

As replacement is done in Prefix, "A" is replaced with the first character of the replacement string.

As replacement is done in Whole text, each character of the "ENT" string is replaced with "WXY".

3.In the Where field choose whether to replace specified characters in prefix, suffix, both prefix and suffix or in the whole text.
If Prefix is selected, all consecutive characters specified in the Replace list will be replaced starting from the beginning of the text. For Suffix, character replacement is done starting from the end of text.
For example, if you choose to replace " B" with "%" and "AC" with "#" in prefix, the string "ABC ENTERTAC CORP" will be converted to "#%#%ENTERTAC CORP".

Details

·To perform automatic replacement of the entire recognized field value or separate words in the field value, click the Edit... button to the right of the Replace text field.
In the dialog box that opens you can add words and expressions for automatic replacement. To replace only whole fields, select Match entire field contents.
If you enable the option Exact search, the program will search and replace the exact word or expression you have entered, or if you enable Fuzzy search, the program will search and replace a word or expression that is similar to the one you have entered. The number of allowable errors depends on the length of the word.
Enable the option Match case for case-sensitive replacement words or expressions.

·Choose one of the method of text letters conversion in the Change capitalization dropdown list:

1.None without conversion;

2.UPPER all letters will be changed to uppercase;

3.lower all letters will be changed to lowercase;

4.First upper the first letter will be uppercase and the remaining ones - lowercase.

·Remove excess spaces enable this option if you want to remove whitespaces.

You can also use an autocorrection script for auto-replace: select the Use script option, click Edit... to open the script editor, and type in the code of the script.


Text field recognition options

Show/Hide Hidden Text

Recognition properties can be specified on the Recognition tab of the field properties dialog box (click the Properties... item on the field's shortcut menu to open the properties dialog box). Correctly determined field values will improve recognition quality and reduce the likelihood of errors.

In the Filling type field, select the desired recognition mode: Standard recognition, Do not recognize or Script recognition.

For the Standard recognition mode, specify the following:

·ICR (hand-printed) - Enable this option if the field contains hand-printed static text. As the style of writing can vary significantly from country to country, you need to specify the appropriate country.
Show sample writing styles for digits

Russian "2"

American "2"

Regular "5" (can be found in any style)

Japanese "5"

Russian "1"

German "1"

Regular "9" (can be found in any style)

Czech "9" (with an articulated circle)

American "9" (without the hook at the bottom)

·OCR (printed) - Enable this option if the field contains printed static text. Select the print style from the drop-down list (typographic, dot-matrix printer, typewriter, etc.). See also Supported text types.

·Advanced - Use this option to select several text types or to specify a custom text type. This option also allows you to load a pattern file in PTN format. You can create user patterns in ABBYY FineReader Professional/Corporate Edition 9.0 (or earlier) or in ABBYY FineReader Engine 9.0 (or earlier).

Pattern

A pattern is a set of pairs "a character image — the keyboard character" created through pattern training. A user pattern is a source of additional information for the program. Pattern training is useful for:

otexts set in decorative fonts

otexts containing unusual characters (e.g. mathematical symbols)

olarge documents (i.e. documents more than a thousand pages long) of low print quality

warning Important! Pattern training is not supported for Asian languages.

To load a pattern, click Modify.... In the dialog box that opens, select Use pattern and specify the path to the file.

·Marking type - Select the marking type; to simplify your choice, select samples from the drop-down list. If the marking disappears during scanning, your marking type is monospaced (gray boxes). If the marking does not disappear during scanning and is divided into cells for character spaces, you must enter the total number of cells. When the program detects fields with such marking automatically, the number of cells is also determined automatically.

·Letter case - Select the case of letters in the field. If both lowercase and uppercase letters are possible, leave the Auto option enabled.

·Orientation - Specify the text orientation.

·Direction of CJK text - Select the reading direction to be used for OCR of texts in Chinese, Japanese, or Korean. Possible options are Auto, Horizontal Script, or Vertical Script. Auto is selected by default and is the recommended option for fields that do not contain any CJK text.

·Enable the One line option for one-line fields.

·For fields whose value will always consist of a single word, enable the One word option. You can also enable this option if you want to apply a regular expression to the entire field irrespective of the number of words in it.

note Note: With the One word option enabled, it is not recommended to have expressions in the custom dictionary that contain the space character.

Specify image pre-processing settings:

·Invert inverts image colors and brightness during recognition (this inversion is temporary and only affects recognition; original image colors will be retained in the output file).

oAutodetect automatically detects the text color and background color and inverts them if necessary. This is the recommended setting for documents that contain both light text on a dark background and dark text on a light background.

oInvert inverts images completely.

oDon't invert keeps original colors (this option is enabled by default).

·Remove texture removes texture.

·Despeckle - Enable this option to remove garbage from the image.

·Clear the garbage of specified size only - Enable this option if you want to remove garbage of only specified size. Specify garbage size. If this option is disabled and the Despeckle option is enabled, garbage size will be selected automatically.

Select the Do not recognize mode if the field cannot be recognized for some reason (for example, if the text in the field consists of fused letters), and the Operator is to enter its value manually. In this case, you do not have to configure other recognition properties because this field will not be recognized, and the Operator will be asked to enter the field value during verification.

Select the Script recognition mode if you want to use a custom recognition or initialization algorithm. For more details, see Custom recognition script.


Field verification properties

Navigation: Program settings > Document Definitions > Document Definition fields > Text entry fields >

Return to chapter overview

Verification properties

Verification is checking of captured data by an Operator. The program will highlight unreliably recognized characters in red and ask the Operator to confirm or correct them, displaying them together with their original images. You can also set up the program to submit certain fields for verification even if there are no unreliably recognized characters in them. Or you can set up the program not to submit certain fields for verification even if they contain unreliably recognized characters.

By default, all fields described in a Document Definition are submitted for verification.

You can configure the verification parameters for a field on the Verification tab of the Properties dialog box of the field.

If a field should be verified, keep the Requires verification option selected and then choose how characters should be displayed to the Verification Operator:

·Do not highlight characters - Unreliably recognized characters will not be highlighted.

·Highlight characters if confidence level is less than - Only those characters will be highlighted whose confidence level is less than the threshold value specified in this field (possible values are 40%, 60%, and 80%).

·Highlight all characters - All unreliably recognized characters will be highlighted.

Group verification

If group verification is required, select the Send to group verification option. Next, specify what characters should be submitted for group verification. You have a choice of two options:

·Highlighted characters only

·All characters

Select a character set to submit for group verification:

·Digits only

·Custom

If required, modify the custom character set by clicking Modify... and typing the necessary characters in the Group Verification Charset dialog box.

Field verification

If field verification is required, select the Send to field verification option. Next, specify when the field should be submitted for field verification:

·Always
The field will always be submitted for field verification, regardless of the percentage of unreliably recognized characters or format errors. During verification, the field will be highlighted with a wavy red line.

·If field has single field rule errors or if percentage of highlighted characters in field is greater than or equal to
The field will be marked as requiring field verification if it contains format errors or if the field verification threshold has been reached. The field verification threshold is the percentage of uncertain characters in a field, that, once reached, indicates that the field requires verification. If you specify a threshold value of 0%, the field will be submitted for field verification if it contains at least one highlighted character. You can enter values in this field manually or click the arrow buttons on the right to increment or decrement it by 10%.

Field verification of a group of fields

If the field should be submitted for field verification as part of a group of fields, specify the name of the group in the Name of field group field. You will also need to check the Group fields on Field Verification option on the Verification tab of the Project Properties dialog box.

Double verification

If the field should be verified independently by two Operators, select the Requires double verification option.


User Script

Navigation: Program settings > Document Definitions > Document Definition fields > Text entry fields >

Return to chapter overview

User script (custom action)

User script is a custom scripting rule triggered by the user when viewing a field during field verification or in the document editor. The script is triggered by clicking ... to the right of the field value or by pressing Ctrl+Shift+A.

You can set the custom script on the Custom Action tab of the field properties dialog box (right-click on the field and select Properties... on the shortcut menu). To add or delete fields information about which will be available in the user script, use the Add... and Delete buttons. To edit the script, use the Script Editor window which opens when you click Edit...

To make the script accessible to the Operators, select Enable Custom Action.

See also:

details User script


Checkmarks

warning Important! The properties of checkmarks combined into groups are configured for the entire checkmark group. If you attempt to edit the properties of a checkmark belonging to a group, a dialog box for editing checkmark group properties will open.

When you create a checkmark field, it is assigned default properties. You can change properties by selecting Properties... in the shortcut menu. The properties modification dialog box comprises five tabs for different groups of properties:

listPicture General field properties

listPicture Data types for checkmarks

listPicture Checkmark recognition properties

listPicture Verification properties

listPicture Rule validation


Data types for checkmarks

The data type for checkmarks can be set on the Data tab of the field properties dialog box.

The data type for checkmarks determines the values to be assigned to the checkmark field for a selected and unselected checkmark. The corresponding value will be contained in the export results and in the Value property of the ICheckmarkValue interface.

Select the appropriate options for checkmark values:

·Yes / No if the checkmark has been selected, the field value is "Yes", if unselected "No".

·1 / 0 if the checkmark has been selected, the field value is 1, if unselected 0.

·<Checkmark name> / Empty if the checkmark is selected, the field value will match the checkmark name, if unselected the field will be assigned an empty value.

·Custom by enabling this option you can enter your custom values, Selected for a selected checkmark, Not selected for an unselected checkmark.


Checkmark recognition properties

Recognition properties are set on the Recognition tab of the field properties dialog box (Properties... item in the field's shortcut menu). Correctly determined field values will considerably increase recognition quality and reduce the likelihood of errors.

In the Filling type field, select the desired recognition mode: Standard recognition, Do not recognize or Script recognition.

For the Standard recognition mode, specify the following options:

·Checkmark type select the checkmark type. This property is very important for correct checkmark recognition.

oSquare select this checkmark type if checkmarks are placed in restricted square frames. Examples: square and square1.

oWithout Frame select this checkmark type if checkmarks are placed against a white background without frames. Examples: and [image].

oAuto if you select this type, the program will automatically determine the checkmark type. This type should be selected only if the two other types are not suitable, for example, if a checkmark has a non-square delimiter. Examples: and [image].
In the Auto mode, the program determines whether or not the checkmark is selected by comparing the image of the checkmark in the document being processed against the checkmark image on the form used to create the Document Definition. For correct checkmark recognition, it is necessary that a checkmark area in the Document Definition should be specified accurately. The Auto mode can apply to both fixed descriptions and FlexiLayouts:

§For fixed descriptions
The checkmark on the form must remain blank. Whether the checkmark is selected or not is determined by comparing the checkmark area in the document being processed and the checkmark area in the Document Definition.

§For FlexiLayouts
The reference value is the amount of black in the checkmark area in the Document Definition. Whether the checkmark is selected or not is determined by comparing the percentage of black in the checkmark area in the document being processed and the checkmark area in the Document Definition.

·Allow corrections enable this option if you want to allow corrections of any checkmarks: in this case inked out checkmarks will be considered unselected. But if you have selected the Auto type, you may not allow corrections of such checkmarks.

Specify image pre-processing settings:

·Invert inverts image colors and brightness during recognition (this inversion is temporary and only affects recognition; original image colors will be retained in the output file).

oAutodetect automatically detects the text color and background color and inverts them if necessary. This is the recommended setting for documents that contain both light text on a dark background and dark text on a light background.

oInvert inverts images completely.

oDon't invert keeps original colors (this option is enabled by default).

·Remove texture removes texture

·Despeckle enable this option to remove garbage from the image.

·Clear the garbage of specified size only enable this option to remove garbage of a specific size only. Specify garbage size. If this option is disabled and only the Despeckle option is enabled, the garbage size will be selected automatically.

Select the Do not recognize mode if the field cannot be recognized for some reason (for example, if the text in the field consists of fused letters), and the Operator is to enter its value manually. In this case, you do not have to configure other recognition properties because this field will not be recognized, and the Operator will be asked to enter the field value during verification.

Select the Script recognition mode if you want to use a custom recognition or initialization algorithm. For more details, see Custom recognition script.


Field verification properties

Navigation: Program settings > Document Definitions > Document Definition fields > Checkmarks >

Return to chapter overview

Verification properties

Verification is checking of captured data by an Operator. The program will highlight unreliably recognized characters in red and ask the Operator to confirm or correct them, displaying them together with their original images. You can also set up the program to submit certain fields for verification even if there are no unreliably recognized characters in them. Or you can set up the program not to submit certain fields for verification even if they contain unreliably recognized characters.

By default, all fields described in a Document Definition are submitted for verification.

You can configure the verification parameters for a field on the Verification tab of the Properties dialog box of the field.

Group verification

If group verification is required, select the Send to group verification option. Next, specify what characters should be submitted for group verification. You have a choice of two options:

·Highlighted characters only

·All characters

Field verification (only for checkmark groups)

If field verification is required, select the Send to field verification option. Next, specify when the field should be submitted for field verification:

·Always
The field will always be submitted for field verification, regardless of the percentage of unreliably recognized characters or format errors. During verification, the field will be highlighted with a wavy red line.

·If field has single field rule errors or if percentage of highlighted characters in field is greater than or equal to
The field will be submitted for field verification if there are format errors.

Field verification of a group of fields

If the field should be submitted for field verification as part of a group of fields, specify the name of the group in the Name of field group field. You will also need to check the Group fields on Field Verification option on the Verification tab of the Project Properties dialog box.

Double verification

If the field should be verified independently by two Operators, select the Requires double verification option.


Checkmark groups

warning Important! Group properties apply to all checkmarks belonging to a checkmark group.

The value of a checkmark group is a list of the names of the selected checkmarks separated by a semicolon (;) or an empty string if no checkmarks have been selected.

When you create a checkmark group, it is assigned default properties. You can change the properties by selecting Properties... from the shortcut menu. The properties modification dialog box comprises five tabs for different groups of properties:

listPicture General field properties

listPicture Data types for checkmark groups

listPicture Checkmark recognition properties

listPicture Verification properties

listPicture Rule validation


Creating a checkmark group

A checkmark group combines logically linked checkmarks normally corresponding to mutually exclusive answers to the same question. In this case the program will select one checkmark from the group and export its value. However, this is not an obligatory condition. You can allow the program to mark more than one checkmark in a group (select the relevant option in the checkmark group properties).

One way to create a checkmark group:

To create a checkmark group:

1.After selecting the Checkmark tool, create checkmarks belonging to the group.

2.Select the [image] tool and frame with a rectangle all checkmarks to be included in this group.

3.Checkmarks inside the rectangle will be highlighted. Their names in the document structure will be combined and placed under the name of the checkmark group. The properties of checkmarks belonging to the same group are identical and cannot be edited individually.

Another way to create a checkmark group:

You do not need to highlight each checkmark belonging to the group.

1.Without highlighting checkmarks individually, select the [image] tool and highlight with a rectangle all checkmarks to be included in this group.

2.Checkmarks inside the rectangle will be detected automatically, named and combined into a group.


Data types for checkmark groups

The data type for a checkmark group can be set on the Data tab of the field properties dialog box.

·Allow empty selection Enable this option if at least one checkmark in the group must be selected. In this case, if no checkmark in the group has been selected, the program will display a relevant warning.

·Allow multiple selection Enable this option to allow selection of multiple checkmarks in the group. If this option is disabled, the program will display a warning when several checkmarks in the group have been selected.

·Treat validation error as warning Select this option if you wish any non-compliance with the constraints you specified to be treated as a warning. Warnings do not prevent the Operator from sending documents to the next processing stage, while for uncorrected format errors, an additional confirmation from the Operator is required before sending.

·Number of checkmarks in row Here you can specify the number of checkmarks to display in each row, so that during field verification the checkmarks on the data form are arranged exactly as they appear on the image. This may speed up verification, as the checkmarks will be easier to collate. If you leave the default value of 1, the checkmarks on the data form will be displayed in one column.

note Note: If the number of checkmarks you specify does not fit in one row on the data form, they will be carried over on to the next line.

·Export as number If this options is selected, a check is carried out that all checkmarks are numbers. If several checkmarks are selected, the sum of checkmark values can be exported. The value of a checkmark group is available from scripts by using the Value property of the IField interface.

To change the name of a checkmark, select the line you need and click Edit.... In the dialog box that opens, provide a new name for the checkmark field and a new name to be assigned to the checkmark during export.

You can define the values to be exported for cases when no checkmark fields are selected and for cases when more than one checkmark fields are selected. To do this, select either <No item selected> or <Multiple items...> from the list, click Edit... and in the dialog box that opens specify the desired value in the Exported value field. If no export values are specified: a) an empty string is exported if no checkmark fields are selected, and b) if several fields are selected, the values of the selected checkmark fields are specified (separated by commas), or, if the Export as number options is selected, a check is carried out that all checkmarks are numbers, and the sum of checkmark values is exported.

See also:

details Creating a checkmark group


Barcode

Navigation: Program settings > Document Definitions > Document Definition fields >

Return to chapter overview

Barcodes

When you create a barcode field, it is assigned default properties. You can change properties by selecting Properties... from the shortcut menu. The properties modification dialog box comprises five tabs for different groups of properties.

warning Important! A barcode can be highlighted as a field or as a static element. This depends on the barcode value in the documents being processed: if it is intended for Document Definition matching or identification, you have to create it in the static elements mode. Meanwhile, if a barcode is intended for data capture, you have to create it in the field marking mode. Barcode properties differ depending on whether it is a field or static element. This section describes the field properties, see also anchor barcode.

See also:

details General field properties

details Barcode recognition properties

details Verification properties

details Rule validation


Data types for barcodes

The data type for barcodes can be set on the Data tab of the field properties dialog box.

Select the appropriate options for barcode values:

·Maximum length specify the maximum number of characters in the field.

·Treat validation error as warning select this option if you wish any non-compliance with the constraints you specified to be treated as a warning. Warnings do not prevent the Operator from sending documents to the next processing stage, while for uncorrected format errors, an additional confirmation from the Operator is required before sending.


Properties of barcode recognition

Navigation: Program settings > Document Definitions > Document Definition fields > Barcodes >

Return to chapter overview

Barcode recognition properties

Recognition properties are set on the Recognition tab of the field properties dialog box (Properties... item in the field's shortcut menu). Correctly determined field values will considerably increase recognition quality and reduce the likelihood of errors.

In the Filling type field, select the desired recognition mode: Standard recognition, Do not recognize or Script recognition.

For the Standard recognition mode, specify the following options:

·Code type sets the barcode type:
select Any type to detect all types of barcodes.
select Any type(No Post Barcodes) to detect all types of barcodes except postal barcodes. This will speed up document recognition.
click Select Types... to manually select specific barcode types.

note Note: Detecting barcodes of the QR Code, Aztec and DataMatrix types can slow down the performance, so select them only if barcodes of these types are present in your project. Detecting barcodes of these types must be done only if at least one Document Definition of the given type contains a fixed or flexible section that uses a 2d barcode (QR Code, Aztec or DataMatrix) or if a 2d barcode is used in a classifier loaded for the batch type.
If Code 39 without asterisk barcodes are present in the project, this barcode type should also be specified explicitly, otherwise it is not detected.

·Orientation specify the barcode orientation.

Specify image pre-processing settings:

·Invert inverts image colors and brightness during recognition (this inversion is temporary and only affects recognition; original image colors will be retained in the output file).

oAutodetect automatically detects the text color and background color and inverts them if necessary. This is the recommended setting for documents that contain both light text on a dark background and dark text on a light background.

oInvert inverts images completely.

oDon't invert keeps original colors (this option is enabled by default).

·Remove texture removes texture.

·Despeckle enable this option to remove garbage from the image.

·Clear the garbage of specified size only enable this option if you want to remove garbage of only specified size. Specify garbage size. If this option is disabled and only the Despeckle option is enabled, the garbage size will be selected automatically.

Select the Do not recognize mode if the field cannot be recognized for some reason (for example, if the text in the field consists of fused letters), and the Operator is to enter its value manually. In this case, you do not have to configure other recognition properties because this field will not be recognized, and the Operator will be asked to enter the field value during verification.

Select the Script recognition mode if you want to use a custom recognition or initialization algorithm. For more details, see Custom recognition script.


Field verification properties

Navigation: Program settings > Document Definitions > Document Definition fields > Barcodes >

Return to chapter overview

Verification settings

Verification is checking of captured data by an Operator. The program will highlight unreliably recognized characters in red and ask the Operator to confirm or correct them, displaying them together with their original images. You can also set up the program to submit certain fields for verification even if there are no unreliably recognized characters in them. Or you can set up the program not to submit certain fields for verification even if they contain unreliably recognized characters.

By default, all fields described in a Document Definition are submitted for verification.

You can configure the verification parameters for a field on the Verification tab of the Properties dialog box of the field.

Field verification

If field verification is required, select the Send to field verification option. Next, specify when the field should be submitted for field verification:

·Always
The field will always be submitted for field verification, regardless of the percentage of unreliably recognized characters or format errors. During verification, the field will be highlighted with a wavy red line.

·If field has single field rule errors or if percentage of highlighted characters in field is greater than or equal to
The field will be submitted for field verification if there are format errors.

Field verification of a group of fields

If the field should be submitted for field verification as part of a group of fields, specify the name of the group in the Name of field group field. You will also need to check the Group fields on Field Verification option on the Verification tab of the Project Properties dialog box.

Double verification

If the field should be verified independently by two Operators, select the Requires double verification option.


Pictures

On creation, a picture is assigned default properties. You can change properties by selecting Properties... from the shortcut menu. The properties modification dialog box comprises four tabs for different groups of properties:

listPicture General field properties

listPicture Exporting pictures

listPicture Rule validation


Exporting pictures

In a Document Definition, you can select export settings for each picture. To select picture export settings, right click the desired field, select Properties..., and then click the Export tab. You can select any of the following options:

·File type.

·Quality: For TIFF, JPEG, and JPEG2000 files, you can select the quality of the resulting file, from best to low.

·Color type: Color, grayscale, black and white.

You can also set the resolution of the resulting picture: selecting Change resolution to and either type in the desired resolution or select it from the list.

The name of the file into which the picture will be saved is formed automatically based on the parameters specified by the user. To specify these parameters, click the Change... button and select desired options in the opened File Naming Options dialog box. By default, the name of the field in the document structure will be used for the name of the file.

See also:

details Export File Naming Criteria


Tables

When you create a table, it is assigned default properties. You can change properties by selecting Properties... from the shortcut menu. The properties modification dialog box comprises three tabs for different groups of properties:

listPicture General field properties

listPicture Table columns

listPicture Rule validation


Creating a table

ABBYY FlexiCapture lets you create Document Definitions for documents containing tables. Creating Table fields can considerably simplify configuration, data extraction, and data export from tables. A Table field is a set of same-type columns and recurring lines.

Table columns can be of the following type:

·text

·checkmarks

·barcodes

·pictures

To create a table:

1.Select the Table tool and frame the table region with a rectangle. The table header must not be included in the selected region. An additional table processing tool for deleting a separator will appear on the toolbar:

Delete Separator

2.Mark off table cells by drawing the required number of separators. To create separators, click where the separator should be placed. To create vertical separators, place the cursor into the table area, press the Shift key and click once. To create a horizontal separator, perform the same operation holding down the Alt key. You can also detect separators automatically: select the created table and then select the items Autodetect Vertical Separators and Autodetect Horizontal Separators from the local menu.

3.Create table columns. To create a column, click in the column region and select a column type from the drop-down list.


Table columns

The Columns tab shows the list of columns of this table. Each table column belongs to a certain field type (see Creating a table) and has properties specific to this field type.

To edit the properties of one of the columns:

1.Select its name from the list

2.Click the Properties... button


Field group

When you create a field group, it is assigned default properties. You can change properties by selecting Properties... from the shortcut menu. The properties modification dialog box comprises three tabs for different groups of properties:

listPicture General field properties

listPicture Group fields

listPicture Rule validation


Creating a field group

Fields can be combined into groups to enable clear presentation of document structures and to create recurring field groups. For example a city, street and building number can be combined into the Home Address group. You can create fields for an Office Address group simply by copying the Home Address field group.

To create a field group:

1.Create fields to be included in the group.

2.Select the [image] tool and frame inside a rectangle all the fields to be included in this group.

3.Fields inside the rectangle will be highlighted. Their names in the document structure will be combined and placed under the name of the field group.

If the form has recurring field groups, after creating one group you can create several instances of the same group. All field properties as well as rules set within the group will work for each group instance. See Fields with several instances.

You can also copy a field group, but in this case the copying will result in the creation of another independent group.


Group fields

The Fields tab shows the list of fields forming the group.

To edit the properties of one of the fields:

1.Select its name from the list.

2.Click the Properties... button.

See also:

details Creating a field group


Service fields

When a service field is created, it will have the default properties which can be configured by clicking Properties... on the shortcut menu. The Properties dialog box has two tabs, one for each group of properties:

listPicture General field properties

listPicture Data Source Properties


Data source properties

On the Data Source tab, the source and the data type of the service field are specified:

1.From the Source list, choose a data source for the field.

2.If you select Document registration parameter or Batch registration parameter, specify the name of the registration property to be used as a data source in the Parameter Name: field.

3.For Data Type, select the desired data type of the service field.


Index fields

To find necessary documents faster, you can index your documents using the values of certain fields in the Document Definition. This will enable you to display the values of the respective index fields in the documents list in the main program window and sort the documents by index field value. You can also use index fields to display links to existing fields (e.g. in the summary section).

To index by field values, enable the option Index field for this field (General tab in the Document Definition editor).

To display the value of the index field in the document list:

·In the main program window, open a batch of documents and enable the detailed documents list mode (button [image] on the toolbar).

·Right-click in the table header region (column names) and select Customize... from the drop-down list.

·In the Choose Columns dialog box, click the New... button.

·In the Edit Column dialog box, click the Select... button to the right of the Index Field. In the dialog box that opens, select one of the fields with the enabled option Index field. You can also enter any column name and specify the justification method.

·Another column with the index field value will appear in the table. Click on it to sort documents by the value of the index field.


Link to an existing field

A link to an existing field lets you display the value and region of that field on the form of any document in the document set. In most cases, links to existing fields are used in summary sections to duplicate the values of the principal fields. Besides the value of a field, you can duplicate its region in the summary section. To display the region of the original index field in the summary section, select the Index field region option in the properties dialog box of the original field.

You can create links to text, picture, and barcode fields.

To create a link to an existing field, right-click the section, click Create Field → Link to Existing Field on the shortcut menu, and in the dialog box that opens select the field you want to link to.

Links to existing fields appear as separate fields in the Document Definition editor. The following options are available for links to existing fields:

·The Export field value and Show on verification options on the General tab.

·The linked field itself is displayed on the Properties tab. Note that you can only select a field when creating a link to it. You will not be able to specify a different field later.

In the Document pane, a link to an existing field appears as a read-only field with the same value as that of the original field. If the original field contains an error, the error will be displayed in the link. You can open the image and data form of the source document by:

·double-clicking the link;

·right-clicking the link and clicking Go to Original Field on the shortcut menu.

An entire document can be used as a source for such field. In this case, a group with fields from this document will be created in a summary section. If the document is a repeated one (it is repeated more than once), the group automatically becomes a repeated one. This feature is used for more convenient verification of the data from the Document Set. For details, see Creating and setting up document sets.

note Note: You cannot export the images of links to repeating fields. Only the images of the original fields can be exported.

listPicture General field properties


Fields without a region

Field may have no region on the image. Names of fields without a region are marked with a red asterisk in the list. Such fields may be used to store intermediate results of calculations performed with the values of fields being recognized. For example, you can combine the values of several fields with the help of the field values merge rule and save the result to a field without a region.

Fields without a region have all the properties of the field type they belong to. The values of such fields can also be exported.

There are two ways to create a field without a region:

1.In the Document Definition editor window, select the menu item Edit → Create Field and create a field of the required type. The field name will appear in the list marked with an asterisk. In this case, the program creates a field in the document structure, but does not create its region on the image.

2.Another way is to delete the region of an ordinary field. Highlight the required field on the image or in the list and select Delete Region from the shortcut menu. The region will be deleted and the field name will be marked with a red asterisk.

To create a region for fields that do not have a region on the image, select [image] on the toolbar and highlight the required region with your cursor. If the list contains fields marked with an asterisk, the program will ask you to select the name of one such field.


Creating a field with a non-rectangular region

Sometimes it is necessary to create fields with non-rectangular regions, as exemplified by the questionnaire:

To create a non-rectangular field region:

1.Select the tool for creating a field of the required type.

2.Select a rectangular region where you can add or remove fragments to create a region of the required shape.

3.Select the tool [image] and make sure that the rectangular region is highlighted.

4.To add a fragment to the region: press Shift (the cursor will appear as a "plus" sign) and highlight a fragment you want to add.

5.To exclude a fragment from the region: press Alt (the cursor will appear as a "minus" sign) and highlight a fragment you want to exclude.


Fields with several instances

Show/Hide Hidden Text

Forms may contain recurring objects, i.e. fields or field groups that occur multiple times and contain similar information, e.g. names of children, account numbers, etc. Fields with several instances are created for such objects.

Any field can have several instances. Their regions can be located at a distance from one another or even on different pages. Instances of the same field have identical properties. Field instances are exported to separate files or database tables.

You can create several instances for a field group if the form has recurring groups.

Show example

Instances

To create a field with several instances, proceed as follows:

1.Create a field

2.Highlight it, right-click in the field region and from the shortcut menu select New Instance...

3.Move the region image to the required location on the page.


Fields with several regions

Show/Hide Hidden Text

A field can comprise several regions on the image. These regions may be located a distance apart from each another or even on different pages. Values from all regions of the same field are combined and exported together as one field.

It is convenient to create several regions for fields located on several pages, for example, for large tables.

Show example

In such fields, values are sorted vertically, that is, the value of a region which has the uppermost boundary will be the first in the field.

To create a field with several regions, proceed as follows:

1.Create a field.

2.Highlight it, right-click in the field region and select Continue Region... from the shortcut menu.

3.Move the region image to the required location on the page.


How to change a field name

To rename a field:

·Click the field name in the document structure, right-click and select Rename from the shortcut menu, and enter a new name.
or

·Click in the field region on the image, right-click and select Suggest Name from the shortcut menu. The field will be assigned a name corresponding to the explanatory text that is nearest to the field region.
or

·Click in the field region on the image, right-click and select Get Name from Image... from the shortcut menu. Next, highlight with your cursor the explanatory text that can be used as the field name. The field name will change to the selected text.
or

·Open the field properties dialog box and change the name on the General tab.


Copying, moving, deleting fields

Fields can be copied, deleted, moved, and modified. Names of copied fields have different numbers. To highlight several fields, use Ctrl-Click. The action selected will then be applied to all highlighted fields.

To delete a field, highlight it and press the Delete key or select Delete from the shortcut menu. To delete only the region and keep the field in the document structure, press Shift+Delete or select Delete Region from the shortcut menu for the field.

See also:

details Fields without a region


Exclusion of a region from recognition

Sometimes it is necessary to exclude a certain region from recognition, for example, a region with explanatory text that complicates data extraction from the field.

To exclude a region from recognition, select the [image] tool and highlight the region to be excluded with your cursor.


Document Definition Wizard

Show/Hide Hidden Text

To create a new Document Definition or to create a document set from already enabled Document Definitions, select Project → Document Definitions... on the main menu and then click New.... Next, select what kind of documents you need to process.

Forms

Forms are documents with a fixed layout, i.e. the fields are positioned identically on all copies, each of which is an exact replica of the master form created by a designer.

How to create a Document Definition for forms

1. Select an image that will be used as a reference copy.

A Document Definition for forms is created based on an image obtained by scanning a blank form. In the case of forms, you must obtain an image of a blank form because it is on that image that you will indicate the position of each field.

note Note: The image must be of high quality and have no distortions like skews, shifts, etc. In the case of color forms, do not apply any color filters when scanning a blank form, because you need to keep the background intact in order to create a Document Definition. The background removal filters should be applied later when scanning filled out forms.

If your document contains several pages, load the first page and follow the recommendations provided in the Creating Document Definitions for multipage documents section to add the remaining pages.

Click Next to proceed to the next step.

2. Specify the main properties of the Document Definition, including its name and description and the language of your documents.

By default, only the languages for which dictionaries are provided are shown in the drop-down language list. To see all the available languages, select the Show all languages option. Be sure to specify the correct language. Specifying the wrong language will result in recognition errors. The languages that have the abbreviation "ICR" next to them can be used for recognizing hand-printed and machine-printed text. If you don't know the language of your documents in advance, you can specify several candidate languages from which the program will then select the appropriate language.

warning Important! Specifying too many languages may slow down document processing and will cause recognition errors.

The text type specified in this step will be used by default, but you can always change the text type for any field later (this may be necessary if different fields contain text in different languages).

Select the Use recognition settings from batch type option if you want to use the recognition settings specified for the batch type.

note Note: Disabling synchronization may slow down Document Definition matching.

Click Next to proceed to the next step.

3. Specify the types of fields that you wish to be detected automatically. The program will have no problem finding specially marked text entry fields or checkmarks inside boxes. However, if the text entry fields on your form have no special marking or if here are no special boxes for checkmarks next to explanatory text, you may want to indicate their possible positions manually.

note Note: The program will always attempt to detect anchors on forms.

Click Finish. The Document Definition Editor will open, where you need to mark up the fields and static elements on the page image and define their properties.

Semi-structured or unstructured documents

In the case of semi-structured and unstructured documents, the field layout may vary from document to document. To extract fields from this kind of documents, a FlexiLayout will be used. Additionally, Natural Language Processing (NLP) technologies may be used to extract fields from unstructured documents.

How to create a Document Definition for semi-structured or unstructured documents

1. Select an image that will be used as a reference copy (optional if you are creating a FlexiLayout).

If you want to use a FlexiLayout created in ABBYY FlexiLayout Studio, select the Load FlexiLayout option and specify the path to the file containing the FlexiLayout. For details, see the Creating a Document Definition based on a flexible description section.

A FlexiLayout can be created automatically if the Allow field location training option is selected.

Click Next to proceed to the next step.

2. Specify the main properties of the Document Definition, including its name and description and the language of your documents.

By default, only the languages for which dictionaries are provided are shown in the drop-down language list. To see all the available languages, select the Show all languages option. Be sure to specify the correct language. Specifying the wrong language will result in recognition errors. The languages that have the abbreviation "ICR" next to them can be used for recognizing hand-printed and machine-printed text. If you don't know the language of your documents in advance, you can specify several candidate languages from which the program will then select the appropriate language.

warning Important! Specifying too many languages may slow down document processing and will cause recognition errors.

The text type specified in this step will be used by default, but you can always change the text type for any field later (this may be necessary if different fields contain text in different languages).

Select the Use recognition settings from batch type option if you want to use the recognition settings specified for the batch type.

note Note: Disabling synchronization may slow down Document Definition matching.

Click Finish.The Document Definition Editor will open.

Documents that do not require automatic data extraction

These are documents that do not require automatic field detection. OCR technology may be employed to make full-text searches possible or the documents may be left unrecognized.

The aim of processing such documents is to digitize them and make them searchable by users, who will carry out searches based on the value of the key fields. For details, see the Document Definitions without field extraction section.

How to create a Document Definition for documents that do not required automatic data extraction

1. Select the source of the image used for the document sample (optional).

Click Next to proceed to the next step.

2. Specify the main properties of the Document Definition, including its name and description and the language of your documents.

By default, only the languages for which dictionaries are provided are shown in the drop-down language list. To see all the available languages, select the Show all languages option. Be sure to specify the correct language. Specifying the wrong language will result in recognition errors. The languages that have the abbreviation "ICR" next to them can be used for recognizing hand-printed and machine-printed text. If you don't know the language of your documents in advance, you can specify several candidate languages from which the program will then select the appropriate language.

warning Important! Specifying too many languages may slow down document processing and will cause recognition errors.

The text type specified in this step will be used by default, but you can always change the text type for any field later (this may be necessary if different fields contain text in different languages).

Select the Use recognition settings from batch type option if you want to use the recognition settings specified for the batch type.

note Note: Disabling synchronization may slow down Document Definition matching.

Click Finish.

Document set

A document set is a collection of logically related documents. For a document set, a Document Definition is created that includes other Document Definitions and, optionally, a summary section with information gathered from the documents in the set. For details, see the Creating and setting up document sets section.

How to create a Document Definition for a document set

1. From the list of all documents available in the project, select the documents that belong to the document set. If required, add a summary section to group the main fields of the set in one section, so that they can all be verified on the same data form.

Click Next to proceed to the next step.

2. Specify the main properties of the Document Definition, including its name and description and the language of your documents.

By default, only the languages for which dictionaries are provided are shown in the drop-down language list. To see all the available languages, select the Show all languages option. Be sure to specify the correct language. Specifying the wrong language will result in recognition errors. The languages that have the abbreviation "ICR" next to them can be used for recognizing hand-printed and machine-printed text. If you don't know the language of your documents in advance, you can specify several candidate languages from which the program will then select the appropriate language.

warning Important! Specifying too many languages may slow down document processing and will cause recognition errors.

The text type specified in this step will be used by default, but you can always change the text type for any field later (this may be necessary if different fields contain text in different languages).

Select the Use recognition settings from batch type option if you want to use the recognition settings specified for the batch type.

note Note: Disabling synchronization may slow down Document Definition matching.

Click Finish.


Editing and publishing a Document Definition

Document Definitions can be edited in the Document Definition editor window, where you can modify the layout of fields and static elements, edit their properties, rules, export settings, etc.

To prevent you from interfering with the work of other project members, the program allows you to edit a local copy of a Document Definition while the latest published Document Definition version will be used for recognition. In this manner, you can modify and test Document Definitions locally, while the Operators will use the currently published Document Definition to verify and export documents. A Document Definition that is being edited by one Administrator cannot be edited by other Administrators. Once you have finished editing the Document Definition, you can either publish it, making the new version available for document recognition, or discard the changes.

To edit a Document Definition, proceed as follows:

1.In the main program window, click Project → Document Definitions....

2.Select the Document Definition that you want to edit.

3.Click the Edit... button in the Document Definitions dialog box to start editing the Document Definition. A local copy of the Document Definition will be created on your computer. The published version of the Document Definition will be locked for editing by other Administrators.

4.Make any necessary modifications to the Document Definition and click Save.

5.Test your modified Document Definition on several images from test batches that can be used with the local version of the Document Definition.

6.Click the Publish button in the Document Definitions dialog box to publish the Document Definition. Once published, the modified Document Definition will be used for the recognition of documents in the working batches and other Administrators will be able to edit it. To revert to the original Document Definition, click Discard Changes.

Matching Document Definitions are selected as follows:

·First, the program will attempt to find a matching Document Definition among the fixed Document Definitions.

·If none of the fixed Document Definitions match the documents, the program will use the classifier project and header and footer elements to get a list of candidate FlexiLayouts.

·Next, the program will consecutively match each of the candidate FlexiLayouts against the documents and select the best match.

·If no good matches are found among the candidate FlexiLayouts, the program will consecutively match the remaining FlexiLayouts and select the best match.

In each of the steps described above, the Document Definitions are matched against the documents in the order in which they are listed in the Document Definitions dialog box. You can speed up the matching of FlexiLayouts that have no header or footer elements by selecting the Use first acceptable FlexiLayout option. In this case the program will select the first matching FlexiLayout instead of going thorough the entire list and selecting the best match.

Your modified version of the Document Definition will be used for recognition and further document processing immediately after it is published. However, the program will continue to use the previous version of the Document Definition for those documents whose processing started before you published your modified version. You can force the program to use your modified version of the Document Definition for such documents by selecting Tools → Update to Latest Version. Depending on your modifications to the Document Definition, you may need to re-recognize the documents, re-check the rules, or re-export the documents. You will need to re-recognize the documents if:

·the structure of fields has changed (fields have been added or deleted or field nesting levels have changed),

·field regions have changed, or

·recognition settings have changed (including data type settings, with the exception of format checks and auto-correction settings).


Multipage document assembly

Creating Document Definitions for multipage documents

Creating Document Definitions for documents with annexes

Using scripts to assemble documents


Creating Document Definitions for multipage documents

Show/Hide Hidden Text

ABBYY FlexiCapture allows you to create Document Definitions for multipage documents. A Document Definition can comprise any number of sections, which can contain one or several pages. When creating a Document Definition for multipage documents, you must specify the order of sections, their number, and the rules used to assemble pages into documents.

Using the wizard, you can create a simple Document Definition that contains no sections. You can then add pages and sections to this Document Definition.

Adding pages

When you add a page to a Document Definition, its image appears in the image pane in the Document Definition editor window, while any fields you create on the page will be listed in the common fields list. In this case the document has one section, even though it may contain several pages.

You should add pages to a single section if your document has blocks continuing or recurring on several pages, or if it has tables extending to the next page. The same method is used for loading a multipage FlexiLayout (see Creating a Document Definition for semi-structured document processing). All fields in a FlexiLayout must belong to one section of a Document Definition.

To add a page to a section, select Document Definition → Add Pages... in the Document Definition editor or select the Add Pages... item on the shortcut menu of the image. Then load the image of a new uncompleted page and select the object types that have to be marked up automatically.

To delete a page, right-click it and click Delete Page on the shortcut menu.

note Note: The Delete Page command deletes the page and its fields from the document structure. The Delete Image command deletes only the page image and retains the fields in the document structure (the regions of the fields will be deleted, however).

Adding sections

You can also add sections to a Document Definition. In the simplest scenario, one section contains one page. This scenario requires that the sets of fields on different pages are independent of one another. By adding sections to a Document Definition, you get a clearer picture of the document structure: you can see which field belongs to which section and you can configure document assembly as you see fit.

Suppose your document contains three types of pages, and pages of type 1 and type 3 may occur only once, while pages of type 2 may occur from two to five times. In this case, you need to create three sections, one for each page type, and specify the order of sections in the document and the number of their possible occurrences.

In a more complex scenario, a Document Definition may have several sections, some of which may contain more than one page. For example, a Document Definition may have a number of fixed sections and a flexible multipage section. Or a Document Definition may define documents with a recurring two-sided sheet.

Suppose you need to create a Document Definition for a document that has a title page (page A) and a certain number of two-sided sheets (page sequence BCBC...). In this case, you need to create section A consisting of page A, and section BC containing two pages, B and C. The document structure is configured as follows: section A may occur once and is followed by section BC, which may occur from three to seven times.

To add a new section, select Document Definition → Add Document Section... in the Document Definition editor. The section creation wizard will open. Follow the instructions of the wizard to:

·specify a name for your section

·load the image of an uncompleted page (either scan one or load a page from a file) or load a FlexiLayout file

·select the object types to be marked up automatically

The new section and the fields it contains will be displayed in the document structure window.

Additional settings

For a Document Definition that has several sections, you can enable verification of key fields as well as specifying the order and number of recurring sections. To enable verification of key fields, you need to identify the key fields in each document section first. Their values must be identical in different sections. To add a key field to multiple pages in the same section, create a multiple key field and position its instances on different pages. An example of a key field is the name of the person who completed the document, which must be written on each page, or a certain identification number.

When processing a batch, the program tries to assemble the pages into documents, checking the assembly rules in the process. The program will perform a check of key field values if the corresponding option is selected. If the key fields do not match on the pages of the same document, an error message will be displayed. This may happen if document pages are misplaced during scanning, in which case changing the order of the pages will be enough to ensure correct document assembly. See Assembling pages into documents.

You can also import a section from another Document Definition in the project. To import a section, click Document Definition → Import Document Section... on the main menu and then select the section in the Select Section Definition to Import dialog box.

note Note: Shared scripting modules are not imported when importing sections. As a result, script rules written in a new section may work incorrectly or may not work at all.

Viewing and editing results

To view the resulting document structure, in the Document Structure pane located in the right-hand part of the Document Definition editor, click the Pages tab. You will see the document structure represented by page thumbnails. On this tab, you can change the number of times a section may occur in the document (enter a number or range in the box to the right of the section name), attach annex pages, change the order of pages in the section, and move pages from one section to another by using drag-and-drop.

For pages that may occur multiple times within a section, select the Can repeat in section option in the Page Properties dialog box. To open the Page Properties dialog box, select Properties... on the shortcut menu of a page or press Alt+Enter.

Show document structure window

Document assembly

To specify the sequence and number of recurring sections and an assembly rule, select Document Definition → Document Definition Properties... in the Document Definition editor.

On the Assembly tab, specify the minimum and maximum number each section may occur in the document (the default value is 1).

If you want to check the values of key fields, select the Use key fields equality assembling rule option and then select a key field in each section.

Specify assembly rules. Both standard and custom assembly rules can be used.

Standard assembly rules allow you to disable checking the order of sections and to assemble documents with annex pages.

Disable checking the order of sections (Disable sections order check) if the order of sections has no effect on document assembly. The program will still check that all the sections are present in the document, but their order will be ignored. To assemble documents with annex pages, select the Enable annex pages option. If you want annex pages to be detected based on the document structure, select the corresponding option.

Show the Assembly tab

Assembling


Creating Document Definitions for documents with annexes

Show/Hide Hidden Text

ABBYY FlexiCapture lets you create Document Definitions for documents with annexes. Annexes are additional pages that can accompany each form. No Document Definition is applied to these pages, but they are taken into account during document assembly. For example, a loan application (fixed form) is submitted along with an income statement in a free-form style. This income statement can be processed as an annex.

To create a Document Definition for a document with an annex:

1.Open the Document Definition properties dialog box (Document Definition → Document Definition Properties... in the Document Definition editor window).

2.Go to the Assembly tab.

3.Enable the option Enable annex pages. The Annex pages line will appear in the sections list.

4.Enter the minimum and maximum number of pages in the annex.
Show dialog

Assembling

In order to save the text from the annex, when configuring export you need to specify image save options (in the Export Settings dialog box). If you select PDF searchable to save the image, text will be recognized and saved in a PDF searchable file.


Using scripts to assemble documents

To assemble a document using a document assembly script, click Document Definition on the menu of the Document Definition editor to open the Document Definition Properties... dialog box. On the Assembly tab, select the Use custom assembly rules option. A document assembly script can be executed on its own or in conjunction with the standard assembly check. If you need to edit the script, click Edit Assembly Script....


Document Definition properties

Show/Hide Hidden Text

The basic Document Definition properties, such as its name, language and writing style, are configured with the help of the Document Definition Wizard. Other properties are configured by default.

You can view and change the properties of a Document Definition in the properties dialog box that opens when you select the menu item Document Definition → Document Definition Properties... in the Document Definition editor window.

The dialog box has the following tabs:

·The General [image] tab

On this tab you can rename the Document Definition and enter or edit its description. The Enabled option includes/excludes the Document Definition from document processing.

·The Recognition [image] tab

The program uses fast recognition that is called full-text recognition for classification, matching of a FlexiLayout, and highlighting of text on images.

This tab is used to specify settings of full-text recognition. Please note that field recognition settings are specified in field properties.

·Prefer settings from batch type. Select this option if you want to synchronize full-text recognition settings.

note Note: Disabling the synchronization may lead to slower Document Definition matching.

·Languages. It is necessary to set a correct language for recognition to proceed without errors. This property defines both the language itself and other settings like date format, currency, etc.

·Select a Recognition mode from the list. In the Fast mode, colored and half-tone images are binarized prior to recognition (converted to black and white). Fastrecognition takes less time and provides mostly satisfactory results. In the Balanced mode, the program also considers image colors, recognition proceeds slower but with better quality. It is advised that you use the Thorough mode only when prerecognition results in multiple errors. By default, the Balanced mode is used.

·Advanced prerecognition settings…

oYou may select one or several options from the Correct page orientation, if page group for a page to rotate 180°, 90° clockwise or 90° counter-clockwise when its orientation is selected automatically.

oIf necessary, specify the way a blank form will print (Typographic, Matrix printer, Typewriter) in the Text type section, add a sample pattern.

oBarcodes. Parameters of barcode processing:

§Disable barcode extraction. Select this option if barcodes should not be found on images. This will speed up document recognition considerably.

§Extract 2D barcodes: Data Matrix, Aztec, QR Code. Select this option if your images contain barcodes of specified types. If the option is not selected, Data Matrix, Aztec, and QR Code barcodes will not be found on images.

§Extract post barcodes. Select this option if your images contain postal barcodes. If this option is not selected, postal barcodes will not be found on images.

warning Important! Extracting barcodes slows down recognition.

oCJK pre-recognition

§Separated furigana mode. Select this option to improve recognition of phonetic tips (furigana) in the Japanese language.

oNamed entity recognition: Extract named entities – extraction of information using NLP methods.

note Note: Requires an NLP module and a specific license type.

oVertical text extraction – Vertical text extraction parameters:

§Extract for all languages – Detects vertically-oriented text written in any of the supported languages.

§Do not extract – Prevents the detection of vertically-oriented text.

§Extract for CJK languages – Detects vertical text written in Chinese, Japanese or Korean.

·Click the Advanced... button to configure correction of linear and nonlinear distortions of images, specify direction of scanner's automatic feeder, etc.

note Note: Select the Correct linear distortion option to specify parameters of image spreading/compression by height and width. Images are scaled by existing anchors (black square, cross or corner) as well as horizontal and vertical separators.

·Amount of Money – A combination of a numerical amount and a currency code or symbol. In order to avoid any recognition errors for visually similar characters like 1, I, and i, or s and $, a regular expression is used which allows letters only in certain combinations that represent currency codes, either preceding or immediately following the numerical amount. The major currency codes are listed in Currencies.

You can modify the list of possible currency codes and symbols if required. For example, if you know what currency codes and symbols may occur in your documents, removing any redundant currencies from the list will improve the quality of recognition. You can also add custom currency codes and symbols to the list. To modify the list, click the […] button on the right. In the Currency Symbols dialog box, you can add or remove currency codes or symbols. Alternatively, open the field properties dialog box, click the Data tab, and make the necessary changes. For more information, see Data types of the text entry field.

note Note: A Document Definition can only have one list of possible currency codes and symbols. This list is applied to all Amount of Money fields.

·The Assembly [image] tab

This tab is intended for configuring assembly rules for multipage documents.

In the simplest scenario, the Document Definition comprises a single section that occurs once. If a Document Definition consists of several sections, this tab will show the list of their names. You can specify the number of occurrences of each section by modifying the numbers in the Min number and Max number columns.

·Use key fields equality assembling rule enable this option if you want to perform a check of document assembly based on key fields. Then select a key field for each section in the Key Field column. When you input documents, only documents with the matching values of key fields in each section will be considered correctly assembled. If their values do not match, an assembly error message will be displayed.

·Use standard assembly rules - enable this option if you want to perform a check of document assembly using the following standard rules:

oDisable sections order check - enable this option if you want to disable the checks for the order of sections in the document (e.g. if the order of sections does not affect document assembly). The program will still check that all the sections are present in the document, but their order will be ignored.

oEnable annex pages - enable this option if you want to process documents with annexes. If processing document with annexes is enabled, you can also select the option Detect annexes using preset document structure, without analyzing (fast) to enable faster detection of annexes on the basis of the present document structure.

note Note: The Detect annexes using preset document structure, without analyzing (fast) option is effective only for documents created by means of separation during the import stage or by applying a special flag in API. Such document are excluded from the assembly.

·Use custom assembly rules - enable this option if you want to perform a check of document assembly using a document assembly script. A custom assembly script can be executed both separately and together with the standard assembling rules. To start editing the script, click the Edit Assembly Script... button. The Script Editor window will open.

For details see Creating Document Definitions for multipage documents, Assembling pages into documents and Creating Document Definitions for documents with annexes.

·The Rules [image] tab

This tab is intended for actions with Document Definition rules. You can delete, edit or create new rules.

For details see Rule validation.

·The Export Destinations [image] tab

This tab shows the current export settings of the given Document Definition. To change the export settings, click the Edit... button

·The Data Form [image] tab

On this tab you can modify the font outline and size for displaying recognized data.

·The Data Text Settings group contains font settings for displaying recognized values.

·The Label Text Settings group contains settings for displaying the explanatory text (field names).

For details see Configuring data presentation in the document window.

·The Data Sets [image] tab

On this tab you can create and edit custom data sets.

For details, see Using vendor and business unit databases.

·The Event Handlers [image] tab

On this tab you can specify event handlers for documents of the current type.

For details, see Event Handlers.

·The .Net References [image] tab

On this tab you can add external assemblies to be used in scripts and global modules. Both standard and compiled user assemblies can be used. To add an assembly, click Add.... In the dialog box that opens select the type: Standard assembly name or Attached file. Depending on the selected type either enter the standard assembly name or browse to an assembly file.

For details see External assemblies.


Properties of a Document Definition section

Show/Hide Hidden Text

You can view and change the properties of a Document Definition section in the properties dialog box that opens when you select Properties... in the shortcut menu

The properties dialog box contains the following tabs:

·The General [image] tab

On this tab, you can change the name of the document section, enter or edit its description, and enter or modify the minimum and maximum number of section repetitions in the document. The Enabled option includes/excludes a Document Definition section from document processing. For details about multipage documents and working with sections, see Creating Document Definitions for multipage documents.

·The FlexiLayout [image] tab

If a FlexiLayout has been loaded into the section, this tab shows its Name, Version and Comment. You can load a FlexiLayout by clicking the Load... button and unload it by clicking the Unload button.

For details, see Creating a Document Definition for semi-structured document processing.

If the full-text recognition settings specified in ABBYY FlexiLayout Studio differ from the Document Definition settings, you can synchronize them for faster document processing. To do this, select the Use the same recognition settings as Document Definition option. This option is also useful if you want to modify certain parameters (such as font type) without launching ABBYY FlexiLayout Studio. If you do not want to use synchronized settings, select the Use own recognition settings of FlexiLayout option.

·The NLP, [image] tab

On this tab, you can create, modify, and upload NLP extraction and segmentation models. You can use NLP technology to process unstructured documents, such as contracts or letters.

·The Images [image] tab

This tab displays parameters of the page images in the section. The following parameters are displayed: size, resolution, print size, and color mode.

·The Rules [image] tab

On this tab, you can delete, edit or create rules for your Document Definition.

For details see Rule validation.

·The Data Sets tab


Rule validation

Show/Hide Hidden Text

Rules offer an additional means of checking captured data. You can use rules to specify certain restrictions that apply to the data in particular fields (or, to put it another way, conditions to be met by the values captured from particular fields).

Additionally, you can use rules to process captured values. For instance, you can merge values from multiple fields, or substitute captured values by values taken from a database.

You can specify how strict a rule is, i.e. whether it should issue a warning or an error if it is violated. Fields with rule warnings will be marked with a yellow flag and fields with rule errors will marked with red flags. See Rule validation for details.

Rules are set up on the Rules tab of the properties dialog box of a field, section, Document Definition or another item for which rules can be specified.

Viewing rules

Use the Show rules drop-down list to choose which kind of rules to display:

·refer to %0 Shows only the rules that refer to the current object.

·owned by %0 Shows only the rules that are stored in the current object.

·owned by %0 and its children Shows only the rules that are stored in the current objects and its child objects (e.g. if the object is a group, the rules stored in the group will be shown together with the rules stored in fields that are part of the group).

note Note: In the rule display options above, “%0” will be replaced by the name of the current object.

note Note: A new rule can be created if you choose to show rules owned by %0 and owned by %0 and its children. You cannot create a new rule if you select rules that refer to %0.

Filtering rules

You can filter the list of rules in order to make it easier to manage. For example, you may choose to display only rules that involve a specific field, or rules that are triggered by a specific condition.

To open the Filter dialog box, click the Filter button on the Rules tab.

The following filtering criteria are available:

·Rule name contains Filters rules by name (select a desired name from the drop-down list).

·Field Filters rules by field (select a field to show only rules that make use of this field).

·Apply rules This group of options filters rules according to whether they have a condition that must be met before they are executed, and by these conditions. Select the Always option if you only want to see rules that are always executed, i.e. don't have a condition that triggers them. Select If this condition is true if you want to see rules that are triggered by one of the following conditions:

oBelongs to set (exact-match) Shows only rules whose allowed field values (i.e. those values that trigger the rule) are exactly the same as those specified in the filter.

oDoes not belong to set (exact-match) Shows only rules whose prohibited field values (i.e. those values that do not trigger the rule) are exactly the same as those specified in the filter.

oIs empty - Shows only rules which are applied if the field value is empty.

oIs not empty Shows only rules which are applied if the field value is not empty.

oOverlaps with set - Shows only rules whose allowed field values (i.e. those values that trigger the rule) contain at least one of the values specified in the filter.

Specifying multiple filtering criteria will show only those rules that meet all of them.

When you specify filtering criteria, they are displayed as a text string next to the Filter button. To clear the filter, click [image]. When you clear the filter, all the rules are shown. The filter is cleared automatically when you close the Rules dialog box.

Example of using the filter

Suppose you have set up the following two rules:

·FirstRule is applied if Currency = EUR, USD

·SecondRule is applied if Currency = EUR, RUR.

The table below illustrates which rules will be displayed for different filtering criteria.

Rule condition | Set of values | Displayed rules
Belongs to set (exact-match) | EUR, USD | FirstRule
Does not belong to set (exact-match) | EUR | ...
Overlaps with set | EUR | FirstRule, SecondRule
Overlaps with set | EUR, XXX | FirstRule, SecondRule

Setting up rules

The list of rules contains all rules that have been set up and some additional criteria of each rule.

To create a new rule, click the New Rule... button on the Rules tab. In the dialog box that opens, select the type of rule you want to create and click OK. This opens the New Rule which contains the following options:

·Name - The name of the rule.

·Show rule name in message to verifier - Enable this option if you want error notifications to contain the name of the rule that yielded the error. By default, notifications about rule errors appear as follows: "name of rule: error message". If this option is disabled, the notification will only contain the error message.

·Severity - The severity of the rule. When a rule yields an error, an error message and a flag are generated. There are two possible flags: Error or Warning types.
When an attempt is made to export documents with rule errors, a notification about this will be displayed. Documents with rule errors can still be exported

note Note: This option is not available for rules of the Calculate Sum and Merge Fields.

·Apply rule - Options in this group let you determine when a rule is applied.

oAlways The rule is always applied, i.e. it will be applied whenever changes are made to the fields monitored by the rule. This option is enabled by default.

oIf this condition is true If this option is enabled, the rule will only be applied when certain conditions are fulfilled. For details, see the Conditions for applying rules section of this article.

·Tags are used for filtering rules.

note Note: Use commas without spaces to separate values. Tag values are case-sensitive.

·Enabled rule - Enables or disables the rule.

The following options depend on the rule's type:

·Calculate Sum Calculates the sum of the values of several fields and writes it to another field.

·Check Sum Calculates the sum of the values of several fields and checks it against a pre-defined number or the value of another field.

·Compare Fields Compares the values of several fields.

·Database Check Checks captured values against their counterparts taken from a database.

·Merge Fields Merges the values of several fields. You can add any type of separator when merging field values into one.

·Script A user-defined script that describes restrictions that apply to specific data.

·Sum in Figures - Sum in Words (Russian) Compares a sum written in words with the same sum written in digits (works only on Russian-language texts).

note Note: If a rule is set for a repeating field group, it will be applied field-by-field to each group instance individually. If a rule is set inside a group, then that rule will be applied only to that particular group instance.

Conditions for applying rules

In the current version of ABBYY FlexiCapture, rules can be triggered when a certain field has a specific value. When you create or edit a rule, you can specify when you want the rule to be applied by selecting the Always or If this condition is true option. If you want to specify a condition that triggers the rule, select the If this condition is true option and then click the Edit button to the right of this option to open the Condition for Applying Rule dialog box. In this dialog box:

·Select a desired field.

·Select the condition that must be fulfilled to trigger the rule.

oBelongs to set The rule will be applied if the value of the field matches one of the allowed values you specified.

oDoes not belong to set The rule will be not applied if the value of the field matches any of the prohibited values you specified.

oIs empty - The rule will be applied if the field value is empty.

oIs not empty - The rule will be applied if the field value is not empty.

·You can also specify a range of possible (permitted) values of a field.

·To add a value to the set of possible values, type in the value and click Add. To delete a value from the set, select the value and click Delete. You can also add an empty value to the set of possible values. To add an empty value, click Add without typing any values. The empty value will appear as in the set of possible values. A value can be added only once.

Conditions for applying rules can only involve text fields (including fields with continued regions), barcodes, and table columns. Conditions for applying rules cannot involve checkmarks, checkmark groups, fields with multiple instances, images, or table cells.

warning Important! If the Show on verification option is not enabled in a field's properties, errors related to this field will not be displayed during verification. This means that the document with this field will have an error flag that cannot be removed.

Rule chains

Rule chains are groups of rules with a specific order of application. This lets you set up several rules that involve the same field.

To create a rule chain:

·Click the Chains button in the Rules tab.

·In the dialog box that opens, click the New Chain... button.

·Provide the name of the rule chain and a comment (optional).

·Click OK.

The new rule chain will be displayed in the list in the Chains dialog box. Next, add rules to the rule chain. To do so:

·Click the Add Rule... button.

·Select the desired rules.

·Use the Move Up and Move Down buttons to arrange the rules in the order you want them applied.

warning Important! Each rule can only be a part of one chain.

note Note: If you try to add a field that can be edited - the Read-only option is disabled in its properties to a rule, but this rule is already involved in a chain of rules where it can also be edited, you will be prompted to merge this rule with the chain of rules. If you agree to do so, and the rule to which you added the field belongs to another chain, the two rule chains will be merged into one.

Where rules are stored

Rules are stored at the level of the item where they were created. This can be a field, a section, or the Document Definition itself. In most cases, it will not matter where the program stores the rules. However, if your Document Definition is fairly complex and has multiple field groups or recurring elements, be sure you know where each rule is stored. For instance, if you have a group of fields and some of its fields are subject to a particular rule, be sure to store this rule in the group or in one of its fields. Otherwise, when you create a new instance of the group, the rule will not be copied or applied to the new instance. In the properties dialog box of an item, you can see the rules that refer to the item, the rules owned by (i.e. stored in) the item, or the rules owned by the item and its children. Use the Show rules drop-down list to choose which kind of rules to display.

Language used for rule validation errors

When documents are processed automatically, rule validation errors are by default reported in the UI language of the Processing Station component (i.e. the language that was selected when installing ABBYY FlexiCapture).

However, some operators may prefer to see error messages in a language other than the default language (for example, if manual and automatic processing are carried out in different countries).

To specify different languages for different operators, create a separate batch type for each language. In each batch type, specify the language to be used for error messages issued during automatic processing:

1.On the Project Setup Station, click Project > Batch Types…

2.Create a new batch type (or select an existing batch type and click Edit...).

3.On the Verification tab, select Use this language for messages issued during processing.

Rule validation errors can be reported in any of the following languages:

oEnglish

oHungarian

oSpanish

oChinese Simplified

oKorean

oGerman

oPolish

oPortuguese (Brazilian)

oRussian

oSerbian

oFrench

oCzech

oJapanese

4.Save your changes.

note Note: If an operator makes corrections which are then immediately checked by validation rules, any error messages issued by such repeat checks will be displayed in the ABBYY FlexiCapture UI language. This is because all such processing is done locally rather than on the Processing Station. This applies to all error messages on desktop stations and format errors on web stations.

warning Important! The following types of error messages are only available in English: errors reported by script rules, document assembly errors, and key field matching errors.


Value Sum Calculation Rule

Navigation: Program settings > Document Definitions > Rule validation >

Return to chapter overview

Calculate Sum rule

This rule is used to calculate the sum of several field values and enter it in a specified field. For example, if the document has fields that contain a salary, bonus, and other similar amounts, you can set up a rule to calculate their sum and writing the result in a certain field.

This rule can also be used for calculating the sum of values in a table column. To achieve this, this kind of rule must be created in the Document Definition Properties or in the section properties. Be sure to clear the At least two non-empty objects required option.

To create a sum calculation rule, do the following:

1.Open the Field Properties dialog box (right-click the field to open its shortcut menu and select Properties...) or the Document Definition Properties dialog box (from the Document Definition editor menu, select Document Definition → Document Definition Properties...).

2.Go to the Rules tab.

3.Click New Rule...

4.In the list of rules, select Calculate Sum and click OK.

5.Type the name of the rule.

6.Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".

7.If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.

8.Specify tags for the rule.

9.Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.

10.Click Next >.

11.In the dialog box that opens, add fields with values to be added to the Summarize values of fields list. To do it, click the Add....

12.In the Result field field, specify the field you need to enter the sum in. To do it, click Select....

13.Select At least two non-empty objects required if you need at least two non-empty and non-zero summands to be used. Unless this condition is fulfilled, an error will be output in the rule errors window during the check of the rule.

note Note: When applying this option in rule parameters, it is necessary to add at least two document fields (or two table columns) to the addition. So if you use this rule to add values from all cells of a table column, you need not select this option.

14.Click Finish to finish creating the rule. The rule name will be displayed on the Rules tab.


Values sum check rule

Navigation: Program settings > Document Definitions > Rule validation >

Return to chapter overview

Check Sum rule

This rule is used to check the sum of values of several fields. The sum of values of specific fields is compared against a preset number or the value in a different field. For example, if your document contains fields with a salary amount, bonus amount, other compensation payments, and a sum total field, you can configure a rule that will check whether the sum of field values matches the sum total in the resulting field. An error message will be displayed in case of a mismatch.

note Note: When applying this rule to a field of a Table type, the calculation depends on the level at which the rule was created. If you need to compare the sum of values of all cells of a table column with a calculated or given number, the rule must be created in the Document Definition Properties or in the document section properties. If you need to compare each cell of a column or the sum of all cells of a few table columns with a calculated or given number, the rule must be created in the table properties or in the table column properties.

These direction should also be followed when creating a rule that checks the sum of values for fields with a few instances.

To create a sum check rule, proceed as follows:

1.Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties...) or the Document Definition properties dialog box (from the Document Definition editor menu, select Document Definition → Document Definition Properties...).

2.Go to the Rules tab.

3.Click the New Rule... button.

4.From the list of rule types, select Check Sum and click OK.

5.Type the name of the rule.

6.Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".

7.Specify the severity of the rule.

8.If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.

9.Specify tags for the rule.

10.Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.

11.Click Next >.

12.In the dialog box that opens, add to the list Summarize values of fields the fields the sum of whose values you want to check. Use the Add... button to add fields.

13.Enable one of the options:

ofield to compare the sum with the value of the resulting field. Select the name of this field using the Select... button.

onumber to compare the sum with the specified number. Enter this number.

14.Precision is the maximum permitted difference between the values of fields for which the rule is set up. A rule is considered to be satisfied when the absolute value of the difference between the values is less than or equal to the specified precision value. If it is not, the rule is not considered to be satisfied and an error message is generated..

15.Enable the option At least two non-empty objects required if you want at least two non-empty and non-zero summands to be used. If this condition is not met, the rule will return an error.

16.Confirm fields if rule check is successful If this option is enabled, the field values that pass rule validation will be automatically confirmed in the Document Definition editor. Otherwise, the Verification Operator will have to confirm field values manually.

17.Click Finish to complete creating the rule. The name of the rule will be shown on the Rules tab.


Field values merge rule

Navigation: Program settings > Document Definitions > Rule validation >

Return to chapter overview

Merge Fields rule

This rule is meant for merging the values of several fields. Merged field values can be separated with a dot, space or other separators.

To create a values merge rule, proceed as follows:

1.Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties...) or the Document Definition properties dialog box (from the Document Definition editor menu, select Document Definition → Document Definition Properties...).

2.Go to the Rules tab.

3.Click the New Rule... button.

4.From the list of rule types select Merge Fields and click OK.

5.Type the name of the rule.

6.Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".

7.If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.

8.Specify tags for the rule.

9.Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.

10.Click Next >.

11.In the dialog box that opens, add the fields you want to merge to the Fields to merge list using the Add... button. Next, specify a Result field in which you want to store the merged value and specify the desired separator in the Separator box.

12.By default, separators will be added between non-empty values. If you want the program to add separators at all times, even for empty field values, enable the option Put separators for empty field values.

13.Click Finish to complete rule creation. The rule name will be shown on the Rules tab.

The merge result can be stored in any Document Definition field. For this purpose it is convenient to use fields without a regions.

If you need to export only the value of the resulting field, and not the values of fields included in the merger, disable the Export field value option for such fields.


Several field values comparison rule

Navigation: Program settings > Document Definitions > Rule validation >

Return to chapter overview

Compare Fields rule

This rule is meant for checking the values of several fields. It can be used if your document has several fields whose values must be identical. In the event that values do not match, a rule error message is displayed for the document.

To create a values comparison rule, proceed as follows:

1.Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties...) or the Document Definition properties dialog box (from the Document Definition editor menu, select Document Definition → Document Definition Properties...).

2.Go to the Rules tab.

3.Click the New Rule... button

4.From the list of rule types select Compare Fields and click OK.

5.Type the name of the rule.

6.Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".

7.Specify the severity of the rule.

8.If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.

9.Specify tags for the rule.

10.Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.

11.Click Next >.

12.In the dialog box that opens, add the fields you want to compare to the Fields to compare list by clicking the Add... button.

13.Select the match type:

oExact for an exact value match;

oFuzzy for a fuzzy value match. In this case fields will be compared without taking into account the letter case and white spaces, and one error will be allowed for field values longer than 4 characters.

14.Click Finish to complete rule creation. The rule name will be shown on the Rules tab.


Database Check rule

Show/Hide Hidden Text

A database check of field values involves comparing a recognized field value with values in a database table. If a captured field value is found among the values in the database, the check is passed. Otherwise, the rule returns an error.

You can use this rule to check if there is an entry for a captured value in your database, to carry out fuzzy searches in your database even if there are typos or errors in fields, to replace a field value with its corresponding record from the database, and to copy certain values from the database into document fields.

Creating a Database Check rule

To create a database check rule:

1.Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties...) or the Document Definition properties dialog box (from the Document Definition editor menu, select Document Definition → Document Definition Properties...).

2.Go to the Rules tab.

3.Click the New Rule... button.

4.From the list of rule types, select Database Check and click OK.

5.Type the name of the rule.

6.Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".

7.Specify the severity of the rule.

8.If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.

9.Specify tags for the rule.

10.Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.

11.Click Next >.

12.Set up a connection to the data source by specifying its type and connection parameters.
The following data sources are supported:

oExternal Database (Simple) Connection to the external database is set up for each rule in the Document Definition.

oExternal Database (Variable) Connection to the external database is set up only in the properties of the project (Project Properties → Environment Variables). This type of data source can be simultaneously used for multiple rules. If you use a different database for the project, you will need to modify the connection settings only in the project properties.

odata set Connection to the data set is set up by the user in the properties of the Document Definition (Document Definition Properties → Data Sets).

Tip. We recommend selecting the following as OLE DB Provider:

oWhen exporting to SQL, prefer OLE DB Provider for ODBC Drivers

oWhen exporting to Oracle, prefer Oracle Provider for OLE DB (For details see Exporting to an Oracle database)

note Note: To avoid entering the password each time you connect to the database, select the Allow saving password option or set up the database so that it requires no password to connect to it (for example, you can use Windows authentication).

13.Select the required schema and database table from the drop-down lists or specify the required data set if you are setting up a connection to a source of type data set.

note Note: If the Find in all schemas is selected as the scheme and the specified table is not included in the default scheme, the following error message may occur:
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name K1. [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared.
In the event of the error message, the name of the schema that contains the table should be specified explicitly.

14.Select the Don't check if all fields are empty option to omit rule checks if there are no values in the fields involved in comparison. This will speed up rule validation.

15.Establish links between the fields in the Document Definition and the fields in the database (see Specifying fields to compare below).

16.Use the Add..., Edit... and Delete buttons to add, edit or remove links between fields.

17.If you selected a Data Set as the source, you can now select the field that will act as the primary key from the Field where to save record ID drop-down list.

warning Important! A dataset may be accessed directly from the data form via a control of type "Button". To add a button to the data form, select Form → Insert Control → Button in the Document Definition editor. When you add a button to the data from, the Properties dialog box opens. Click the Format tab, select Database Lookup in the Type drop-down list, and then select a previously created database check rule.

Specifying fields to compare

In the Field links group on the Rule Settings tab, you can see the already specified field comparisons. You can set up a Database Check rule either for a single field or for a set of fields.

When you add or modify a fields to compare, you must specify the following:

·Document field The field of the Document Definition that is to be compared with a database field

·Database field The field in the database that is to be compared with the document field

·Search Specifies the type of comparison:

oExact The value in the document field must exactly match the value in the database field (note, however, that searches are not case-sensitive)

oFuzzy The value in the document field may only partly match the value in the database. Only text fields can be used in this type of comparison.
Some notes about fuzzy searches:

Fuzzy searches will find the closest matches, i.e. words where the minimum number of letters must be added, removed or replaced to achieve a match. The number of allowed errors depends on the length of the original word. If a fuzzy search finds more than one matching value, the following error message is displayed to the Operator: Too many records found.. This error message is accompanied by the list of close matches from the database so that the Operator can select the correct value from the list.

The following additional options are available:

·Don't search if field is empty If the field is empty, its value will not be compared with values from the database.

·Enter value from database If a fuzzy search finds a matching value in the database, this value may be automatically entered into the field if:

othe values in the field and in the database are different

othe field is empty.

note Note: In the case of exact searches, selecting the Enter value from database option makes no sense, as the two values will be identical.

·Allow empty values in database Depending on the results of the database check and other settings, this option will have the following meaning:

oif the database field is empty and the document field is not empty, the field and database values are deemed to be identical

oif the database field is empty and the document field is not empty and Fill from database is selected, the empty database value will not be entered into the field.

Primary keys in data sets

If your project includes a data set (a local copy of an external database) from which you want to source field values for documents when they are processed, you can use a database check rule to specify a field that will serve as the primary key (unique identifier) of a record in the data set.

If you do this, the data on the Data Form will be equated to data in the data set. When you select a record, all fields will be filled in with values from the data set. You will not be able to edit values on the Data Form. If you attempt to do so, a dialog box prompting you to take one of the following actions will appear:

·select another record from the data set

·edit the existing record

You can open the dialog box for adding or editing records by right-clicking a field and clicking Edit Data Set Record... or Add Data Set Record... on the shortcut menu.

When you delete data in a filled-in field by pressing the Delete key, data in all other fields related to the rule will also be deleted.

The rule will be checked again when you apply your changes.

How primary keys work

1.All fields targeted by the rule must have the Enter value from database option enabled, in which case, provided the field acting as the primary key contains a value, the program will not search for values of the other fields and will instead fill them in with values from the database.

2.If the field acting as the primary key contains no value, the program will examine other fields for which the Search option was enabled when fields that need to be compared were specified in the Field Link dialog box (see Specifying fields to compare above). If a unique record is found for these fields, values from the database will be used (as in 1. above).

Now all the user has to do is decide whether to accept all changes or choose another record from the data set.

The following conditions must be met in order for the primary key to work:

·A Data Set is selected as the source;

·A primary key is specified in the data set, i.e. the Primary key option was enabled for a field when

·The field used as the primary key is not listed in the Field links list on the Rule Settings tab.

The ABBYY FlexiCapture for Invoices section contains more information about data sets and explains their use in a sample project.

See Using vendor and business unit databases.

See Looking up vendors and business units in the database.

Doing a database check for a set of fields

In this case, the program will search the database for a matching string for the values in a set of fields, each value in the set of fields is linked to different columns of the found string.

Consider the following example:

Let us associate the document fields Fa, Fb, and Fc with the database columns Ta, Tb, and Tc as follows:

·The value of the Fa field exactly matches the value of Ta

·The value of the Fb is a fuzzy match of the value of Tb

·When the specified conditions are met, the value of the Tc field is copied to the Fc field.

The database check will be successful if the program finds a database string where the value of the Ta column exactly matches the value of the Fa field and the value of the Tb column is a fuzzy match of t value of the Fb field. The value of the Tc column of this string will be copied to the Fc field.

If no such string is found, the rule will return an error, even if the program finds, for example, Ta = Fa and Tb = Fb in different strings.

note Note: Different combinations are possible: exact/fuzzy/mixed matches, no autofilling, unspecified number of fields, etc.


A rule set with the help of a script

Navigation: Program settings > Document Definitions > Rule validation >

Return to chapter overview

Script rule

ABBYY FlexiCapture allows you to configure the data check rule with the help of a script.

To create such a rule, proceed as follows:

1.Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties...) or the Document Definition properties dialog box (from the Document Definition editor menu, select Document Definition → Document Definition Properties...).

2.Go to the Rules tab.

3.Click the New Rule... button.

4.From the list of rule types select Script and click OK.

5.Type the name of the rule.

6.Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".

7.Specify the severity of the rule.

8.If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.

9.Specify tags for the rule.

10.Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.

11.Click Next >.

12.Available objects will be displayed in the Available Fields list in the dialog box that opens. You can add and delete fields using the Add... and Delete buttons. Fields that have the Read Only option enabled can only be read, all other fields can be changed by a script.

note Note: Add all fields which you want to use in the script to this list. If a field is not in this list, it cannot be used by the script.

13.Click the Edit... button to open a special window for script editing.

14.Select the scripting language and enter the script text.

15.The script can be checked by selecting Tools → Check Script in the main menu.

16.Save the script by selecting File → Save.

17.Click Finish. The created rule will be displayed in the list of the Rules tab.

For details on the script parameters, see Script rule.


Sum in Figures - Sum in Words

warning Important! This rule can only be set up if you select the Russian recognition language for your Document Definition (Document Definition → Document Definition Properties...).

The purpose of this rule is to compare a numerical sum with the corresponding sum in words written in Russian. If the two sums are not identical, a message is displayed saying that the rule returned an error.

To create a "sum in digits - sum in words" rule, proceed as follows:

1.Open the field properties dialog box (right-click the field to open its shortcut menu and select Properties...) or the Document Definition dialog box (from the Document Definition editor menu, select Document Definition → Document Definition Properties...).

2.Go to the Rules tab.

3.Click the New Rule... button.

4.From the list of rule types select Sum in Figures - Sum in Words (Russian) and click OK.

5.Type the name of the rule.

6.Disable the Show rule name in message to verifier option if necessary. If this option is disabled, the error message will be displayed as "error message" instead of "name of rule: error message".

7.Specify the severity of the rule.

8.If required, specify the conditions under which the rule must be applied (by default, a rule is applied unconditionally). See Conditions for applying rules for more information.

9.Specify tags for the rule.

10.Disable the Enabled rule option if necessary. The rule will be created, but will not be applied until this option is enabled by a user.

11.Click Next >.

12.Click the Select... button to the right of the Sum in figures field and then select the field of the Document Definition that contains the numerical sum.

13.Click the Select... button to the right of the Sum in words field and then select the field of the Document Definition that contains the same sum in words.

14.If required, enable the Allow kopecks in sum option.

15.Click Finish to complete rule creation. The rule name will be shown on the Rules tab.


Export settings

To configure data export settings, select Document Definition → Export Settings... in the Document Definition editor.

You can specify multiple export profiles within a Document Definition, which allows you to export your processing results to multiple file formats and to multiple destinations.

Basic export parameters and types of export

On the Export Destinations tab, you can see the list of configured export profiles and the following information about each profile:

·Name The name of the export profile.

·Type The type of export. The following export types are available:

oCustom export (uses a script)

oExport to data files (by default, each Document Definition includes an export profile that exports data to an Excel table)

oExport to image files

oExport to a database

oExport to SharePoint

·Critical If this option is selected, the export profile must be executed. Otherwise, the export profile is deemed optional.
If an export failure occurs for a Critical export profile, the error will be recorded in the event log and the corresponding export task will have the Failed status. If an export failure occurs for a non-Critical export profile, a warning will be recorded for the export profile and the corresponding export task will have the Succeeded status.

note Note: Export may fail for a number of reasons. For example, a file or database may be inaccessible.

·Enabled If this option is selected, the program will use this profile to export data. Otherwise, the profile is deemed disabled.

·Conditions The conditions that must apply for the program to export the captured data.

Export conditions

You can set up ABBYY FlexiCapture to export data if certain conditions are met. For example you can export only documents with rule errors, only documents without rule errors, or only documents where a particular field has a particular value. You can specify export conditions under Export if these conditions are true.

To set up export conditioned on rule errors, select one of the following three options from the Documents condition drop-down list:

·Documents contain errors Select this option to export only documents without rule errors or format errors.

·Documents contain no errors Select this option to export only documents with rule errors or format errors.

·Errors are irrelevant Select this option to export all documents, regardless of rule or format errors.

To set up export conditioned on the value of a particular field, enable the Field condition option and in the Export Conditions dialog box:

1.Select a desired field

2.From the drop-down list, select a condition that will trigger export

3.Specify the possible field values (if any)

The following field value conditions may trigger off export:

·Belongs to set The data will be exported if the value of the field matches one of the values you specified.

·Does not belong to set The data will be exported if the value of the field does not match any of the values you specified.

·Is empty The data will be exported if the field is empty.

·Is not empty The data will be exported if the field is not empty.

To add a value to the set of possible values, type in the value and click Add. To delete a value from the set, select the value and click Delete. You can also add an empty value to the set of possible values. To add an empty value, click Add without typing any values. The empty value will appear as <Empty value> in the set of possible values. A value can be added only once.

Export conditions can only involve text fields (including fields with continued regions), barcodes, and table columns. Export conditions cannot involve checkmarks, checkmark groups, fields with multiple instances, images, or table cells.

note Note: If an export condition involves a table column, the data will be exported if at least one cell in the column meets the condition.

You can use export conditions to specify a location where to store processed documents. For instance, you can put documents into different folders depending on the value of a particular field (say, Subsidiary). Or you can export documents with rule errors to a particular folder (say, Failed).

Fine-tuning export

The set of fields to export is first generated based on the properties of the fields (i.e. based on whether the Export field value option is selected). Then, when you set up an export profile, you can remove any fields from the set of fields thus generated. Fields from the same set can be exported to different destinations. Select Export Settings and consecutively click Edit... → Options... → Setup Fields Mapping.... The Field Mapping dialog box will open, where you can specify desired destinations.

Redacting information when exporting documents

When exporting data to files in graphical formats (including PDF), you can redact fields containing sensitive information.

To redact fields:

1.Enable the Redact sensitive data on images option in the export profile settings.

2.Click the Select Fields to Redact... button.

3.In the dialog box that opens, select a field you want to redact in the All fields section and click the [image] button to move it into the Redacted fields section. The [image] button moves all fields to the Redacted fields section.

note Note: If you are using a document set where one document is included in multiple sub-documents, the fields of this document will only be displayed once in the Select Fields to Redact dialog box. The sub-documents will have the [image] icon to indicate that they contain fields that are not displayed because they are from another document.

Saving results to the file system

You can set up ABBYY FlexiCapture to save captured data and/or document images to the file system.

If an absolute path to a data storage location is used, you can specify either a local path or a UNC network path.

If a relative path to a data storage location is used, i.e. if only a subfolder is specified, the data will be exported to a file storage location on the Application Server, and you will need to use the API to get the results.

See also:

details Exporting data to a file

details Exporting images to a file

details Export to Database

details Exporting documents to a SharePoint library

details Export described with a script

details Export file naming options


Data export to file

Navigation: Program settings > Document Definitions > Export settings >

Return to chapter overview

Exporting data to a file

Show/Hide Hidden Text

To configure export to file, proceed as follows:

1.In the Document Definition editor window, click Document Definition → Export Settings...

2.Click Add... and select Export to data files in the Type field.

3.Specify whether export is obligatory.

4.Specify whether images should be exported.

5.Specify which documents (with and/or without errors) should be exported and click Next>.

6.Specify the export parameters and click Next>. The adjustable export parameters depend on the value specified in the Target field.

·Recreate filenames and structure of Hot Folder subfolders, [image] details

If you select this value, the folder structure will mimic that in the Hot Folder the document images had been imported from. When configuring this export type, select the folder to mimic the Hot Folder structure in the Export path field.

·Export all documents to one file, [image] details

Select this value to export all data to one file. When configuring this export type, enter the path and the name of the file to export data to in the Export path field.

·Create a separate folder for each batch, [image] details

Select this value to export each document to a separate file:

·Specify the path and the first characters of the file name in the File prefix field;

·For each batch to be exported to a separate folder, select Create a separate folder for each batch.

·Create folder structure and filename using template, [image] details

If you select this value, file names and the subfolder structure will form depending on the document parameters.

·Specify the root export path in the Export path.

·Specify the file naming options. To do it, click Edit... and specify the necessary rules. For more information, see Export file naming options.

·In the If file exists field, select the action for the program to carry out if a file with the generated name already exists.

The export path is specified relative to the root folder specified in Project Properties. You only need to specify a name of subfolder to which documents will be saved. If you need to use the export path which is different from the root path in Project Properties, you need to specify the export path in UNC format (\\computer_name\share_name[\path]). Also, make sure all the stations involved in exporting have access to the specified location. Export errors will occur, if the path is specified in the following format: \[path].

7.Select a file saving format, specify additional export properties for the selected file type, and select the text encoding, if necessary. Then click Next>.

Microsoft Office Excel workbook (*.xlsx)

·Select Preserve value type on export to export the data basing on its types. Clear this option to export all data with the General type.

note Note: Works only for the fields of the Number type.

·Select Make separate files for repeatable items to export tables and fields with multiple repetitions to separate files. Mind the note.

·Configure the field names and format, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names and the format of fields with numbers and dates.

Microsoft Office Excel workbook (*.xls)

·Select the Excel version (5.0/95; 97-2003; 97-2003 (compatible with 5,0/95)).

·Select Preserve value type on export to export the data basing on its types. Clear this option to export all data with the General type.

note Note: Works only for the fields of the Number type.

·Select Make separate files for repeatable items to export tables and fields with multiple repetitions to separate files. Mind the note.

·For Excel 5.0/95, select a code page. See Export file formats.

·Configure the field names and format, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names and the format of fields with numbers and dates.

XML Document (*.xml)

·Specify the additional data to be exported (field locations and types, errors, recognition quality data).

·Select Preserve value type on export if you want to save the xml-scheme with field type descriptions.

·Select the encoding. See Export file formats.

·Specify the field names, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names.

Comma-separated values file (*.csv)

·Select Column separator.

·Select Make separate files for repeatable items, if you want tables and fields with multiple repetitions to be exported to separate files. Mind the note.

·Select the encoding and a code page. See Export file formats.

·Configure the field names and format, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names and the format of fields with numbers and dates.

Text file (*.txt)

·Select Column separator.

·Select Make separate files for repeatable items, if you want tables and fields with multiple repetitions to be exported to separate files. Mind the note.

·Select the encoding and a code page. See Export file formats.

·Configure the field names and format, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names and the format of fields with numbers and dates.

DBase file (*.dbf)

·Select Preserve value type on export to export data basing on its types. Clear this option for all the fields to be of the Text type.

·Select Make separate files for repeatable items, if you want tables and fields with multiple repetitions to be exported to separate files. Mind the note.

·Select a code page. See Export file formats.

·Configure the field names, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names.

JSON Document (*.json)

·Specify the additional data to be exported (field locations and types, errors, recognition quality data).

·Select Preserve value type on export to export the data basing on its types.

·Select the encoding. See Export file formats.

·Specify the field names, if necessary. To do it, click Field Mapping and, in the Field Mapping dialog box, specify the field names.

warning Important! Complete steps 8 and 9 only if you selected the Save document images option in step 4.

8.If you want to save the images, specify the image saving parameters and click Next>.

·Choose either to save images together with the data or to specify the image folder;

·Select the image file naming scheme: similar to the data files or otherwise. See Export file naming options.

·Specify the fields that contain images you want to hide during export.

9.If images should be stored, specify image storage options and click Next>.

·Select the desired image format, quality, and color.

·To change the resolution of the source images, select Change resolution to and select the appropriate value from the list.

·If you select PDF or PDF/A as a storage format, you can create searchable PDF files.

10.Enter an export profile name and click Finish.

The program will export all values of document fields to one or more files of the specified format.

note Note: By default, repeating fields (i.e., fields with multiple instances and tables) are exported into separate files for which a new folder is created. The name of the folder consists of the name of the export file. To disable export of repeating fields into separate files, clear the option Make separate files for repeatable items on the Export Destination Wizard tab (the option is available for all formats except XML). In this case, when repeating fields will be exported into one export file and the program will add a new line for each element instance.

note Note: When exporting data about exported images (images of pages or fields) to a file, the path to the file can be:

·relative, if the images are being exported to the same folder as the file (or its subfolders);

·absolute in all other cases.


Exporting images to a file

Show/Hide Hidden Text

To export images to a file:

1.In the Document Definition Editor window, select Document Definition → Export Settings...

2.Click Add... and select Export to image files in the Type field.

3.Specify whether export is obligatory.

4.Specify which documents (with and/or without errors) should be exported and click Next>.

5.Specify the export parameters and click Next>. You can also specify fields to redact before exporting data. The adjustable export parameters depend on the value specified in the Target field:

oRecreate filenames and structure of Hot Folder subfolders, [image] details

If you select this value, the folder structure will mimic that in the Hot Folder the document images had been imported from. When configuring this export type, select the folder to mimic the Hot Folder structure in the Export path field.

oExport documents as separate files, [image] details

Select this value to export each document to a separate file:

§Specify the path and the first characters of the file name in the File prefix field;

§For each batch to be exported to a separate folder, select Create a separate folder for each batch.

oCreate folder structure and filename using template, [image] details

If you select this value, file names and the subfolder structure will form depending on the document parameters.

§Specify the root export path in the Export path.

§Specify the file naming options. To do it, click Edit... and specify the necessary rules. For more information, see Export file naming options.

§In the If file exists field, select the action for the program to carry out if a file with the generated name already exists.

The export path is specified relative to the root folder specified in Project Properties. You only need to specify a name of subfolder to which images will be saved. If you need to use the export path with is different from the root path in Project Properties, you need to specify the export path in UNC format (\\computer_name\share_name[\path]). Also, make sure all the stations involved in exporting have access to the specified location. Export errors will occur, if the path is specified in the following format: \[path].

6.Specify image storage options and click Next>.

oSelect the desired image format, quality, and color.

oTo change the resolution of the source images, select Change resolution to and select the appropriate value from the list.

7.Enter an export profile name and click Finish.


Export to a database

Show/Hide Hidden Text

To configure export to a database, perform the following:

1.In the Document Definition editor window select the menu item Document Definition → Export Settings...

2.Click Add... and select Export to ODBC-compatible database in the Type field.

3.Specify whether export is obligatory.

4.Specify whether images should be exported.

5.Specify which documents (with and/or without errors) should be exported and click Next>.

6.Specify export settings and click Next>.

oEstablish a connection with a database. Enter the connection parameters in the Connection string window or click the Setup... button and configure the connection parameters in the Data Link Properties dialog box.
Tested providers and drivers

For SQL 2012 SP4, 2014 SP2, 2016 SP2, 2017 database:

1.Provider - OLE DB Provider for ODBC Drivers;

note Note: Selecting "OLE DB Provider for SQL Server" may cause problems when working with certain data types and long fields.

2.Driver - SQL Server.

For Access 2003, 2007, 2010 database:

1.Provider - OLE DB Provider for ODBC Drivers;

2.Driver - Microsoft Access Driver (Driver do Microsoft Access or Microsoft Access-Treiber).

note Note: To connect the 64-bit version of FlexiCapture to the Access database, you will need to install the 64-bit version of the Access Database Engine x64 driver.

For Oracle 10g, 11g, 12c database:

1.Provider - Oracle Provider for OLE DB;

2.Selecting the driver is not required.
For details see Exporting to an Oracle database.

The provider and the driver must be available on the computer where export is performed.

oSelect a schema from the drop-down list.
Working with schemas while using MS SQL

You do not have to specify a schema while working with MS SQL (export, caсhing, rule management). If you leave a blank field, the dbo schema will be used automatically.

note Note: If a database does not contain tables, the dbo schema will not be specified in the list of schemas. To continue working with the dbo schema, select the blank value in the schema field.

oYou can check the connection with the database by clicking the Test Connection button.

oClick the Create Tables Automatically button to automatically create new tables in the database, where data from documents will be exported. A separate table will be created for each document section. The structure and the format of fields in automatically created tables correspond to the set of Document Definition fields and their data types.

note Note: Before the export, ABBYY FlexiCapture queries the database for information about all objects of the schema. It is recommended that schemas with a small number of objects should be used for export. Otherwise creating tables can take considerable time (up to several hours).

oIf it is necessary to export data to existing tables of a database, establish a correspondence between the Document Definition fields and the database table fields using the Set Up Field Mapping... button.

oIn the Field Mapping dialog box specify to what tables and table columns of the database the program will export field values of the Document Definition. Details...

The Field Mapping dialog box on the left contains document sections and fields. On the right, you have to match them to the tables and fields on the database. If the database already has tables for data export, then in the Field Mapping dialog box you need to select a database table for each document section and a database table column for each document field. (Besides direct export to database tables it is possible to save data to a database by using stored procedures. For details, please see Specifics of configuring data export by using stored procedures of databases.

If the database has no tables for export, you can create database tables automatically by clicking the Create Tables Automatically button. After you click it, the program will create tables with a structure that you need for export. Document fields will be matched to table columns.

Field groups, fields with several instances and document tables are exported to separate tables in the database. A Primary Key and Foreign Key are used to link the main table to subordinate tables. In the main table, a primary key is added to each entry. In the subordinate table, each entry has a foreign key that records the value of the primary key of the corresponding entry in the main table. The primary and foreign keys are added automatically where required. You only need to specify the field to which the key has to be exported.

Select a column of a database table for each document field.

If a column, to which data from some field are to be exported, is missing in the table, it can be added to the existing table automatically. For this, it is enough to leave the correspondence of the document field to the database field with a similar name and with the comment (auto) in brackets. Or you can select a desired field with a mouse and click the Auto button.

You can also use the Auto button to create a new table in the database whose name will be similar to the section or table name of the Document Definition. If a new table, whose name and column captions are different from the Document Definition field names, must be created in the fields correspondence settings dialog, use the New button to create a table for each field.

Use the Move Up and Move Down buttons to manage the sequence order of columns in the automatically created table of a database.

Use the Format... button to configure parameters of saving typified fields, for example, the number of decimal digits in the field value of Number type or format and separators for a field of Data type.

note Note: When exporting field of the Time data type, a corresponding column of DateTime type must be created in database table. By default the column of SmallDateTime type is created which results in error.

7.If images should be saved (document images and/or field images of the Picture type), specify image saving options and click Next>.

oSpecify whether images should be saved to the database or as files.

oIf you choose to save images to files, specify a file naming template (click Edit...) and when files should be overwrite if their names coincide. For more information, see Export file naming options.

oIf required, specify the fields to be concealed upon export.

note Note: Depending on the selected option, the contents of Picture type fields and document images can be exported to the file system or a database.
When exporting to separate files, the name and the path to a picture or image file are stored in the corresponding field of a database (it is configured when establishing the correspondence of fields). If a network disk is specified as a path to an export folder (for images, pictures, etc.), make sure that all stations working with this disk can access it. A special procedure allows you to convert a binary image from any database to a file.

note Note: When exporting images to separate files, the length of a string storing paths to files may exceed 255 characters and an error message will occur. In this case, you should increase the character limit for the given column.

8.If the option to save images was selected, specify a file saving format and click Next>.

oSelect the desired image format, quality, and color.

oTo change the resolution of the source images, select Change resolution to and select the appropriate value from the list.

oIf you select PDF or PDF/A as a storage format, you can create searchable PDF files.

9.Enter an export profile name and click Finish.

note Note:

1.Pictures are exported to separate files. The name and path to the picture file can be stored in the corresponding field of the database (this can be set up when mapping fields).

2.If the path to the target folder for images, pictures, etc. contains a network disk, ensure that all the processing stations working with the project have access to this disk.

Specifics of configuring data export by using stored procedures of databases

Besides exporting data to database tables directly, it is possible to save data to database by using stored procedures.

A stored procedure is a database object representing a set of SQL-instructions which is compiled once, and then stored on the server. Stored procedures can be used to perform numerical calculations and operations on character data, whose results can be assigned to variable and parameters, as well as to carry out standard operations with databases.

Advantages of using stored procedures over direct export to database tables:

·Speed of working with a database

·Possibility to use additional calculations

·Ensuring data integrity

A sample of a shared procedure for MS SQL:

Create procedure Export( @userId as int, @lastName as nvarchar(255), @firstName as nvarchar(255) )
as
begin
if Exists( Select Id from Users where Id = @userId ) begin
Update Users set LastName = @lastName, FirstName=@firstName where Id = @userId
end else begin
Insert into Users ( Id, LastName, FirstName ) values( @userId, @lastName, @firstName
)
end
end

When sending data from FlexiCapture to database by using the procedure above, the following actions are performed:

The three parameters passed to the input of the procedure are the fields of a FlexiCapture document:

·an identifier (UserId);

·the first name (FirstName);

·the last name (LastName).

If there is no entry with such an identifier in the database table (Users), a new entry is added to the table. If an entry with such an identifier exists, the values of the first and last name in this entry are replaced with new values (the values of the FlexiCapture fields).

Configuring export by using stored procedures

In order to configure export by using stored procedures, it is necessary to establish a connection to database first (see above). Further, click the Set Up Field Mapping... to determine correspondence of document fields to parameters of the stored procedure.

In the Set Up Field Mapping... dialog box, select from the list of tables and database stored procedures a required stored procedure for saving data.

Unlike configuring export to columns of a database table directly, the fields proposed for export are parameters of a stored procedure. Procedure parameters are typified. For mapping it is necessary that the parameter type should coincide with the data type of the Document Definition field.

Map the document fields and parameters of the database stored procedure.

note Note: If it is necessary to export not only separate fields from the document, but also tables and complex fields (e.g. fields with a few instances), you must set up correct indexes for connecting child entries with the main document data entry. Specify the return value (@RETURN_VALUE) or an output parameter of the stored procedure as an exportable primary key (ROW_INDEX). Thus, when exporting data, the procedure will write data to the database table and return the identifier of the current entry that will be passed to the stored procedure for exporting child entries.

Exporting to an Oracle database

We recommend using the authorization scheme that was used for users when exporting data to databases.

The following parameters must be specified in order to export data:

1.Role: Connect

2.Privileges:

oCREATE ANY TABLE for creating a table

oINSERT ANY TABLE and UNLIMITED TABLESPACE for exporting data

note Note: you do not need any privileges for setting up the Field Mapping dialog box.

note Note: If you are using an Oracle database, we advise against using field names longer than 30 characters in your Document Definitions. Longer names will be truncated when exporting to Oracle databases.


Exporting documents to a SharePoint library

Show/Hide Hidden Text

ABBYY FlexiCapture allows you to export documents to a Microsoft™ SharePoint document library. As a result, you will get a library of your document images with additional columns for each document containing the values of certain fields.

note Note:

1.The following versions of Microsoft™ SharePoint are supported: Microsoft SharePoint 2013, Microsoft SharePoint 2016, Microsoft SharePoint 2019, and Microsoft SharePoint 365.

2.Contributor permissions are sufficient to change export settings and to export documents to Microsoft SharePoint.

3.Data can be exported to the following types of SharePoint columns: Single line of text, Multiple lines of text, Number, Currency, DateTime, Managed Metadata, ForLookup, or Yes/No (for details, see the Converting data when exporting to Microsoft SharePoint 2013 section below).

4.The option Enable Kernel-mode authentication must be selected for the SharePoint site in the Internet Information Services (IIS) settings. Show picture

kernel

If this option is not selected, the following error will occur during export: "Cannot connect to SharePoint server: Unauthorized access to SharePoint server."

To configure export to Microsoft SharePoint:

1.In the Document Definition editor, select Document Definition → Export Settings...

2.Click Add...

3.Select Export to SharePoint in the Type field.

4.Specify whether export is obligatory.

5.Specify export conditions.

oSpecify whether documents with errors, documents without errors, or both should be exported.

oIf necessary, specify the field values that should trigger this export profile. To do this, select the Field condition option and click Options...

6.Configure your SharePoint connection and map the fields.

oServer URL Enter the address of the server where your SharePoint libraries are located. Below the server address, the connection status is indicated. If the server is disconnected, click the Connect... button to re-establish the connection.

oUse the Connection Settings... button to set up authentication parameters (the Windows authentication parameters are used by default) and proxy settings, if required.

note Note: To connect to Microsoft SharePoint 365, you will need to select the Use SharePoint Online authentication method and provide a user name and a password.

oOnce you are connected to the SharePoint server, select a library from the Select SharePoint library list.

oClick Browse... and locate the desired folder in the library.

oIn the Content type field, select the type of content of your documents (supported starting from Microsoft SharePoint 2007). This will allow you to export values to the fields that correspond to the selected content type.

note Note: Content type is the list of content types selected in SharePoint. The selected content type determines which SharePoint fields are available for mapping.

oSelect a file adding mode from the list.

7.Now specify which Document Definition fields should be exported and where. Click the Field Mapping... button and select the desired options in the Field Mapping dialog box. In this dialog box, you must establish a correspondence between the Document Definition fields and the SharePoint document columns. The Document Definition fields are displayed to the left. For each Document Definition field to be exported (with the exception of groups and tables), you can select an empty SharePoint column.

8.Specify image saving options and click Next>.

oIf you are exporting data to files, specify the destination folder and click Edit... to specify a file name template. If the folder you specify does not exist, it will be created automatically.

note Note: The length of the path to the file (including the file name) cannot exceed the maximum path length permitted by the operating system. The maximum path length in Windows operating systems is 260 characters.

note Note: We do not recommend using the following characters in file names: ~, #, %, &, {, }.

oIf required, specify fields to be concealed upon export.

9.Specify image storage options and click Next>.

oSelect the desired image format, quality, and color.

oTo change the resolution of the source images, select Change resolution to and select the appropriate value from the list.

oIf you select PDF or PDF/A as a storage format, you can create searchable PDF files.

10.Enter an export profile name and click Finish.

Documents will be exported to SharePoint and will receive the Checked In status. Each document will have a corresponding column containing the values from the specified fields. These values can be used for searches and document indexing.

Converting data when exporting to Microsoft SharePoint 2013

You can convert data to one of the following formats when exporting to Microsoft SharePoint 2013:

·Single line of text

·Multiple lines of text

·Number

·Currency

·DateTime

·Yes/No

You can also convert the data type of a cell to a compatible format. For example, you can:

·Convert dates to the DateTime or Text data type.

·Convert checkmarks to the Yes/No or Text data type.

Any exported but unsupported data types will be grayed out.


Export described with a script

To configure export with the help of a script:

1.In the Document Definition editor window, select Document Definition → Export Settings...

2.Click Add...

3.Select Custom export (script) in the Type field.

4.Specify whether export is obligatory.

5.Specify which documents (with and/or without errors) should be exported and click Next>.

6.Select the language of the script.

7.Type the script code in the editor window that appears when you click Edit Script.... Then click Next>.

8.Enter an export profile name and click Finish.

See also:

details Export script

details Creating searchable PDF files


Rules for naming export files

Navigation: Program settings > Document Definitions > Export settings >

Return to chapter overview

File naming options

Show/Hide Hidden Text

File names and paths are generated automatically during export, based on the options specified by the user. File naming options can be specified both for data files and for image files.

note Note: A file naming template for data files can be specified when exporting to files. A file naming template for image files can be specified when exporting to files, an ODBC-compatible database, SharePoint or image files.

note Note: When working with document sets, the file naming options selected for original fields will also be used for index image fields.

Use the Destination and File Naming Template dialog box to specify file naming options and paths. Depending on the selected export type, click Edit... (to the left of the field with the file naming template) or File Naming Options... to open this dialog box.

In the View field, you can choose one of two ways to create a file naming template:

·Simple, [image] details

In this view, you can specify an additional path (not available if you set up export of images together with data to a file), a meaningful part of the file name, and, optionally, identifiers to be added the meaningful part of the name.

To specify an additional path, select Use additional path and then specify if the path should be based on the structure of the Hot Folder (Source path relative to the Hot Folder) or on the name of the batch name (Batch name).

The following can be used as meaningful parts of file names:

·Source file name, which is determined as follows:

oWhen adding files from a folder, the names of source files are used.

oWhen adding multiple files, the name of the first added file is used.

oFor files scanned on a Scanning Station, the name of the scanning source is used and the output file is named {Empty Value}.

oFor files scanned on the Project Setup Station, the names of temporary files are used.

·Document Definition name

·Specified file name, which is a combination of characters specified by the user.

The following can be used as additional identifiers:

·Document identifier (select Add document identifier to file name);

·Index field value (select Add index field to file name, then click ... and select an index field in the Select Fields dialog box).

·Advanced, [image] details

In this view, you can enter a file naming template in the File name template field. Your template can include an invariable part and tags to be replaced by specific information for specific files. You can type tags manually or use the Add tag... and Delete tag buttons.

The following tags are supported:

warning Important! Tag names are case-sensitive.

·<Project> – the name of the project within which the document is to be processed.

·<Batch> – the name of the batch within which the document is to be processed.

·<DocumentDefinition> – the name of the Document Definition applied to the document.

·<ImportSubPath> – the path to the import subfolder (must be specified for images imported from a subfolder).

·<SourceFile> – the name of the source file without the extension.

·<Identifier> – the identifier of the document in the folder.

·<BatchType> – the name of the batch type within which the document is to be processed.

·<Time> – the time of export in the format yyyy-MM-dd_HH-mm-ss.

·<ExportRootPath> – the root export path (as specified on the General tab of the Project Properties dialog box).

·<RegParam:...> – the value of the registration parameter (after the colon, specify the name of the parameter, for example: <RegParam:ParameterName>).

note Note: First, the program will look for the registration parameter in the document. If there is no such registration parameter in the document, the program will look for the registration parameter in the batch.

·<Index:...> – the value of the index field (after the colon, specify the full path to the field in the Document Definition, for example: <Index:InvoiceName\Invoice Layout\Status>).

Make sure that the file naming options you specify do not result in empty file names. If the options you have specified may result in empty file names, the program will display a warning message.

note Note: If document images are exported together with data, the same template that is used for naming data files can also be used for naming image files. To use the same template for both kinds of files, select the Same as data option in the Image Export Settings section of the Destination and File Naming Template dialog box.


Configuring how data is displayed in the document window

Show/Hide Hidden Text

After the data has been recognized, the user will see it in the document window. By default, the data will be arranged sequentially, with captions corresponding to the names of the Document Definition fields. However, the station administrator can change how the data is displayed, rearranging it or renaming elements. This is done by modifying the data form in the Document Definition editor.

To customize the display of data:

·Open the Document Definition editor.

·Click View → Data Form or press Alt+F2 to display the data form.

·Use shortcut menu commands to customize the data form.

For details, see "Data form settings" below.

To restore the default data form view settings, click Restore Default View on the shortcut menu. Any user-made changes will be lost.

Properties of data form elements

Each type of data form element has its own set of properties. Below is a list of properties that are common to all types of elements, properties of groups and properties of label boxes.

To view the properties of an element, double-click it or right-click it and click Properties on its shortcut menu.

Position tab of the Properties dialog box of an element

·Alignment - lets you adjust an element's alignment along the vertical an horizontal axes. You can also use the shortcut menus of elements to change their alignment.

·Margins - changes the distance, in points, between an element and the edges of its cell. If you specify a margin of zero, the program will use the smallest margin that still prevents the elements from overlapping.
You can also change the margins using the commands on the element's shortcut menu, by dragging the element inside its cell, and by moving the right or bottom edges of the cell so that they touch the element.

·Set min size - specifies the minimum width and height of an element. If no minimum size is specified, the size will be determined automatically.
You can also change the minimum width and height of an element by dragging the edges of the element with the mouse. To restore the element's default size, right-click it and click Restore default size on the shortcut menu.
Elements for which the minimum size has been calculated automatically will be highlighted in green on the data form. Elements whose minimum size has been specified by the user will be highlighted in red.

·Fixed width - indicates that the element has a fixed width. This setting will only work if the size of the field is large enough to contain at least one character.
If a very long string of text is to be entered into a field whose width is not fixed, the field will expand accordingly to fit the length of the text. When you specify a fixed width for a field, long text strings will be wrapped to the field size.

Format tab of the Label Box Properties dialog box of a label:

·Text - the text in the label (usually the name of a field or an explanation).

·Font... changes the font, size and font style. The font and font size specified in the Document Definition are used by default. To change these settings, disable the Use default option.

Tip. You can change the label of a field in the data form without changing the name of the field in the document structure. This can be useful if you are working with a Document Definition where you cannot change names of fields, or when you need to specify custom names for columns in tables.

Tip. You can add text such as explanations for fields to the document by right-clicking free space in the data form and clicking Insert Text on the shortcut menu.

Format and Instances tabs in group properties:

·Display settings for groups of fields
You can change the default appearance of groups of fields in the document window. To do this, right-click a group in the data form, open its properties dialog box, select the Format tab and select one of the following items from the Collapse group drop-down list:

oNever - the group is expanded and all fields in the group are visible to the Operator during verification. This value is used by default.

oAlways - the group is collapsed. The Operator will have to expand the group to view the contents of its fields.

oIf there are no field errors - the group is collapsed if the fields it contains have no format errors. Format errors that occurred after the document has been opened will not affect how the group is displayed.

oIf all fields are empty - the group will be collapsed if its fields contain no data.

·Show border shows/hides the border around the group in the document window.
If a group contains instances and its border is hidden, rectangular control elements will appear to the left of the instances. These control elements can be used to delete the instance and add a new instance one position above or below the selected instance.

·Show 'Add new instance' prompt shows/hides a link prompting the user to add an instance for groups or fields with instances.
The element properties described above, the screen resolution, the zoom level of the form and the contents of cells are used to calculate the position of fields on the data form.

Data form settings

Font and font size

By default, recognized text is set to 10pt Arial font. You can change the default settings in the properties dialog box of the Document Definition (click Document Definition → Document Definition Properties... and select the Data Form tab).

·Field data - this group contains font settings for recognized text.

·Field label - this group contains font settings for explanatory text and field labels.

Displaying images of fields in the document window

You can choose to display an image of Text, Barcode, Checkmark and Group of checkmarks fields below recognized data in the document window.

To display an image of a field in the document window, right-click the field in the data form and select Add Field Picture from the shortcut menu.

When processing completes, data extracted from the field will be displayed in the document window and an image of the field will be displayed beneath this data.

Grouping elements

Multiple elements can be combined into a group, and this group can be placed on the data form. You can use commands from the shortcut menu to align the group and specify margins (delete or reset default values). You can also delete or lock the group. Elements of a locked group cannot be moved.

To put elements in a group, select them by clicking them while holding the Ctrl key, right-click one of them and click Group Selected on the shortcut menu. To remove elements from a group, use the mouse to drag them outside of the group.

note Note: When a label or an image is added to a field, these elements will be grouped.

Column display settings

Table columns that were not detected during recognition can be hidden. You can specify which columns to hide:

·In the data form. Open the table's properties and select the columns you want to hide in the Select columns to hide when empty list on the Format tab.

note Note: You can use the Move Up and Move Down buttons to the right of the list to change the order of columns in the recognized document. This feature is not available on web stations.

·In the document window. Right-click the table's title and select the names of the columns you want to hide in the shortcut menu.

Display Settings for Document Definition sections

When working with document sets or multi-section Document Definitions, you may want to hide specific sections on the data form. To do this, open the properties dialog box of the section you want to hide and disable the Show on verification option on the General tab.

Selection order of fields

The default verification order in the document window is from top to bottom, from left to right. The order in which fields are selected when the user presses Tab, F4 or F8 can be changed.

To do this, click Tab Order... on the shortcut menu of the data form. In the dialog box that opens, select the Custom option and use the buttons in the right part of the dialog box to change the order.

·To Beginning moves the selected field to the top of the list or places a group element in the first position in the group.

·Up moves a field one position higher.

·Down moves a field one position higher.

·To End moves a field to the bottom of the list or places a group element in the last position in the group.

·Auto Arrange changes the order of fields in the list to match their order in the document structure.

note Note: This feature is not available in web stations.

Zooming the document image

During verification, you can zoom the document image with the mouse or by using shortcut menu commands.

Double-clicking different parts of the document image changes the zoom level:

·Double-click a field on the image to zoom the image to 100%. The field will be highlighted in yellow. Double-clicking the field again will return the previous zoom level.

·Double-click a field in the recognized data area to zoom the image to 200%. The image will be centered on the field and the field will be highlighted in yellow.

·Double-click an empty spot on the page to change the zoom level so that the entire page fits in the image area. Double-clicking again will change the zoom level to 100% and center the view on the area you double-clicked.

·Double-click an empty space in the image area to zoom the image to 25%.

Tip. You can also zoom in and out by scrolling the mouse wheel while holding the Ctrl key.

You can change the horizontal or vertical order of pages by right-clicking the title of the Document window and clicking Arrange Pages Vertically on the shortcut menu.


Testing Document Definitions

Before starting mass document input, Document Definitions must be tested. Testing is undertaken using documents added to test batches, since these batches work with the local Document Definition version. These batches are available from the View → Test Batches menu of the main program window. You can also access test batches from the Document Definition editor window by selecting Batch → Switch to Test Batch....

warning Important! Only the user who created a test batch can work with that test batch. If required, a working batch can be used as a test batch, in which case it will serve as a source of images for the test batch.

A Document Definition can be tested directly in the Document Definition editor, on the image that is being used to create the Document Definition. To start the test, select Testing → Run Test. The data form will be displayed as in the case of document processing, and format errors, uncertain characters, and rule errors will be displayed.

You can use the Testing → View menu to rearrange the windows and the Testing → Verification menu to navigate the verification items, uncertain characters, and rule errors. Click the Close button or select Testing → Finish Test to stop the testing.

warning Important! In testing mode, changing a field border will not cause the program to recognize the field anew, as is the case when you change field borders in the document window.

To test your Document Definition on other images, select a test batch (you can do this by selecting Batch → Switch to Test Batch... in the Document Definition editor). Before the batch selection dialog box is displayed, the program checks the current Document Definition for errors. If the Document Definition is error free, it is saved and the batch selection dialog box is displayed. When you select a batch in this dialog box, the main program window will become active and automatically switch to the newly selected batch.

note Note: If necessary, documents can be copied or moved between batches. During these operations, all information about the document, such as the matched Document Definition and recognized data, is preserved. To copy or move documents (e.g. from a working batch to a test one for debugging purposes), select them in the list when viewing the contents of the batch, then press Ctrl+C (to copy) or Ctrl+X (to move), click [image] or [image] button on the toolbar or use the Copy or Cut item of the Edit menu. Next, open the batch where you want to copy or move documents and press Ctrl+V, click [image] button on the toolbar or select the Edit → Paste item in the main menu.

We recommend checking each Document Definition with at least 20 document images (if documents are completed by hand, it is preferable to use documents completed by different people).

Testing is required to determine whether:

1.There is a sufficient number of marked anchors and identifiers for certain application of a Document Definition to an image.

2.The field properties have been configured correctly.

3.The rules have been configured correctly.

4.Export has been configured correctly.

During testing, you need to perform the entire sequence of actions performed when processing documents.

If rule errors, incorrect field values, etc. were detected during testing, you must edit the Document Definition to correct them.

Only after elimination of all of the problems detected can you publish the Document Definition and begin mass input of documents.

See also:

details Operating a configured project


Localizing a Document Definition

A localized Document Definition is a Document Definition that has been translated into a language other then the language in which it was originally created. When installing ABBYY FlexiCapture, a UI language can be selected. If a Document Definition is available in the selected UI language, this localized version will be used by the product.

When localizing a Document Definition, the following items are translated:

·field captions, buttons, and text in the data form

·field names in the dialog box where data set records are added and edited

·field names in the dialog box where the vendor linked to a training batch can be changed

·field captions displayed to the user when specifying regions that were not detected automatically

·field captions in the database lookup dialog box invoked from the document editor

·column names in the drop-down list displayed in the database lookup dialog box

·rule names displayed to the operator when rule errors occur

·user script messages (for example messages displayed by script rules, export settings and event handlers)

A user editing a Document Definition always works with the original unlocalized values. An operator working in the document editor sees the localized values displayed in the language of the operator's UI.

The localization process

Document Definitions are localized as follows:

1.Identifiers of strings that need to be localized are exported to a text file.

2.Localized text is provided for each string identifier in the text file.

3.Localized text and corresponding identifiers (collectively referred to as the "localization") from the text file are exported to the Document Definition.

note Note: The localization is only exported to the Document Definition that contains strings with identifiers used in the localization.

The localization file

The localization file is a TXT file that contains a list of localized strings. Strings in this file are sorted according to the type of interface element in which they appear (field names, Document Definition name, shell messages and script messages) and then alphabetically by name. The Localization Options dialog box contains controls for creating and managing localization files.

Example of a string in a localization file that hasn't been translated yet:

BANK_CODE ,"Код банка"

In this example, BANK_CODE is the identifier of the string. No other field in the Document Definition can have the same identifier. This identifier is generated automatically in one of two ways: based on the name of the field, or using the template FC_<number of the field>.

The identifier is followed by a comma, which is followed by the string which will be displayed to the user, enclosed in quotation marks ("Bank code"). This string is the part that is translated during localization.

When the string is translated and imported back into the Document Definition, a comment delimiter (two slashes) followed by the original string ("Bank Code") is automatically added after the localized string. The original string is the default string which is displayed to users editing the Document Definition.

The string above will look as follows when localized to Russian:

BANK_CODE ,"Код банка" // "Bank Code"

Localization file syntax:

·The identifier of a string and the string itself are separated by a comma (,)

·Comments are preceded by a comment delimiter (//)

·Strings are enclosed in quotation marks ("String")

·Quotation marks inside strings have to be preceded by a backslash (\")

·Backslashes in strings have to be preceded by a backslash (\\)

·Line breaks are indicated with the newline character sequence \n.

Using a localization file to Localize a Document Definition

Creating a localization file

1.In the Document Definition Editor, click Document Definition → Localization → Localization Options....

2.Select a language for which you want to create a localization file (languages without a localization file have the Nonlocalized status) and click the Export... button.

3.In the dialog box that opens, specify the folder in which you want to save the localization file and the name of the file.

Editing a localization file

1.Open the localization file in a text editor and translate the strings.

2.Save the file. Make sure it is encoded in Unicode.

Importing a localization file to a Document Definition

1.In the Document Definition editor, click Document Definition → Localization → Localization Options....

2.Select the language for which you want to import a localization file from the list and click the Import... button.

3.Specify the path to the localization file in the dialog box that opens.

4.After the localization file has been imported, the status of the language will change to Localized.

5.Save the Document Definition.

After a localization file has been imported, the data form in the Document Definition editor will still contain default (unlocalized) text. The localized text will only appear in the document editor. Users of the Project Setup Station can only view localized text when testing Document Definitions and only if the localization's language is selected as the interface language of ABBYY FlexiCapture.

If a localized string is longer than the original string, fields on the data form will be moved to accommodate the longer string.

Deleting a localization

1.In the Document Definition Editor, open the Document Definition and click Localization → Localization Options....

2.Select the language of the localization you want to delete (languages with available localization have the Localized status).

3.The status of the language will change to Nonlocalized.

Localizing messages from user scripts

To localize messages from user scripts (such as script rules and event handlers), create an identifier for each message, provide localized text for each message, and reference the identifiers of messages in the script's code.

To export messages from user scripts to a localization file, click Document Definition → Localization → Localization Options.... You can then translate the messages and import the localization file to the Document Definition as described in the "Importing a localization file to a Document Definition" section of this article.

Localized user script messages will be displayed when the corresponding interface language is selected in ABBYY FlexiCapture.

In the Document Definition editor, click Document Definition → Localization → Localizable Script Messages....

A dialog box containing a list of all possible error messages will open. Click the Add..., Edit... and Delete buttons to edit messages. The dialog box that opens when you click Add... or Edit... lets you change the name of the message and its default text.

Calling localized messages from scripts

To call a message from a user script, use the FCTools.LocalizedStrings object. This object uses the IProperties method.

The following code sample returns a localized message that has the identifier MY_ MESSAGE_1:

FCTools.LocalizedStrings.Get ("MY _MESSAGE_1")


Classification

Classification is the process of putting document images or text documents into certain predefined categories.

Documents can be classified manually or automatically.

Manual classification of large amounts of documents is

·labor-intensive

·costly

·slow

·error-prone when working against tight deadlines

ABBYY FlexiCapture 12 includes classification technologies that can be easily trained to classify documents without creating complicated rules or FlexiLayouts in ABBYY FlexiLayout Studio.

The ABBYY FlexiCapture classification technologies are highly flexible and can be used to distinguish:

·Document types (e.g. you can separate passports from invoices)

·Document variations (e.g. you can detect invoices received from different vendors or driver's licenses issued in different states)

·Document boundaries (e.g. you can detect the first and the subsequent pages of documents of each type).

See also:

details Supported classifier languages


Classification scenarios

The ABBYY FlexiCapture classification feature can be used to implement the following scenarios:

·Automatic sorting of incoming documents

Example. The following two types of documents are received — invoices and contracts. ABBYY FlexiCapture automatically separates documents of one type from the other. The sorted documents are then forwarded to the appropriate departments responsible for their processing. Invoices should not be forwarded to the legal department, as this will distract the lawyers from contracts and delay the processing of the misplaced invoices by the accounting department.

·Assembly of page images into documents followed by automatic sorting

Example. Scanned document pages are fed to ABBYY FlexiCapture. The pages are not assembled into documents during scanning. Instead, the classification feature is used to classify the pages. Then ABBYY FlexiCapture assembles the classified pages into documents and determines the type of each document.
Note that no classification technology is 100% accurate, so documents classified with low-confidence have to be checked by a human operator. As an alternative solution, you can capture data from low-confidence documents and perform data checks. If the checks are passed, the documents will be deemed to have been classified correctly.

·Detection of documents that need to be processed

Example. A PDF file is fed to ABBYY FlexiCapture which contains various documents related to a particular case, such as a mortgage application, and ABBYY FlexiCapture detects documents of certain types (e.g. passport, application form, bank statement, etc.). Classification is used to quickly find the relevant pages from which data should be extracted. The remaining pages are saved to a searchable PDF file.

·Processing support requests

Example. A bank receives various types of support requests from its customers. Support requests are automatically classified based on the their content (new payment details, bounced payment, loss of a credit card, etc.). Urgent requests are separated from non-urgent ones and forwarded to their respective managers. Additionally, those requests are identified which an automatic reply can be sent.


Classification profiles

ABBYY FlexiCapture supports the following classification profiles:

·Image

This profile is suitable for documents that have apparent visual differences. You can use this profile for documents that a human can identify just by looking at them, without reading their text, such as passports and driver's licenses.

·Text

This profile is suitable for documents that are not visually distinct and need to be read in order to be identified. This profile uses OCR and statistical and semantic analysis to classify documents with different text content, such as various types of contracts.

·Combined

This profile is a combination of the Text and Image profiles. It can operate in one of two modes, fast or thorough:

oIn fast mode, ABBYY FlexiCapture first applies the Image profile and then uses the Text profile for documents that have been classified with low confidence.

oIn thorough mode, ABBYY FlexiCapture applies both the Image and Text profiles simultaneously.


Precision/recall balance

Cases where a classifier fails to classify a document correctly fall into two categories:

I.The classifier assigns the wrong class to the document, e.g. a type A page is classified as type B.

II.The classifier fails to assign any class to the document.

Two parameters derived from these categories can be used to describe classification quality:

·Precision is the ratio of documents that were assigned a specific class correctly to all of the documents that were assigned that class (i.e. the sum of documents that were correctly assigned that class and documents that were mistakenly assigned that class).

·Recall is the ratio of documents that were correctly assigned a class to all of the documents of that class.

You can adjust classification settings to prioritize recall or precision.

Prioritizing precision

If you want the number of documents that receive the wrong class to be as low as possible at the expense of some documents not receiving any class at all, use the High precision setting.

Example

A company needs to classify invoices and contracts so that they can be sent to departments responsible for handling each type of document.

If FlexiCapture classifies an invoice incorrectly, the invoice will not be sent to the right department and will not be paid. If FlexiCapture does not classify the invoice at all, the invoice can be classified manually and sent to the right department.

In this case, avoiding incorrect classification is more important than classifying as much documents as possible.

Prioritizing recall

If you want the number of documents that are not assigned any class to be as low as possible at the expense of some documents being assigned the wrong class, use the High recall setting.

Example

A company needs to identify relevant loan documents that need to be processed among various other loan documents.

If FlexiCapture does not assign a class to a relevant document, it will not be processed.

Processing of documents that were assigned the wrong can be avoided using additional processing, e.g. by applying a FlexiLayout, using validation rules and using manual processing.

In this case, it is more important to assign a class to as much relevant documents as possible than to assign the correct class as frequently as possible.

By default, Classification priority is set to balanced.


Creating a classifier

Classification technology allows ABBYY FlexiCapture to detect the class of an input document. Classified documents can be matched to the appropriate Document Definition so that their data can be extracted.

note Note: The classification technology processes documents one page at a time, but the classified pages can be assembled into documents based on their class and then processed as usual.

Creating a classifier

To create a classifier in ABBYY FlexiCapture, complete the following steps:

1.Set up the classifier based on how you want to use it.

2.Load the images.

3.Train the classifier. To assess the quality of your classifier, create a test batch. This batch should be made up of documents that were not used in the training of the classifier. Then classify the documents in the test batch using the trained classifier.

4. Analyze the classification statistics. If required, adjust or modify the classifier settings.

5.Map the classes to the appropriate Document Definition sections.

If needed, you can also export the classifier to FlexiLayout Studio.


Classifier setup

Show/Hide Hidden Text

Classifiers can be used for a variety of purposes. Set up your classifier based on how you want to use it.

A classifiers can detect:

·Document types. Example: input documents have to be classified as either invoices or passports.

·Document variants. Example: input documents have to be classified as invoices from different vendors or driver's licenses from different states.

·Separate documents in a stream of input pages. Example: FlexiCapture constantly receives page images. Each page needs to be classified as the first or a subsequent page of one of several types of documents.

The setup procedure for each type of use is described below.

Document types

1.Create a Document Definition for each type of document.

2.Create sections for each Document Definition.

The classifier will classify each page according to the section it belongs to.

Document variants

1.Create a Document Definition for each type of document.

2.Create sections for each Document Definition.

3.Create document variants for each section type.

The classifier will classify each page according to the document variant it page belongs to.

Separate documents in a stream of input pages

1.Create a Document Definition for each type of document.

2.Create sections for each Document Definition.

The classifier will determine which section each page belongs to and whether or not it is the first page in a document, and then classify it according to this data.


Setting up your classifier and loading images

For each classifier, you need to create a training batch. To create a training batch:

1.Switch to the classification training batch view by doing one of the following:

§ clicking the [image] button on the toolbar;

§selecting Open Classifier Training Batches in the View or Classification Training menu;

§using Ctrl+Alt+Shift+B shortcut.

2.Right-click inside the pane with the list of batches and click New Batch... on the shortcut menu.

3.Specify a classification profile by selecting Change Classification Profile in the Classification Training menu or in the classifier batch shortcut menu.

4.Specify precision/recall balance by selecting Change Recall/Precision Priority either in the Classification Training menu or in the classifier batch shortcut menu.

5.Add training images to the batch by doing one of the following:

§Clicking the Load Images from Folders button on the toolbar ButtonLoadfromfolder or selecting Load Images from Folders in the File menu. Then, choose the folder containing the subfolders with the appropriate images. Each subfolder should only contain images belonging to a single class.

§Clicking Load Images... in the batch context menu or in the File menu.

note Note: Image pre-processing is only available for pages that have been added to the batch using the Load Images... option. Images that have been added using Load Images from Folders are processed according to the Project properties.

note Note: If you selected the Image or Combined classification profile, the training images should have the same color scheme (e.g. black-and-white) as the images that you want to classify.

6.Set a reference class to the images using one of the following methods:

§By clicking Set Class... in the Classification Training menu (you can also right-click a document and then click Set Class... on the shortcut menu). You can use sections or section variants as reference classes. Select a reference class from the list or create a new one and link it with a section or a section variant. The reference class must have the same name as the corresponding Document Definition.

§By subfolder name. If the images have been added to the batch using the Load Images from Folders feature, you can assign classes based on the image’s subfolder name. Select the appropriate images and click the ButtonClassesfromsubfolders button on the toolbar. Alternatively, select Classification Training → Set Class Based on Subfolder Name.

note Note: If the class name is the same as the name of the corresponding document definition section, they will be linked automatically when you click Autocorrect... in the Class Mapping dialog box. For more details, see Mapping classes to Document Definition.

Assigning reference classes based on classification results

If you have a large number of unsorted images that you are planning to use for classification training, you can use some of them to train your classifier and assign reference classes based on classification results to the rest:

·Set reference classes to some of the images manually using Set Class....

·Launch the classification training (the Train ButtonTrain button on the toolbar; alternatively, Train in the Classification Training menu or in the shortcut menu).

·Select the remaining images without a reference class and launch the Classify feature by clicking the ButtonClassify button found on the toolbar. Alternatively, you can select Classify in the Classification Training menu or in the context menu. A result class will be assigned to the images based on the trained classifier.

·For the selected images, click Set Class Based on Classification Result in the Classification Training menu or in the shortcut menu. The images will then be assigned the same reference class as their result class. For images that have had an incorrect result class assigned, you will have to set the reference class.

note Note: If you want a classifier to use existing recognition results while matching Document Definitions, select the Prefer settings from batch type option on the Classification tab in the properties of classifier training batch (a batch context menu → Properties…). This way the program synchronizes settings of the full-text recognition and allows you not to recognize documents once again and considerably save time required for classification.


Training your classifier

Show/Hide Hidden Text

To start training a classifier, click Classification Training → Train.

note Note: You can train the classifier on specific documents by selecting them and clicking Classification Training → Classify.

Before you can use the classifier that you have created, you need to train it and test it using examples of real images. Classifier training is based on the reference classes specified in the classifier's settings. When training a classifier, a document should be in one of the following states:

·Unused – the document is not used when training a classifier. In the thumbnail view mode (the [image] button on the toolbar), the Unused state will be displayed using the following icon: unused

·For Testing – the document is used for classifier testing. In the thumbnail view mode, the For Testing state will be denoted by the following icon: test

·For Training – the document is used for classifier training. This status is assigned to documents by default when they are loaded into a classifier training batch. In the thumbnail view mode, the For Training state will be denoted by the following icon: train

Before launching the training, some of the documents need to be transferred to the For Testing state. This is necessary for further analysis of the classification results and improving the quality of the classifier.

You can automatically split a batch into training and testing documents. To do this, click the Benchmark ButtonBenchmark button on the toolbar or select Classification Training → Benchmark in the main menu. In the new dialog window, specify the percentage of documents that you need to use for training and for testing. You can also specify inside each class a minimum number of documents to be used for training after a batch has been split (this number is set to 1 by default). After all values have been set, you can launch the training by selecting Run benchmark test and then clicking OK. If you just want to assign document states and then carry on setting up your classifier, select Only split documents and then click OK.

You can also split a batch manually by selecting the appropriate documents and clicking Set Document State in the shortcut menu or in the Classification Training menu.

After you have set up your classifier, launch the classifier training by doing one of the following:

·Click the Train ButtonTrain button on the toolbar;

·Select Classification Training → Train;

·Select Train in the shortcut menu.

note Note: If needed, any page can be classified regardless of its assigned state. To do this, selecting them and clicking Classify ButtonClassify on the toolbar or in the Classification Training menu. This might be necessary for assigning reference classes to pages based on their classification, as well as for testing the classifier you have created using particular pages.

The names of the resulting and reference classes (or the absence of both) will be highlighted using the classification results color.

Examples...

o [image] – the resulting class is highlighted in bright red since it does not match the reference class. The page’s state is set to For Testing.

o [image] – the resulting class is highlighted in dull red since it does not match the reference class. The page’s state is set to For Training.

o [image] – the resulting class is highlighted in green since it matches the reference class. However, the page’s state is set to Unused, hence the reference class name is highlighted in grey.

After the classifier has been tested using the test batch, you can view the statistics and analyze the classification results.


Analyzing classification results

Show/Hide Hidden Text

When the training is complete, classification statistics are displayed. You can use these statistics to improve the classifier.

To open the classification statistics window either:

·Select Classification Training → View Statistics in the main menu, or

·Click the statistics Statistics button on the toolbar.

The following information is available:

oF-measure, Recall, and Precision – The higher these values, the more precise the classification results. (For more details about how the F-measure is calculated, see Glossary, Classifier F-measure).

oThe number of pages with reference classes

oPage classification results:

§True Positive – The number of pages to which the reference class was assigned.

§False Positive – The number of pages to which a class other than the reference class was assigned.

§False Negative – The number of pages with a reference class to which no class was assigned.

§True Negative – The number of pages with no reference classes to which no class was assigned.

Use the drop-down list in the top left corner of the Classification Statistics window to choose if you want to show the statistics for For Testing pages, for For Training pages, or for both.

Detailed information about the ratio of reference classes to result classes, as well as information about the results of classifier training is presented in three different ways:

1. Confusion Matrix. The confusion matrix is a visual representation of the documents that are most often confused by a classifier. The values in the matrix cells represent the ratios of reference classes to result classes. Green cells show the number of pages to which a class was correctly assigned. Red cells show the number of pages with confused classes — classes that have been incorrectly assigned to pages with a reference class by the classifier.

Tools for working with the Confusion Matrix

·The Confused only option disables the visibility for classes, where the result classes for all pages corresponded to their reference class.

·The Pages and Percent buttons let the user switch between number and percentage data regarding the number of pages with correctly identified and confused classes (the percentage is calculated using the ratio of pages with a correctly assigned class relative to all pages with the same reference class).

·The matrix scale can be managed as follows:

o [image] - displays the matrix using a fixed scale;

o [image] - displays the whole matrix;

o [image] - zoom in;

o [image] - zoom out.

Show the Confusion Matrix

2. Statistics by Class. A table containing statistics for pages for which the result class did not match the reference class. Lets the user identify the classes that cause the most errors for a given classifier. You can sort by number of confused pages, as well as by the ratio of confused pages to the total number of pages of this reference class.

3. Confusing Classes. This tab contains a list of all classes that have been incorrectly assigned by a classifier. Using this data, you can determine which classes are most often confused with each other.

Double clicking either a matrix cell or a data table row will open the pages for the selected classes. The reference and result classes search row is available on all tabs. You can also sort any data table to find out which classes are the most problematic.

For your convenience, you can export the statistics to a text file by clicking Export Statistics... in the Classification Statistics dialog box. In the dialog box that open, specify a name and location for the exported file and choose if you want to save it as a CSV or TXT file. You can also choose which statistics to export (select one or more options):

·Summary statistics for major classification parameters: F-measure, Recall, Precision and classification results broken down by page.

·Major classification parameters broken down by class.

·Confusing classes – the number and percentage of pages for each confusing class.

·All classes – the number and percentage of pages for each class.

Statistics will only be exported for the pages with the document state selected in the Classification Statistics dialog box.

warning Important! You need to initialize the classifier training again if any of the following actions have been carried out:

·Added/removed documents with the For Training assigned;

·The For Training state has been assigned to or removed from a document;

·Classes have been added, deleted, or merged;

·A different reference class has been assigned to a document;

·A classification profile and/or the precision-recall priority have been modified.


Improving your classifier

Show/Hide Hidden Text

Tips for improving classifiers

If you are not satisfied with the results obtained with your classifier, try the following:

·Check whether the selected classification profile is appropriate.

·Adjust the recall/precision ratio.

·Check whether the reference classes have been assigned correctly.

·Use a larger number of sample documents. Make sure your training batch includes as many document variants as possible. The larger and more varied the training batch, the more document variants of the same class the classifier will detect.

Document Definition confidence

Document Definition sections mapped to document classes will be matched against their document sections with a certain degree of confidence. The names of low-confidence sections will be marked in red. If Automatically confirm section type when matched is enabled and the Document Definition section mapped to the selected document class has been successfully matched, the name of the section will not be highlighted in red. In this case, the class will be confirmed during Document Definition matching, even if initially the class was determined with low-confidence.

More about the "Automatically confirm section type when matched" option

The Automatically confirm section type when matched option is located on the General tab in the Document Definition section properties. Selecting this option will speed up manual verification, but it should be selected for sections that can only be matched to documents for which a given Document Definition was created. This can be a fixed Document Definition for a fixed section with identifiers, or a FlexiLayout section containing required elements. Operators will not need to confirm such matches manually. We do not recommend selecting this option for Document Definitions that can be matched to any documents.

If a Document Definition has been matched to a page or document with low-confidence, you have the following options:

·Click the Confirm Document Definition command on the shortcut menu of the page or document.

·Modify the low-confidence page (for example, by changing the section type or moving the page to another document).

·Change the Document Definition selected for the page or document.

note Note: Once an operator corrects all errors so that there are no more sections with unconfidently matched Document Definitions, the "low-confidence" error will be removed automatically.

In the errors pane, an assembly error will be reported for documents with low-confidence Document Definitions. Any documents that have other errors besides low-confidence Document Definitions are sent to the assembly verification stage. Any document that have no other errors apart from low-confidence classification are sent to the verification stage.

Detecting errors in the classifier training batch

Classification errors are mostly caused by incorrectly assigned reference classes or by a lack of sample pages in the training batch. To detect these sorts of errors, you can ask the program to find pages that are similar to a misclassified page. To do this, right-click a misclassified page and then click one of the following three commands on the shortcut menu (these commands can also be accessed via the Classification Training menu at the top):

·Show Similar Pages looks for similar pages in the entire batch, regardless of the reference or the result class of the selected page.

·Show Similar Pages from Reference Class looks for similar pages with the same reference class as the reference class of the selected page.

·Show Similar Pages from Result Class looks for similar pages with the same reference class as the result class of the selected page.

note Note: The program will look for similar pages in all documents regardless of their state, whether they are marked as For Training, For Testing or Unused.

The similar pages will be shown in descending order from most similar to least similar:

Practical example

Suppose you spot a misclassified page in the confusion matrix and this page has ID for its reference class and Invoice for its result class.

Open the misclassified page by clicking on its cell in the confusion matrix.

Right-click the page and then click Show Similar Pages from Result Class on the shortcut menu (this command can also be accessed via the Classification Training menu at the top). This will show all the pages in the classifier batch that are similar to the ID page but have Invoice specified as their reference class. The pages will be shown in descending order from most similar to least similar.

Now you will be able to identify the pages with incorrectly assigned reference classes that caused the ID page to be classified as an invoice. Change the reference class where appropriate and retrain the classifier.

Clicking the Show Similar Pages from Reference Class command will check whether a page is unique. For example, it can be used to check if there are any similar ID pages in the training batch that have ID specified as their reference class. If no similar ID pages are found, add the rogue page to the training batch and retrain the classifier.

Clicking he Show Similar Pages command will display all similar pages, regardless of their reference or result class. This will show all the pages in the classifier batch that are similar the passport page, but for which reference classes other than ID have been specified. Change the reference class where appropriate and retrain the classifier.


Exporting and importing classifiers

In order to use a classifier in other FlexiCapture projects, you need to export it. To do this, select Export Classifier...either on the Classification Training menu or on the shortcut menu of the batch.

In the window that opens, choose which format you want the classifier file to be saved in:

·ABBYY FlexiCapture Classifier Files (*.cfl) – Select this format if you need to use the classifier in a different FlexiCapture project. If you need to the export images along with the classifier, make sure that the Export Images option is selected. You must export the images if you need to train your classifier. note Note: Class mapping is not preserved during export. When importing a classifier to a new project, you will need to remap your existing classes to their appropriate Document Definition sections.

·ABBYY FlexiLayout Studio Classifier Project Files (*.fcp) – Select this format if you need to use the classifier in FlexiLayout Studio.

FlexiLayout Studio provides additional tools for customizing classification through the use of rules and also allows the user to anonymize the training batch if the batch documents are confidential or contain personal information.

Once you have finished editing the classifier with FlexiLayout Studio tools, the classifier can be exported into a CFL file and subsequently imported into a FlexiCapture project.

To add a classifier to a FlexiCapture project, do the following:

1.Open the project.

2.Switch to the Classifier Training Batches view by either clicking the appropriate toolbar or selecting Classifier Training Batches on the View menu (alternatively, you can press Ctrl + Alt + Shift + B).

3.Create a new batch if necessary.

4.Right-click the batch and select Properties....

5.On the Classification tab, and click Load....

6.Choose the CFL file containing your classifier.

note Note: If you need to import the images along with your classifier, make sure that they are located in the same folder as the classifier file. If anonymized images are used, you will need to select Use Anonymized Images for Training on the Classification Training menu after adding the classifier. The images will not be displayed in the batch, but will nevertheless be used for classifier training.

If you need to use multiple classifiers at once, you will need to set up a classification script (see Document Classification Script for details).

note Note: If multiple classifier batches are specified in a classification script, the auto-learning feature will be disabled.


Mapping classes to Document Definition sections

Show/Hide Hidden Text

The following scenarios are possible when mapping classes to Document Definition sections:

1.You are using a ready-made classification model that was trained in, say, ABBYY FlexiLayout Studio.

In this case, all the necessary classes have already been created and all you need to do is map these classes to their respective Document Definition sections. To do this:

a)Click the ButtonMapping button on the toolbar or select Class Mapping... in the Classification Training menu. Next, in the Class Mapping dialog box, click the Autocorrect... button to open the Correct Links dialog box. In this dialog box, select the Match names of classes to names of Document Definition sections option.

More information about the Correct Links dialog...

· Match names of classes to names of Document Definition sections - select this option to automatically link classes and sections that have identical names.

oWhen matching, ignore this text in names of classes for first pages - select this option and specify the text that should be ignored in the names of the first pages' classes when comparing classes and sections. If, for example, you have two classes — passport and passport_firstpage, and you want to link both of them to the passport document definition, select this option and specify "_firstpage" in the field. Then, when classes are linked, this text will be ignored, and both classes will be linked to the same definition.

·Remove duplicates - select this option to automatically remove duplicate links.

b)In the Class Mapping dialog box, check to make sure that each class has been correctly mapped to its respective Document Definition section.

warning Important! If you see a class name displayed in red, this class has not been mapped to any sections in the Document Definition. Possible reasons:

·The name of the class may not match any section names (e.g. due to a typo). If this is case, map the class to its section manually, optionally correcting the typo.

·There is no section in the Document Definition to which the class can be mapped. If this is the case, create the section manually and map the class to that section.

To map a class to section manually, complete the following steps:

·In the Class Mapping dialog box, click the Add link... button.

·Select a class and its corresponding Document Definition section.

note Note: You can select the Show unmatched only option to display only unmapped classes and sections.

·Click OK.

2.You are using a previously trained classification model in a new project.

In this case, some of the necessary classes have already been created, but you need to add or remove some classes and Document Definition sections. To do this:

a)Click the ButtonMapping button on the toolbar or select Class Mapping... in the Classification Training menu. Next, in the Class Mapping dialog box, click the Autocorrect... button to open the Correct Links dialog box. In this dialog box, select the Match names of classes to names of Document Definition sections option.

b)If you need to create a new class or section, click the New class... button in the Class Mapping dialog box. Then,

·Create a new class and click Add.

·To create a new section, select the name of the appropriate Document Definition from the list and specify a name for the new section (you will also need to specify a recognition language and mode).

·Specify the required parameters:

oSelect the Variant parameter if you need to create several variants of the class. For example, you may want to create variants for bank statements received from different banks (they will typically have the same set of fields, but each bank will have its own field layout).

oSelect the Page position parameter if the first page of the document is easy to identify visually. This parameter is useful when assembling multi-page documents. The classifier will correctly identify the first and last page of the document. The class and section of the document will be identical, but this parameter will be different (First only/ Any position).

·Click the Add Link button.

d)Once all the classes have been mapped to their respective sections, click OK.

warning Important! If there are identical "class-section" mappings, their names will appear in red. Click Autocorrect... → Remove duplicates to remove the duplicates.

3.You are creating a new classification model because you need to train the program to extract fields and classify documents. In this case, you need to create the necessary classes and Document Definition sections and map each class to its section. To do this:

a)Click the ButtonMapping button on the toolbar or select Class Mapping... in the Classification Training menu. Next, in the Class Mapping dialog box, create the missing sections and classes.

b)Sections need to be created for classes without sections. Choose one or several classes without any assigned sections and click Autocreate sections. In the new dialog box, choose one of the following available options for creating a section:

·Based on Settings –

oLanguages – It is necessary to set a correct language for recognition to proceed without errors. This property defines both the language itself and other settings like date format, currency, etc.

oSelect a Recognition mode from the list.

oPrefer settings from batch type – Select this option if you want to synchronize full-text recognition settings. note Note: Disabling the synchronization may lead to slower template matching.

·Based on existing Document Section Definition – choose this option if the project already has a section with the correct full text recognition sections. The created section will be identical to the selected one in everything except the name.

c)Click OK. This will create a document definition and a section with names identical to the selected class.

d)If you need to create classes for existing unlinked sections, select one or several sections and click Autocreate classes. New classes will be created for the selected sections, which will have a name consisting of the document definition and the section name

e)Modify and/or delete the appropriate classes and links if needed.

note Note: The Class Mapping window can also be used to merge classes. To do this, select the appropriate classes and click Merge classes. In the dialog box, specify a name for the new class. If the merged classes were linked to different document definitions, then the new class will be linked to each one of them.


Classification based on a database of companies

When to use company-based classification

Classification assigns each document to a particular class (see the Classification section for more information). Each document issuing company can be treated as a separate class.

Typically, documents originating from the same company will look similar and will have the same types of fields located in the same positions, which makes data extraction easier.

Documents can be classified using a database of companies. This database should be included in the respective ABBYY FlexiCapture project. To populate this database, you can use the list of companies stored in your ERP system. ABBYY FlexiCapture will periodically sync the database of companies with the latest data from your ERP system. If you don't have a database of companies yet, you can create it while capturing data from documents, adding companies into a database at the document verification stage.

The program will search for the necessary fields only on the first and the last page of each document, as company information is usually to be found on these pages.

Company-based classification has the following advantages over other classification methods:

·There is no need to collect sample document images in order to create a training set, which may require a lot of time and effort.

·Documents can be classified based on up to 100,000 classes, which is much more than in the case of image- and text-based classification.

Company-based classification can be used for field extraction. Each company will have its own section variant, for which you can train or create a separate FlexiLayout.

note Note: Within a project, the following can be used simultaneously:

·a document type classifier at the batch type or project level

·a company-based classifier for documents of the same type at the Document Definition level

First, the program will run the document type classifier to determine the class of the documents at hand, and then it will run the company-based classifier for the documents of the required class.

The document variants that the classifier detects based on the database of companies uniquely identify the trained FlexiLayouts to be used for training. This means that field training will be carried out independently for each company.

Configuring company-based classification

Company-based classification is performed within a Document Definition, i.e. for documents of the same type. Documents of the same type have identical sets of data fields to be extracted (see the Document Definitions section for more information).

To classify documents using a database of companies:

1.Right-click a document section and click Properties or open the Document Definition editor and click Document Definition → Document Definition Properties.

2.On the Data Sets tab, select a data set from the list and click the Set Up... button.

3.Select the Use database of companies option. By default, the required columns and their types are already specified in the data set. (A data set is essentially a table containing a list of fields where to look for companies; users cannot modify this table.)

4.To connect the data set to an ODBC-compatible database, you need to map each field in the data set to its counterpart in the database. For detailed instructions, see Using vendor and business unit databases.

note Note: The program will look for companies whose data set fields have been mapped to their matching database fields. You must map at least one field (e.g. the company name). If a data set field has no matching database field, specify None when mapping such a field.

note Note: Only certain fields are used to look for company information on a document. These fields have a small lock icon next to them. You can add your own custom fields when configuring company based classification, but these fields will only be used to display information.

5.To search for company names which have more than one variant, use normalization, a process which reduces all name variants to one standard name. In the Data Set Column Mapping dialog box, specify the necessary type of normalization in the Normalization field (see Normalization of values in data sets for more information).

Sometimes, a company's name can be known in advance — for example, from the data source parameters (i.e. the scanning operator's name or the sender's e-mail address).

ABBYY FlexiCapture has a feature that allows the supplier and the company subdivision to be specified explicitly prior to automatic detection.

To explicitly specify the subdivisions, set the value of the fc_Predefined:PredefinedSectionVariantId document registration parameter to the identifier (Id) of the appropriate entry in the Dataset. In this case, automatic company detection procedure will still be performed for the given entry. As a result, you will get the explicitly specified company name and a confidence value which indicates how well the explicitly specified name matches the name extracted from an image.

note Note: This method can only be used if only one section in a document has multiple variants.

Checking and editing company-based classification results

No training is required when classifying documents using a database of companies, as the program will look up companies in a predefined list of company names. Classification errors can be corrected by operators. Whenever the program attributes a document to the wrong company, the operator can select the correct company name and save it to the database. The program will then use this correct information in future classifications.

To enable the operator to correct classification errors, you need to display classification results on the data form and add a button that will initiate field look-up. To do this, complete the following steps:

1.Create a service field.

§In the Document Definition Editor, click Create Field → Service Field. Next, in the field properties, click the Data Source tab and select Flexible Section Variant ID from the Source list.

§Create any service fields as may be necessary to identify the company (e.g. IBAN and VATID).

2.Create a database check rule:

§Right-click the group, click Properties..., click the Rules tab, and then click the New Rule... button.

§Select Database Check from the list and click OK.

§In the Data source field, select Data Sets. Then in the Data Sets field, select the necessary data set.

§In the Field where to save record ID field, select the service field that you created in step 1.

§Click the Add button and specify the necessary document and database fields. If the values of the document and database fields are different, select the search and replace options (Enter value from database → If values are different).

Now any fields detected by the classifier for company-based classification purposes will have a region.

3.Add a button to the data form that will open the Look up dialog box:

·Right-click anywhere on the data form where you want to place the button and click Insert Button on the shortcut menu.

·On the Format tab, select the database check rule you created in step 2.

·On the Position tab, specify a name for the button.

Now a verification operator will be able to click this button on the data form to open the Look up dialog box.

Improving company-based classification

Specifying keywords and regular expressions

You can specify keywords and regular expressions to improve company detection. For keywords, use strings that uniquely identify a company, such as data from VATID or IBAN fields.

Editing company records

Another way to improve company detection is by editing the company records stored by ABBYY FlexiCapture. For each company, multiple name variants and addresses can be specified. This can be done by the administrator using the Document Definition editor or by a verification operator.

Please note that only company records stored by ABBYY FlexiCapture will be modified. Even if synchronization with an external database (e.g. an ERP system) is enabled, no changes made by the administrator or verification operators will be transferred to the external database.

Operators can add new records and edit existing records if allowed by the Document Definition.

By default, operators are not allowed to add or edit records. To allow adding and editing records by operators:

1.In the Document Definition editor, click Document Definition → Document Definition Properties....

2.In the dialog box that opens, click the Data Sets tab.

3.Select a data set from the list and click the Set Up... button.

4.Select the Operators can add records and Operators can edit records options.

To prevent operators from adding and editing records, clear the above two options.


Field extraction training

ABBYY FlexiCapture allows users to train it to determine the position of simple fields and recurring groups on a page of a structured or a semi-structured document.

Scenarios of field extraction training

The system is trained to take into account the environment of fields while extracting them, i.e. static texts, separators, checkmarks, etc. Fields of the same type should have a similar environment.

ABBYY FlexiCapture includes a special feature called Document Variant that is used for documents that belong to the same type but look very different.

Scope of training

An administrator may train the program to search for fields and extract relevant data before proceeding to process documents.

Training field extraction by an administrator

The program is able to learn how to extract fields during the document processing and takes into account the work of Verification Operators.

Auto-learning of field extraction


Scenarios of field extraction training

Use the field extraction training to perform the following scenarios:

·Preliminary project training

A project that is worked on by an administrator must be preconfigured in such a way that the system can find and extract the specified fields. For details, please see Training field extraction by an administrator .

·Automatic learning while working with documents

The program learns to find and extract specified fields when an operator works on a project. For details, see Auto-learning of field extraction .


Scope of field extraction training

Show/Hide Hidden Text

Field extraction training can be used for structured and semi-structured documents. Training is available for simple fields, field groups, and recurring groups.

Simple fields

The program searches for a field with the environment that corresponds to the specified parameters.

The program can be trained to extract fields based on one document, however it is recommended that you use at least 3 documents for higher precision of results.
Field groups

The program is trained to extract fields combined into groups as separate fields without taking into account the relations between them. Therefore the training results are determined by the environment of fields and not their group affiliation.
Recurring groups

The program is trained to detect recurring groups when a document contains several recurring horizontally separable groups that are similar in terms of their environment. In this case, the program processes each group as a recurring line. It also assumes that a line can be First, Last, and Any.

The program is trained to extract fields for each line type as fields of a simple field group.

To achieve better results, it is recommended to upload from 3 to 50 document samples of each type during training.

note Note: To fine-tune the field extraction, use ABBYY FlexiLayout Studio. The trained Document Definition may be exported to FlexiLayout Studio and taken as a basis for a new FlexiLayout.

Variable field locations on documents that belong to the same type

The program is able to detect fields in documents that belong to the same type but look very different, for example, invoices from different vendors, bank statements, driving licenses of different states, various forms, and so on. ABBYY FlexiCapture allows you to process such documents by means of a special feature called document variant. It enables you to create a set of variants for documents that belong to the same type, when every variant will correspond to a certain position of fields.

The training of fields with variable location includes creation and training of the classifier that distinguishes between types of documents. For details, please see Creating a classifier. When the variant of a document is determined, the program uses the general field extraction training mechanism.


Configuring auto-learning for field extraction

Show/Hide Hidden Text

Auto-learning enables the system to learn from the operators' decisions during document processing in order to improve the detection of document fields.

When the system fails to find a field on a document, an operator may intervene and indicate the correct location of the field. Once the recognized and corrected documents are successfully exported, the system uses the corrections made by the operator as learning input.

Configuring auto-learning

To configure auto-learning, complete the following steps:

1.Create a Document Definition.

2.In the section properties of the Document Definition, select Allow field location training.

3.Create the necessary fields in the section. Select Can have region in the properties of each field.

4.Save and publish the Document Definition.

5.In the batch type properties dialog box, click the Workflow and enable the Training stage.

To configure auto-learning for documents of the same type whose appearance varies greatly from one document to another, create variants for each particular field layout and then train a classifier to distinguish the variants. For more about variants, see Variable field locations on documents that belong to the same type.

Additional steps required to configure variants

To enable the system to use variants in auto-learning, complete the following steps:

1.Add section variants using one of the following three methods:

·Create variants manually. To do this, click the Data Sets tab in the section properties and then click the View.... button. Then click the Add... button to add variants.

·Load variants from a database. To do this, click the Data Sets tab in the section properties and then click the Set Up... button. From the drop-down list, select Database as the data source.

·Create variants using a script. To do this, click the Data Sets in the section properties and then click the Set Up... button. From the drop-down list, select Script as the data source.

1.Save and publish the Document Definition.

2.Train a classifier on the newly created variants:

·Switch to Open Classifier Training Batches mode and load document images into a new batch.

·Assign a reference class to each document, using variants as separate classes:

oClick Set Class... → Add... → Add...

oSelect Specify variant.

o Select a variant from the list.

·Train a classifier by clicking (Project → Classification Training → Train).

When working with the training results, you may need to check which variant was assigned to a document and edit it if necessary. To display the IDs of the variants on the form, create a service field. For details, see Enabling operators to change variants.

note Note: Field extraction training can also be done by the administrator if a project has to be trained before the operators start working on it.

Once the Document Definition is set up by the administrator, the system will automatically learn from the operators' corrections made on the Verification Stations.

The auto-learning procedure

Documents whose field locations have been verified and corrected by the operators are placed into a training batch.

The documents are matched against the current version of the trained FlexiLayout. If all the fields are found correctly, there is no need to retrain the FlexiLayout.

note Note: It may so happen that the FlexiLayout finds the fields correctly, but the operator had to change them. Documents were processed using an old or untrained version of the FlexiLayout. While the documents were awaiting verification, the system trained the FlexiLayout on some other documents. As a result, the given documents are now processed correctly.

In this case, the documents are kept in the training batch with For testing status. They will be used for regression tests to prevent future versions of the FlexiLayout from degrading.

If a trained FlexiLayout is applied and some of the field regions do not match, the documents will be used in training a new version of the FlexiLayout. They will be assigned For training status.

Training results is a new version of the FlexiLayout. To compare the new version with the previous version, both are applied to he documents in the training batch that have For training and For testing statuses. The system checks how well the detected fields regions match the layout that has been confirmed by the user. The FlexiLayout that yields the best match will be used in further document processing and the inferior version is deleted.


Field extraction training done by the administrator

Show/Hide Hidden Text

Field extraction training can be done by the administrator where a project has to be trained before the operators start working on it. Training by the administrator may also be required if auto-learning proves insufficient.

Standard scenario

In the standard scenario, complete the following steps:

1.Create a Document Definition.

2.In the section properties of the Document Definition, select Allow field location training.

3.Create the necessary fields in the section. Select Can have region in the properties of each field.

4.Save and publish the Document Definition.

5.Switch to Field Extraction Training Batches mode and create a new batch.

6.Select the Document Definition that you have created.

7.Select Default variant from the list of variants.

8.Load document images and recognize them. We recommend loading 3 to 50 images for each kind of document.

9.Adjust the positions of the fields.

10. Train the program to extract the fields:

a.Select some of the documents, right-click the selection, and click Set Document State → For training on the shortcut menu.

b.Select the remaining documents, right-click the selection, and click Set Document State → For testing on the shortcut menu.

c.Click Fields Training → Train.

note Note: We recommend using 60% of the documents in the training batch for training and the remaining 40% for testing.
Projects with multiple document variants

In the case of documents with variable field locations, you need to create variants and train a classifier to distinguish these variants. For more about documents with variable field locations and variants, see Variable field locations on documents that belong to the same type.

Complete the following steps:

1.Create a Document Definition.

2.In the section properties of the Document Definition, select Allow field location training.

3.Create the necessary fields in the section. Select Can have region the properties of each field.

4.Add section variants using one of the following three methods:

·Create variants manually. To do this, click the Data Sets tab in the section properties and then click the View... button. Then click theAdd... button to add variants.

·Load variants from a database. To do this, click the Data Sets tab in the section properties and then click the Set Up... button. From the drop-down list, select Database as the data source.

·Create variants using a script. To do this, click the Data Sets in the section properties and then click the Set Up... button. From the drop-down list, select Script as the data source.

5.Save and publish the Document Definition.

6.Train a classifier on the newly created variants:

·Switch to Open Classifier Training Batches mode and load document images into a new batch.

·Assign a reference class to each document, using variants as separate classes:

oClick Set Class... → Add... → Add...

oSelect Specify variant.

o Select a variant from the list.

·Train a classifier by clicking Classification Training → Train.

note Note: You can create a classifier in FlexiLayout Studio and then import it into ABBYY FlexiCapture. For details, see Exporting and importing classifiers.

7.Train ABBYY FlexiCapture to detect the field regions on each variant:

·Switch to Field Extraction Training Batches mode.

·Create a new batch. Select your Document Definition and then select a variant to train.

·Load document images and recognize them. We recommend loading 3 to 50 images for each kind of document.

·Adjust the positions of the fields.

· Train the program to extract the fields:

oSelect some of the documents, right-click the selection, and click Set Document State → For training on the shortcut menu.

oSelect the remaining documents, right-click the selection, and click Set Document State → For testing on the shortcut menu.

oClick Fields Training → Train.

When working with the training results, you may need to check which variant was assigned to a document and edit it if necessary. To display the IDs of the variants on the form, create a service field. For details, see Enabling operators to change variants.

note Note: We recommend configuring auto-learning for field extraction. With auto-learning configured, the program automatically learns to extract fields as the operators work on the configured project.


Enabling operators to change variants

To enable operators to change variants assigned to documents, the administrator must create and configure a service field:

1.Create a service field in the Document Definition.

2.On the Data Source tab, open the Source list and select Flexible Section Variant ID. This field will display he ID of the variant assigned to a document.

3.On the Rules tab, create a new rule of type Database Check.

4.In the properties of the rule, specify Data Set as the source. Select he appropriate set of variants from the list.

5.Click the Add... button and in the dialog box that opens, create a correspondence check: in Database field specify the name of the variant and in Document field specify the field on the form that must correspond to the name of the variant. Specify correspondence parameters and click OK.

6.From the Field where to save record ID list, select the newly created service field. note Note: For more about creating and editing rules, see Rule validation.

7.Add a control element of type "Button" to the form (Form → Insert Control → Button).

8.In the properties of the button, click the Format tab, specify Database Lookup as the type of action and select the newly created rule from the list.

When working with a document, the operator will see the ID of the variant assigned to the document by the system. To view all the available variants and select a different variant for the current document, the operator must click the button created by the administrator as described above. This button will open a dialog box where the operator can see a list of available variants and create new ones.


Operating a configured project

Documents go through various processing stages. When creating and setting up a project, you should specify at which stages and under what circumstances Operator control or error correction is required. For this stages, task queues are created. Additionally, a special exceptions queue is available for problem documents.

Operators are users of the system that monitor the processing and correct errors in documents or in batches. The table below lists ABBYY FlexiCapture Operators and the stations and queues available to them.

Operator | Stations | Queues | Functions
Monitoring Operator | Administration and Monitoring Console | - | Monitor the operation of the system
Scanning Operator | Scanning Station | - | Scanning documents or importing document images, sending documents into processing
Data Verification Operator | Data Verification Station Verification Station (group and field verification only) | Data verification | Checking and correcting unreliably recognized characters (group and field verification)
Verification Operator | Data Verification Station Verification Station | Data verification Verification Document assembly check Batch integrity check | Same as data Verification Operator + checking and correcting document assembly and batch assembly errors
Senior Verification Operator | Data Verification Station Verification Station | Data verification Verification Document assembly check Batch integrity check Export confirmation Exceptions | Same as data Verification Operator + confirming document export, handling exceptions

Operators start their corresponding stations and perform the required operations in accordance with the access permissions granted to them.


Workflow

Navigation: Operating a configured project >

Return to chapter overview

Managing tasks

Documents are processed in several stages. At the processing stage, which can either be unattended or involve an Operator, documents are converted. All stages are arranged in a particular order, and before a document goes to a certain stage it must successfully go through all the previous stages. In general, document processing includes the following stages: adding images, recognition, verification, and export.

At each stage, a task queue is formed, which contains a list of documents to be processed. As the processing progresses, the documents move from the first queue (recognition) towards the last queue (export). As a rule, queues correspond to processing stages, but there are also special queues, e.g. the exceptions queue.

Stages

1.Importing images
Images can be obtained automatically from Hot Folders or added by the Operator of the Scanning Station. The Scanning Operator may either scan in documents or import the images of already scanned documents. To automate the process (i.e. to add the images using pre-defined settings with a single click of the mouse), the Scanning Operator can create scanning profiles.

2.Recognition
The recognition queue is processed automatically on the Processing Station.

3.Verification
The verification queue is processed by the Operator of the Verification Station.

4.Export
The export queue is processed automatically on the Processing Station.

In the case of large processing volumes, the verification stage can be divided into smaller substages, with each Operator responsible for fewer operations.

The following separate queues can be created:

·Document Assembly Check

·Data Verification - group and field verification of uncertain characters and correction of format errors

·Verification - rules checks and Document window checks

·Batch Integrity Check

·Export Confirmation

note Note: Queues are specified for batch types individually.

The tasks from the queues are processed by the Operators who have the necessary access permissions:

·Data Verification Operator - only the Data Verification Queue

·Verification Operator - Data Verification, Verification, Document Assembly Check, Batch Integrity Check

·Senior Verification Operator - all queues

note Note: The Data Verification Station allows its Operator to process only the tasks from the Data Verification queue, regardless of his/her access permissions.


Task queues

After you enter a station, a page for getting tasks from queues is opened. The list of available queues depends on your role. To start processing a task, click the Get task button.

To get tasks only from a particular queue, choose a desired queue from the list of available queues. In this case, when clicking the Get task button, you will get a task with the highest priority from the selected queue.

You may postpone a task to process it later. It is recommended to process postponed tasks first as they are not available to other Operators. If the Operator who postponed a task does not process it for a long time, this will slow down the processing of the entire batch.

note Note: You can set up postponed tasks to be returned to the processing queue after a period of time. To enable this feature, open the Internet Information Services (IIS) Manager, open the <servername>\Sites\Default Web Site\FlexiCapture12\Server, and add the following parameter in Application Settings: PostponedTaskExpirationMinutes. Set the value of this parameter to the number of minutes you want to elapse before tasks a returned to the queue (the value must be a whole number) and restart the IIS.

Additional features are available for the Senior Verification Operator role. The Senior Verification Operator can:

·Open the list of batches if you need to process a particular batch (e.g. send it to a processing stage, change its priority, etc.)

note Note: The list only contains batches for which the Senior Verification Operator has the necessary permissions. Permissions are given out by the Administrator in the Remote Administration and Monitoring Console.

·Choose a particular task from a queue that contains several tasks

·Send multiple tasks or batches to a processing stage at the same time.

To check if there are any new tasks in queues, click the Refresh button.


SLA control

SLA-related information is available to the Administrator on the Processing Monitor → Batches page. This includes:

·The number of batches that are close to their deadline or overdue

·The current stage of batches

·The batch creation date

·Processing deadline of the batch.

In addition to this, the Administrator can view SLA-related information in the main window of the Project Setup Station (click View → Batches) and in the main window of the Verification Station in the batch view (click View → Batches) and the task view (click View → Queues). The following columns in these views contain SLA-related information:

·Processing Start Time
The date and time when processing of the batch was started.

·Expires on
The deadline for the batch..

·Status
Contains warnings for batches that are approaching their deadline (Expires soon) or are overdue (Expired).

Filtering batches with deadlines

To make keeping track of deadlines easier, you can filter batches in the batch view (View → Batches) to display batches that are approaching their deadlines or are overdue. To do this, select one of the following items from the Show drop-down list and specify filtering criteria:

·Batches overdue within time period...
Filters batches by their deadlines.

·Batches with expiration status...
Filters batches by their deadline status.

After a filter is applied, the current filtering criteria will be displayed to the right of the Show drop-down list. To change filtering criteria, click the DotsButton button.

How to move tasks up in a queue

There are several ways to ensure that batches meet deadlines specified in SLAs:

·Set their priority to Extra-high

·Assign them to another Operator

Postponed tasks

Operators can postpone tasks . This can delay the processing of a batch beyond its deadline and lead to non-compliance with an SLA.

Postponed tasks are indicated by the galochka icon in the Task Postponed column of the Details view (View → Details) on the Project Setup Station. The User Task column of the details view contains the name of the user that postponed the batch.

Operators can view a list of postponed tasks by clicking View → Queues in the Verification Station. This allows Operators to keep track of batches that have deadlines.


Adding page images

Document processing starts with importing images, i.e. adding document page images to the project. The images arrive either from a Scanning Station or are taken automatically from Hot Folders. Additionally, images can be fed to the program by:

1.Loading previously saved images from files

2.Scanning paper documents

3.Importing images using one of the image import profiles previously configured by the Administrator (see Image import profiles).

warning Important!

Before you start, please familiarize yourself with the list of input image formats supported by ABBYY FlexiCapture.

To add the images to a batch, right-click the batch and select the corresponding menu item from the shortcut menu.

Adding images from file

To load images from file, select the Load Images menu item or use the Ctrl+O shortcut. In the dialog box that opens, select the required image files and configure the image import options:

·Create new document New documents will be created for added images.

·Add to current document Images will be added to the currently selected document.

·You can also select image pre-processing options. Click the Image Processing Settings... button and select the desired options in the dialog box that opens. For details, see Image pre-processing options.

Scanning documents

To add images using a scanner, select the Scan Images... menu item. Choose a scanner, configure the scanning options, and scan the necessary document pages.

Using import profiles to add images

After you select Import Images..., the Select Import Profile dialog box opens. Select the desired import profile from the list and click the Import button to start importing images.

If you want to import images in the background, see Image import profiles.


Configuring scanning options

Usually, documents to be processed arrive from the Scanning Station or from the Hot Folder. However, documents can also be scanned on the Verification Station or on the Project Setup station. in this case, the required scanning parameters must be selected.

Recognition quality largely depends on the quality of the scanned image. The image quality can be regulated by configuring the basic scanning options: image type, resolution, and brightness.

When you scan images via ABBYY FlexiCapture, there are two possible ways in which the program can interact with scanners via the TWAIN or ISIS drivers:

·Via ABBYY FlexiCapture interface:
in this case, scanning options are configured with the help of the ABBYY FlexiCapture dialog box Scanner settings; scanning options can be configured when creating an import profile with the Scanner specified as the import source.

·Via the interface of the TWAIN or ISIS driver of the scanner:
the dialog box of the relevant scanner driver is used to configure scanning options. This dialog box opens automatically when you select Scan Images... from the dropdown menu of the import button.

Basic scanning options

·Color mode scanning in grayscale (256 shades of gray) is the optimum mode for the recognition system. When you scan in grayscale mode, the program selects the brightness level automatically.

Black and white The black-and-white image type ensures a faster scanning speed at the expense of some letter information, which may affect recognition quality of documents with average and low quality print.

Full color If you need color elements of the document (pictures, color letters and color background) to be rendered in the electronic document with the color preserved, you need to select the color image type. In other cases use the Grayscale (optimal for OCR) image type.

·Brightness values have to be selected so as to, first, preserve the anchor blocks and, second, make the images of blocks intended for recognition as clear and definitive as possible.
In most cases the average brightness value of 50% is suitable.
You may need to configure brightness additionally when scanning some documents in the black-and-white mode.

·Resolution the recommended resolution for processing forms filled out by hand is 300 dpi. The resolution of scanned forms must match the resolution of the template image.

note Note:

1.Scanning with a resolution of 400-600 dpi instead of 300 dpi, or scanning in gray or in color instead of black-and-white can take considerably more time. With some scanner models, scanning with a resolution of 600 dpi takes 4 times as long as scanning with a resolution of 300 dpi. Scanning with a resolution below 200 dpi is not recommended.

2.When you use the dialog box of the scanner driver, the options for configuring scanning settings can have different names depending on the scanner model. For example, brightness can be called threshold or be marked with a sun or black-and-white circle. The meanings of options are described in the documentation that comes with your scanner.

Tip.

1.Scanning color background forms with a monochrome scanner. For the background to disappear during scanning, you need to equip the scanner with an appropriate light filtering lamp: for pink forms a Red-Lamp, for green forms a Green-Lamp.

2.Scanning color background forms with a color scanner. For the background to disappear during scanning, you need to configure the filtration mode for the relevant color in the scanner settings.

3.Scanning color background forms of light shades. If you are processing color forms of light shades, because of low color strength the background may disappear when you scan with a white lamp even without software filtration of color. As a rule, the method of scanning forms is chosen at the form development stage.

Tip.

1.A scanned image must be readable (to view a scanned image, open it in the document window).

2.If in the scanned image the letters are torn, light or thin:

oReduce brightness, increase contrast (make the image darker) or

oTry to scan it in grayscale (in this case brightness will be selected automatically).

3.If the scanned image has a dirty background; deformed, smeared or fused characters; dark, thick letters:

oIncrease brightness (make the image lighter) or

oTry to scan it in grayscale (in this case brightness will be selected automatically).


Recognition

Documents are recognized automatically on the Processing stations. The system selects the matching Document Definition based on anchor elements and identifiers and recognizes the data in the fields that match the fields of the selected Document Definition.

The ratio of reliably recognized characters to the total number of characters is shown in the Certainly Recognized Characters column.

If changes in the project are made during recognition and if the project includes a verification stage, the Verification Operator and the senior Verification Operator may manually re-recognize the documents using the new settings. To re-recognize the documents, start the Verification Station and select Tools → Update to Latest Version from the main menu.

note Note: The following message can occur during recognition: "Cannot create \\BatchHeader.tmp". The specified file already exists." The error occurs because of Windows Search indexing service which affects working of the program. Windows Search indexing service processes files which are created in the project folder and deleted during operating of the program which causes the error. For this reason we recommend that you should disable Windows Search indexing service.


Preliminary image analysis and applying Document Definitions

Navigation: Operating a configured project > Recognition >

Return to chapter overview

Preliminary image analysis and Document Definition matching

Show/Hide Hidden Text

The program automatically analyzes and recognizes images and finds matching Document Definitions. Verification operators or senior verification operators can also manually initiate image analysis and Document Definition matching by clicking Tools → Reanalyze on Verification Stations.
In most cases, the program will select the right Document Definition automatically, but sometimes you may want to apply a Document Definition manually.

To apply a Document Definition:

1.Select a document or a document page.

2.In the main menu, click Recognition → Match Document Definition..., or right-click the document and click Match Document Definition... on the shortcut menu.

3.In the Select Document Definition dialog box that opens, select the desired Document Definition. A document can have just a document definition assigned, and a page can have just a definition section assigned. When a document definition is applied to a document with several sections, an analysis of the way the sections have been applied to the various pages will be carried out. If a document definition only has one section, this analysis will not be carried out.

4.Click OK. The appropriate definition will be applied to the selected document or document page.

note Note: In the document definition selection dialog, the following option is enabled by default: Analyze and recognize documents after matching. Disable this option if you want to apply a document definition without carrying out a further analysis and a second recognition. If you leave this option enabled, document analysis and recognition will begin automatically after the application of the document definition.

To quickly apply a Document Definition to a page or to a document, you can use a special Document Definition selection panel. At the top of the panel, you will see the most recently used Document Definitions. Tip. Use the pin button to pin the Document Definitions that you use most often.

At the bottom of the panel, you will see a list of all the Document Definitions and their sections available to you. To find a Document Definition, type its name in the search bar. To show or hide this panel, click View → Side Panels → Select Document Definition.

Show me the Select Document Definition panel...

SetDocumentDefenitionPanel

To quickly apply a Document Definition using the Select Document Definition panel:

1.Select a page or a document.

2.Select a Document Definition in the panel.

note Note: To be able to apply Document Definitions manually, a user must have a role for which the Modify document layout permission is enabled. You can view the permissions enabled for a role on the User Roles tab of the project properties dialog box.


Verification of recognized data

Verification, or checking of recognized data, is the most labor-intensive part of the Operator's work. In the ABBYY products, the verification procedure has been designed with the human Operator in mind, taking into account the relevant human cognitive and motor abilities (habit formation, use of acquired skills, and integrity and purpose of visual perception).

Whenever the program is uncertain about a character, it marks it as unreliably recognized. The purpose of the verification process is to verify such characters and correct them where necessary.

Rule validation is performed automatically. Fields whose values satisfy the rule conditions may be marked as reliably recognized and excluded from the verification process. Fields whose values do not satisfy the rule conditions should be submitted for verification.

For multipage documents, you must first check the assembly of pages into documents. For document sets, you must first check the assembly of documents into document sets.

Once the assembly checks are done, you can start verifying the data. Verification is a two-stage process consisting of group verification and field verification. If the Document Definition has no fields included in group or field verification (see Verification properties), the corresponding verification stage will be skipped.

The group and field verification stages are followed by reviewing the data in the document window. The characters that were not confirmed at the earlier stages remain highlighted in red.

You can navigate the errors by clicking the [image] and [image] buttons on the main window toolbar. The program will display all types of errors, including assembly errors, uncertainly recognized characters, rule errors, etc.

listPicture Assembling pages into documents

listPicture Verification in the document window

listPicture Rule validation

listPicture Group verification

listPicture Field verification


Assembling documents

How to correct assembly errors

1.Incorrect page order
There may be too few or too many pages, or document pages may not arranged in the correct order. To correct such errors, you can use your mouse to move the page both within a single document and from one document to another.
Pages of several documents can be merged into a single document as follows:

·Highlight documents to be merged (use Ctrl-Click to select several documents);

·Right-click and select Merge from the shortcut menu.

To split pages in a document and to place each one of them into a separate document:

·Highlight the document in which you want to split pages;

·Select Split from the shortcut menu.

2.Incorrect recognition of a multipage document.
If a multipage document is recognized as a collection of one-page documents, this means that the Document Definition has been correctly applied only to the first page. To fix the error, you need to group the faulty pages into one section:

·Check the order of the pages in the document (see "Incorrect page order" above), making sure the pages belong to the same document.

·Select the pages that belong to the same section (e.g. all pages with tables).

·Right-click the selection and then click Group into Section on the shortcut menu.

The grouped pages will now be recognized as a multipage document.

3.If the Document Definition requires verification of key fields for the correct assembly of pages, the values of the key fields will be displayed under the image of each page:

·highlighted in gray in the event of a match

·highlighted in red in the event of a mismatch

Key fields may not match if they have been recognized or filled in incorrectly. Check the values of the key fields. If the values of the key fields still do not match, the respective pages most likely do not belong to the same document. If the order of pages is wrong, find pages with identical key fields and assemble them into documents as described in "Incorrect page order" above.

How documents are assembled

Documents are assembled automatically or by an explicit user command. The assembly principle can be described when creating a Document Definition for multipage document processing or when creating custom processing stages in the Batch Type Properties dialog box. These assembly types differ in when they are performed and in what kind of documents they can access.

Specifics of assembly described in Document Definition properties

1.Runs:

owhen selecting a command: Tools → Refresh Assembly

oafter analyzing/recognizing a set of documents; in this case, the assembly includes only documents involved in analysis/recognition

2.Both standard assembly rules and a Document assembly script can apply.

3.Documents with locked boundaries will not be combined with any other documents but can be added into document sets. If the boundaries of a document set are locked, automatic document assembly will be performed within the locked boundaries.

4.No assembly is performed if the Document Definition is not matched. For example, if all pages of the batch are annex pages, no assembly is performed.

5.The order of pages cannot be changed during the assembly.

Specifics of assembly described in batch type properties

1.Runs when documents enter the corresponding stage.

2.Described by processing scripts.

3.Allows you to move and delete pages and documents.

The Operator's task is to identify and correct possible document assembly errors.

Assembly errors can be corrected most conveniently in the page outline mode that gives the user a good view of page images and the documents to which they belong. You can switch to this mode by clicking the [image] button.

note Note: You can change the scale of page outlines to view details by holding down the Ctrl key and turning the scroll wheel.

When creating a Document Definition, you need to configure a document assembly rule (i.e. the order and number of recurring document sections). You can also configure an assembly verification based on the values of key fields: in this case the values of key fields must be identical on all pages of the document.

note Note: The order of sections will not be checked if the Disable sections order check option is selected on the Assembly tab when creating the Document Definition. The program will still check to make sure that all the sections are present in the document, but the order of the sections will be ignored.

Documents with assembly errors will be marked with [image]. An error description will be provided beneath the name of the Document Definition.

Locking document boundaries

Document boundaries are locked when:

·Images are separated into documents at the import stage.

·Assembled documents are sent to their intended destination.

·Pages or documents added into a document using a drag-and-drop operation.

·The Match Document Definition... command is executed.

·The IsExcludedFromAutomaticAssembly flag of a document is set to true by a script that is allowed to edit the document.

·The Operator clicks the Lock Document Boundaries command on the shortcut menu.

Document boundaries are unlocked when:

·The Operator clicks the Unlock Document Boundaries command on the shortcut menu.

·A document is split using the Split command.

·The IsExcludedFromAutomaticAssembly flag of a document is set to false by a script.

Documents or document sets with locked boundaries will have the Bounde icon next to them in the Bound column (in list view) or next to their page thumbnails (in thumbnail view).


Group verification

Group verification involves grouping character images recognized as having identical values and displaying them on the verifier screen, enabling the Operator to easily identify and correct characters that deviate from the group.

Incorrectly recognized characters can be corrected as follows: highlight the character that does not match the group character using arrow keys or the mouse and enter the correct value. This value, highlighted in green, will appear in the upper left corner of the character image.

If you still have doubts about the character's meaning, left-click the character or select it and press the Space button: it will be highlighted with a red question mark. It will be postponed to field verification.

During group verification, the Operator can view the context of the selected character by pressing F2. Move a mouse to hide the context.

You can also activate a mode whereby the field containing the character will be displayed when you point the cursor to the character being verified. To this end, click the Page image for character link in the bottom of the page or use the Ctrl+Alt+I shortcut. Then you can select the image scale in the Image zoom list. Click the link or use the shortcut when the field is displayed to hide it.

You can switch between color and black&white mode by pressing Ctrl+Alt+C or click the Settings button and select the Show color page images option.

By default the checkmark groups are verified in a single-value selection mode. If you need to use editing mode which has been chosen, click the Settings link and then select the Preserve selection mode for checkmark groups option.

To confirm all unprocessed characters at once, click the Confirm All button or press Enter. If you still have doubts about unprocessed characters' meaning, click the Postpone all button or use Ctrl+Enter shortcut to verify them later. These button are in the bottom right corner of the page. The next screen will be displayed when you press one of these buttons.

You can navigate through processed screens using [image] and [image] buttons in the bottom right corner of the page or Ctrl+ [image] and Ctrl+ [image] shortcuts. To navigate to the first and the last string of the screen, use Ctrl+Home and Ctrl+End shortcuts.


Field verification

Field verification is a verification mode intended for effective correction of errors of "well-recognized" fields, i.e. fields whose range of values is known or can be easily identified. An example of such a field is the country or city name. To decide how to correct a field, the user needs only to view this field and to know its range of values. Both input errors and field format errors can be corrected.

To correct incorrectly recognized characters, you can use standard modes of text editors: Character paste and replace modes you can switch between the two modes by pressing the Insert button on the keyboard.

The user reviews recognition result of each field in a sequence, correcting it if required and confirming them by clicking the Confirm Field button or pressing Enter.

You need to correct values in the fields. If you want to skip the field without correcting or confirming it, click the Postpone Field button or using Ctrl+Enter shortcut. The field will be marked as unverified and sent to the next stage according to workflow settings.

You can activate the field display mode. To this end, click the Page image for field link in the bottom of the page or use the Ctrl+Alt+I shortcut. Then you can select the image scale in the Image zoom list. Clicking the link or pressing the shortcut repeatedly will hide the field. You can also activate the field display mode for analogous fields of other documents. For this, click the Analogous fields link or use Ctrl+Alt+F shortcut.

You can switch between color and black&white mode by pressing Ctrl+Alt+C or click the Settings button and select the Show color page images option.

By default the checkmark groups are verified in a single-value selection mode. If you need to use editing mode which has been chosen, click the Settings link and then select the Preserve selection mode for checkmark groups option.

You can navigate through processed fields using [image] and [image] buttons in the bottom right corner of the page or Ctrl+ [image] and Ctrl+ [image] shortcuts.


Distributed verification

Show/Hide Hidden Text

Distributed verification allows you to restrict the set of fields that require verification in the stage. Distributed verification can be used in the Verification and Data Verification stage type. Creating custom processing stages based on these stages enables processing different document fields in different stage (the rule of sending document to a stage is set up with a script).

To create a set of fields for distributed verification, complete the following steps:

1.Open the Field Set tab of the stage properties dialog box. Use the > and >> buttons to create a set of fields for a stage.

2.On the Entry Conditions tab, specify conditions that determine whether documents should be processed on this stage:

oAlways

oNever

o [image] Under these conditions

You can create a set of conditions that determine whether documents should be processed on this stage. These conditions include:

§The task was processed successfully

§Number of characters for verification satisfies the expression

§Percentage of characters for verification satisfies the expression

note Note: percentages are rounded up.

§Number of characters for data verification satisfies the expression

§Number of fields for compulsory verification satisfies the expression

note Note: fields for compulsory verification are fields that have the Send to field verification option set to Always.

§Number of characters for double verification satisfies the expression

§Has rule errors

§Has assembly errors

§Has batch integrity errors

note Note: batch integrity is checked on the Export stage.

§Field value satisfies the expression.

note Note: field value checks do not work for repeating fields or number fields with values higher than 2147483647.

3.Specify the next stage for the document on the Exit Routes tab. You can also specify conditions that determine whether documents should be processed on other stages.
When using distributed verification, it is recommended to pay attention to the following:

oInformation about the error is displayed in the Errors window, only if at least one field associated with the error is included in the data set available to the Operator. If none of the fields associated with the error is included in the fields set, information that the document contains errors is not displayed to the Operator.

oIf some of the fields associated with the error are not included in the specified fields set, information about the error is displayed in the Errors window, but the Operator cannot go to the field out of the fields set and correct the error.

oIf you need to ensure a high security level in the Data verification stage, select the option Hide page image outside selected fields. If this option is selected, only fields from the specified fields set will be available to Operator. All other fields will be hidden.

note Note: If this option is selected, but the field region has been detected incorrectly or with a shift when matching a Document Definition, the Operator can fail to verify the field. In this case, the Operator should send the image to the Exceptions stage.


How to perform data verification

Show/Hide Hidden Text

To perform data verification, do the following:

1. Press the Get task button. The Group Verification window will be opened if the task contains characters for group verification, otherwise the Field Verification window will appear.

note Note: If Automatic Task Receive Mode is enabled (the corresponding button is switched on the Queues & Tasks toolbar), you do not need to click the Get Task button, as the next task will be received automatically as soon as the current one is completed.

2. Check the groups of characters that were recognized as one the same character.

Details...

1.Correct any incorrectly recognized characters as follows: highlight the character that does not match the group character and enter the correct value. This value, highlighted in green, will appear in the upper left corner of the character image.

2.If an irrelevant image is recognized as a character (for example, some scanning defect was erroneously recognized as a character), remove it by pressing the Delete button.

3.If you still have doubts about the character's meaning, even after viewing its context, left-click the character: a red question mark will appear. You can confirm or correct the character later during field verification.
Character status can be also switched using the Toggle button on the toolbar.

4.When all incorrectly recognized characters are corrected or postponed, confirm all other characters at once by clicking the Confirm All button on the toolbar. You can also confirm correctly recognized characters one by one by selecting Confirm from the shortcut menu.

3. Perform the verification of fields correct any recognition and format errors and confirm the correct values.

Details...

1.Review the recognition result in each field, one by one.

2.Correct any errors and then confirm the field by clicking the Confirm Field button.

3.If a field cannot be corrected right away, skip it or defer verification by clicking the Postpone button to correct the field later.

4. Once field verification is complete, the verification window will close and the task will be sent on to the next processing stage.


Verification in the document window

Show/Hide Hidden Text

The document window also lets you check the accuracy of recognition and correct incorrectly recognized characters. The document window opens when you double-click the page name. The document window comprises the data region, the page image, and the errors region (if such errors are present). You can select the error types to be displayed: assembly errors, format errors, rule errors, or any combination thereof. To display errors of a certain type, click the corresponding button in the top right corner of the errors pane.

In the document window, the Operator then sees not just character groups or separate fields but the entire document. You can configure the window layout by clicking the Layout button. To view page image on a secondary monitor, select Image Window → Undocked. In this mode, you can scale page image, select a block and delete unnecessary separators.

Document window

From the document window local menu, you can confirm a field, select to show format errors, copy values of cells to other cells, go to the previous or the next item to verify, select a data text size, as well as the mode of navigation through the fields. Select Go to Uncertain Field on Confirmation to navigate through uncertainly recognized fields. For navigation through fields with undetected regions, select the Go to Next Unmatched Field on Matching (see the description below).

In the data region, uncertainly recognized and questionable characters are marked with color, and fields with incorrect data types or unfulfilled rules are highlighted.

To confirm a field with uncertainly recognized characters, place the cursor on the field and press Enter.

Fields for viewing and editing recognized data can be arranged not only sequentially, but in any other way that is convenient for the user. You can change their arrangement in the Document Definition editor, see Configuring data presentation in the document window.

You can navigate to the next or the previous error in the document window by clicking the [image] and [image] buttons on the main window toolbar. The program navigates all errors, including assembly errors, rule errors, mismatches of key fields, etc.

Fast input of values for unmatched fields

This functionality is available for projects with FlexiLayouts and enables fast input of field value if the field was not matched.

Fast input mode allows you to transfer data to an active field from the region selected with a mouse.

If the field value is not found or is found incorrectly, click the field region on the page to quickly add the value. Or you can select a part of the text holding the mouse button. If there is only one unmatched field in the document, the value will be added automatically. Otherwise, you will be prompted to choose the value associated with the field.

If neither of suggested values is correct, then, if verification is performed in the Project Setup Station or Verification Station, in the region local menu, choose Recognize (Ctrl+R). The field will be recognized according to the settings specified for the field in the Document Definition. If verification is performed in a Web-station, this feature is unavailable.

The navigation mode through unmatched fields

To navigate through fields whose regions were not detected, select the Go to Next Unmatched Field on Matching option in the local menu of the document window. When this mode is enabled, the first unmatched field gets the focus. When entering the field value or when clicking [image] and [image] buttons, focus shifts to the next unmatched field.

note Note: For the field to be highlighted if its region is not found and available in the Go to Next Unmatched Field on Matching mode, the Should be matched option must be enabled in the properties of the field.

Copying the value of a cell to other cells in a column

The value of a cell in a table, and values of identical cells and of cells in identical groups can be copied. To do this, right-click the cell and click one of the following items on its shortcut menu:

·Copy Value to Other Rows (or press Ctrl+Q)
Copies the value of a field to rows of the same type within a group. When this option is selected, the cell will be highlighted in yellow and the mouse pointer will change. To copy the value, select a cell of the same type within the group or table. The value will be copied to all cells between the cell with the value and the selected cell, including the selected cell.
If the cell with the value is part of a group that occurs several times, the value will be copied to all other instances of the cells (cells in other iterations of the group that occupy the same positions as cells in the first group to which the value was copied).

note Note: Values of check marks can only be copied to other instances of the same checkmark or the same checkmark within recurring groups.

·Copy Value to All Rows (or press Ctrl+Shift+Q)
Copies the value of a field to all rows in a table or to recurring fields within a group and to the same fields in other iterations of the group.

Displaying information about errors associated with hidden fields

Fields in the data form can be hidden because of the following:

·The Show on verification option is deselected in the field properties.

·The fields set is restricted in the stage properties.

Errors associated with hidden fields can be displayed as follows:

1.If a format error is associated with the hidden field, information about the error is not displayed in the errors region.

2.If a multi-field rule error is associated with the hidden field and only this field is involved in the rule, information about the error is not displayed in the errors region.

3.If a multi-field rule error is associated with the hidden field, and other fields in the form are also involved in the rule, information about the error is displayed in the errors region, however for the hidden field, only its name (without a link to the field) is displayed.
See screenshot

4.If a document contains errors which are not displayed in the errors region because of hidden fields, the display of the document in the list depends on the stage in which the document is viewed.

oIf the document is viewed in the Verification stage where the data set is restricted, the document in the list is displayed without an error icon. In the errors region, information about errors is not displayed.

oIf the document is viewed in the stage where the data set is not restricted, e.g. in the Exceptions stage, the document in the list is displayed with an error icon [image]. In the errors region, information about errors is not displayed.


Verifying document sets

Verifying data captured from a document set

A Verification Operator working with a document set can verify the principal fields of all the documents in the set by reviewing the summary section, which contains links to the original fields. The links in the summary section display the values and regions of the original fields. If an original field contains an error, this error will be visible to the Operator reviewing the summary section. You can open the image and data form of the source document by double-clicking the link, clicking Go to Original Field on its shortcut menu or using the Ctrl+Enter shortcut. Verification becomes more efficient, as Verification Operators will open individual documents only if they notice or suspect errors in the summary section.

See also Working with document sets in the Document window

Verifying the assembly of a document set

If a Verification Operator receives a document set that has been assembled incorrectly, he/she can manually change the order of pages in a document or add or remove documents. This can be done either by dragging documents with the mouse or using the following commands on the shortcut menu:

·Create Document – Creates a new document from the selected pages and documents.

·Merge – Combines the selected documents into one document. The combined documents should be at the same level in the tree and should immediately follow one another.

·Split – Splits the selected document into separate pages and documents.

note Note: When a page is moved to the topmost level in the batch, it is automatically transformed into a document.


Double verification

Double verification is a data verification mode where fields are verified by two different Operators.

To enable double verification:

1.Select the Requires double verification option in the field properties.

2.Select the Double verification option on the Field Set tab of the stage settings dialog box.

Merging results of double verification is performed in the Processing Server. If verification results match, the document is sent to the next stage. Otherwise the check is carried out by the resultant hand.


Exporting recognized data

Navigation: Operating a configured project >

Return to chapter overview

Data export

Documents are exported automatically. Depending on the settings, an additional confirmation by the Senior Verification Operator may be required. Documents are exported in accordance with the settings provided in the Document Definition. If there are no export settings in the Document Definition, the documents are exported based on the project settings. If some of the documents need to be exported ahead of the others, they can be sent to the export queue at the export stage.

Documents can also be exported manually on the Verification Station or on the Project Setup Station.

Exporting data to a file

1.To export data to a file, select Export To → Data to Files... from the shortcut menu of the document. The Export to data files dialog box appears.

2.If required, adjust the export settings by clicking Settings.... Click OK to apply the changes.

3.Click Export to export the data.

Exporting images to file

1.To export images to a file, select Export To → Images to Files... from the shortcut menu of the document. The Export to image files dialog box appears.

2.If required, adjust the export settings by clicking Settings... Click OK to apply the changes.

3.Click Export to export the data.

Exporting data to a database

1.To export data to a database, select Export To → Database... from the shortcut menu of the document. The Export to ODBC-compatible database dialog box appears.

2.Specify the export settings.

3.Click OK to export the data.


Background mode

Processing stages that do not require operator involvement are performed by the Processing Server automatically. However, they can also be performed manually on the Verification Station or on the Project Setup Station, in which case they can be run in background mode.

When no operator control is required, documents can be imported, recognized, and exported in background mode.

To enable background processing for a task, click the Background Mode button in the Adding images..., Recognizing..., or Exporting...... dialog box.

The following tasks can run in background mode:

·Loading images using corresponding import profiles

·Document recognition, if the Recognize added images automatically option is selected in Tools → Options... → Document Processing.

When tasks are running in background mode, the [image] icon is displayed on the task bar. Clicking this icon opens the Background Tasks dialog box, which displays a list of tasks. Tasks are executed either on he first-some-first-served basis or based on user-defined priorities.

·You can stop a task by clicking the End Task button.

·Task execution is logged in a log file which can be customized by the user in Tools → Options... → Task Progress. To view the log, click the View Log button.

The program will also inform you about the progress of background tasks in balloon pop-up messages displayed in the bottom right corner of the screen. Progress messages appear when tasks are started, when errors occur, and when tasks are completed. See Additional options for details.

Background task panel

Tasks started by the user are displayed in the lower section of the background task panel. For each task, its current execution status is displayed.

Double-clicking a task opens the log file.

You can toggle the panel on and off using the Show background task panel option in Tools → Options... → Task Progress. You can also select Errors, Warnings, and/or Information messages under Do not close progress bar window and do not delete task if log contains if you do not want with the corresponding log messages to disappear from the panel.

warning Important! Only tasks that are started manually by the user will be displayed in the panel. For example, if the Automatically recognize added images option is selected, only the Adding images task will be displayed in the panel when images are added, and no subsequent recognition tasks will be displayed.


ABBYY FlexiCapture for invoices

·ABBYY FlexiCapture for Invoices is an easy-to-use, intelligent software solution for processing invoices. It replaces labor-intensive data input tasks with transparent, manageable, efficient, and automated data capture based on smart document analysis and character recognition technologies.

·ABBYY FlexiCapture for Invoices is based on the powerful ABBYY FlexiCapture platform and includes additional functionality, pre-defined settings, validation rules, advanced database look-up and UI enhancements specifically tailored for processing invoices.

·ABBYY FlexiCapture for Invoices is a ready-to-go solution that is capable of identifying data fields on the vast majority of invoices, enabling you to start processing right away. Intelligent on-the-fly Auto-Training technology refines the extraction of data from invoices with non-standard layouts.

·ABBYY FlexiCapture for Invoices features country-specific validation rules, adaptable logical and arithmetic checks, and can match captured data against the company's databases to ensure legal compliance and consistency of data, facilitate invoice approval, and detect misbilling. The program's flexible settings allow you to adjust the processing workflow in accordance with your company's specific business requirements and implement straight-through processing of invoices which have successfully passed all automatic validation rules, enabling the verifying personnel to focus on those documents which really require their attention.

The invoice capture process

1. Acquiring images

There are several ways to feed invoice images to the program:

oScanning hardcopy invoices

oDownloading invoice images from an e-mail inbox

oDownloading invoice images from a folder on a computer or an FTP server

2. Recognition and rule checks

After input, invoices are automatically recognized by the program. Data from the invoices is then checked using rules and a status is assigned to the invoice based on the results of these checks.

Invoices that do not require any editing receive the Valid status and are ready for export.

3. Verification and correction of errors

Invoices with a status other than Valid need to be reviewed by an operator. Operators check these documents and correct errors and warnings that were issued by checking rules. When all defects have been corrected, an invoice receives the Valid status. Operators can also confirm statuses that were assigned automatically. The status of an invoice can be changed manually by an Operator, who has to specify the reason for the status change.

If the program systematically fails to locate fields on invoices, it can be trained by operators during the document capture process.

4. Data export

Data export is the final processing stage, during which data is exported as specified in the program's settings. Documents with different statuses can be exported in different ways, e.g. documents with the Valid and Exception statuses may be exported to a different folder than documents with the Rejected status. Several export destinations may be set up, and invoices can be exported to each of these destinations.

If the status of an invoice was changed manually, the reason for the status change that was provided by the operator is exported as well.

The program supports export to data and image files, ODBC-compatible databases, and Microsoft SharePoint. Its easy-to-use API enables integration with any system.

You can read more about capturing invoices with ABBYY FlexiCapture for Invoices in How to capture invoices.

ABBYY FlexiCapture for Invoices setup

ABBYY FlexiCapture for Invoices includes a preconfigured project that is ready for use.

Before you can begin capturing invoices, you have to provide data about vendors and business units to the program. The program uses this data to find and recognize fields that contain vendor/business unit data on the invoice image. If vendor and business unit data is not provided, an operator will have to specify the location of these fields manually. In this case recognized data will be saved and used during the processing of invoices from the vendor/business unit.

Even though ABBYY FlexiCapture for Invoices is preconfigured and ready for use, you can specify a number of additional settings:

·You can add more fields to the list of fields that need to be extracted from the invoice. These fields can include predefined fields that are disabled by default as well as any other fields.

·The set of rules can be adapted to various organizations and legislations.

·Invoices from a particular vendor may have non-standard layouts, leading to unsatisfactory quality of data capture. ABBYY FlexiCapture for Invoices can be trained to improve the quality of data captured from such invoices.

·Captured invoices can be matched with purchase orders.

You can read more about setting up ABBYY FlexiCapture for Invoices in How to set up an invoice capture project.

note Note: To use ABBYY FlexiCapture you need the appropriate ABBYY FlexiCapture license. For more on licenses, See License parameters.


Features of ABBYY FlexiCapture for Invoices

Recognition and Data Extraction

galochka

FlexiLayout specifically adjusted for invoices processing

ABBYY FlexiCapture for Invoices includes a ready-to-use FlexiLayout specifically adjusted for immediate processing of the invoices. It has a predefined set of data fields for recognition which can be extended with additional fields. This FlexiLayout allows recognizing all necessary data fields from the vast majority of documents without any additional adjustments or recourse to built-in Training capabilities.

galochka

Country-specific settings

ABBYY FlexiCapture for Invoices features a predefined set of processing rules and other country-specific settings which are applied once the program identifies the country of the invoiced business unit. Automatic validation rules ensure that the data comply with country-specific regulations or practices.

These ready-to-use settings are available for the list of specially supported countries which includes Australia, Austria, Belgium, Canada, Czech Republic, France, Germany, Great Britain, Hungary, Ireland, Italy, Netherlands, New Zealand, Poland, Spain, Switzerland, United States. A new profile can be added by the user for any other country during the set up.

galochka

Validation rules

Checks by means of predefined validation rules ensure consistency of the data and help to detect incorrect or incomplete invoices and the problem fields. Errors detected during automatic rules validation affect the document status. This allows distinguishing purely correct documents from the exceptional ones which require special management.

At the verification stage, errors detected by validation rules are supplied with brief comments explaining the nature of an error.

galochka

Document status detection

Each invoice gets one of the three possible statuses, which is automatically assigned to a document based on the results of the validation rules check. Document status detection facilitates differentiation of the invoices and enables touchless processing for completely correct documents.

Invoices without errors are assigned the status Valid, invoices with minor errors and requiring special attention are assigned the status Exception, and those which do not comply with the legal requirements or from which data are missing are assigned the status Rejected.

A document's status automatically changes to Valid when the errors have been corrected. The verifier can confirm the assigned status or force status change, providing reasons for their decision in a comments field. For invoices with the status Rejected a special export destination can be specified.

galochka

Advanced database look-up

During recognition the software matches the invoice data against the user's actual Vendor and Business Unit databases. Field values are automatically populated from these databases if the right records have been confidently detected. If no or multiple records are found in the database, the verifier can choose the correct record manually.

galochka

Purchase Order matching

In case a connection to a database of orders or contracts was set up, invoice data can be matched against the actual purchase orders at the verification stage. In this case the verifier will be able to open a matching order from the database, compare its data with those in the invoice, and confirm the data captured from the respective field.

On-the-Go Training technology

galochka

Operator-driven Training

To improve detection of ABBYY FlexiCapture for Invoices data fields, features On-the-go Training which makes the software remember corrections made by the user at the verification stage and automatically amend the FlexiLayout with new FlexiLayout alternatives.

galochka

Administrator-driven Training

Data recognition can be further improved by reviewing the results of Operator-driven training. An Administrator can review, roll back or adjust these results, view and modify the set of documents used for training, and disable or enable alternatives created as a result of Operator-driven training.

Verification UI

galochka

Specially-designed data verification form

The intuitive verification interface of ABBYY FlexiCapture for Invoices has been carefully designed specifically for working with this type of document. Data fields on the verification form are grouped together and arranged in the way that is most practical for invoices. Key fields are supplemented with a snapshot of the original image. The required fields are highlighted; warning and error messages are displayed together with comments to enable fast and accurate corrections.

The data verification form and the order in which fields are to be verified can be easily customized to suit the user's needs or established practice.

Setup

galochka

Country pane

Such settings as language, currency, date formats, number formats, validation rules, tax rates, etc. are country dependent. ABBYY FlexiCapture for Invoices provides default settings for the specially supported countries. These settings can be modified by the user if necessary.

The user can easily add a new profile and specify the correct settings for any other country for which no default settings are currently available in the software.


How to capture invoices

The invoice capture process includes the following steps:

·Adding and recognizing images

·Verification and correction of errors

·Exporting the verified data


Adding and recognizing images

Show/Hide Hidden Text

Adding images

Invoice processing begins with adding document images.

note Note: Added images have to be separated into documents before processing starts. You can configure document separation in the import settings See Image import profiles

There are several ways to do this:

·Scanning hardcopy documents with a scanner

·Adding existing scans from a folder

·Using an image importing profile that was specified by the Administrator (import images from a scanner, a Hot Folder or an e-mail inbox).

To read more about each way to import images, See Adding page images.

Recognition

Recognition begins automatically after images have been added.

A recognized invoice will be named Invoice and the Invoice Status and Certainly Recognized Characters columns will be completed (the Invoice Status column will be completed if this action was allowed by the Administrator).

What to do if documents are not recognized automatically

Select the documents, open the Recognition menu and click Recognize.

To enable automatic recognition, enable the Recognize added images automatically on the Document Processing tab (Tools → Options...).
If documents are named <Unknown> after recognition

1.Check the Processing Notes column to see why the document was not recognized.
Example: Check the recognition language. This means that the language of the invoice is not supported. Contact your Administrator.

2.Open the document and make sure it is an invoice.

3.Apply the Document Definition manually:

a)Right-click the document and select Match Document Definition... from the shortcut menu. A dialog box with a list of Document Definitions will open.

b)Select Document Definition from the list and click OK.


Verification

At this stage, documents that need verification are reviewed and errors are corrected.

A document needs to be verified when

·its status is other than Valid (check the Invoice Status column in the document list)

warning Important! This feature may be disabled. See The status of documents in projects for more information.

·errors have been detected by validation rules (a red flag is displayed on the document's icon)

·the number of objects to be verified is greater than 0 (check the Characters for Verification column in the document list)

To begin verification, open a document that needs to be verified in the document editor.


Invoice statuses

Show/Hide Hidden Text

warning Important! This feature must be enabled by the Administrator. Otherwise, the Invoice Status column will remain empty and no status or status description will be displayed in the data form.

Statuses are assigned to invoices based on rule checks and/or manual checks performed by operators. Statuses are displayed in the Invoice Status column in the document list.

note Note: Rule checks affect the status of invoices only when they are processed within the Invoice Processing (EU) project. For more information, see Rules and the status of invoices in the Invoice Processing (EU) project below.

Status | Description
Valid | Rule checks have been successfully completed and the invoice is ready for export
Exception | Invoice requires verification
Rejected | The invoice does not comply with legislation (necessary data could not be found, is missing or has been recognize incorrectly). This data must be specified manually or the invoice must be processed in other ways (e.g. returned to the vendor)

The status of an invoice is determined automatically by validation rules. When errors have been corrected, rule checks are carried out again and a new status is automatically assigned to the invoice. For details, See Available rules.

If an invoice contains errors that could not be corrected and has a status other than Valid, the status must be confirmed by the operator. Such invoices will be exported separately from the correctly completed invoices (as specified by the Administrator).

The status of an invoice can be specified manually. For example, to allow the program to export invoices that do not satisfy some of the rules, the operator can change their statuses to Valid. Similarly, the status of an invoice that satisfies all of the rules but that should not be exported needs to be manually changed to Rejected or Exception.

How to change the status of an invoice

The current status of an invoice and a description of the rule that was used to determine this status are displayed in the top part of the data form. The reason for manual status change may also be displayed there. Follow the instructions below to change the status of an invoice.

1.Click the DotsButton button to the right of the status.

2.Select the status you want to assign.

3.Select the reason for the manual status change or type your own (if custom reasons have not been forbidden by the Administrator).

Rules and the status of invoices in the Invoice Processing (EU) project

Field groups | Rule | Description | Effect on invoice status
Business Unit | Information about business units must be added to database | This rule checks if a new business unit that was found on the image and was saved to the BU data set has been added to the database. | Rejected
 | Business Unit's address is required | This rule checks to make sure that the BU\Street field is not empty. | Rejected
 | Business Unit's name is required | This rule checks to make sure that the BU\Name field is not empty. | Rejected
 | Business Unit's VATID is required | This rule checks to make sure that the BU\VATID field is not empty. * The rule is applied to invoices from all supported countries except Switzerland. | Rejected
 | Business Unit must be found in database | This rule checks if the business unit found on the invoice image is found in the BU data set. | Rejected
 | Business Unit's Country is required | This rule checks to make sure that the BU\Country field is not empty. | Rejected
 | Check tax rates on national invoices | This rule checks that the applied tax rates are correct for invoices from the same country. The possible tax rates and their validity periods are known for each country. | Rejected
 | Check tax rates field on international invoices | This rule checks that the applied tax rates are correct for international invoices. The possible tax rates and their validity periods are known for each country. | Exception
Vendor | Vendor address is required | This rule checks to make sure that the Vendor\Street field is not empty. | Rejected
 | Vendor name is required | This rule checks to make sure that the Vendor\Name field is not empty. | Rejected
 | Vendor VATID is required | This rule checks to make sure that the Vendor\VATID field is not empty. * The rule is applied to invoices from all supported countries except Switzerland. | Rejected
 | Vendor must be found in database | This rule checks if the vendor that was found on the invoice image is also present in the vendor data set. | Exception
 | Vendor details must be added to database | This rule checks if a new vendor that was found on the image and was saved to the vendor data set has been added to the database. | Exception
 | Vendor's bank details are required | This rule checks if IBAN, Bank code, and Bank Account correspond to values in the vendor data set. | No effect
 | Check vendor's bank details against database | This rule checks that the vendor's bank details detected on the invoice image are the same as the bank details in the Vendor data set. | No effect
Invoice Header Data | Invoice number is required | This rule checks to make sure that the Invoice Number field is not empty. * The rule is applied to invoices from all supported countries except Switzerland. | Rejected
 | Invoice date is required | This rule checks to make sure that the Invoice Date field is not empty. | Rejected
 | Delivery date is required | This rule checks to make sure that the Delivery Date field is not empty. The rule has no effect if Delivery Date Indicator is set. | Rejected
 | Delivery date must be earlier than Invoice date | The following check is performed: delivery date is within the interval Delivery Date <= Invoice Date. | Exception
 | Delivery date must not be earlier than a year ago | The following check is performed: delivery date is within the interval Today - 360 days <= Delivery Date | Exception
 | Check currency value | This rule checks to make sure that the currency is the same as one of the currencies specified for the project. | Rejected
Amounts | Total is a required field | This rule checks to make sure that the Total field is not empty. | Rejected
 | Amount check | This rule checks if Net Amount + Tax Amount = Total. If additional costs or discounts are detected, then the rules checks if Net Amount + Tax Amount + Additional Costs - Discount Amount = Total. | Exception
 | Tax Rate field must not be empty | If either Net Amount or Tax Amount is not empty, then the respective Tax Rate should not be empty. | Rejected
 | If tax rate is detected, pre-tax amount is required | This rule checks if for each found tax rate, the respective Net Amount and Tax Amount are not empty and also checks to make sure that Tax Amount = (Tax Rate/100) x Net Amount. | Rejected
 | If tax rate is found, tax amount is required | This rule checks to make sure that for each detected tax rate, the respective Tax Amount is not empty * The rule is applied only to invoices from Germany. | Rejected
 | Total Tax is required field | This rule checks to make sure that the Amounts\Total Tax Amount field is not empty. * The rule is applied to invoices from all supported countries except Germany. | Rejected
 | Check Tax field | This rule checks to make sure that for each detected tax rate, the respective Tax Amount is correct for the respective NetAmount and TaxRate (i.e. that the arithmetic equality TaxAmount = NetAmount * TaxRate is true). | Exception
 | Check Total Tax field | The following check is performed: Total Tax Amount = Tax Amount 1 + Tax Amount 2. * The rule is applied to invoices from all supported countries except Germany and Great Britain. | Exception
 | Check Net Total field | The following check is performed: Total Net Amount = Net Amount 0 + Net Amount 1 + Net Amount 2. If the Total Net Amount field is empty, this rule enters data into the field according to the calculations. | Exception
 | Check Total field if total tax amount is required | This rule checks to make sure that the sum of the detected net amount, tax amount, and additional costs is equal to Total. * The rule is applied to invoices from all countries except Germany. | Exception
 | Check Total field if total tax amount is optional | This rule checks to make sure that the sum of each found net amounts, tax amounts, and additional costs is equal to Total * The rule is applied to invoices from Germany. | Exception
 | Verify net total against order items | This rule checks the sum total of the values in the TotalPriceNetto column of the LineItems table against the invoice amount prior to taxes (TotalNetAmount). | No effect
Purchase Order | Check invoice line items count against order items count | This rule checks if the number of line items in an invoice is the same as the number of line items in the corresponding purchase order. | No effect
 | Check purchase order number and amount | This rule checks if the order number and amount captured from an invoice correspond to the orders in the PurchaseOrders data set. | Rejected
 | Check if invoice line items are matched with unique order items | This rule checks if there are multiple line items in an invoice associated with one and the same line item in the purchase order. | Rejected
Line Items | Check item amount | For each invoice item, this rule checks to make sure that the following is true: Quantity * UnitPrice is the same as TotalPriceNetto for the item after DiscountPercentage is applied. | No effect
 | Match invoice line item with order item | This rule checks to make sure that each line item from an invoice has corresponding item in the PurchaseOrderItems data set. | Rejected
 | Check LineItems currency value | This rule checks to make sure that the currency of the line item is the same as one of the currencies specified for the project. | Rejected
 | Price per unit is required | This rule checks to make sure that the Unit Price column is not empty. | Exception
 | Line level Total is required | This rule checks to make sure that the Total Price Netto field is not empty. | Exception
 | Quantity is required | This rule checks to make sure that the Quantity column is not empty. | Exception
 | Check GL Code | This rule checks if the value of the field is in the GLCodes data set. It is also used for making a list of suggestions for stations. | No effect
 | Check cost center | This rule checks if the VendorId, the associated BUId and the associated LineItems/CostCenter field are present in the CostCenters data set. It is also used for making a list of suggestions for stations. | No effect


Correcting recognition errors

During verification, invoices with the Exception or Rejected status are checked and errors are corrected. To begin verifying an invoice, double-click it to open the document editor window.

The document editor window is split into three panes: the page image, the data form, and the errors pane (this pane is only displayed if there are errors in the invoice). There are four types of error: assembly errors, format errors, rule errors, and missing field region errors. To display errors of a certain type, click the corresponding button in the top right corner of the errors pane (you can select any combination of error types).

The shortcut menu in the data form lets you confirm the value of a field, choose to display or hide format errors, go to the next or previous object that needs verification, and change the field navigation mode.

Fields whose values do not satisfy the specified data type or rules are highlighted. To confirm the value of a field, place the cursor inside this field and press the Enter key.

To specify a field region that was not found automatically, complete the following steps.

1.In the data form, place the mouse pointer in the field that contains the region you want to specify.

2.Specify the region:

oClick a recognized region (such regions are highlighted in blue)
or

oDraw the region by holding down the left mouse button and dragging the mouse pointer from the top left corner of the region you want to specify to its bottom right corner.

note Note: If you do not select a field prior to selecting or drawing the region, a dialog box with a list of fields will open. Select the desired field in that dialog box.

If the Administrator created a database of vendors and/or business units, you can select a record from this database (for details, see Looking up vendors and business units in the database).

Adding tax groups

ABBYY FlexiCapture for Invoices extracts values from fields that belong to two tax groups. If there are three or more tax groups in your invoices (e.g. if there are three or four tax rates), you can add them to the data form and enter their values manually.

In the data form, click Add 'Additional Tax Groups' item below Amounts → Tax Details → Additional Tax Groups and enter the field values manually as described above. Once you have completed these fields, the invoice amount will be recalculated.

note Note: Completed fields of additional tax groups are not used when training the program to capture data.


Looking up vendors and business units in the database

Show/Hide Hidden Text

If a vendor or a business unit was not detected automatically when an invoice was recognized, you can select one from the database. There are two ways to do this:

Begin typing the desired value in one of the fields of the group

A list of suggestions will be displayed. Any records that match the text you typed will be displayed in bold.

When you see the desired record, select it from the list by clicking it or choose it using the arrow keys (press the Enter key to confirm your choice).

Fields from the record will be inserted into the corresponding fields of the group on the form.

If you cannot find the desired record in the list of suggestions, click the Vendor (Business Unit) is not found or press Ctrl+Del to clear all of the fields in the group.

Click the Find... button in the form

The Lookup for Vendor (Business Unit) dialog box will open. This dialog box can be used to search for entries in the database.

Begin typing in the search box. Suggestions will be displayed in the list on the right, and any matches will be displayed in boldface. All of the fields of the selected record will be displayed on the left.

Select the desired record using the mouse or arrow keys and click the Select button. The fields from the record will be inserted into the fields of the group on the form.

If you cannot find the desired entry in the dialog box, click the Reset Data button to clear all the fields in the group.

Modifying vendor and business unit records and adding new ones

warning Important! This feature must be enabled by the Administrator.

The Vendor and Business Unit groups of fields contain the main fields. The program needs to detect these fields before it can locate and capture all other data.

Information from your data sets is used to find these fields on the invoice. (A data set is a local copy of a table from an external database that stores information about vendors or business units. A data set may be periodically updated to synchronize it with its external database.)

If a record for a vendor or business unit could not be found in the data set, it should be created manually.

Should any vendor details (such as the address of a vendor) change, the vendor's record in the data set should be modified accordingly.

note Note: If the program fails to detect vendor and business unit fields using your data sets, it will use neural networks for field detection, unless neural networks are disabled in the program settings. For more details, see Detecting the main fields.

To add new records to a data set or edit existing ones, use the Data set viewing/editing dialog box or one of the methods described below.

How to add a new record to the local copy of the database

1.Begin typing in the Id field from the Vendor or Business Unit group. The Vendor/Business Unit lookup dialog box will open.

2.Click the Add Record... button.

3.Specify the new record's data in the Add Record dialog box.

4.Click OK to save the new record.

or

1.Right-click a Vendor or Business Unit field and select Add Data Set Record... from the shortcut menu.

2.Complete steps 2 - 4 above.

You can also open the lookup dialog box by clicking the Find... button on the Data Form.

The record will be added to the local copy of the database (but not to the external database). The fields will be highlighted in green. The Id field in the document form will contain the value UNKNOWN. This means that this record only exists in the local copy of the database and is not yet present in the external database.

The Exception status will be assigned to the invoice and all subsequent invoices from the same vendor.

Once the new record is added to the external database, the Id field in subsequent invoices will be filled in.

How to edit an existing record in the local copy of the database

1.Begin changing the value of the Id field from the Vendor or Business Unit group. The Vendor/Business Unit lookup dialog box will open.

2.Click the Edit Record... button.

3.Make the desired changes.

4.Save your changes.

or

1.Right-click the desired field and click Edit Data Set Record... on the shortcut menu.

2.Complete steps 2 - 4 above.

You can also open the lookup dialog box by clicking the Find... button on the Data Form.


Verification of line items

ABBYY FlexiCapture automatically captures invoice line items if corresponding feature was enabled by the Administrator and is allowed by your license.

If, for some reason, invoice line items have not been captured automatically or have been captured incorrectly, you can capture line items manually or try fine-tuning the automatic capture feature.

A line item may include such fields as Order Number, Article Number, Description, Quantity, Unit Price, Total Price, etc. See Invoice Definition Fields.

Looking for line items

Click the Continue Line Items command (available by right-clicking the region of the line item field) to attempt to detect the line items below the current line.

When looking for the line items below the current line, the program uses the markup information about the regions of the current and preceding lines which was provided (or adjusted) by the user.

If the markup does not match the line items properly, the Operator should:

·draw a rectangle around the first line item

·mark all the fields of the first line item

·select the Continue Line Items command on the shortcut menu of any field of the first line item

This will cause the program to detect the remaining line items automatically. For more reliable detection, the program will use information about the position of the first line item and about the positions of the field regions within the line item.

If the result is still unsatisfactory, the Operator should:

·correct the position of the first incorrectly detected line item

·specify the fields of this line item

·invoke the Continue Line Items command for this line item

This will cause the program to detect the remaining line items automatically. For more reliable detection, the program will use information about the position of the current line item and about the positions of all of the preceding line items.

If the result is still unsatisfactory, the Operator should manually draw a rectangle enclosing all of the line items and then draw horizontal separators to separate the individual line items.

Looking for fields in line items

If the line items have been detected correctly, but some of the fields within line items have not been properly identified, the Operator can use the Reanalyze Line Items Below command, which is available on the shortcut menu of the line item's region.

This command takes into account the positions of the fields in the line items in the current line and the line items that precede it, which is deemed to be provided (or adjusted) by the user. Using this information, the program identifies the fields in the line items below the current line.

If the line items have been detected correctly, but some of the fields within the line items have not been properly identified, the Operator should:

·arrange the field regions in the first line item

·select the Reanalyze Line Items Below command on the shortcut menu of the line item's region

The program will automatically detect the fields in the remaining line items, without changing the positions of the line items themselves. For more reliable detection, the program will use information about the positions of the field regions in the first line item.

If the result is still unsatisfactory, the Operator should:

·adjust the position of the fields in the first line item where the fields are detected incorrectly

·invoke the Reanalyze Line Items Below command for this line item

The program will automatically detect the fields in the remaining line items, without changing the positions of the line items themselves. For more reliable detection, the program will use information about the positions of the field regions in the current line item and in all of the preceding line items.

note Note: For the Continue Line Items and Reanalyze Line Items Below commands to be operational, the vendor's or purchaser's country must be known to the program, i.e. the corresponding field on the data form must be completed.

note Note: For the Reanalyze Line Items Below command to be operational, enable the Has table layout option in the Document Definition (for details, see General field properties).

Marking up line items manually

In ABBYY FlexiCapture, you can mark up line items manually.

To mark up a line item, draw a rectangle around the line item on the image and then select Line Items[*] on the shortcut menu.

Next, either hold down the left mouse button or use the Add Separator (F) tool to draw horizontal separators to separate individual line items.

Invoice form designers may choose to position line items on their invoices in many different ways.

Very often, some of the columns will be separated from the other fields by vertical separators. In this case, draw vertical separators to separate the columns from the fields so that each column has only one field. Click on the markup (on the separator or on the enclosing rectangle). A green plus sign will appear in the column's header. Click the plus sign and select the name of the column from the list. The corresponding fields will be automatically created inside the column.

Some other columns (e.g. Description or Article Number) may be placed in one column on the image. In this case, you can mark up fields by simply clicking them and drawing their regions with the mouse.

Create the regions of the fields in the first line item in the column. Now when you start creating the regions of the next line items in this column, the program will display prompts for fields using the information it has accumulated about the preceding line items.

Training line items

The training of line items may be necessary in the following two cases:

I.The capture of line items should be improved (e.g. if some of the columns have not been detected or columns have been detected incorrectly, if some of the values or their regions have not been detected properly, etc.).

II.No line items have been detected on some of the invoices (or line items have been detected incorrectly, i.e. the field regions identified by the program do not match the actual field regions).

note Note: Training only works for columns (including those columns that were manually added to the Document Definition). You cannot train undetected rows.

To improve the capture of line items:

1.Mark up the columns for three to five rows
or
mark up one or two rows and from the shortcut menu of any field of the first line item, select Continue Line Items or Reanalyze Line Items Below. See Looking for line items and Looking for fields in line items above.

2.Repeat step 1 for the three invoices.

note Note: Only the first three invoices will be used for which you invoked the training feature. To select a different set of invoices, use the DocVariantsButton Open Field Extraction Training Batches view. See Training by users with project setup permissions.

If no line items have been detected:

1.Mark up the line items manually and perform the training steps as described above.

2.The Administrator can train line items in administrative training mode in the same manner that he trains other fields (see Training while processing documents).

note Note: Before you can train the program to capture line items, the vendor must be specified and the Training during processing and Line items extraction options enabled.

After the export all the documents are moved to the Training stage by default.

Working with line items on the data form

Invoice line items are displayed as a table in the data form.

By default, those columns are displayed in the data form, whose fields have been detected on the image or whose display has been enforced by the Administrator in the Document Definition.

To customize the display of columns in the data form, right-click the header of the table in the data form and on the shortcut menu check those columns that should always be displayed in the data form, even if their fields have not been detected.

To add or delete line items in the data form, right-click the column, to the left of the line items, and then select either Insert 'Line Items' item above/Insert 'Line Items' item below or Delete.

On the shortcut menu of a line item's field, besides the standard commands available for all fields in the data form, the following commands are displayed:

·Copy Value to All Rows - Copies the value of the current cell into all of the cells in the current column

·Copy Value to Other Rows - Copies the value of the current cell into the selected cells in the current column


Training during invoice capture

Show/Hide Hidden Text

If you are not satisfied with the quality of data that ABBYY FlexiCapture for Invoices automatically extracts from fields, you can train the program while capturing invoices.

This is done by indicating the correct location of fields on the three images of this type of invoice. After the export all the documents are moved to the Training stage by default. It will perform the training procedure and use the results of this procedure when processing new invoices of this type.

warning Important! Training during invoice capture must be enabled by the Administrator.

How to train the program while capturing invoices

1. Collect a batch of invoices (e.g. invoices received during the past month) and begin inputting them ( See How to capture invoices).

2. After input, documents are automatically recognized (if this option is enabled by the Administrator) and checked using rules.

3. If the resulting status of an invoice is other than Valid or you have other reasons to believe that the program failed to find fields on the image or located them incorrectly, open the invoice in the document editor.

4. Check the document form. The Vendor group of fields must be filled out correctly.
More...

Training is performed separately on each type of document. Invoices from a single vendor are considered to belong to a single type. If the vendor on an invoice is determined incorrectly, that invoice will be assigned to the wrong document type during training. If the vendor was not determined, select a vendor from the database. If you cannot find the right vendor in the database, type the data from the image in the fields from the Vendor group and save these changes to the database by clicking the Save Changes button.

Depending on your project's settings, you may also have to specify the unique ID of an invoice's vendor in order to enable the program to train on that invoice. To do this, type the unique ID in the VATID field (this field may have a different name in some localizations of projects). The VATID is a unique identification number assigned to companies for value-added taxation purposes.

5. One of the necessary conditions for training is that the positions of the regions of all fields on the images match the real positions of the fields on the invoice. You have to make sure that the regions are located correctly.
Correct the positions of the regions on images of at least three documents and draw regions for fields that were not detected.
How to change the region of a field

·Place the mouse pointer in a desired field on the data form, find the corresponding region on the image (it will be highlighted in blue), and click it (or draw a rectangle with the mouse).

·Position the mouse pointer over a desired region on the image (it will be highlighted in blue), click it (or draw the region with the mouse), and then select the corresponding field from the drop-down list that opens.

·Adjust the position of a region on the image by moving its boundaries with the mouse.

·Delete an incorrectly located region from the image: position the mouse pointer over its rectangle and when a red cross appears in the top right corner, click the red cross. The markup of the region will be deleted. Now create a new region for this field in the right location.

·On the data form, start typing a value into a field. A drop-down list will be displayed listing the words captured from the image that resemble the word that you are typing. Select the right word from the list, and the position of the word on the image will become the region of the field.

6. After the export all the documents are moved to the Training stage by default. The training process will be started automatically (the Train Document Definition window will be displayed). Either a special FlexiLayout Variant will be created for this document type or the program will prompt you to continue adding sample images (if this is the case, select the next document and go back to step 4).
If the FlexiLayout Variant is successfully trained, it will be used for the next invoice from the vendor whose invoices belong to the given document type. Upon recognition, the regions of the fields will be matched against the fields on invoice image, taking into account the knowledge obtained through training.

7. Add a few more invoices from the vendor whose document type has been trained and recognize them. Then open the newly added invoices one by one in the document editor to check if the regions are marked up correctly. If all the regions are located correctly, no additional training is required.

If you are not satisfied with the results achieved by completing the steps in this section, continue training on invoices from the vendor (steps 4-5).


Exporting data

After data has been verified, it needs to be exported.

To export your data using the settings specified by the Administrator, click the Export button on the main toolbar.

note Note: Export can also be carried out manually. To do this, click the ▼ to the right of the Export button and select one of the menu items:

·Export to data files exports data to files

·Export to image files exports images to files

·Export to ODBC-compatible database exports data to a database

For more on exporting options, see:

details Exporting recognized data


How to set up an invoice capture project

Show/Hide Hidden Text

Before you begin processing invoices, you will have to:

1.Create a new project.
Open the File menu and select New Project.... From the Project type drop-down list, select either Invoice Processing (Au-NZ), Invoice Processing (CA), Invoice Processing (ES), Invoice Processing (EU), Invoice Processing (JP) or Invoice Processing (US) as the project type, depending on the location of the business unit (See Supported countries and languages).

2.Specify a name for the project and the path to the folder in which it should be saved.

note Note: You can create several projects. For example, you can have a separate project for each department or for specific vendors.

3.Configure the project. A properly configured project yields higher data capture accuracy. The settings that have to be configured before you can begin processing are described below.

galochka Set up import profiles

Invoice processing begins with acquiring document images. There are several ways to acquire images:

·An Operator can scan hard-copy documents.

·An Operator can add images from a folder.

·An import profile can be used. Import profiles are set up by an Administrator and include import from a scanner, from a Hot Folder, and from an e-mail inbox.

For more information on import profiles, See Image import profiles.

warning Important! The current version of ABBYY FlexiCapture for Invoices has a limit on multi-page invoice processing. If an invoice has several pages, they must be assembled in the proper order (from first to last). The beginning and end of a multi-page document must be defined. This can be done in the import settings.

galochka Specify region and language settings

Create a list of countries from which your invoices will originate. This list will be used to determine the set of rules that will be used for checking your invoices, the formatting of numbers, dates, and sums, tax rates, currencies, the values of special fields, and a list of permitted languages for the invoices. This list of languages will then be used to select the keywords that help find fields on invoices.

note Note: All regional and language settings are available in an XML file. For details, Editing invoice processing settings in XML files.

galochka Add data bases

Perform this step if you have a database of vendors and business units. Such databases help correctly identify groups of vendor and business unit fields on the invoice image and extract data from them. Without databases, groups of vendor and business unit fields have to be specified by hand during verification.

galochka Configure export settings

Specify an export path for extracted data. The project already includes a default export profile, but various other profiles can be set up for documents with various statuses. For example, you may choose to export documents with the Rejected status to a separate folder.

note Note: For more on document statuses and their uses, See The status of documents in projects.

Additional settings

galochka Training

The Administrator can train the system when setting up the project. If testing reveals that the quality of data capture is inferior for some invoices, training can be used to improve the quality of data capture.

galochka Rules

Specify rules that will be used to check invoices.

galochka Data capture from additional fields

Specify additional fields for data extraction or create your own custom fields.

galochka Purchase order matching

Set up automatic matching of invoice fields with purchase orders.

galochka Additional options for Operators

Enable training during invoice processing or allow Operators to add or edit vendor and business unit records.

Graphical user interface settings ABBYY FlexiCapture for Invoices:

galochka Set up the appearance of the document form

galochka Localize the Document Definition

Translate field captions, names of buttons, tooltips, and other text in the data form. Translate error messages.

galochka Update the Document Definition

Users can update their projects when a new version of ABBYY FlexiCapture is released. Any modifications made by the user prior to the update will be preserved to the greatest extent possible.

galochka Workstation settings

·Global settings

·Individual settings (available in Tools → Options...)

More about personal settings...

The Options dialog box lets you:

·Choose which data is stored in the log and specify when tooltips should appear

·Define keyboard shortcuts

·Change GUI colors

·Change automatic recognition settings

·Set up the display of dialog box

warning Important! All changes made in the Options dialog box are stored locally and will not be altered when the project is changed or updated.


Country and language settings

Show/Hide Hidden Text

ABBYY FlexiCapture for Invoices can process invoices originating from a number of different countries and supports a wide range of languages.

All supported countries are enabled by default in the Document Definition. However, you should select only the countries from which you expect to receive invoices.

Ensuring that the right country is selected is important because:

·Keywords specific to invoices from that country become available to the program.

·Recognition quality will be significantly better because the right language will be used.

·The program will know which number and currency formats to expect.

The country of the invoice is used to determine the currency, keywords, additional fields, and the formats of fields such as IBAN and VATID.

The country of the invoice also determines the language set. Only enable languages that will be used during recognition. Extra languages interfere with processing and decrease performance.

Thus, by selecting countries you determine which invoices the program can process.

How to specify countries and languages

1.Open the Project menu and click Document Definitions....

2.Click the Edit... button in the dialog box that opens.

3.Open the Document Definition menu and click Document Definition Properties....

4.Select the Document Definition Settings tab in the dialog box that opens.

5.Click the Edit... button to the right of the Countries and Languages group.

6.Specify the desired settings in the Countries and Languages dialog box that opens.

How to edit the list of countries

Add or remove countries by selecting or clearing their check boxes.
How to edit the list of languages

The list of languages is generated automatically based on the list of countries (each country has its own set of languages which can be edited in the properties of the country). Remove any extra languages and add any missing ones:

1.Select the appropriate country from the list.

2.Click the Edit... button.

3.Select the Languages tab in the dialog box that opens and edit the list of languages.
How to edit a country's tax rates

If tax rates have changed in a country, these changes must be reflected in that country's settings. Follow the instructions below to edit a country's tax rates.

1.Select the country from the list.

2.Click the Edit... button.

3.Select the Tax Rates tab in the dialog box that opens.

4.Select the tax rate you want to change from the list and click Edit.... Click Add... to add a new tax.

5.Specify the new rate, duration, and key words in the Tax Rate Settings dialog box.
How to change IBAN and VAT formats

Complete the steps below to change the format of a Bank Account, Bank code, IBAN, National VATID, VATID, Total or Total tax.

1.Select the appropriate country from the list.

2.Click the Edit... button.

3.Select the Formats tab in the dialog box that opens and edit the formatting settings. For details, See Extended regular expressions.
How to change currency formatting

If you need to change the formatting of a currency or add a new currency:

1.Select the appropriate country from the list.

2.Click the Edit... button.

3.Select the Currency tab in the dialog box that opens and change currency formatting settings.
How to change the keywords used for finding fields on an invoice

Keywords are words that are frequently found next to specific fields on invoices. The program uses them to locate these fields. Keywords on invoices originating from a specific country may depend on the invoice language, but keywords in a language used in several countries may be different for those countries.

Keywords for fields are specified in the properties of countries and languages. Properly specified keywords help ABBYY FlexiCapture for Invoices locate fields and improve recognition accuracy.

Follow the instructions below to view and edit the list of keywords.

·Keywords for a specific country:

1.Select the country from the list.

2.Click the Edit... button.

3.Select the Keywords tab in the dialog box that opens and edit the keywords.

·Keywords for a specific language:

note Note: The language properties contain a list of elements that are used to find fields instead of a set of fields. For details, See Keywords used in a particular language.

1.Select the language from the list.

2.Click the Edit... button.

3.Edit the keywords in the Language Keywords dialog box.
How to add a new country

If you could not find a country in the list, you can create it and specify its properties (currency, tax rates, rules, etc.).

1.Select a country from the list.
All properties of the country you selected except for languages will be copied, so you should select a country whose properties are as close as possible to the desired ones.

2.Click the Duplicate... button.

3.In the dialog box that opens, select the name of the country you want to add and click OK.

4.Edit the properties of the new country.


Using vendor and business unit databases

Show/Hide Hidden Text

When processing an invoice, ABBYY FlexiCapture will first look for the vendor (i.e. the company that issued the invoice) and the business unit (i.e. the company or department that received the invoice).

The vendor in most cases determines the language of the invoice and the formatting of its numbers, dates, and amounts. The business unit determines the tax rates and applicable regulatory requirements. ABBYY FlexiCapture will use all of this information when capturing invoice data and applying validation rules.

To help the program locate the vendor and business unit fields, you can use vendor and business unit databases. These must be connected to the data sets in your Document Definition. (A data set is a local copy of a table from an external database that stores information about vendors or business units. The values in a data set can be typified and normalized. A data set may be periodically updated to synchronize it with its external database. See Preparing vendor and business unit databases for more information.)

Vendor and business unit databases can also be used for automatic and manual data checks.

You do not have to use vendor and business unit databases, but note the following:

·If vendor and business unit databases are used, ABBYY FlexiCapture can more reliably detect companies by looking for additional company information on invoice images. It can also make sure that a detected vendor is a "known" vendor. Additionally, if a vendor database is used, you will be able to train fields.

·If no vendor or business unit databases are used, ABBYY FlexiCapture will use neural networks to look for vendor and business unit names and addresses on invoice images (see Detecting the main fields for details). Note also that you will not be able to train fields, as ABBYY FlexiCapture cannot reliably identify vendors without a vendor database.

·If you have no vendor databases but still want to use field training, you can accumulate company information by adding records to your data sets while capturing invoices. For more information, see Looking up vendors and business units in the database.

Connecting databases

Vendor and business unit databases are connected in the same way:

1.Open the Project menu and click Document Definitions....

2.Click the Edit... button in the dialog box that opens.

3.Open the Document Definition menu and click Document Definition Properties....

4.Open the Data Sets tab in the dialog box that opens.

5.Double click the BusinessUnits (Vendors) row or click the Set Up... button. The Data Set dialog box will open.
A data set is essentially a table with data. It contains the necessary columns and their types. These columns and types cannot be changed by the user, who needs to match each column in the data set with a column from an external database. If a database does not contain a table with the necessary data, you will have to create a view with this data and specify this view as the table.

6.Select Database from the Source drop-down list.

note Note: Only select the Script source type if you plan to use a script to update the data set. For details, see Updating data sets.

7.Specify the database connection string.
You can select one of the existing environment variables from the project or define a new string by clicking the Specify... button. Using an environmental variable from the project allows moving the project and connecting to databases with the same structure without editing the Document Definition.

8.Select Data schema and Database table.

9.Match the columns from the data set with their corresponding columns in the external database.
For each column in the data set, you can specify the corresponding column in the external database or specify the value.
The Match fields list contains:

oThe names of columns in the data set

oThe corresponding columns from the external database

By default, each field in the External Database column column of the data set contains the value. This means that no column from an external database has been specified.

oThe Found column, which contains a checkmark if a match between the data set field and a database column has been established

oThe Normalization column, which shows the type of normalization used for the value

Normalization makes it possible to treat several insubstantially different values as identical (See Normalization for details).
Select a column in the table and click the Edit... button.

10.In the Data Set Column Mapping dialog box, select the matching database column from the Database columns list.
Invoices from the same vendor can contain different names of the vendor's company and different addresses. In cases when several values correspond to the same vendor (the same VATID), they must be placed in different columns of the table (or view) of the external database, such as Name1, Name2, Address1,..., AddressN.
You can then select Several columns... from the list when specifying matching columns and specify any number of columns from the database as matches for the data set column.

note Note: The external database may contain, for example, only one value for the company name and street. However, these fields may have several common variants when they occur on invoices. To achieve the maximum quality of detection, the text in these fields printed on an invoice should be as close as possible to the corresponding text in the data set. See Complex columns in a data set.
To create more than one column, specify the number of permitted columns for a field in the Max variant count box. Operators will be able to add values to these columns later.

note Note: If you specify a number that is less than the actual number of columns (the number of different ways the value of a field can be written), this number will be increased automatically when the data set is updated. If you specify a number greater than the actual number of columns, empty columns will be added.
If your database has no matching column for a data set column, please refer to the Vendors data set and BusinessUnits data set sections.

11.Select an entry from the Normalization list that best fits the type of data in the column (See Normalization for details). If necessary, enable the Store normalized value option.

12.Enable the Cannot be empty option if necessary.

note Note: When enabled, the Cannot be empty option tells the program that a column has to contain values. If it turns out to contain no values, the record will be marked as invalid.

warning Important! If your Document Definition contains a Vendors data set that uses and external database as its source, and the value of the Vendor field in your Document Definition depends on the value of the Business Unit field, the Cannot be empty will be enabled for the BusinessUnitId column by default. If the Vendors data set uses another source, this option must be enabled manually.

13.Save the changes you made in the Data Set Column Mapping dialog box.

14.You can also use the Add... button to add custom columns to a data set and specify corresponding columns in an external database.

note Note: You can use the Edit... and Delete buttons to manage complex columns. Predefined columns (indicated by the lock icon) cannot be deleted.

15.Specify a database update period in the data set if automatic updates are required.

16.To validate records using a script, enable the Check records using scripts option. For details, see Data set validation scripts.

17.Save your changes.

The Data Sets tab

All data sets are listed on the Data Sets tab. This list includes some additional information:

·The name of the data set in the Name column

·The type of the selected source in the Source column

·The total number of records in the Record count column

note Note: The total number of records will only be displayed if the Cache data option is enabled in the data set's properties.

·The status of the data set, i.e. whether it is enabled in the Connected column.

You can manage the data sets using the buttons to the right of the list:

·Set Up... opens the properties dialog box of the selected data set.

·Update updates the selected data set.

The Vendors and BusinessUnits data sets are stored within the project and must be synchronized with an external database, whose data may change over time. Synchronization occurs when the project is opened, but only if the time elapsed since the previous synchronization exceeds the specified update period. For more on updates, See Updating data sets.

·Check... checks the data set (data will be displayed in a separate window)

·Add... creates a new data set.

·Rename... renames the selected data set.

·Delete deletes the selected data set.

·View... opens a dialog box that lets you view and edit data from the selected data set.

·Clean Up deletes all records in the data set.

Viewing and editing data set records

To view or edit a data set, select it on the Data Sets tab of the Document Definition properties dialog box and click the View... button.

All records belong to one of three record groups. You can select the record group you want to view from the Record group drop-down list.

·General contains only valid records.

·Deleted contains records that were deleted by a user. These records are not used during recognition and will not be displayed as results for a database search. If the data set is updated, these records will not be restored.

·Invalid contains invalid records.

Click the Set... button to sort and filter records by their values in one of the list's columns. The Reset button disables the filter.

Different operations are available for each of the record groups:

Operation | General | Deleted | Invalid
Edit...* | Edits a record. Edited records remain in the list. | ... | Edits a record. Edited records remain in the list.
Add...* | Adds a record to the list. | ... | ...
Delete | Moves the record to Deleted. | ... | Moves a record to Deleted.
Restore | ... | Restores the record (moves it to General). | Validates the record (moves it to General).

* - adding and editing records is only possible if the Primary key option is enabled. Records in the PurchaseOrders and PurchaseOrderItems default data sets cannot be added or edited.

note Note: The number of values you can specify for a field when adding or editing records in a data set cannot exceed the number you specified in the Max variant count box in the Data Set Column Mapping dialog box of the data set. You can use the [image] and [image] buttons in the Add Record and Edit Record dialog boxes to manage records.

note Note: To apply sorting and filtering to newly added or edited records, set the filter again.

Database Check rules

The Invoice Document Definition contains rules that are used to check data in the Vendor and Business Unit groups of fields against the database. These are standard rules of the Database Check type with the names (Rejected) Vendor should be found in the database and (Rejected) Business Unit should be found in the database. See Rules to learn how to find rules in the list.

You can view the properties of these rules to find out which fields from the Vendor and Business Unit groups have to be exact matches of records in the data set (and, by extension, in the database), which ones do not have to match perfectly, and which fields are simply copied from the database. You can also specify a field to be used as a primary key for selecting a record from the data set.

You can read more about database check rules in See Database Check rule.

Database Check rules are applied automatically when the invoice is recognized, and after that each time an Operator changes fields in the group during verification.

Performing database lookups while processing invoices

If a vendor or a business unit has not been determined automatically, the Operator can select the appropriate record from the database (i.e. the data set).

See Looking up vendors and business units in the database.

Modifying vendor and business unit records and adding new ones

You can allow Operators to add new vendor and business unit records (if they are not found in the database) to data sets during verification and edit existing entries. This data will not be stored in external vendor and business unit databases, but it will be used during invoice processing and rule checks. For details, See Enabling additional program features for Operators.

See Looking up vendors and business units in the database.


Preparing vendor and business unit databases

ODBC-compatible databases

ABBYY FlexiCapture for Invoices allows you to connect a data set to an ODBC-compatible database (See Using vendor and business unit databases), to load data once, or to update a data set with data from an external database at regular intervals (See Updating data sets).

Therefore, your first step should be deploying external data in an ODBC-compatible database, such as Microsoft Access, Microsoft SQL Server or Oracle.

Eliminating duplicate records in the external database

It is important to determine the field in the external vendor (or business unit) database whose value must be obtained as result of detecting the vendor (or business unit) on an invoice. This field (or set of fields) should become the unique key of the data set.

The unique key of a business unit data set is the Id field (see BusinessUnits data set). From the user's point of view, this field is the result of ABBYY FlexiCapture for Invoices detecting the business unit to which the given invoice was issued.

The unique key of a vendor data set should be the value passed to the external information system as a result of ABBYY FlexiCapture for Invoices detecting the vendor that issued the given invoice. If one vendor table is used, the unique key must be associated with the Id field of the data set. This value will be passed to the external information system when the vendor is detected in the invoice.

If you are planning to process within one project invoices issued to different business units of your company, each of which has its own vendor database, you should associate the unique key of each business unit with the BusinessUnitId column of the Vendors data set, and the key of each vendor with the Id column of the Vendors data set. Therefore, the unique key of the vendor record to be passed to the external information system when the vendor is detected will be the pair of Id and BusinessUnitId values (see Vendors data set).

In the explanations that follow, we will consider only vendor detection, as the situation is completely identical in the case of business units.

The unique key of a record must determine the unique combination of parameters which are used for vendor detection. Very often, an external information system will consider a vendor record to be unique relying on more parameters than are specified in the invoice and/or are used for vendor detection.

For example, an external information system may expect to receive an MCN_USD identifier if the vendor My Company Name Ltd. issues an invoice in US dollars, or it may expect an MCN_EUR identifier if the same company issued an invoice in euros. Even though the currency is stated in the invoice (and the occasion when the MCN_USD should be returned can be distinguished from the occasion when the MCN_EUR identifier should be returned), currency is not used for vendor detection.

Therefore, the vendor detection mechanism cannot decide between MCN_USD and MCN_EUR.

In cases like this, create an MCN identifier, which will correspond to both MCN_USD and MCN_EUR and which will be returned when the vendor is detected. Next, you can create a rule in the Document Definition that will choose between MCN_USD and MCN_EUR depending on the currency of the given invoice.

To generalize, the unique identifier of a vendor record should have a unique set of parameters that are used for vendor detection, such as company name, company address, tax IDs (VATID, NationalVATID), and IBAN (see Vendors data set). Only then will the vendor detection mechanism be able to select the right vendor record for an invoice.

note Note: Next, the program can capture additional fields and use rules in the Document Definition to fine-tune the result to obtain the required value.

If the same (or easily confused) set of parameters that are used for vendor detection corresponds to multiple unique keys, the program will not be able to choose only one key, vendor detection will become haphazard, and the quality will degrade.

The reason for this is as follows. If the program can use the data printed on the invoice to reliably detect the My Company Name vendor but there are several records (MCN1, MCN2, ... MCNN) in the data set corresponding to the invoice data, the program may decide in favor of another record, which is a worse match for the invoice data but which does not result in so many records. This will ultimately cause the vendor to be detected incorrectly.

Consequently, it is very important to eliminate duplicate records in the external database and get a column in the external database which will have a unique value for each unique set of values of the record fields used for vendor detection.

When connected to the data set, rows with identical values in the column that will be associated with the unique key of the data set, will be automatically collapsed into one record in the data set.

Multiple-value columns in a data set

A data set can store multiple values for one logical column of one company record.

Storing multiple values is necessary because such company parameters as company name, street, etc. may vary from invoice to invoice (e.g. we may have "My Company Name" and "MCN Ltd."), but in order to detect the company reliably, the text in the data set must closely match the text captured from an invoice image. Besides, company may have multiple bank accounts or other attributes.

note Note: Note that multiple-value columns in Data sets should be used to store the same information written in different ways. For example, "Karl Marx Street" and "K. Marx str." are two different ways of writing the same address. However, company branches in London and Berlin should have two separate records.

Values for multiple-value columns may be taken from an external database (e.g. a table of vendors may contain one to five bank details for each company), or they may be added by the user during data capture (e.g. an Operator may add to the data set a commonly used variant of a company name that is not known to the external database).

data sets use column denormalization, i.e. they store data in the following form:

Unique key of data set* | Name1 | Name2 | ... | NameN | ...
1 | My Company Name | MCN Ltd. | ... | <empty value> | ...
2 | The Second Company, Inc. | S-Company | ... | <empty value> | ...
... | ... | ... | ... | ... | ...

For one logical field of a record, say, Name, multiple columns are created in the data set, which store all the possible values of the logical field. Thus, Name may be termed a "complex column."

When connecting a table (or a view) from an external database, you can use column denormalization as described above, or more common row denormalization. In the latter case, the rows that should be merged in the data set into the parameters of one record should have the same value of the column that corresponds to the unique key in the data set. For example:

Column corresponding to unique key in data set* | Name | ...
1 | My Company Name | ...
1 | MCN Ltd. | ...
... | ... | ...
N | <empty value> | ...
2 | The Second Company, Inc. | ...
2 | S-Company | ...
... | ... | ...
N | <empty value> | ...
... | ... | ...

*The unique key of a BusinessUnits data set is the Id field. The unique key of a Vendors data set is either the Id field or the pair of fields Id and BusinessUnitId, depending on the settings (see Vendors data set)


Updating data sets

There are two types of data sets in ABBYY FlexiCapture:

·The first type only contains information about the structure of the data.

·The second type contains the data from the external database. This is enabled by selecting the Cache data option in the properties of the data set.

Updating a data set synchronizes it with its external database. It only makes sense to update data sets that contain data from an external database. The update will make up-to-date data from the external database available in ABBYY FlexiCapture.

Data sets are updated at various times:

·An update can be initiated in the Document Definition Editor by the user.

·An update can occur after a certain time period since the last update when the batch is opened on the Administrator Station or on the Operator Station of ABBYY FlexiCapture Standalone, or on the Project Setup Station of ABBYY FlexiCapture Distributed. This time period can be changed.

·An update can be explicitly initiated by a user of the Processing Server or of a full-featured station (i.e. a FlexiCapture station with access to all of the program's features that can only be used in the local area network), or according to a schedule set up on the Processing Server or on the Project Setup Station.

Updating data sets in the Document Definition editor

1.Open the Document Definition menu and click Document Definition Properties....

2.Go to the Data Sets tab in the dialog box that opens.

3.Select the data set you want to update and click the Update button.

Updating data sets when batches are opened

To enable automatic updates, open the properties of the data set, select the Update interval and specify the interval between updates.

An update will be initiated when a certain amount of time has elapsed since the last update and the batch is opened on any station of the Standalone version, or on the Project Setup Station in the Distributed version of FlexiCapture.

Some stations will not have access to the external database, making it impossible to update their data sets. The updating of data sets on stations can be disabled by clearing the Update data sets when batch is opened option on the Document Processing in the Options dialog box or by editing the following registry subkey:

[HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller]

"DisableCacheUpdate"="1".

Scheduling data set updates

In ABBYY FlexiCapture Distributed, data set updates can be initiated from the command line on the Processing Server or on any full-featured station (with the exception of remote stations and web stations). This is only possible when the Processing Server or station has access to the FlexiBr.exe or FlexiBrSvc.exe file. Use the following command to update data sets:

update dataset <project path> [<Document Definition name>] [<data set name>], where

·<project path> is the URL of the project on the Application Server of ABBYY FlexiCapture, such as http://<ApplicationServer>/ProjectId where <ApplicationServer> is the name of the computer on which the Application Server is installed. This URL can be copied from the properties dialog of the project on the Project Setup Station.

·<Document Definition name> is the name of the Document Definition to which the data set belongs.

·<data set name> is the name of the data set that needs to be updated.

Only Administrators and the user of the Project Setup Station can use this command in ABBYY FlexiCapture.

Example of a command that can be executed on the Processing Server to update the Vendors data set:

FlexiBRSvc.exe please update dataset "http://myAppServer/ProjectId/ProjectName" "Invoice" "Vendors"

This command updates the data set on the Processing Server. However, full-featured stations will keep using their local copy of the data set until they are restarted.

Processing Stations that represent Windows services will update local copies of the data set in the background every time before launching the recognition process.

You may also use Windows Scheduler to configure the data set to be updated on schedule.

Merging data when updating a data set

ABBYY FlexiCapture lets Operators edit data sets during processing. In particular, ABBYY FlexiCapture users can add new vendor and business unit data and modify existing data. These changes are not carried over to the external database.

The external database can be edited independently.

Data sets are updated as follows:

Existing records | ·All changes made by users will be retained ·All changes made to the external database will be carried over to the data set
New records | ·New records created by Operators will be deleted ·New records from the external database will be carried over to the data set
Deleted records | ·Data set records that have been flagged as deleted will not be restored ·Records that have been deleted in the external database will be deleted from the data set

Replacing data in a data set with data from an external database

If the Operators do not make any changes to the data set, all of the data it contains will be replaced by data from the external database upon each update. If the Operators do change the data set, the Administrator has the option to overwrite it with data from the external database, thereby deleting all of the Operator's changes.

To do this, reconnect the data set:

1.Open the Data Sets tab in the Document Definition Properties dialog box and select the data set you want to reconnect.

2.Click the Set Up... button.

3.Specify the connection string, select a schema and a table, and specify matching columns.

For details, See Using vendor and business unit databases.

Using scripts to update data sets

For details see Data set update script.


Normalization of values in data sets

Show/Hide Hidden Text

This article describes the different types of normalization that can be used when adding columns from an external database to a data set in a ABBYY FlexiCapture for Invoices Document Definition, and the settings of these normalization types.

Normalization can be used to change the format of values that are written differently but essentially mean the same thing. Normalization enforces consistent formatting of values so that they can be compared. For example, the address and name of a company may be written in a variety of different ways. Since these values refer to the same company and the same address, they need to be normalized to enable the program to make a proper comparison.

The type of normalization can be specified for each column in a data set when mapping these columns to columns in an external database.

Normalization is only applied to values stored in the data set (the Cache data option must be enabled in the data set's properties). Values in the external database will not be changed.

How does normalization work during data extraction in program?

ABBYY FlexiCapture for Invoices offers two types of normalization for values from the data set.

1. Text

This type of normalization is useful when comparing strings such as company names and addresses.

a.White space (this includes newline and tab characters) and separation symbols are replaced with regular spaces.

b.Periods used as separators (periods that are placed between words) are replaced with spaces and periods in abbreviations are removed.

c.Normalization of conjunction symbols (&, +, -, /, ~):

oSets of words that begin with a single-letter word and are separated by the same conjunction symbol are joined into a single word, e.g. R & D becomes R&D;

oIn all other cases conjunction symbols are replaced with spaces, e.g. Procter&Gamble becomes Procter Gamble.

d.Double spaces are removed.

e.A list specified in advance is used to split words. For example, CoKG is split into Co KG.

f.Spaces in recognized text are used to split it into separate words.

g.A list specified in advance is used to replace suffixes in each word. For example, you can replace the suffix strasse with the suffix str.

h.Automatic replacement of strings of words according to list specified in advance. For example, you can replace the work Limited with the abbreviation Ltd.

Normalization parameters are specified in the Normalization.xml file, which is stored in the project's folder.

More...

The Normalization.xml file can be modified after the Dataset has been created (separately for each Dataset). To modify the standard normalization settings, do the following:

1.Download the settings file using the DownloadNormalizationSettings FCAdminTools command.

2.Make the appropriate changes.

3.Upload the settings file using the UpdateNormalizationSettings FCAdminTools command.

warning Important! After updating the settings file, you need to update the data set. For more information, see Updating data sets.

note Note: Significant changes may be made to the normalization algorithm in future versions of the program.

2. Alphanumeric code

This normalization type is useful when comparing alphanumeric codes such as tax ID numbers, bank accounts and post indexes.

All symbols except for numerals and letters are removed from values, allowing you to compare values while ignoring spaces, dashes, slashes and other arbitrary characters that these values may contain.

When normalization is applied, the Store normalized value option becomes available when mapping the data set column to a column in an external database.

·When this option is enabled, normalized values will be stored in the data set.

·When this option is disabled, original values from the external database will be copied to the data set.

This option does not affect data extraction or automated checks, but it does determine which value will be displayed to a user when the user searches for an entry in a dictionary.


Data export settings

In a ABBYY FlexiCapture for Invoices project, an export profile can be set up for every document status (you can read more about statuses in ABBYY FlexiCapture for Invoices). You can, for example, export documents with the Rejected status to a separate folder. Each export profile can have its own export settings (such as export to data files or ODBC-compatible databases), export path, and list of fields from which data needs to be exported.

Captured data must be exported after it has been verified. The project already has two export profiles that are provided as examples. One of these profiles is for documents with the Valid status, the other is for documents with the Exception status. Both profiles export data in the *.csv format but use different paths: the first one exports data to the Export (Valid) folder, the second one to the Export (Exception) folder. For more on export profiles, see Export settings.

Setting up export based on document statuses

Export setup in ABBYY FlexiCapture for Invoices is largely similar to ABBYY FlexiCapture (See Export settings):

1.Open the Project menu and click Document Definitions....

2.Click the Edit... button in the dialog box that opens.

3.Open the Document Definition menu and click Export Settings....

4.In the dialog box that opens, click the Add... button to open the Export Destination Wizard.

5.Specify export settings.

6.Select the Field condition option.

7.In the Export Conditions dialog box that opens, click the Select... button.

8.Select the Status item from the list of fields by double-clicking it.

9.Select Belongs to set from the drop-down list.

10.Specify the status (Valid, Exception or Rejected) that an invoice must have in order to be exported.

11.Click the Add button.

12.Click OK. The selected status value will be displayed in the Export Destination Wizard.

13.Follow the instructions in the wizard to set up the export profile.

The list of export profiles now contains a new profile that is applied to documents with the status you specified.

Editing the list of fields from which data needs to be exported

By default, data is exported from all fields. However, you can choose not to export data from specific fields, or create a separate list of fields from which data needs to be exported in each export profile. For details, See Export settings.


The status of documents in ABBYY FlexiCapture for Invoices projects

Once invoices are fed to the program, they are automatically recognized and then checked using a set of validation rules. After applying the rules, each invoice will be assigned a status.

Invoice statuses are assigned automatically based on the set of rules which have been already created (See Available rules).

Documents that have the Valid status may be exported without being verified.

Invoices with other statuses must be first reviewed by the Operator. The Operator examines each document and corrects any errors or warnings issued by the rules. Once the errors and warnings in an invoice are corrected, its status will change to Valid. The Operator may also choose to agree with an automatically assigned status or assign a status manually, providing his reasons in the comment field.

If the program consistently fails to detect certain fields on image invoices, the Operator can train the program in the process by indicating the correct field positions on the current image.

Documents with different statuses can be exported to different destinations for subsequent processing by your financial software. The comments provided by the Operator when changing their status will also be visible in your financial software.

Disabling invoice statuses

When invoice statuses are disabled, the following changes occur:

·the Status and Reason fields disappear from the data form and become uneditable in the Document Definition editor

·the Invoice Status column remains empty after recognition

These changes will not interfere with the operation of the predefined rules that affect document statuses.

warning Important! When invoice statuses are disabled, status-based export will not work (be sure to clear the Field condition option in the export profile settings). Any status-triggered rules will not work either.

To disable the calculation of invoice statuses:

1.On the main menu of the Document Definition editor, click Document Definition → Document Definition Properties....

2.In the invoice properties dialog box, click the Document Definition Settings tab.

3.Click the Edit... button in the Additional Fields and Features group.

4.In the Document Definition Features dialog box, clear the Invoice status option.

Operator-assigned statuses: Operator's comments and predefined reasons for change of status

The Operator may ignore errors and warnings issued by the rules and assign a status to an invoice manually. When doing so, the Operator will need to provide a comment or select a reason from a list of predefined reasons.

1.From the Project menu, select Document Definitions....

2.In the dialog box that opens, click Edit....

3.From the Document Definition menu, select Document Definition Properties....

4.In the dialog box that opens, click the Document Definition Settings tab.

5.Click Edit... next to the Handling Invoice Output Status group. The Reasons for Change of Status dialog box will open.

Editing the list of predefined reasons:

By selecting an item in the Status list, you can view the list of pre-defined reasons for changing the status of an invoice.

To add a new custom reason, click Add.... In the Reason for Change of Status dialog box, add a new reason and its code.

To load a reason from a text file, click the Load... button.

Allowing Operators to provide their own reasons:

Select the Operator may enter custom reasons option if you want to allow the Operator to provide his own ad-hoc reasons for the status change.

Setting up status-dependent export

Generally, setting up export for ABBYY FlexiCapture for Invoices is no different from setting up export in ABBYY FlexiCapture (See Data export settings). For detailed instructions on setting up status-dependent export in ABBYY FlexiCapture for Invoices, See Data export settings.

Rules that affect the status of an invoice

To view the rules:

1.From the Document Definition menu, select Document Definition Properties....

2.In the dialog box that opens, click the Rules tab.

A rule may affect the status of an invoice.

To make a rule affect the status of invoices, add the prefix (Rejected) or (Exception) to its name. Errors issued by a rule thus prefixed will cause the corresponding status to be assigned to a failed invoice. You can add a status-changing prefix to a rule either when creating a new rule or when editing an existing one.


Rules

Show/Hide Hidden Text

ABBYY FlexiCapture for Invoices uses rules to validate invoices automatically. Upon validation, an invoice is assigned a status and a list of issued errors and warnings is generated, enabling the Operator to decide whether the invoice needs to be verified manually. While verifying an invoice in the document editor, the Operator sees the list of errors detected by the rules and can use this list to navigate and review the defective fields.

ABBYY FlexiCapture for Invoices already includes pre-defined validation rules for invoices commonly used in different countries (See Rules). Users can modify or remove existing rules and create new custom rules.

Some features specific to rules in ABBYY FlexiCapture for Invoices

For detailed instructions on working with rules in ABBYY FlexiCapture See Rules.

Rules in ABBYY FlexiCapture for Invoices have the following specific features:

Rules may affect the status of a document

To make a rule affect the status of a document, the rule must have a corresponding prefix in its name. Rules with names prefixed with (Exception) or (Rejected) will change the status of an invoice to Exception or Rejected if the rule detects errors in that invoice.
Rules may be applied to a certain set of countries

To implement this feature, use conditions for applying rules. For more information, See Rules.

Rules detect the country of an invoice based on the country of the business unit to which the invoice has been issued.

If a certain kind of validation is relevant only to particular countries, only the relevant countries should be specified in the rule conditions. Conversely, if invoices from all countries must be validated except one particular country, be sure to exclude that country in the rule conditions (the condition must apply the rule only if the value of the country of the business unit is not the same as the name of the excepted country).

Using the list of rules

View the complete list of rules

To view all the rules set up for the project:

1.From the Document Definition menu, select Document Definition Properties....

2.In the dialog box that opens, click the Rules tab.

3.In the Show rules list, select owned by Document Definition and its children.

To view all the rules that will be applied to invoices from a particular country, say, Germany use the filter.

Setting up a filter

1.In the Document Definition Properties dialog box, click the Rules tab and then click the Filter... button.

2.In the Filter dialog box, select If this condition is true and then select a desired field in Field in the Invoice Layout\BU\Country field, which defines the country of the business unit.

3.Select the Overlaps with set condition from the drop-down list.

4.Use the Select... button to specify the required countries in the field below. A Field Value dialog box will open, where you need to select the countries for which to display the rules. For Germany, for example, select DE.

5.Click OK.

Now the list will display all the rules that will be applied for invoices of the country that you specified in the filter.

Note that the condition that triggers a rule is shown in the Apply rule column.
Finding a rule in the list

You can use the following filtering criteria to find a rule:

·rule name

·the name of a field referred to by the rule

·the condition that triggers the rule

1.In the Document Definition Properties dialog box, click the Rules tab and then click the Filter... button.

2.In the Filter dialog box, you can select the name of the rule you want to find (the names are listed alphabetically), select a field referred to by the rule, or specify the condition that triggers the rule.

For detailed instructions on using the filter, See Rules.

Creating new rules

To create a new rule:

1.From the Document Definition menu, select Document Definition Properties....

2.In the dialog box that opens, click the Rules tab.

3.In the Show rules list, select owned by Document Definition and its children.

4.Select the field where the rule will be stored. This may affect the operation of some rules (e.g. how its error messages are generated). If you have doubts as to which field to choose, select the topmost node, i.e. Invoice Layout.

5.Click New Rule....

6.In the dialog box that opens select one of the standard rule types, or select Script, which allows you to write your own rule.

note Note: For detailed information about each rule type and for instructions on how to create them, See Rules.

The instructions below are specific to creating rules in ABBYY FlexiCapture for Invoices.

1.After you have selected a rule type, you need to specify:

A.Name
The name of the rule should reflect the kind of validation performed by the rule. Errors issued by the rule will be displayed to the Operator in the following format:
Rule name: Error message.
If you want the rule to affect the status of invoices, prefix its name with (Exception) or (Rejected), depending on the status you want assigned to an invoice if the rule detects an error.

B.Severity
Severity flags help the Operator to review the errors and warnings and decide which invoices should be verified manually.
Data export can also be made dependent on the severity flag. For example, you can:

oexport documents that have no rule errors but have rule warnings to your working database

oexport documents that have rule errors to an exceptions folder

oprohibit the export of document with errors altogether

For detailed instructions on setting up export based on the severity of a rule, See Rules.

C.Whether the rule should be enabled after it is created (Rule is enabled option)

2.In this step you need to specify the condition for applying the rule. Typically, this condition is defined by the value of the Invoice Layout\BU\Country field.
By default, the rule will always be applied (Apply rule=always). If you want the rule to be applied only under certain conditions:

a.From the Apply rule list, select on condition.

b.Click Edit... to modify the condition.

c.Select the field whose value will trigger the rule (Invoice Layout\BU\Country).

d.Specify the condition and, if applicable, allowed and prohibited values.
Example 1. The rule must be applied to German invoices.
Select the Belongs to set condition, click Add, and add the value DE.
Example 2. The rules must be applied to all invoices except German and French invoices.
Select the Does not belong to set, condition, click Add, and add the values DE, FR.

3.In this step, you need to set up the rule. For detailed information, See Rules.

Disabling a rule

To disable a previously set up rule:

1.Find the rule in the list (see above).

2.Clear the box in the Enabled column next to this rule. Alternatively, double-click the rule to open its Properties dialog box and clear the Enabled rule option on the General tab.

If you are certain that you will no longer need a rule, you can delete it. To delete a rule:

1.Find the rule in the list (see above).

2.Select the rule by clicking its name in the list and then click Delete.


Capturing additional invoice fields

By default, ABBYY FlexiCapture for Invoices only captures a specific set of fields (referred to as "default fields"). See Captured fields for details.

There are several ways to extract additional fields:

·enable the extraction of additional predefined fields in the Document Definition

·train the program to extract arbitrary fields from invoices from every vendor

·create a FlexiLayout for extracting arbitrary fields from invoices from every vendor, or on any invoice regardless of vendor.

Field | Description
Default fields | These are the major invoice fields that contain its number, date, vendor, receiving business unit, etc. (See Captured fields). Capturing data from the main fields cannot be disabled, however these fields can be hidden. Hidden fields are not visible to Operators during verification.
Additional fields | These are typical invoice fields, like PO number and line items. These fields are not extracted by default, but may be enabled by users.
Custom fields | ABBYY FlexiCapture for Invoices does not include descriptions of some unusual invoice fields. You can set up the program to extract these fields.

You can change the way any field is extracted using training. See Training ABBYY FlexiCapture for Invoices.


Additional fields

You can manage additional fields in the Document Definition Properties dialog box. From the main menu of the Document Definition editor, select Document Definition → Document Definition Properties.... In the dialog box that opens, click the Document Definition Settings tab and then click the Edit... button in the Additional Fields and Features group.

The Document Definition Features dialog box will open, which offers additional invoice processing options. Each option may involve one or more invoice fields and their associated rules.

List of additional fields in the Document Definition Features dialog box:

·Due Date

·Delivery Date

·Purchaser Name

·Purchase order matching

·Line items extraction (your license must allow capturing data from this additional field)

·GL Coding

·Prefer variant ID as main identifier in training batch (when vendor depends on the business unit)

·Taxes

·Additional taxes (available if the Taxes option is selected)

Each option in the dialog box is supplied with a description that lists the fields from which to capture data.

To enable an option, put a check in the box next to its name.

To enable the Purchase order matching option, you additionally need to connect to a database storing your purchase orders. See Purchase order matching for more information.

The names of the fields linked to disabled options are shown in gray. In the data form that is displayed in the Document Definition editor, these fields are also shown in gray. These fields won't be displayed during verification in the document editor. When you open the properties of a gray field, a message will be displayed saying Field is disabled by its feature.

Rules that are linked to disabled options will also be disabled in the list of rules of the Document Definition.

Once you enable an option, its linked fields and rules are enabled.


Custom fields

Show/Hide Hidden Text

ABBYY FlexiCapture for Invoices lets you extract invoice fields for which no predefined data types are available, and change the way any field is extracted.

There are several ways to do this:

Method | Description
Develop an additional FlexiLayout | An additional FlexiLayout will let you extract fields for which no predefined data types are available and change the way standard fields are extracted from invoices from any vendor.
Develop a FlexiLayout for a specific vendor | Vendor-specific FlexiLayouts let you extract fields for which no predefined data types are available and change the way standard fields are extracted from invoices from a specific vendor.
Train a Document Definition for a specific vendor | Creating a Document Definition for invoices from a specific vendor will let you train the program to extract fields from that vendor's invoices.

You can choose to take advantage of any one of these solutions, or combine them. For example, you can add a new field to an additional Document Definition that is applied to invoices from all vendors, and then train the program to recognize the new field on invoices from some vendors and create a FlexiLayout variant for the other vendors.

You can find more information about how multiple FlexiLayouts are applied in How FlexiLayout matching results are merged.

Creating an additional FlexiLayout

Any FlexiLayout created in ABBYY FlexiLayout Studio can be used as an additional FlexiLayout in ABBYY FlexiCapture for Invoices

To extract a new type of field, create a new block with a unique name in a FlexiLayout and define the logic for finding it on images. When this FlexiLayout is added to a Document Definition, a new field with the same name as the new block in the FlexiLayout will be created.

If the name of the block in the additional FlexiLayout is the same as the name of a standard field in the Document Definition, the additional FlexiLayout will be used to extract the block.

To add a FlexiLayout to a Document Definition:

1.Click Document Definitions... on the Project menu.

2.In the dialog box that opens, select a Document Definition and click the Edit... button.

3.Click Document Definition Properties... on the Document Definition menu.

4.Click the FlexiLayout tab in the dialog box that opens.

5.Click the Load... button in the Additional FlexiLayout options group and specify the path to the FlexiLayout file in the dialog box that opens (FlexiLayout files have the *.afl extension).

ABBYY FlexiLayout Studio has several features for developing additional FlexiLayouts for invoices:

·You can find the IDs of the vendor and the business unit of an invoice and reference a data set in a Document Definition.

·You can specify the positions of elements relative to fields that may be detected when the main FlexiLayout is applied.

·You can parametrize the FlexiLayout using an XML file, which lets you store and edit complex lists of keywords and other FlexiLayout parameters without editing the FlexiLayout or the Document Definition.

For more information on the special features of ABBYY FlexiLayout Studio, See Special features of ABBYY FlexiLayout Studio for creating additional FlexiLayouts.

Developing a FlexiLayout variant for a specific vendor

ABBYY FlexiCapture for Invoices lets you use a separate FlexiLayout variant when processing invoices from a specific vendor. This additional FlexiLayout variant can be created automatically using training. If you are unsatisfied with the variant, you can open it in ABBYY FlexiLayout Studio and manually change the field search algorithm.

Creating a FlexiLayout variant

To enable the training feature, complete the following steps in the Document Definition editor: Document Definition Properties...→Document Definition Settings, then click Edit... in Additional Fields and Features and choose Training during invoice processing.

You can train both existing fields and new ones. To apply the training feature, complete the following procedure:

oAdd at least one invoice from the vendor to a batch.

oRecognize it.

oMake sure the program determines the vendor correctly. If it doesn't, specify the right vendor manually.

oChange the location of the field you want to train, or designate its region.

oSelect invoice and click Train. A Training batch will be created.

note Note: Training will begin after the first recognized invoice. But for better quality you need to provide the program with at least three sample images that contain this field.

An Administrator can review, view and modify the Training batch created as a result of Operator-driven training. To do this:

1.Click the DocVariantsButton Open Field Extraction Training Batches button on the toolbar to switch to the training batch view. The training batch contains sample batches from a specific vendor which will be used to train the FlexiLayout for this vendor. Next, decide if you want to use automatic training or edit the FlexiLayout variant manually:

oIf you want to use automatic training, add a few more sample invoices to the batch (we recommend adding at least 3) and specify the field regions. For more information about training on sample batches see Training by users with project setup permissions.

oIf you want to begin editing the FlexiLayout variant manually right away, go to the next step.

2.Export a FlexiLayout variant that contains images from the training batch and the FlexiLayout that was created during training to ABBYY FlexiLayout Studio:

oClick Training → Export Trained FlexiLayout... on the Project menu,
or

oright-click the batch and select Export Trained FlexiLayout... from the shortcut menu of the batch.

3.Open the project you created in ABBYY FlexiLayout Studio.
Blocks in the FlexiLayout correspond to fields in the Document Definition. All of the blocks involved in the training have the [image] icon. This icon indicates that the algorithm for extracting a block has been generated automatically.
Making changes to the FlexiLayout will cause the program to consider these blocks to have been created manually. When the Document Definition is applied, the program has to choose the FlexiLayout from which it will pick the field's region (for details, see How FlexiLayout matching results are merged). Manually created blocks always have higher priority.
Because of this, you need to remove blocks the search algorithm for which you don't want to change. These blocks will still be present in the main FlexiLayout, so they will still be extracted when the Document Definition is applied. So if, for example, you want to specify a custom algorithm for the InvoiceDate and MyField blocks, leave these blocks in the FlexiLayout and delete all of the other blocks.

note Note: You cannot create new fields in a Document Definition for a specific vendor by simply adding a new block to a FlexiLayout. Blocks in a FlexiLayout variant that do not correspond to a field in a Document Definition will cause an error when processing invoices from the vendor. If you need to extract a new field from invoices from a specific vendor, create the field in the Document Definition first (see step 1).

4.Specify the search algorithm that will be used to find the blocks using the standard tools of ABBYY FlexiLayout Studio.

5.Export FlexiLayout variant to an *.afl file by clicking Export... on the File menu.

6.In ABBYY FlexiCapture, click the DocVariantsButton Open Field Extraction Training Batches button on the toolbar to switch to the testing batch view. Then, import the FlexiLayout:

oClick Training → Import FlexiLayout... on the Project menu,
or

oRight-click the batch and click Import FlexiLayout... on the shortcut menu.

Specify the path to the *.afl file you created in the previous step.

7.Recognize sample invoices from the vendor.
This operation's log will contain messages about which field regions were selected from the FlexiLayout variant for the vendor.

8.Check the processed documents by opening them in an editor.

Training a Document Definition for a specific vendor

To create a new field:

1.In the Document Definition editor, select Edit → Create Field (or right-click in the list of fields). Select a field type.

2.In the Properties dialog box, enter a name for the additional field and select the Can have region option.

note Note: For detailed instructions on configuring fields of various types, see Document Definition fields.

A new field with the name you specified will appear on the data form and in the list of fields.

Now you need to train the program to capture data from this field.
Note that training is done separately for each vendor. See Training during invoice capture for more information.


Special features of ABBYY FlexiLayout Studio for creating additional FlexiLayouts

Show/Hide Hidden Text

ABBYY FlexiLayout Studio has several special features for developing additional FlexiLayouts for invoice projects:

·You can specify the locations of elements relative to the regions of fields that were detected when the main FlexiLayout from the invoice project was applied.

·Identifiers of vendors and business units can be used in requests to the data set of the Document Definition.

·Lists of keywords and other parameters of a FlexiLayout can be exported to an XML file, allowing you to edit them without editing the FlexiLayout or the Document Definition.

How to create an additional FlexiLayout

1.Open a batch with recognized invoices in ABBYY FlexiCapture.

2.Create a new project in ABBYY FlexiLayout Studio. On the main menu, select Tools → Export Batch to FlexiLayout Studio → Create New FlexiLayout Studio Project....

note Note: This command is only available for ABBYY FlexiCapture projects that are stored on your computer. If you are using the Distributed version of ABBYY FlexiCapture and the project is stored on the server, you will first have to download it to your computer by clicking Export Project... on the Project menu.

note Note: The suffix of the ABBYY FlexiLayout studio project indicates the version of the Document Definition at the time of the project's creation.

The ABBYY FlexiLayout Studio project you just created contains all of the documents from the ABBYY FlexiCapture batch, and the regions of fields detected during recognition in ABBYY FlexiCapture in the form of a reference layout.

Tree

Node

Description

SearchElements

CommonBlockRegions

This node contains elements that correspond to all fields of the Document Definition. The coordinates of all regions of blocks that were detected when FlexiLayouts were applied to each document in ABBYY FlexiCapture are saved in the ABBYY FlexiLayout Studio project. By default, regions with these coordinates will be assigned to elements that have the same name as fields in the Document Definition. This allows them to be used to specify relative locations of elements and for creating new elements.

CustomSearchElements

This node contains sample elements. They are disabled by default in order to avoid interference when the FlexiLayout is applied.

DataSetRequestSample - An example of a request to the data set of vendors and business units that are stored in the Document Definition. This data set includes identifiers of vendors and business units.

How to add a field to an additional FlexiLayout

To add a field to an additional FlexiLayout, you will have to create a block for this field and specify its search element.

Fields in the Document Definition have to have unique names. This means that:

·To describe the search logic for a field, you have to create a block with a unique name.

·To change the search logic for a field that already exists in the Document Definition, you have to create a block with the same name.

How to add pages to an additional FlexiLayout

If you want to test the changes you have made to an additional FlexiLayout on new images, you can export your ABBYY FlexiCapture batches into an existing invoice project in ABBYY FlexiLayout Studio. To export your batches, click Tools → Export Batch to FlexiLayout Studio → Add to Existing FlexiLayout Studio Project....

·You can export ABBYY FlexiCapture batches only into those ABBYY FlexiLayout Studio projects which were created by selecting Tools → Export Batch to FlexiLayout Studio → Create New FlexiLayout Studio Project....

·When you export a ABBYY FlexiCapture batch to ABBYY FlexiLayout Studio, a new batch will be created in ABBYY FlexiLayout Studio for that batch.

·If the New Document Definition has more fields than the Document Definition used for the ABBYY FlexiLayout Studio project, the export log will contain a warning for each extra field.

·To make the program export the extra fields, for each extra field add a block with the same name in the CommonBlockRegions node of the SearchElements tree.

How to make requests to data sets from the Document Definition

You can find a sample request in the DataSetRequestSample element. This element is disabled by default.

Type | Description
NamedValue | A named value
Constructor |
NamedValue( String, String ) |
Methods |
String Name() | Returns the name of a named value
String Value() | Returns the value of a named value
NamedValueArray | An array of named values
Constructors |
NamedValueArray() |
NamedValueArray( NamedValue namedValue ) |
Methods |
Int Count() | Returns the total number of elements in the array.
NamedValue GetAt( Int index ) | Returns the element with the specified index number.
Void Add( NamedValue namedValue ) | Adds a named value to the array.
Void Add( NamedValueArray namedValueArray ) | Adds a named value array to a named value array.
Void InsertAt( Int index, NamedValue namedValue ) | Inserts the namedValue into the position index.
Void DeleteAll() | Deletes all elements in an array.
Void DeleteAt( Int index ) | Deletes an element in the position index.
Int FindByName( String name ) | Returns the position of the value named name.

Functions

Syntax:

·The path to the Document Definition and the name of the data set will be used to access the data set when working with a FlexiLayout in ABBYY FlexiLayout studio.

·After a compiled FlexiLayout is added to a Document Definition in ABBYY FlexiCapture, only its name will be used when accessing the data set.

·connectionString format:

"dbtype=FCDataset;fcTemplate=path_to_Document_Definition;datasetName=name_of_Data_Set;"

note Note: Parts of the path need to be separated by double backslashes "\\"

·searchFields
Array of names of columns from which values need to be retrieved.

·searchCriteria
Array of Column-Entry pairs, returns all values if empty.

oIf a request contains multiple values for one field, use the OR Operator

oIf a request contains multiple values each of which corresponds to only one field, use the AND Operator

oIf a request contains multiple values for one field and values for multiple fields, use the OR Operator to distinct multiple values for one field and the AND Operator to conjunct values for various fields.

Definition | Description
Logic TestAccessToFCDataSet( String connectionString ) | Tests connection to the data set
Logic TestFCDataSetSearchCriteria( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) | Tests search conditions for data set
StringArray FieldNamesOfFCDataset( String connectionString ) | Returns a list of all fields from the data set sorted in ascending order of their index numbers.
StringArray FieldNamesOfFCDataset( String connectionString, StringArray searchFields ) | Returns a list of data set fields from the specified data set in ascending order of their index numbers. Should be used in conjunction with the RecordOfFCDataset function when there are complex columns.
Int RecordCountOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) | Returns the amount of entries from the data set that is specified in the search conditions. Used for finding out how many entries may be returned using the RecordOfFCDataset function.
Void PrepareRecordsetOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | Prepares data for a query to the data set. This needs to be performed for every new set of search conditions before calling the RecordOfFCDataset function.
StringArray RecordOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int rowIndex ) | Returns an array of values from the entry with the number rowIndex from results returned by a query to the data set. The number of values is equal to the number of fields passed in searchFields (this includes the case of complex columns).
Quality ValidateByFCDataSet( String word, String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxErrors, Rational maxErrorsPart, Logic ignoreSpaces = true, Int maxRecordsCount = DefaultMaxRecordsCount ); | Returns the quality of the string word. Accepts index numbers of fields. You can get index numbers by indexing the output of the FieldNamesOfFCDataset function.
Void SearchTextFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | This function is used to specify search conditions for words for the Static Text function. When this function is called, existing search conditions are replaced with new ones. Accepts field index numbers. You can get index numbers by indexing the output of the FieldNamesOfFCDataset function.
Void RegularExpressionFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | This function is used to specify search conditions using regular expressions for the CharString function. When this function is called, existing search conditions are replaced with new ones. Accepts field index numbers. You can get index numbers by indexing the output of the FieldNamesOfFCDataset function.

How to search for rows from a column from an external database on an image

1.Use FieldNamesOfFCDataset to get a list of columns sorted in ascending order of their index numbers.

2.Determine the index number of the column from which you need to find data.

3.Create an array of conditions for filtering data from the data set.

4.Pass the index numbers of the column and the filter conditions to SearchTextFromFCDataSet (or RegularExpressionFromFCDataSet, if you need to use regular expressions).

This code will be automatically generated when a recognized batch is exported from ABBYY FlexiCapture

How to search an image for entries from multiple columns of an external database

Since search parameters are replaced each time you call the SearchTextFromFCDataSet function, calling this function several times over is pointless. There is a workaround for this: you can get strings from an external database and pass them in the SearchText function. Calling this function adds the string to existing search parameters instead of replacing them.

To do this, complete the following steps:

1.Create an array of names of columns from which you need to find data.

2.Create an array of filter conditions for filtering data from the data set.

3.Determine the amount of entries that will be returned using the RecordCountOfFCDataset function.

4.Prepare query data using the PrepareRecordsetOfFCDataset function.

5.Go through all records and get the array for each record using the RecordOfFCDataset method.

6.Pass the value of each element in the array to the SearchText function.

Additional considerations when dealing with complex columns

·The FieldNamesOfFCDataset function returns an array that will contain multiple occurrences of the name of the complex column. The number of occurrences will be the same as the number of column instances in an encoded external database.
Example: {VendorId, VATID, Name, Name, Name, City}. In this case the external database contains 3 columns for the one complex column Name in data set.

·If SearchCriteria contains a condition for a field that corresponds to complex column (like in the example above), this condition will be used to check all of these column instances.

·If searchFields contains a condition for a field that corresponds to complex column (like in the example above), the result will contain the array of values from each column instance.
For example, if for {VendorId, VATID, Name, Name, Name, City} you request

searchFields = { VATID, Name, City}, you will receive
{VATID_value, Name_valueInColumn1, Name_valueInColumn2, Name_valueInColumn3, City_value}

·You can get a list of columns that will be returned by passing the searchFields array to the FieldNamesOfFCDataset function.

How to make a request to an XML file that contains FlexiLayout settings

You can make requests to an XML file with FlexiLayout settings using two standard functions that are described in documentation for ABBYY FlexiLayout studio:

StringArray ReadFromXML(String filename, String xPathQuery)
String ReadSingleStringFromXML(String filename, String xPathQuery)

This file has to be located in the ABBYY FlexiLayout Studio project folder subfolders if you want to use it when working on a FlexiLayout in ABBYY FlexiLayout studio. The path to this file is relative to the ABBYY FlexiLayout Studio project file.

If you load a compiled FlexiLayout to a Document Definition in ABBYY FlexiCapture and use it as an additional FlexiLayout, the XML file will be placed in the Templates folder and you will be able to edit it. When the FlexiLayout is applied, the program will manage access to this file automatically.


How results from different FlexiLayouts are merged

Navigation: ABBYY FlexiCapture for Invoices > How to set up an invoice capture project > Capturing additional invoice fields >

Return to chapter overview

How FlexiLayout matching results are merged

Show/Hide Hidden Text

This article describes the order in which FlexiLayouts are matched with documents and how field regions are selected.

ABBYY FlexiCapture for Invoices can use several types of FlexiLayout when matching the Document Definition:

1. generic FlexiLayout, which is used to process all invoices and which itself may include two subtypes of FlexiLayout:

a. a main FlexiLayout, which is used to detect the standard pre-defined invoice fields (this FlexiLayout is provided together with ABBYY FlexiCapture for Invoices and cannot be modified);

b. an additional FlexiLayout, which is used to detect user-defined fields and standard invoice fields whose detection logic has been changed (this FlexiLayout is created by the user).

2. FlexiLayout variants, which are used to process invoices from specific vendors. FlexiLayout variants can be used to detect any fields defined in their respective Document Definition and can be created by the user or by ABBYY FlexiCapture for Invoices when it is trained on invoices from specific vendors.

After matching the Document Definition with an invoice, the program obtains a set of field regions, which come from the different FlexiLayouts included in the Document Definition.

1. Matching a generic FlexiLayout

A. First, the program applies the main FlexiLayout.

Pre-recognition parameters

An invoice image is pre-recognized using the pre-recognition parameters specified in the Document Definition.

oThe languages are specified under Countries and Languages on the Document Definition Settings tab) of the Document Definition Properties dialog box.

oThe pre-recognition mode (Very fast, Fast, Balanced or Thorough) is specified on the FlexiLayout tab of the Document Definition Properties dialog box.

Results obtained by applying the main FlexiLayout

As a result of applying the main FlexiLayout, the program obtains:

§the ID of the vendor and the ID of the business unit, if detected

§the regions of the standard fields. (See Captured fields for details.)

B. Next, the program applies the additional FlexiLayout, if it is available in the generic FlexiLayout.

Pre-recognition parameters

The invoice image is pre-recognized using the pre-recognition parameters (i.e. the languages and the pre-recognition mode) specified in the FlexiLayout. We recommend specifying in the additional FlexiLayout the same pre-recognition parameters as in the Document Definition. In this case the program will use the pre-recognition result obtained in step 1A instead of pre-recognizing the invoice twice.

If your invoices contain some unusual fields, you may want to specify in the additional FlexiLayout pre-recognition parameters that are different from those of the Document Definition, but this will slow down the processing.

Results obtained by applying the additional FlexiLayout

As a result of applying the additional FlexiLayout, the program obtains the regions of all the fields defined in the additional FlexiLayout. These may be either standard invoice fields whose detection logic had to be changed, or some additional fields not defined in the main FlexiLayout.

C. Next, the program generates the aggregate result of applying the generic FlexiLayout. If the Document Definition includes an additional FlexiLayout, at this stage the program merges the results obtained by applying the main FlexiLayout and the results obtained by applying the additional FlexiLayout.

The fields are identified by their names. The result is a collection of unique fields derived from the main and the additional FlexiLayouts. If there are fields with identical names in the main and in the additional FlexiLayout, the program will use the field region obtained by applying the additional FlexiLayout.

This approach allows you to define new fields or change the logic of capturing any of the standard invoice fields.

2. Applying FlexiLayout variants

If, by applying the generic FlexiLayout in step 1, the program managed to detect the vendor and there is a FlexiLayout variant for this vendor, this FlexiLayout variant is applied at this stage.

Pre-recognition parameters

The pre-recognition parameters from the Document Definition are used. These are the same pre-recognition parameters that were used when matching the main FlexiLayout included in the generic FlexiLayout. Therefore, no additional pre-recognition is required.

Results obtained by matching the FlexiLayout variant

After matching the FlexiLayout variant with the invoice, the program obtains the regions of all the fields defined in the FlexiLayout variant for this specific vendor. Note that if a FlexiLayout variant is obtained through training the program on a variety of invoices, it will include all the fields defined in the Document Definition. And if a FlexiLayout variant is created manually, only those fields should be left in the variant whose detection requires some actions specific to the given vendor.

3. Merging the results

At this step, the results obtained by matching the generic FlexiLayout are merged with the results obtained by matching the FlexiLayout variant.

If the FlexiLayout variant was obtained through training the program on a variety of invoices, it includes all the fields defined in the Document Definition. The Document Definition stores information about the fields whose regions had to be changed by the user during training, i.e. the fields that were detected poorly by the generic FlexiLayout. The program will rely on this information when deciding which field regions should be taken from the generic FlexiLayout and which regions should be taken from the FlexiLayout variant trained on invoices from this particular vendor.

note Note: The regions of the Amount fields are selected differently. When applying the generic FlexiLayout, the program will specify the level of confidence with which the regions of the Amount fields have been detected. If the regions are detected unreliably, the Total field will require verification. If there is a FlexiLayout variant trained on invoices from the given vendor and if the generic FlexiLayout fails to detect the Amount fields with a sufficient level of confidence or does not detect them at all, the regions of the Amount fields detected by the FlexiLayout variant will be used. You can also configure the program to always use the regions of the Amount fields detected by the FlexiLayout variant. To do this, set the value of the [HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\DAForms\]”UseTrainedInvoiceAmounts” registry key to true (the key is set to false by default).

If the FlexiLayout variant has been created manually, the program will use the regions of all the fields included in the FlexiLayout variant. The regions of the other fields will be taken from the results obtained by matching the generic FlexiLayout.

Information about which FlexiLayout was used to detect the region of a filed is recorded in the recognition log.

Example

Lets us consider some of the fields defined in the Document Definition.

Consider two standard invoice fields, InvoiceDate and InvoiceNumber, and two-user defined fields, CustomFieldA and CustomFieldB.

·InvoiceDate and InvoiceNumber are standard fields and the detection algorithm for these fields is specified in the main FlexiLayout included in the generic FlexiLayout.

·CustomFieldA and CustomFieldB are user-defined fields and the detection algorithms for these fields are specified in the additional FlexiLayout included in the generic FlexiLayout.

Suppose the Operator is not satisfied with the quality of detection of the InvoiceDate and CustomFieldB fields on invoices from a specific vendor and trains the program on invoices from this vendor.

The field regions from invoices from this vendor will be merged as follows:

·InvoiceNumber - This region will come from the results obtained with the main FlexiLayout

·CustomFieldA - This region will come from the results obtained with the additional FlexiLayout

·InvoiceDate and CustomFieldB - These regions will come from the results obtained with the FlexiLayout variant generated by training the program on invoices from this vendor.

In the case of invoices from other vendors, the field regions will be merged as follows:

·InvoiceDate and InvoiceNumber - These regions will come from the results obtained with the main FlexiLayout.

·CustomFieldA and CustomFieldB - These regions will come from the results obtained with the additional FlexiLayout.


Purchase order matching

A purchase order (PO) is a commercial document issued by a buyer to a seller, indicating types, quantities, and agreed prices for the products or services that the seller will provide to the buyer. An invoice is a commercial document issued by a seller to a buyer, indicating the products, quantities, and agreed prices for the products or services the seller has provided to the buyer.

Many companies keep track of purchase orders. Invoices issued by suppliers contain the numbers of the respective purchase orders. When processing invoices, you can compare the products and services stated in them with those stated in the respective purchase orders.

This may be useful, for example, if you want to skip the verification stage for invoices that match a previously confirmed purchase order.

By default, matching invoices against purchase orders is disabled.

Enabling the comparison of invoices with their respective purchase orders

I. Enable the corresponding feature in ABBYY FlexiCapture for Invoices.

1.From the Project menu, select Document Definitions....

2.In the dialog box that opens, click Edit....

3.From the Document Definition menu, select Document Definition Properties....

4.In the dialog box that opens, click the Document Definition Settings tab.

5.Click the Edit... button next to the Additional Fields and Features group to open the Document Definition Features dialog box.

6.Select the Purchase order matching option.

II. Connect a database of purchase orders.

1.In the main window of the Document Definition editor, select Document Definition → Document Definition Properties....

2.In the dialog box that opens, click the Data Sets tab.
A data set is a table that specifies the structure of data and either stores data or takes them from an external database.

3.Select Purchase Orders from the list and click Set Up....
Note the structure of the connected data (see PurchaseOrders data set).
If there is no such table in your database, you may need to create a corresponding view using the tools available in your database software.

4.In the data set (PurchaseOrders) dialog box, specify the string to be used to connect to your ODBC-compatible database of purchase orders, the data schema to be used, and then select the desired table or database view.

5.Specify the correspondences between the columns in the data set and in the external database.

Now the program will find purchase order numbers and total amounts on invoices and compare them with those stored in the purchase order database.

III. Connect purchase order line items

If required, repeat steps 1 and 2 in II. Connect a database of purchase orders in order to open the Data Sets tab of the Document Definition Properties...dialog box.

1.Select PurchaseOrdersItems from the list and click Set Up....
Note the structure of the connected data (see PurchaseOrdersItems data set).
It is important that the number of a purchase order be identical to the one specified in the purchase order database.
data set PurchaseOrders is a required column. All other columns are optional.
If there is no such table in your database, you may need to create a corresponding view using the tools available in your database software.

2.In the data set (PurchaseOrdersItems) dialog box, specify the string to be used to your ODBC-compatible database of purchase orders, the data schema to be used, and then select the desired table or database view.

3.Specify the correspondences between the columns in the data set and in the external database.

See also Detecting the main fields.

IV. Enable the capture of invoice line items

See Additional fields.

V. Set up comparison rules

ABBYY FlexiCapture for Invoices offers several predefined rules. The Administrator should enable those rules that are required for his/her specific project. This can be done on the Rules tab of the Document Definition Properties... dialog box.

Rule | Description | Where it is stored | Default status
Check purchase order number and amount | Checks if the order number and amount captured from an invoice correspond to the orders in the PurchaseOrders data set. | PurchaseOrder | Enabled
Match invoice line item with order item | Checks if a line item in an invoice corresponds to its respective line item in the purchase order. You can specify which should be compared and how they should be compared. | LineItems | Enabled, if the Line items extraction option is enabled
Check invoice line items count against order items count | Checks if the number of line items in an invoice is the same as the number of line items in the corresponding purchase order. | PurchaseOrder | Disabled
Check if invoice line items are matched with unique order items | Checks if there are multiple line items in an invoice associated with one and the same line item in the purchase order. | PurchaseOrder | Disabled
Collect matched order items (necessary for proper work of PO Matching at items level) | Compiles a list of PO line items that are already associated with their corresponding invoice line items. In the case of manual comparison, the Operator will see only those invoice line items for which no matches has yet been found in the purchase order. | PurchaseOrder | Enabled

Comparing invoice line items with the purchase order

ABBYY FlexiCapture for Invoices offers several comparison methods:

·you can compare the number and amount of an invoice with those in the purchase order (invoice header comparison)

·you can compare the line items of an invoice with those in the purchase order(s) (invoice line item comparison).

Comparing invoice items with purchase order items

If the Purchase order matching is selected, the Purchase Orders group will be displayed in the data form when you verify invoices.

For each purchase order found on an invoice, a group element will be displayed that will consist of the following:

·order number

·total amount

·Details... button

·Order Checked checkboxes

Clicking Details... displays the details of the purchase order (provided the Administrator has connected the corresponding database with PO details) at the bottom of the document image window, so that invoice items can be easily compared with purchase order items.

To confirm that the invoice matches the purchase order, the Operator can select the Order Checked checkbox. This check box can only be selected manually. When selected, it shows that the Operator has compared the values of the Order Number and Total fields in the invoice with those in the purchase order and confirmed the match. Once the match has been confirmed by the Operator, the values of these fields will not be checked automatically by means of a rule.

If an order has not been detected on the image and is not displayed in the data form, click the Add 'Purchase Order' Instance link at the bottom of the Purchase Orders group. An empty element will be added to the Purchase Orders group. Enter the values of the Order Number and Total fields by selecting the values on the image or by keying them manually. The values you enter will be automatically checked by a rule against the PO database.

Item-by-item comparison

To compare an invoice against its purchase order, line items extracted from the invoice can be used. The Operator may also need to select the appropriate PO item for each invoice item.

If line item capture is enabled, the Line Items group will be displayed on the data form. This group will contain the line items captured from the invoice image.

ABBYY FlexiCapture automatically matches invoice line items with the PO counterparts. To match items manually, the Operator must click the button inside the OrderItemId column and select the desired PO item from the list that opens.

If an invoice line item cannot be matched with a purchase order item but is still valid, the Operator must select the Is valid checkbox for this line item.

Depending on the settings configured by the Administrator, the following rule checks will be performed:

·the number of line items in a purchase order must be the same as the number of invoice line items associated with that order;

·all invoice line items are matched with different PO line items or have been marked as valid by the Operator.


Enabling additional program features for operators

The administrator may enable additional features for operators that will be processing invoices. Note that these additional features are always available to users with administrator permissions.

Training the program while processing invoices

If the results of automatic field extraction are below the expected standard, the operator can additionally train ABBYY FlexiCapture for Invoices while processing invoices. In the process, new FlexiLayouts are created which can then be used instead of the regular FlexiLayout. See Training ABBYY FlexiCapture for Invoices for details.

To enable the additional training feature, complete the following steps:

1.In the main window of the Document Definition editor, select Document Definition → Document Definition Properties....

2.In the dialog box that opens, click the Document Definition Settings tab.

3.Click the Edit... button next to the Additional Fields and Features group to open the Document Definition Features dialog box.

4.Select the Training during processing option.

note Note: To disable the additional training feature for operators (if enabled), clear the Training during processing option.

If a verification operator changes the field mark-up on a document image, then, at the training stage, this document will be copied into the training batch used for this document variant. Every first and second document thus added will be assigned the "For training" status, and every third document will be assigned the "For testing" status.

note Note: Training is done independently for each document variant. Invoices from the same vendor are regarded as the same document variant.

The quality of the newly trained model will be tested on the documents which have the "For testing" status. The program will compare the number of fields that have been correctly matched. If the newly trained model delivers more correctly matched fields than the reference model, the new FlexiLayout will be saved and will be subsequently used for this document variant (i.e. for processing invoices from this particular vendor). See Training while processing documents for details.

Modifying and adding vendor and business unit records

When setting up your invoice capture project, you connected vendor and business unit databases to the corresponding data sets of the project. These data sets specify the structure of data and store a copy of the data inside the project, periodically synchronizing them with your external database. See Using vendor and business unit databases.

Invoice recognition starts with finding the vendor and the business unit. These field groups can be found on an image only if they are present in the data set. It is important that the program find the vendor and the business unit because these data are used to select the country of the invoice, which determines the tax rates used in finding the Amounts fields on the image and the choice of validation rules.

As a rule, all vendors and business units will be already included in the corresponding data sets. However, if you get an invoice from a new vendor which is not in the database, the group of Vendor fields will not be detected. Depending on the business process, adding the new vendor to the vendor database and synchronizing it with the data sets may take a long time, and the program will not be able to process invoices from that vendor until it finds the vendor in the data set.

A further example involves the change of address or account number of an existing vendor. Updating the vendor database and synchronizing it with the data set may take a long time, and the Operator needs the up-to-date information to be able to process invoices.

To resolve the above issues, the Administrator may enable the Operators to add or modify records in the data sets. Changes will be made to the data sets stored in the project, not to the external vendor and business unit databases.

If an Operator adds a new vendor to the data set, the program will be able to detect the Vendor group of fields on subsequent invoices from that vendor, just as if there was a record for the vendor in the external vendor database. However, the validation rules will detect that the vendor is missing in the external database and assign the Exception status to the invoice.

Next time the data set is synchronized with the external database, all vendors added by the Operators will be replaced with the appropriate records from the database or removed from the data set. See Updating data sets for more about updating data sets.

By default, Operators cannot edit or add new records to data sets. To enable this feature for Operators:

1.In the main window of the Document Definition editor, select Document Definition → Document Definition Properties....

2.In the dialog box that opens click the Data Sets tab.

3.Select a data set from the list and click the Set Up... button.

4.Enable the Operators can add records and/or Operators can edit records option.

If you do not want Operators to add or edit data sets, make sure these options are disabled.


Using multiple Document Definitions

You can use several Document Definitions for processing invoices in an ABBYY FlexiCapture for Invoices project. This can be quite useful if you need to process several different types of invoices with different amounts and locations of fields within one project.

To get a new Document Definition, open the Document Definitions dialog box, select the existing Invoice Document Definition and click the Duplicate button to duplicate it.

Several Document Definitions can be used for processing invoices in a single batch type. To do this, use a classifier in which different definitions correspond to different classes. If you do not have such a classifier included in your project, Document Definitions should be split by batch type. In that case, every batch type must have only one Document Definition for processing invoices. For more information on batch types, see Batch types.


Editing invoice processing settings in XML files

Invoice processing settings can be exported to an XML file, edited, and imported back into the program, or used in another project.

Contents of an XML configuration file

An XML configuration file contains:

·Keywords and other language- and country-specific settings enclosed in the following tags:
<Countries><Country></Countries> and <Languages> <Language></Languages>

·Regular expressions for order numbers enclosed in the following tags:
<OrderNumber><Value><RegularExpression></RegularExpression></Value></OrderNumber>;

·A list of additional Document Definition features for processing invoices (see Additional fields and Enabling additional program features for Operators for details) and their status (enabled/disabled) in the AdditionalFeatures tag.

·A list of invoice recognition languages in the PrimaryLanguages tag.

·Settings for the invoice status additional feature (see The status of documents in ABBYY FlexiCapture for Invoices projects for details) in the DocumentStatus tag.

How to save current settings to an XML file

1.In the Document Definition Editor, click Document Definition Properties... on the Document Definition menu.

2.Click the Document Definition Settings tab.

3.Click the Export Settings... button.

4.Save the file.

The resulting file can be edited in a text editor.

How to import settings from an XML configuration file

1.In the Document Definition Editor, click Document Definition Properties... on the Document Definition menu.

2.Click the Document Definition Settings tab.

3.Click the Export Settings... button.

4.Open the file with invoice settings.

warning Important! If an XML file contains an error in a tag, contains an invalid value, or has an incorrect structure, a notification containing the number of the line with the error will be displayed when you import settings from this file. Any unknown file sections or parameters will be ignored.


Updating the built-in Document Definition

ABBYY FlexiCapture for Invoices ships with a built-in Document Definition designed specifically for processing invoices. Each time a new version of ABBYY FlexiCapture for Invoices is released, the built-in Document Definition is also updated.

Users who created an invoice processing project in earlier versions of ABBYY FlexiCapture for Invoices may update their Document Definition for invoices, preserving all their custom settings (the appearance of the data form, custom fields, rules etc.) and benefiting from the improvements introduced in the newer version of ABBYY FlexiCapture for Invoices.

The following will be updated or added

The following will remain unchanged

Fields

The settings used for the main fields of the ABBYY FlexiCapture for Invoices Document Definition will be updated (see the list of fields).

Any new fields introduced in the new version of the ABBYY FlexiCapture for Invoices Document Definition will be added to the user's Document Definition.

If the user has created a new field in his own Document Definition and there is a rule with the same name in the new version of the ABBYY FlexiCapture for Invoices Document Definition, the update will be interrupted and an error message will be displayed. To continue with the update, the user needs to rename the conflicting field in the Document Definition.

The fields created by the user.

Rules

The settings used for the main rules of the ABBYY FlexiCapture for Invoices Document Definition will be updated (see the list of rules).

Any new rules introduced in the new version of the ABBYY FlexiCapture for Invoices Document Definition will be added to the user's Document Definition.

The rules created by the user. In the event of conflict of rule names: the conflicting rules created by the user will be automatically renamed (the suffix "_1" will be added to each conflicting name).

The user's scripts for all fields.

data sets

The standard and the user's data sets.

FlexiLayouts

The main FlexiLayout.

The additional FlexiLayout.

Invoice processing settings

Any new keywords, tax rates, and country- and language-specific field formats will be added to the user's Document Definition.

The invoice processing features enabled by the user.

The countries and languages enabled by the user.

Any keywords, tax rates, and field formats specified by the user.

Event handlers

Any event handlers disabled in the user's Document Definition will be updated.

Any event handlers enabled in the user's Document Definition.

External assemblies

The standard assemblies included in the ABBYY FlexiCapture for Invoices Document Definition.

Any assemblies added by the user.

The export settings, the data form, and the localization of the Document Definition will remain unchanged.

How to update

1.On the main menu, click Project → Document Definitions.... The Document Definitions dialog box will be displayed, where you can manage your Document Definitions.

note Note: We recommend backing up your Document Definition before updating it. To create a back-up copy of a Document Definition, select it in the list and click Duplicate.

2.To update a Document Definition, select it in the list and click Update.

3.Click Publish to publish the changes.

If you want to discard the changes made by the update, click Discard Changes.

Possible errors and warnings

Your Document Definition will be updated even if error messages and warnings are displayed during the updating process. You can open, edit, and publish your updated Document Definition, or you can discard the changes made by the update.

If an error occurs when you update your Document Definition, the cause of the error will be indicated in the corresponding error message. The changes that cause the error will not be included in the updated Document Definition.

If you see error messages and warnings while updating your Document Definition, this means that some manual editing will be required. We do not recommend using a Document Definition that was updated with errors and warnings.


Selecting the right tax system

Show/Hide Hidden Text

ABBYY FlexiCapture for Invoices can process invoices and other financial documents from a variety of tax systems. To detect tax amounts, the search mechanism and verification rules rely heavily on the information about the tax system of the country where a particular invoice was issued.

ABBYY FlexiCapture for Invoices provides six pre-configured projects:

·Invoice Processing (EU) for the European Union

·Invoice Processing (ES) for Spain

·Invoice Processing (US) for the United States

·Invoice Processing (CA) for Canada

·Invoice Processing (Au-NZ) for Australia and New Zealand

·Invoice Processing (JP) for Japan

The tax rates and verification rules in each project have been designed with the specifics of a particular country or countries in mind (see Rules for more information).

ABBYY FlexiCapture will select the right detection logic, verification rules, and keywords depending on the countries specified in the project settings.

Taxes in the EU

ABBYY FlexiCapture for Invoices uses the following tax principles for invoices from EU countries:

·A full tax rate is applicable to most goods and services.

·Tax is included in the price.

·There may be reduced tax rates for some goods and services. These can vary depending on the type of goods or legal entity (for example, sole proprietors may be entitled to reduced tax).

In Austria, for example, two main tax rates are used – 20% (the base rate) and 10% (for food products, agricultural goods, the entertainment industry, etc.). In Germany, the rates are 7% and 19%. In Poland, three tax rates are possible – 5%, 8%, and 23%.

Additionally, some European countries have regions with their own special tax rates. For example, in Portugal, depending on the type of products, the tax rates are 23%, 13%, or 6% on the continent; 18%, 9%, 4% in the Azores; and 22%, 12%, and 5% in Madeira.

Only one tax can be levied on a particular type of goods or services. The only exception is Spain (see Taxes in Spain below).

A document may contain multiple items, each with its own tax rate.

Settings for an ABBYY FlexiCapture project contain not only the information about VAT rates for various countries, but also various system-specific rule checks. The data form will also look different for each project.

Sample data form for Invoice Processing (EU)

Taxes in Spain

The Spanish tax system differs in some important respects from the tax systems in place in other EU countries. In Spain, a product or service may be subject to multiple taxes and some tax amounts may be negative when income tax is refunded.

Tax rates may vary depending on the region (in the Canaries, for example, a product may be subject both to a base VAT and an indirect tax).

In ABBYY FlexiCapture for Invoices, you can create tax groups for the multiple taxes that may be levied on a particular type of product or service (see Tax groups for more information).

Since the Spanish tax system differs significantly from that of other EU countries, the rule checks will also be different. The Spanish data form will look as follows:

Sample data form for Invoice Processing (ES)

Taxes in the US

In the US, the federal government, state governments, and municipal governments all collect their own taxes. Besides, some state districts levy an additional "local surtax" on goods and services. For this reason, the total VAT is not always known in advance.

Unlike in the EU, US documents cannot contain goods and services that are subject to different tax rates.

ABBYY FlexiCapture for Invoices includes pre-configured tax groups for US documents, allowing keywords to be combined in order to search for tax amounts that may apply to the same item (see Tax groups for more information).

Settings for an ABBYY FlexiCapture project contain information about VAT rates for various countries, system-specific rule checks, and keywords that are used to search for the tax amounts. In order to correctly display all the tax amounts, the data form will look as follows:

Sample data form for Invoice Processing (US)

Taxes in Canada

In Canada, taxes differ from province to province. In some provinces, only federal tax is levied on goods and services, while in others goods both a federal tax and a provincial tax must be paid. Some provinces also impose an additional tax on liquor.

Depending on the province, the following taxes may be imposed on goods and services:

·GST only (goods and services tax) – 5%

·HST only (harmonized sales tax) – 15% or 13%

·GST + provincial tax:

oPST (provincial sales tax) – 7% or 6%

oQST (Quebec sales tax) – 9.975%

oRST (retail sales tax) – 7% (only in Manitoba)

If more than one tax is levied (for example, GST + PST), use the corresponding pre-configured tax groups, which allow you to combine multiple taxes (see Tax groups for more information).

The settings for an ABBYY FlexiCapture project account for all particular aspects of the Canadian tax system, which includes the various provincial VAT rates. This is reflected in the data form, which will look as follows:

Sample data form for Invoice Processing (CA)

Taxes in Japan, Australia, and New Zealand

In these countries, only one tax is imposed on goods and services. The rates are as follows:

·Japan – 10%

·Australia – 10%

·New Zealand – 15%

Sample data form for Invoice Processing (JP) and Invoice Processing (Au-NZ)

0% tax rate

In some cases, the applicable tax rate can be 0% for the entire invoice. For example, no VAT is typically imposed on international sales of goods and services (i.e. when the vendor's and business unit's countries are different).

Additionally, some goods and services may be exempt from tax. For example, shipping may be exempt from VAT. If this is the case, the invoice will contain both taxable on non-taxable items.

A 0% tax rate for international invoices is already included in the settings for all countries, so you do not need to add it manually.

Configuring taxes in your project

Before you begin:

1.Create a new project.

warning Important! The project type should be selected based on the region of the business unit. If the business unit is located in one region, while invoices will mostly come from another region, select the country where the majority of invoices will be issued. You will be able to add more countries later.

2.Specify a name for your project and a storage location.

3.Set up your project.

For more information about creating and setting up a project, see How to set up an invoice capture project.

Now you can select the appropriate countries for your invoices. To do this:

1.In the Document Definition Properties dialog box, click the Document Definition Settings tab.

2.In the Countries and Languages section, click Edit....

3.Select the countries from which you expect to receive invoices.

note Note: You will be able to add more countries later.

ABBYY FlexiCapture for Invoices will check amounts on invoices using the tax rates of the selected countries. By default, the following countries are selected in the pre-configured projects:

·Invoice Processing (EU) – Austria, France, Germany, United Kingdom, and Switzerland

·Invoice Processing (ES) – Spain

·Invoice Processing (US) – USA

·Invoice Processing (CA) – Canada

·Invoice Processing (Au-NZ) – Australia and New Zealand.

·Invoice Processing (JP) – Japan

In review or edit the settings for a particular country, select the country in the list and click Edit.... The following settings will be displayed for the selected country:

·Invoice languages

·Tax rates

·Tax groups

·Currency

·Keywords and formats (required for detecting elements like IBAN, VATID, etc.)

For more information about detecting the main document fields, see Detecting the main fields.

note Note: Exported goods are typically exempt from VAT-exempt. A 0% tax rate for international invoices is already included in the settings for all countries, so you do not need to add it manually.

Changing a tax rate

Sometimes, a country may introduce new tax legislation to change its tax rates, with changes taking effect from a certain date, meaning that invoices posted before and invoices posted after that specific date will contain items that are taxed at different rates.

To enable the program to handle invoices compliant with both old and new tax laws:

1.Select the country from the list.

2.Click Edit....

3.In the dialog box that opens, click the Tax Rates tab.

4.Select the modified tax rate from the list and click Edit.... Alternatively, click Add... to add a new tax rate.

5.In the Tax Rate Settings dialog box, specify the value, time period, and keywords for the tax rate.

Tax groups

If multiple taxes may be levied on a particular type of goods or services, a tax group should be created. For example, this can be useful for Spanish system invoices, where in a particular region, VAT and a regional tax can both be levied on an item at the same time in a particular combination. Grouping taxes together makes the program look for a specific tax combination.

warning Important! You do not need to create tax groups for countries where different rates apply to different types of goods or services (e.g. Austria).

To edit a tax group:

1.In the Document Definition Properties dialog box, click the Document Definition Settings tab .

2. In the Countries and Languages section, click Edit....

3.Select the country you wish to edit and click Edit....

4.Edit an existing tax group by clicking Edit... or add a new one by clicking Add....

A tax group can be created from any of the taxes listed on the Tax Rates tab.

There are pre-configured tax groups for the following countries:

·Canada

·Spain

·USA

Below, the pre-configured settings for three representative countries are described.

Netherlands

The following tax rates are pre-configured for the Netherlands: 21%, 19%, 6%, and 9%. There is also a time period specified for each, because the tax rates have changed over time:

·A full tax rate of 19% was charged before September 30, 2012, which became 21% on October 1, 2012.

·A reduced rate of 6% was charged before December 31, 2019, which became 9% on January 1, 2019.

No tax groups are set for the Netherlands, because only one type of tax can be imposed on a product or service in this country.

Canada

The following tax rates are pre-configured for Canada: 13%, 14%, 15%, 5% (GST), 5% (PST), 7% (PST), 8% (PST), and 9.975 (QST). No time periods are specified.

In Canada, multiple taxes may be imposed on the same product or service (the names of the taxes and the tax rates will vary from province to province), so ABBYY FlexiCapture for Invoices offers the following pre-configured tax groups: GST+PST(5%), GST+PST(7%), GST+PST(8%), and GST+QST.

USA

There are no pre-configured tax rates for the USA, because they cannot be known in advance. However, ABBYY FlexiCapture for Invoices includes pre-configured keywords to facilitate tax detection.

For the USA, pre-configured tax groups are provided, but no values are specified. In the case of US invoices, groups are used for combining keywords.


Specifications

This section contains information about the ABBYY FlexiCapture for Invoices project:

See Supported countries and languages

See Captured fields

See Detecting the main fields

data sets:

See Columns in the BusinessUnits data set

See Columns in the Vendors data set

See Columns in the PurchaseOrders data set

See Columns in the PurchaseOrdersItems data set

See Columns in the GLCodes data set

See Columns in the CostCenters data set

See Available rules

See Keywords used in a particular language

See Extended regular expressions

See Glossary


Supported countries and languages

Supported countries

For the countries listed below, all the necessary settings have been preconfigured, including the required keywords, languages, tax rates, currencies, etc.

·Australia

·Austria

·Belgium

·Canada

·Czech Republic

·France

·Germany

·Great Britain

·Hungary

·Ireland

·Italy

·Japan

·Netherlands

·New Zealand

·Poland

·Spain

·Switzerland

·United States

Additional countries

For the countries listed below, only the keywords have been preconfigured.

·Argentina

·Bulgaria

·Chile

·Colombia

·Croatia

·Denmark

·Estonia

·Finland

·Greece

·Latvia

·Lithuania

·Moldova

·Morocco

·Norway

·Peru

·Portugal

·Romania

·Russia

·Serbia

·Singapore

·Slovakia

·Slovenia

·Sweden

·Turkey

Supported languages

·Bulgarian

·Croatian

·Czech

·Danish

·Dutch

·English

·Estonian

·Finnish

·French

·German

·Greek

·Hungarian

·Italian

·Japanese

·Latvian

·Lithuanian

·Norwegian (Bokmal)

·Polish

·Portuguese

·Romanian

·Russian

·Slovak

·Spanish

·Swedish

·Turkish

note Note: You can add more countries. For details, see Country and language settings.


Captured fields

Field group | Field names (Invoice Processing (EU), Invoice Processing (ES)) | Field names Invoice Processing (Au-NZ)) | Field names Invoice Processing (CA)) | Field names Invoice Processing (JP)) | Field names Invoice Processing (US))
Business Unit | ·Business Unit ID ·Street ·Postal Code ·City ·Country ·VATID ·Name ·Address | ·Business Unit ID ·Street ·Postal Code ·City ·Country ·VATID ·Name ·State ·Address | ·Business Unit ID ·Street ·Postal Code ·City ·Country ·VATID ·Name ·State ·Address | ·Business Unit ID ·Street ·Postal Code ·City ·Country ·VATID ·Name ·State ·Address | ·Business Unit ID ·Street ·Postal Code ·City ·Country ·VATID ·Name ·State ·Address
Vendor | ·Vendor ID ·VATID ·National VAT ·IBAN ·Bank Code ·Bank Account ·Street ·ZIP ·City ·Country ·Name ·Address | ·Vendor ID ·VATID ·National VAT ·IBAN ·Bank Code ·Bank Account ·Street ·ZIP ·City ·Country ·Name ·State ·Address | ·Vendor ID ·VATID ·National VAT ·IBAN ·Bank Code ·Bank Account ·Street ·ZIP ·City ·Country ·Name ·State ·Address | ·Vendor ID ·VATID ·National VAT ·IBAN ·Bank Code ·Bank Account ·Street ·ZIP ·City ·Country ·Name ·State ·Address | ·Vendor ID ·VATID ·National VAT ·IBAN ·Bank Code ·Bank Account ·Street ·ZIP ·City ·Country ·Name ·State ·Address
Invoice Header Data | ·Invoice Number ·Invoice Date ·Delivery Date * ·Delivery Date Indicator * ·Credit Note ·Due Date * ·Purchaser Name * · | ·Invoice Number ·Invoice Date ·Delivery Date * ·Delivery Date Indicator * ·Credit Note ·Due Date * ·Purchaser Name * | ·Invoice Number ·Invoice Date ·Delivery Date * ·Delivery Date Indicator * ·Credit Note ·Due Date * ·Purchaser Name * | ·Invoice Number ·Invoice Date ·Delivery Date * ·Delivery Date Indicator * ·Credit Note ·Due Date * ·Purchaser Name * | ·Invoice Number ·Invoice Date ·Delivery Date * ·Delivery Date Indicator * ·Credit Note ·Due Date * ·Purchaser Name *
Amounts | ·Reversed Charge ·Total ·Currency | ·Reversed Charge ·Total ·Currency | ·Reversed Charge ·Total ·Currency | ·Reversed Charge ·Total ·Currency | ·Reversed Charge ·Total ·Currency
Taxes | ·Reversed Charge ·Summary ·Total Tax Amount ·Total Net Amount ·Net Amount 0 ·Net Amount 1 ·Net Amount 2 ·Tax Amount 1 ·Tax Amount 2 ·Tax Rate 1 ·Tax Rate 2 ·Tax Amount 1_2 ·Tax Rate 1_2 ·Tax Amount 2_2 ·Tax Rate 2_2 ·Tax Amount 1_3 ·Tax Rate 1_3 ·Tax Amount 1_4 ·Tax Rate 1_4 ·Tax Amount 2_3 ·Tax Rate 2_3 ·Tax Amount 2_4 ·Tax Rate 2_4 | ·Reversed Charge ·Summary ·Total Tax Amount ·Total Net Amount ·Net Amount 0 ·Net Amount 1 ·Net Amount 2 ·Tax Amount 1 ·Tax Amount 2 ·Tax Rate 1 ·Tax Rate 2 ·Tax Amount 1_2 ·Tax Rate 1_2 ·Tax Amount 2_2 ·Tax Rate 2_2 ·Tax Amount 1_3 ·Tax Rate 1_3 ·Tax Amount 1_4 ·Tax Rate 1_4 ·Tax Amount 2_3 ·Tax Rate 2_3 ·Tax Amount 2_4 ·Tax Rate 2_4 | ·Reversed Charge ·Summary ·Total Tax Amount ·Total Net Amount ·Net Amount 0 ·Net Amount 1 ·Net Amount 2 ·Tax Amount 1 ·Tax Amount 2 ·Tax Rate 1 ·Tax Rate 2 ·Tax Amount 1_2 ·Tax Rate 1_2 ·Tax Amount 2_2 ·Tax Rate 2_2 ·Tax Amount 1_3 ·Tax Rate 1_3 ·Tax Amount 1_4 ·Tax Rate 1_4 ·Tax Amount 2_3 ·Tax Rate 2_3 ·Tax Amount 2_4 ·Tax Rate 2_4 | ·Reversed Charge ·Summary ·Total Tax Amount ·Total Net Amount ·Net Amount 0 ·Net Amount 1 ·Net Amount 2 ·Tax Amount 1 ·Tax Amount 2 ·Tax Rate 1 ·Tax Rate 2 ·Tax Amount 1_2 ·Tax Rate 1_2 ·Tax Amount 2_2 ·Tax Rate 2_2 ·Tax Amount 1_3 ·Tax Rate 1_3 ·Tax Amount 1_4 ·Tax Rate 1_4 ·Tax Amount 2_3 ·Tax Rate 2_3 ·Tax Amount 2_4 ·Tax Rate 2_4 | ·Reversed Charge ·Summary ·Total Tax Amount ·Total Net Amount ·Net Amount 0 ·Net Amount 1 ·Net Amount 2 ·Tax Amount 1 ·Tax Amount 2 ·Tax Rate 1 ·Tax Rate 2 ·Tax Amount 1_2 ·Tax Rate 1_2 ·Tax Amount 2_2 ·Tax Rate 2_2 ·Tax Amount 1_3 ·Tax Rate 1_3 ·Tax Amount 1_4 ·Tax Rate 1_4 ·Tax Amount 2_3 ·Tax Rate 2_3 ·Tax Amount 2_4 ·Tax Rate 2_4
Additional Tax Groups | ·Net Amount ·Tax Amount ·Tax Rate | ·Net Amount ·Tax Amount ·Tax Rate | ·Net Amount ·Tax Amount ·Tax Rate ·Tax Amount 2 ·Tax Rate 2 | ·Net Amount ·Tax Amount ·Tax Rate ·Tax Amount 2 ·Tax Rate 2 ·Tax Amount 3 ·Tax Rate 3 ·Tax Amount 4 ·ax Rate 4 | ·Net Amount ·Tax Amount ·Tax Rate ·Tax Amount 2 ·Tax Rate 2 ·Tax Amount 3 ·Tax Rate 3 ·Tax Amount 4 ·Tax Rate 4
Additional Costs | ·Additional Cost 1 ·Additional Cost 2 ·Total Additional Cost | ·Additional Cost 1 ·Additional Cost 2 ·Total Additional Cost ·Additional Cost 3 ·Additional Cost 4 ·Freight Amount ·Discount ·Credit | ·Additional Cost 1 ·Additional Cost 2 ·Total Additional Cost ·Additional Cost 3 ·Additional Cost 4 ·Freight Amount ·Discount ·Credit | ·Additional Cost 1 ·Additional Cost 2 ·Total Additional Cost | ·Additional Cost 1 ·Additional Cost 2 ·Total Additional Cost
 | ·Status ·Reason | ·Status ·Reason | ·Status ·Reason | ·Status ·Reason | ·Status ·Reason
Invoice Type | ·Invoice ·Credit Note | ·Invoice ·Credit Note | ·Invoice ·Credit Note | ·Invoice ·Credit Note | ·Invoice ·Credit Note
Purchase Order* | ·Order Number ·Total ·Order Checked ·Matched Items | ·Order Number ·Total ·Order Checked ·Matched Items | ·Order Number ·Total ·Order Checked ·Matched Items | ·Order Number ·Total ·Order Checked ·Matched Items | ·Order Number ·Total ·Order Checked ·Matched Items
Line Items* | ·Order Number ·Order Date ·Position ·Article Number ·Article NumberBU ·Material Number ·Material NumberBU ·Description ·Quantity ·Quantity Undelivered ·Quantity Ordered ·Unit of Measurement ·Unit Price ·Unit Price Denominator ·Discount Percentage ·Discount Value ·Total Price Netto ·VAT Percentage ·VAT Value ·VAT Code ·Total Price Brutto ·Currency ·Delievery Date ·Is Valid ·Order Item Id ·GLCode ·CostCenter | ·Order Number ·Order Date ·Position ·Article Number ·Article NumberBU ·Material Number ·Material NumberBU ·Description ·Quantity ·Quantity Undelivered ·Quantity Ordered ·Unit of Measurement ·Unit Price ·Unit Price Denominator ·Discount Percentage ·Discount Value ·Total Price Netto ·VAT Percentage ·VAT Value ·VAT Code ·Total Price Brutto ·Currency ·Delievery Date ·Is Valid ·Order Item Id ·GLCode ·CostCenter | ·Order Number ·Order Date ·Position ·Article Number ·Article NumberBU ·Material Number ·Material NumberBU ·Description ·Quantity ·Quantity Undelivered ·Quantity Ordered ·Unit of Measurement ·Unit Price ·Unit Price Denominator ·Discount Percentage ·Discount Value ·Total Price Netto ·VAT Percentage ·VAT Value ·VAT Code ·Total Price Brutto ·Currency ·Delievery Date ·Is Valid ·Order Item Id ·GLCode ·CostCenter | ·Order Number ·Order Date ·Position ·Article Number ·Article NumberBU ·Material Number ·Material NumberBU ·Description ·Quantity ·Quantity Undelivered ·Quantity Ordered ·Unit of Measurement ·Unit Price ·Unit Price Denominator ·Discount Percentage ·Discount Value ·Total Price Netto ·VAT Percentage ·VAT Value ·VAT Code ·Total Price Brutto ·Currency ·Delievery Date ·Is Valid ·Order Item Id ·GLCode ·CostCenter | ·Order Number ·Order Date ·Position ·Article Number ·Article NumberBU ·Material Number ·Material NumberBU ·Description ·Quantity ·Quantity Undelivered ·Quantity Ordered ·Unit of Measurement ·Unit Price ·Unit Price Denominator ·Discount Percentage ·Discount Value ·Total Price Netto ·VAT Percentage ·VAT Value ·VAT Code ·Total Price Brutto ·Currency ·Delievery Date ·Is Valid ·Order Item Id ·GLCode ·CostCenter
BankInformation |  |  |  | ·BankName ·BranchName ·AccountType ·AccountNumber |
TrainablePO * | ·Order Number ·Total ·Is Copied To Repeatable PO | ·Order Number ·Total ·Is Copied To Repeatable PO | ·Order Number ·Total ·Is Copied To Repeatable PO | ·Order Number ·Total ·Is Copied To Repeatable PO | ·Order Number ·Total ·Is Copied To Repeatable PO

note Note: * marks additional fields which are not captured by default.

See Capturing additional invoice fields for more information about additional fields.

note Note: You can also train ABBYY FlexiCapture for Invoices to capture custom fields. See Capturing additional invoice fields for more information about training.


Detecting the main fields

Show/Hide Hidden Text

This article describes how the main fields of an invoice are detected and captured.

The program starts processing an invoice by recognizing its text in accordance with the Document Definition settings:

·Recognition mode (Fast / Balanced / Thorough) determines the speed of recognition and the quality of the text layer obtained as a result. To specify a recognition mode, in the Document Definition Editor, click Document Definition → Document Definition Properties... → Recognition).

·Recognition languages are the languages to be used for recognition. To specify recognition languages, in the Document Definition Editor, click Document Definition → Document Definition Properties... → Document Definition Settings, and then click Edit in the Countries and Languages group to select the required languages.

note Note: Recognition languages in FlexiCapture for Invoices are tied to the country settings. When adding an invoice country to the Countries and Languages group, the corresponding languages will automatically appear in the Document Definition settings. Invoice fields are extracted upon recognition.

To detect and capture fields on an invoice, the program can use:

·a FlexiLayout

·neural networks

Both methods are described below, together with the algorithm that either combines the results obtained by using both these methods or selects the best result.

Using a FlexiLayout

Business unit and vendor

The following may be used to determine the Vendor and Business Unit:

·Document Definition settings: IBAN, VATID, and NationalVATID formats, as well as the corresponding keywords;

·Data set record fields: IBAN, VATID, NationalVATID, Name, Street, City, ZIP.

For more information about the BusinessUnits and Vendors columns in the Data sets and how to use them, see BusinessUnits data set и Vendors data set.

Automatic company detection algorithm

The detail and quality of the information filled in in the Data set columns has a significant impact on detection quality. To ensure that the search results are as accurate as possible, make sure that:

·The unique company identifiers are filled in
Filling in unique value columns (VATID, NationalVATID, IBAN) will significantly improve the probability of correct detection, since these values are unique for all companies.

·There are no repeating company records
The absence of any repeating records will improve the probability of correctly detecting the company. For more information about eliminating duplicate records, see Eliminating duplicate records in the external database.

·There are no unrelated records
The presence of outdated or invalid records in the Data set may cause the company to be detected incorrectly because of coincidental similarities between various field values.

·All fields are filled in for every company record
Specify as much information about companies as possible. The more fields are filled in in the Data set, the higher the probability of correctly detecting the company.

·Multiple-value columns are used to store the same information that is denoted in different ways, and not different information altogether
For example, if a single company has several addresses, there must be a separate record for each of them, even if all other fields contain the same information. For more information, see Preparing vendor and business unit databases.

The automatic vendor and business unit detection algorithm consists of the following steps:

1.Unique identifier search

The following fields are considered to be unique company identifiers:

·VATID,

·NationalVATID,

·IBAN.

ABBYY FlexiCapture for Invoices searches the document image for the values listed above. In the document definition properties (Document Definition Settings tab, Countries and Languages group), the VATID, NationalVATID, and IBAN (Formats tab) formats, as well as keywords (Keywords tab) are set for each country using regular expressions.

note Note: Correctly filled in keywords and identifier formats significantly improve detection quality.

The program looks for exact matches on the image for such fields. Regular expressions can also take possible recognition errors into account. This is done by means of extended regular expressions (see Extended regular expressions).

note Note: ABBYY FlexiCapture for Invoices offers preset regular expressions, however, you can create your own regular expressions if required. To do so, navigate to the Countries and Languages group in the Document Definition Settings tab, select the appropriate country and click Edit….

Detected values are normalized as follows:

oletters are changed to upper case ,

ospaces and the following characters are removed: " . ", " , ", " — ", " / ", " \ ".

If the letter prefix of a field is specified using a regular expression in the country properties in the Formats tab, the recognized prefix is replaced by the primary prefix (set in the country properties in the Formats tab).
For example, the identifier "DE12345" may be recognized as "OE12345". The detected prefix OE will then be replaced with the correct prefix DE.
The VATID, NationalVATID, and IBAN fields detected on a document image will be used to query the Data set. The VATID, NationalVATID, and IBAN column values received from the Data set fields are normalized the same manner as the values detected on the image, after which they are matched (exact matching is used) to the normalized values of fields detected on the image.

2.Company name and address search

A query that uses all document text to look for records that match it the most accurately is sent to the Data set.

The Name, Street, ZIP, and City values detected on the image are matched to the corresponding Data set record values.

note Note: To get the best possible name and company search results, make sure that the corresponding Data set columns are filled in. Company name and address information is especially important in cases where the company cannot be identified using VATID, NationalVATID, or IBAN.

3.Hypothesis formation

Companies that have been found during steps 1 and 2, are used to form a set of hypotheses. ABBYY FlexiCapture for Invoices evaluates these hypotheses and then selects 5 vendor records and 5 business unit records that most reliably match the field values on the document image. These records are then used to form 25 pairs of vendors and business units, with each pair treated as a separate hypothesis. A neural network algorithm is then used to rate the hypotheses by reliability, with the best-fit vendor-BU pair becoming the final hypothesis and the results of the vendor and business unit detection.

note Note: If only the vendor database is connected, the quality of the vendor-BU pair evaluation may be negatively affected. It is recommended that a business unit database is connected even if business unit detection is not required. For more information, see Connecting databases.

note Note: If there is a very small number of business units (e.g. 1), connecting such a database will not have a significant impact on the evaluation. However, doing so may improve the detection quality in cases where a business unit is being incorrectly detected as a vendor.

Hypothesis filtering

Hypotheses are split into the following based on match reliability (Data set record and the document image field value):

·reliably matching the document image;

·unreliably matching the document image.

Depending on the verification scenario, you can decide whether or not to take hypothesis reliability into account when detecting the vendor and business unit. If you want ABBYY FlexiCapture for Invoices to select the final hypothesis exclusively from reliable hypotheses, you can filter them using the InvoiceReader/ShouldFilterUnsureCompanyHypotheses registry flag, which can be set to the following values:

·true — filtering is enabled, and the final hypothesis will be selected exclusively from the reliable hypotheses (default value);

·false — filtering is disabled, and the final hypothesis will be selected from all hypotheses regardless of their reliability;

Note that hypothesis filtering works differently for vendors and business units:

·When detecting vendors, no unreliable hypotheses for vendors will be considered. If there are no reliable hypotheses, a vendor will not be detected.

·When detecting business units:

oif at least one reliable hypothesis has been found, no unreliable hypotheses will be considered;

oif the set of hypotheses obtained during steps 1 through 3 does not contain at least one reliable hypothesis, the flag value will be ignored. The final hypothesis will be selected from the unreliable hypotheses.

The above is due to the differences between vendor and business unit Data sets:

·There are usually a lot less company business unit records than there are vendor records. They also change far less frequently, meaning that it is easier to keep them up-to-date. Therefore, detecting a reliable hypothesis increases the probability of the final hypothesis being correct. However, detecting a business unit is important even if no reliable hypotheses have been found, since the most important factor pertaining to the reliability of the detection result is the reliability evaluation of the vendor-BU pairs.

·There are usually a lot more vendor records, and the Data set contains more columns because vendors specify more information about their own company on their invoices (as opposed to the business unit). Records can also contain outdated information, meaning that unreliable hypothesis filtering will depend on both the quality of the Data set and the verification scenario type.

note Note: To improve the probability of detecting reliable hypotheses, keep Data sets up-to-date and include as much information about vendors and business units as possible.

Results of detecting the vendor and business unit

The main results of detecting the vendor and business unit on the invoice are:

·the identifier of the vendor record in the Vendors data set

·the identifier of the business unit record in the BusinessUnits data set

note Note: If the Vendors data set specifies that Id depends on BusinessUnitId (see Vendors data set), the result of vendor detection will contain the Id that corresponds to the BusinessUnitId.

A business unit may be detected unreliably. In this case, the document's registration parameter fc_Predefined:InvoiceIsVendorSuspicious (fc_Predefined:InvoiceIsBusinessUnitSuspicious) will be set to true.

The regions of the following fields may be found as a result of vendor and business unit detection:

For the vendor:

·Name

·VatID

·NationalVatID

·IBAN

·Street

·Zip

·City

For the business unit:

·Name

·VatID

·Street

·Zip

·City

Be examining the locations of these regions on the image you can see where exactly on the image the program has found the fields of the Vendor and Business Unit field groups, which enabled it to detect the vendor and the business unit.

note Note: If the field values for IBAN and VATID are absent from the Vendors data set, keywords and format can be used to detect the appropriate values the same way that bank details are detected (if the corresponding vendor has been found).

note Note: Search for any field region can be modified through training or by applying an additional FlexiLayout (See Capturing additional invoice fields) This will have no effect on vendor and business unit detection, but may affect the location of the regions of the fields in these field groups after matching the Document Definition with the invoices.

An important result of detecting the vendor and business unit is that information about their respective countries is retrieved from the CountryCode field of the records found in the data set. This information is then used to select keywords and tax rates and to capture other invoice fields. It is also used as a condition for launching validation rules for the invoice.

How to change the way the program detects the vendor or business unit

The better a vendor or business unit record in the data set matches the text extracted from an invoice image, the more accurately the program detects the vendor or business unit.

First, you need to identify the data in the external database that corresponds to the data set columns used for finding the company on an invoice. The external database and the data set have to be properly connected (see Using vendor and business unit databases).

If one and the same company occurs both in the list of vendors and in the list of business units, you must specify the same VATID for the respective records in both data sets (even if there is no VATID on invoices). This will prevent the program from detecting the vendor and business unit incorrectly.

To compensate for possible variations in field values on images, use:

·normalization of data set columns (see Normalization of Values in data sets),

·multiple-value data set columns (see Multiple-value columns in a data set).

Using pre-determined vendor and business unit values in conjunction with extracted values

The vendor or the business unit of the invoice's company can be determined in advanced based on the invoice's source (name of the Scanning Operator or the e-mail address of the message's sender).

You can specify the vendor and/or the business unit explicitly prior to automatic detection.

To do so, set the value of the document's registration parameter fc_Predefined:InvoicePredefinedVendorId (fc_Predefined:InvoicePredefinedBusinessUnitId) to the identifier (Id) of an entry in the Vendors or BusinessUnits data set.

Doing this does not prevent automatic detection of the vendor and/or the business unit from taking place. Thanks to this, in addition to the pre-determined vendor and/or business unit, you will get a confidence value (this value indicates how well the pre-determined values match values extracted from the image), as well as the regions of fields from the Vendor and/or Business Unit field groups.

Invoice Header field group

InvoiceNumber, InvoiceDate

An invoice's header includes, among others, the InvoiceNumber and InvoiceDate fields.

These fields are detected using keywords that are specified in the language properties of the Document Definition. The vendor and the business unit are detected first, providing information about the countries of the vendor and business unit. The countries determine languages (languages that correspond to a country are specified in the Document Definition). The set of keywords for finding fields is taken from the countries of the vendor and the business unit.

You can change the way the program looks for regions of fields by editing keywords (see Keywords) and by using training (see Training).

How does the program determine that a document is an invoice?

ABBYY FlexiCapture determines whether a document is an invoice when applying the FlexiLayout.

The conditions listed below indicate that a document is an invoice. Not all of these conditions have to be met, but each one caries a certain weight.

·InvoiceNumber and InvoiceDate fields were detected.

·Keywords from the InvoiceIdentifiers located element were detected (See Keywords).

·A vendor or a business unit was detected on the document.

A document can be identified as a credit note if keywords from the CreditNoreKeyword element were detected on the image or if the document has a negative Total.

Amounts field group

ABBYY FlexiCapture for Invoices captures the following fields from an invoice:

Field | Invoice Processing (Au-NZ), Invoice Processing (US), Invoice Processing (CA), Invoice Processing (EU), Invoice Processing (JP) | Invoice Processing (ES)
The total sum of the invoice (Total) and the currency of the invoice (Currency) | Yes | Yes
Taxes: ·The total without taxes (NetAmount0) ·The sum of the invoice prior to taxation (TotalNetAmount) ·The amount of payable tax (TotalTaxAmount) | Yes | Yes
·Tax groups (sum prior to taxation (NetAmount), amount of payable tax (TaxAmount), tax rate (TaxRate)) | No | Yes
Additional tax (AdditionalCosts) | Yes | Yes

Information from the Document Definition is used to find sums and tax rates:

·Rates of taxes payable in the vendor's country (you can specify these on the Tax Rates tab of the country's properties, See Country and language settings)

·Keywords for tax rates (you can specify these on the Keywords tab of the language's properties. Also See Keywords).

The program will try to find up to two tax rates on the image. If there are more than two tax rates in the invoice, additional fields can be created and filled in manually on the data form.

The program uses keywords to detect the TotalTax and TotalNetto fields. You can specify these keywords in the properties of a country or language, depending on how the keyword should be used (for details, Country and language settings). For more on keywords, see Keywords.

There are two types of keywords for the Total field, located in different categories (for more on Located elements categories see Keywords):

·AmountTotalHighConfidenceLabels: keywords that only occur near the Total field, such as "Pay this amount."

·AmountTotalLowConfidenceLabels: keywords that can occur near the Total field but can also occur near other fields. For example, the keyword "Total" can appear near the Total field but may also occur near a field that contains the total weight of all items on an invoice.

Tip. If you are not sure which of these two categories to add a keyword to, add it to AmountTotalHighConfidenceLabels. If you encounter invoices where the keyword causes the program to identify another field as the Total field, you can move it to AmountTotalLowConfidenceLabels.

In addition to keywords, the program will look for the following items when attempting to detect the Total field:

·Numbers that occur two or three times in the same line or in the same column on the image. Such numbers may be the Total on invoices where no taxes are specified.

·Numbers that are sums of the numbers located above them in the same column.

·The largest (by absolute value) numbers located in the end of the document.

The program will search for the Currency field only if a Total field has been detected. Keywords from the properties of the country in the Document Definition will be used.

Any fields in the Amounts field group that could not be detected on the image will be calculated automatically, except for the Total field. This field must be detected on the image.

If the program fails to correctly extract information from the fields in the Amounts field group, the Total field is marked as requiring verification.

If the program fails to detect the Total and Currency fields with a high degree of confidence or fails to detect them altogether, you can use training to improve the quality of extraction.

Purchase Order field group

ABBYY FlexiCapture for Invoices can extract all purchase order numbers and their corresponding sums from the invoice.

This feature is disabled by default (See Purchase order matching).

To extract Purchase Order numbers, you will need a data set with a list of possible Purchase Order numbers and their sums (see PurchaseOrders data set).

The Purchase Order field can be extracted using:

·a regular expression;

·A data set containing possible purchase order numbers (see PurchaseOrders data set).

If a data set with possible purchase order numbers is used, ABBYY FlexiCapture for Invoices will search images for numbers from this data set. It is best to have as few purchase order numbers as possible in the database, and there are several things you can do to decrease their amount:

·Use the VendorId column of the data set. In this case the program will only use Purchase Order numbers from the invoice's vendor.

·Filter out purchase orders for which an invoice has already been received and only add the numbers of purchase orders for which no invoice has been received yet to the data set.

The program will search the database for sums that correspond to detected Purchase Order numbers.

The program will also search the image for all Purchase Order numbers, including those that are in the invoice's line items.

Purchase orders are usually generated by the buyer's ERP system, so invoices billed to a specific Business Unit tend to be similar. It is usually possible to describe them using a regular expression.

If there is a regular expression for purchase order numbers, the program will detect all numbers that satisfy the expression on images. The regular expression can be specified in an XML configuration file using the following tags:

.<InvoiceSettings>
...
<OrderNumber>
<Value>
<RegularExpression></RegularExpression>
</Value>
</OrderNumber>
</InvoiceSettings>

For more on XML configuration files, see Editing invoice processing settings in XML files.

The Line Items field group

ABBYY FlexiCapture for Invoices can extract invoice line items from images.

Extraction of invoice line items is disabled by default (See Additional fields).

For a list of fields which the program extracts automatically, See Captured fields.

ABBYY FlexiCapture for Invoices first searches the image for a table. During this search, it uses the keywords for column titles which are specified for every language in the Document Definition's properties. Keywords for columns of invoice line items are also used for classifying items, i.e. for determining the type of each invoice line item column.

After this, the program uses information about detected columns and mathematical expressions to find invoice line items in the invoice's table.

Finally, the program searches invoice line items for fields from columns.

Training can be used to improve the quality of automatic line item extraction.

Using neural networks

One of the main advantages offered by neural networks is their ability to self-learn: neural networks can detect complex dependencies existing among input data and make some useful generalizations.

The program includes two neural networks that can be used to capture the following fields:

·InvoiceNumber

·InvoiceDate

·Total

·Vendor \ Name

·Vendor \ Address

·Business Unit \ Name

·Business Unit \ Address

·Purchase Orders \ Order Number

·LineItems:

oOrderNumber

oOrderDate

oPosition

oArticleNumber

oDescription

oQuantity

oUnit of measurement

oUnit Price

oTotal Price Netto

oVATPercentage

For maximum precision, the program will use both a FlexiLayout and its neural networks to capture invoice fields. Those fields that the program fails to extract using its neural networks will be extracted using the FlexiLayout. If a field can be extracted both by the neural networks and the FlexiLayout, the program will intelligently combine the results obtained through both methods. How the results are combined depends on the field (see Combining the field detection results for details).

Disabling the neural networks

By default, the neural networks will be used as the second method of capturing document fields. If you need to process documents other than invoices within your invoice project, you may want to disable the neural network, as it was specifically trained to capture invoice fields and may not perform well on other types of documents.

To disable the neural network for the Line Items group:

·Open the Document Definition Editor.

·Click Document Definition Properties... → Document Definition Settings → Additional Fields and Features.

·Disable the Thorough extraction of invoice line items option.

To disable the neural network for the Invoice Header, Vendor, Business Unit, and Purchase Order groups:

·Open the Document Definition Editor.

·Click Document Definition Properties... → Document Definition Settings → Additional Fields and Features.

·Disable the Thorough extraction of invoice header fields option.

Combining the field detection results

How the program combines the field detection results or selects the best result depends on the field. As a general rule, precedence will be given to the results obtained by the respective neural network. Exceptions to this rule are searches based on data sets and searches using regular expressions created for specific customer documents.

Invoice Header field group

The results obtained by the neural network will always have precedence for the following fields:

·Invoice Number

·Invoice Date

·Total

Business unit and vendor

By default, the business unit and vendor are detected based on a data set, provided a data set is selected.

Additionally, the following fields may be detected using the neural network if there is no corresponding record in the data set:

·Name

·VATID (ABN)

·Address

If no data set is selected, only the neural network will be used.

Purchase Order field group

The neural network will only be used if the value is not detected by means of a data set or a regular expression.

Line items

For line item fields, precedence will be given to the results obtained by the neural network. If the neural network detects the entire table of line items, this table will be used for further processing. Otherwise, the program will use the line items detected by means of the FlexiLayout.

If the neural network detects only the Description and TotalPriceNetto fields for each line item, they will be complemented with the fields detected by means of the FlexiLayout.


Using data sets toimprove detection

BusinessUnits data set

Vendors data set

PurchaseOrders data set

PurchaseOrdersItems data set

GLCodes data set

CostCenters data set

Available rules


BusinessUnits data set

This data set contains information about business units. It is used to automatically detect the business unit (i.e. the division of the company that received the invoice) and check information about the business unit against a database.

note Note: If no information about the business unit is found in the data set, or if you are not using business unit databases, ABBYY FlexiCapture will use neural networks for field detection, unless neural networks are disabled in the program settings. For more information, see Detecting the main fields.

Name | Type | Description
Id | Text, not normalized | Required field. Obtained by detecting the business unit. Identifies the business unit in an external information system. The unique key of the entry in the data set.
VATID | Text, normalized to Alphanumeric code | Optional field. The unique identifier assigned to a company for tax purposes.
Name | Text, normalized to Text | Optional field. The name of the business unit.
ZIP | Text, normalized to Alphanumeric code | Optional field. Part of the address of the business unit.
Street | Text, normalized to Text | Optional field. Part of the address of the business unit.
City | Text, normalized to Text | Optional field. Part of the address of the business unit.
State | Text, not normalized | Optional field. The state component of the business unit's address.
CountryCode | Text, normalized to Alphanumeric code | Required field. Part of the address of the business unit. note Note: The program does not use the CountryCode when searching for the business unit. CountryCodes are ISO 3166-1 alpha-2 two-letter codes. This field is required because the program uses the country of the business unit to determine the way the FlexiLayout is applied to invoices and the way fields are checked.

For more information about detecting the main document fields, see Detecting the main fields.


Vendors data set

This data set contains information about the vendors and is used to detect the issuer of the invoice and to check vendor details against a database.

note Note: If no information about the vendor is found in the data set, or if you are not using vendor databases, ABBYY FlexiCapture will use neural networks for field detection, unless neural networks are disabled in the program settings. For more information, see Detecting the main fields.

Name

Type

Description

Id

Text, not normalized

Required field. Obtained by detecting the vendor. Identifies the vendor in an external information system.

note Note: This is the unique ID of the entry in the data set if all of the vendor's business units use the same customer database. Otherwise, the entry in the data set is uniquely identified by a combination of Id and BusinessUnitId.

BusinessUnitId

Text, not normalized

Optional field. The identifier of the business unit of the company that received the invoice.

note Note: If the vendor's business units use different customer databases, this data set field must be filled in, as the unique key of the entry in the data set will be a combination of BusinessUnitId and Id.

VATID

Text, normalized to Alphanumeric code

Optional field. The unique identifier of the vendor for tax payment purposes.

NationalVATID

Text, normalized to Alphanumeric code

Optional field. The unique national identifier of the vendor for tax payment purposes.

IBAN

Text, normalized to Alphanumeric code

Optional field. The international bank account number of the vendor.

BankAccount

Text, normalized to Alphanumeric code

Optional field. The bank account of the vendor.

BankCode

Text, normalized to Alphanumeric code

Optional field. The bank account of the vendor.

Name

Text, normalized to Text

Optional field. The name of the vendor.

ZIP

Text, normalized to Alphanumeric code

Optional field. The postal code component of the vendor's address.

Street

Text, normalized to Text

Optional field. The street component of the vendor's address.

City

Text, normalized to Text

Optional field. The city component of the vendor's address.

State

Text, not normalized

Optional field. The state component of the vendor's address.

CountryCode

Text, normalized to Alphanumeric code

Required field. The country component of the vendor's address.

note Note: This field contains the two-letter code of the country as specified in ISO 3166-1 alpha-2. This field must not be empty, as the vendor's country determines the rules of matching Document Definitions with invoices and checking captured fields.

GLCode

Text, not normalized

The GL code used for the vendor by default. This value will be automatically recorded in the LineItems / GLCode field.

For more information about detecting the main document fields, see Detecting the main fields.


PurchaseOrders data set

This data set contains information about orders. It is used to capture order numbers and amounts from invoices and for matching invoices with their respective orders.

Name | Type | Description
PONumber | Text, not normalized | Required field. Order number.
Netto | Double, not normalized | Required field. The amount of the order.
VendorId | Text, not normalized | Optional field. The ID of the vendor which corresponds to the order number. If the values of this column are specified, once the vendor is detected, the list of orders will be filtered and the program will work only with orders from this vendor's data set.
BUId | Text, not normalized | Optional field. The identifier of a business unit. This field must be detected if you process invoices issued by different business units of a company. Each business unit may have its own list of PO numbers. The BUId field is used to place the PO numbers of different business units into one data set, in which case the BUId and PONumber fields uniquely identify the order.

For more information about detecting the main document fields, see Detecting the main fields.


PurchaseOrdersItems data set

This data set contains information about order items and is connected with the PurchaseOrders data set via the PONumber key (order number). This data set is used for displaying order items to a Verification Operator.

Name | Type | Description
PONumber | Text, not normalized | Required field. Order number. Associates order items with the corresponding records in the PurchaseOrders data set.
Article | Text, not normalized | Optional field. Order item code.
Description | Text, not normalized | Optional field. Order item description.
Quantity | Integer, not normalized | Optional field. Order item quantity.
UnitPrice | Double, not normalized | Optional field. Order item price.
Discount | Double, not normalized | Optional field. Order item discount.
TaxSum | Double, not normalized | Optional field. Order item tax amount.
TotalPriceNetto | Double, not normalized | Optional field. Order item amount before tax.
TotalPriceBrutto | Double, not normalized | Optional field. Order item amount.
ItemId | Text, not normalized | The unique identifier of a purchase order line item. This field must be detected if each invoice line item must be matched with a specific purchase order line item., in which case the result of the matching is the value of the ItemId field which is recorded in one of the fields of the invoice line item.
BUId | Text, not normalized | Optional field. The identifier of a business unit. This field should be defined if you process invoices issued by different business units of a company. Each business unit may have its own list of PO numbers. The BUId field is used to place the PO numbers of different business units into one data set, in which case the BUId and PONumber fields uniquely identify the order.


GLCodes data set

This data set contains information about possible GL codes.

Name | Type | Description
GLCode | Text, not normalized | A list of possible GL codes.


CostCenters data set

This data set contains a list of cost centers of the business units.

Name | Type | Description
CostCenter | Text, not normalized | The name of the cost center. One possible name format is Department + Cost Center + Buyer's Name.
BUId | Text, not normalized | The identifier of the business unit the cost center belongs to.


Available rules

Invoice validation rules

Any pre-configured rules can be disabled by the user in the properties of the Document Definition. It is also possible to create user-defined rules.

Field groups | Rule | Description | Enabled by default (Invoice Processing (Au-NZ)) | Enabled by default (Invoice Processing (CA)) | Enabled by default (Invoice Processing (ES)) | Enabled by default (Invoice Processing (EU)) | Enabled by default (Invoice Processing (US)) | Enabled by default (Invoice Processing (JP))
Business Unit | Information about business units must be added to database | This rule checks if a new business unit that was found on the image and was saved to the BU data set has been added to the database. * This rule must be enabled when business unit databases are used. | No | No | Yes | Yes | No | No
 | Business Unit's address is required | This rule checks to make sure that the BU\Street field is not empty. | No | No | Yes | Yes | No | No
 | Business Unit's name is required | This rule checks to make sure that the BU\Name field is not empty. | No | No | Yes | Yes | No | No
 | Business Unit's VATID is required | This rule checks to make sure that the BU\VATID field is not empty. * The rule is applied to all supported countries except Switzerland. | No | No | Yes | Yes | No | No
 | Check ABN | This rule checks if the BU\VATID field for AU invoices is filled in. | Yes | — | — | — | — | —
 | Business Unit must be found in database | This rule checks if the business unit found on the invoice image is found in the BU data set. * This rule must be enabled when business unit databases are used. | Yes | Yes | Yes | Yes | Yes | Yes
 | Business Unit's Country is required | This rule checks to make sure that the BU\Country field is not empty. | No | No | No | No | No | No
 | Check tax rates on national invoices | This rule checks that the applied tax rates are correct for invoices from the same country. The possible tax rates and their validity periods are known for each country. | No | No | Yes | Yes | No | No
 | Check Tax Rate JP | This rule checks that the applied tax rates are correct. | Yes | — | — | — | — | —
 | Check tax rates field on international invoices | This rule checks that the applied tax rates are correct for international invoices. The possible tax rates and their validity periods are known for each country. | No | No | Yes | Yes | No | No
Vendor | Vendor address is required | This rule checks to make sure that the Vendor\Street field is not empty. | No | No | Yes | Yes | No | No
 | Vendor name is required | This rule checks to make sure that the Vendor\Name field is not empty. | No | No | Yes | Yes | No | No
 | Vendor VATID is required | This rule checks to make sure that the Vendor\VATID field is not empty. * The rule is applied to all supported countries except Switzerland. | No | No | Yes | Yes | No | No
 | Vendor must be found in database | This rule checks if the vendor that was found on the invoice image is also present in the vendor data set. * This rule must be enabled when vendor databases are used. | Yes | Yes | Yes | Yes | Yes | Yes
 | Vendor details must be added to database | This rule checks if a new vendor that was found on the image and was saved to the vendor data set has been added to the database. * This rule must be enabled when vendor databases are used. | No | No | Yes | Yes | No | Yes
 | Vendor's bank details are required | This rule checks if IBAN, Bank code, and Bank Account correspond to values in the vendor data set. | No | No | Yes | Yes | No | No
 | Check vendor's bank details against database | This rule checks that the vendor's bank details detected on the invoice image are the same as the bank details in the Vendor data set. | No | No | Yes | Yes | No | Yes
Invoice Header Data | Invoice number is required | This rule checks to make sure that the Invoice Number field is not empty. | Yes * This rule is applied to Canada, Australia, and New Zealand | Yes * This rule is applied to all supported countries except Switzerland. | Yes * This rule is applied to all supported countries except Switzerland. | Yes * This rule is applied to all supported countries except Switzerland. | Yes *This rule is applied to Canada | Yes * This rule is applied to all supported countries except Switzerland.
 | Invoice date is required | This rule checks to make sure that the Invoice Date field is not empty. | Yes * This rule is applied to Canada, Australia, and New Zealand | Yes | Yes | Yes | Yes | Yes * If the field is filled in, but the year is not specified, the field value is replaced with a date in the following format: YYYY/MM/DD, where YYYY is the current year
 | Delivery date is required | This rule checks to make sure that the Delivery Date field is not empty. The rule has no effect if Delivery Date Indicator is set. | No | No | No | No | No | No
 | Delivery date must be earlier than Invoice date | The following check is performed: delivery date is within the interval Delivery Date <= Invoice Date. | No | No | No | No | No | No
 | Delivery date must not be earlier than a year ago | The following check is performed: delivery date is within the interval Today - 365(366) days <= Delivery Date | No | No | No | No | No | No
 | Check currency value | This rule checks to make sure that the currency is the same as one of the currencies specified for the project. | Yes | Yes | Yes | Yes | Yes | Yes
Amounts | Total is a required field | This rule checks to make sure that the Total field is not empty. | Yes | Yes | Yes | Yes | Yes | Yes
 | Amount check | This rule checks if Net Amount + Tax Amount = Total. If additional costs or discounts are detected, then the rules checks if Net Amount + Tax Amount + Additional Costs = Total. | No | No | — | — | Yes | Yes
 | Tax Rate field must not be empty | If either Net Amount or Tax Amount is not empty, then the respective Tax Rate should not be empty. | No | No | Yes | Yes | No | No
 | If tax rate is detected, pre-tax amount is required | This rule checks to make sure that for each detected tax rate, the corresponding Net Amount field is not empty. * This rule is applied only to Germany. | No | Yes | Yes | Yes | Yes | Yes
 | If tax rate is found, tax amount is required | This rule checks to make sure that for each detected tax rate, the respective Tax Amount is not empty | No | Yes | Yes | Yes | Yes | Yes
 | Total Tax is required field | This rule checks to make sure that the Amounts\Total Tax Amount field is not empty. * This rule is applied to all supported countries except Germany. | No | No | Yes | Yes | No | No
 | Check Tax field | This rule checks to make sure that for each detected tax rate, the respective Tax Amount is correct for the respective NetAmount and TaxRate (i.e. that the arithmetic equality TaxAmount = (TaxRate / 100) * NetAmount is true). | No | Yes | Yes | Yes | Yes | Yes
 | Check Total Tax field | The following check is performed: Total Tax Amount = Tax Amount 1 + Tax Amount 2. * This rule is applied to all supported countries except Germany. | No | Yes | Yes | Yes | Yes | Yes
 | Check Net Total field | The following check is performed: Total Net Amount = Net Amount 0 + Net Amount 1 + Net Amount 2. If the Total Net Amount field is empty, this rule enters data into the field according to the calculations. | No | Depending on the field group to which this rule is applied. | Yes | Yes | No | No
 | Check Total field if total tax amount is required | This rule checks to make sure that the sum of the detected net amount, tax amount, and additional costs is equal to Total. * This rule is applied to all countries except Germany. | No | No | Yes | Yes | Yes | No
 | Check Total field if total tax amount is optional | This rule checks to make sure that the sum of each found net amounts, tax amounts, and additional costs is equal to Total * This rule is applied to Germany. | No | Yes | Yes | Yes | Yes | Yes
 | Verify net total against order items | This rule checks the sum total of the values in the TotalPriceNetto column of the LineItems table against the invoice amount prior to taxes (TotalNetAmount). | No | No | No | No | No | No
Purchase Order | Check invoice line items count against order items count | This rule checks if the number of line items in an invoice is the same as the number of line items in the corresponding purchase order. | No | No | No | No | No | No
 | Check purchase order number and amount | This rule checks if the order number and amount captured from an invoice correspond to the orders in the PurchaseOrders data set. | Yes if the Purchase order matching feature is enabled (See Additional fields) | Yes if the Purchase order matching feature is enabled (See Additional fields) | Yes if the Purchase order matching feature is enabled (See Additional fields) | Yes if the Purchase order matching feature is enabled (See Additional fields) | Yes if the Purchase order matching feature is enabled (See Additional fields) | Yes if the Purchase order matching feature is enabled (See Additional fields)
 | Copy PO data to TrainablePO | This rule copies the PurchaseOrders group fields whose regions have been found on the invoice to the group being trained. | Yes | Yes | Yes | Yes | Yes | Yes
 | Check if invoice line items are matched with unique order items | This rule checks if there are multiple line items in an invoice associated with one and the same line item in the purchase order. | No | No | No | No | No | No
Line Items | Check item amount | For each invoice item, this rule checks to make sure that the following is true: Quantity * UnitPrice is the same as TotalPriceNetto for the item after DiscountPercentage is applied. | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields)
 | Match invoice line item with order item | This rule checks to make sure that each line item from an invoice has corresponding item in the PurchaseOrderItems data set. | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields)
 | Check LineItems currency value | This rule checks to make sure that the currency of the line item is the same as one of the currencies specified for the project. | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields) | Yes if the Line items extraction feature is enabled (See Additional fields)
 | Price per unit is required | This rule checks to make sure that the Unit Price column is not empty. | No *This rule is applied to Canada, Australia, and New Zealand | No *This rule is applied to Canada | — | — | No *This rule is applied to Canada | No
 | Line level Total is required | This rule checks to make sure that the Total Price Netto field is not empty. | No *This rule is applied to Canada, Australia, and New Zealand | No *This rule is applied to Canada | — | — | No *This rule is applied to Canada | No
 | Quantity is required | This rule checks to make sure that the Quantity column is not empty. | No *This rule is applied to Canada, Australia, and New Zealand | No *This rule is applied to Canada | — | — | No *This rule is applied to Canada | No
 | Check GL Code | This rule checks if the value of the field is in the GLCodes data set. It is also used for making a list of suggestions for stations. | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields)
 | Check cost center | This rule checks if the VendorId, the associated BUId and the associated LineItems/CostCenter field are present in the CostCenters data set. It is also used for making a list of suggestions for stations. | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields)

note Note: When using an external database, the country of a document is the country of the vendor's business unit. If no external database is used, the country will be determined by an automatic country detector.

Service rules

These rules do not affect the status of a document and do not issue any messages to Operators. They are required for the correct operation of the ABBYY FlexiCapture for Invoices Document Definition.

Any pre-configured rules can be disabled by the user in the Document Definition properties. It is also possible to create user-defined rules.

Field groups | Rule | Description | Enabled by default (Invoice Processing (Au-NZ)) | Enabled by default (Invoice Processing (US)) | Enabled by default (Invoice Processing (EU)) | Enabled by default (Invoice Processing (EU)) | Enabled by default (Invoice Processing (US)) | Enabled by default (Invoice Processing (Au-NZ))
Invoice Header Data | Detect invoice type | If Invoice Amount is negative or the words "Credit note" are found, the invoice type will be changed to Credit note. | Yes | Yes | Yes | Yes | Yes | Yes
 | Delivery Date field is empty or completed | This rule sets/clears the value of Delivery Date Indicator field depending on whether the Delivery Date field is filled or not (if Delivery Date is empty, then Delivery Date Indicator is not set). This rule has no effect if Delivery Date Indicator has been verified. | No | No | No | No | No | No
Amounts | Reversed Charge field is empty or completed | If the only found VAT rate is equal to 0, or the words "Reverse Charge" are found, the value of the Reversed Charge field will be set to Yes. | No | No | Yes | Yes | No | No
 | Set currency to CAD or USD | If no currency indicator is detected or if the $ is detected, sets the currency to Canadian dollars (CAD) if the vendor's country is Canada; or to US dollars (USD) if the vendor's country is the USA or any other country except Canada. | — | Yes * This rule is applied to Canada and the USA | — | — | Yes * This rule is applied to Canada and the USA | Yes
 | Set currency to AUD or NZD | If no currency indicator is detected or if the $ is detected, sets the currency to Australian dollars (AUD), if the business unit's country is Australia, or to New Zealand dollars (NZD) if the business unit's country is New Zealand. | Yes *This rule is applied to Australia and New Zealand | — | — | — | — | —
 | Detect national currency | This rule automatically enters data into the Currency field (if it is empty) in invoices from France, Great Britain, and Spain. | No | Yes | Yes | Yes | Yes | Yes
 | Complete Total Additional Cost field | Computers the total amount of additional costs. | No | No | Yes | — | No | —
 | Complete Tax Rate field if it is empty | Computes the value of the tax rate, if it is not found on the invoice image and provided that the other tax fields have been found. | No | Yes | Yes | Yes | Yes | Yes
 | Complete Total Tax field if it is optional | This rule automatically enters data into the Amounts\Total Tax Amount field for countries where this field is not obligatory. * This rule is applied only to Germany. | No | No | Yes | Yes | No | No
 | Complete Total Tax field if only one tax rate is found | This rule automatically enters data into the Amounts\Total Tax Amount if there is only one tax on the invoice. | No | No | Yes | Yes | No | No
 | Get summary information for Amounts group | This rule enters data into the Amounts\Summary field based on the following values: Net0, Net1, Net2, Tax Amount 1, Tax Amount 2, Tax Rate 1, Tax Rate 2. Format: Sum (= Net0 + Net1 + Net2 + Tax Amount 1 + Tax Amount 2)+ AdditionalTaxGroups\ NetAmount + AdditionalTaxGroups\TaxAmount); and VAT rates which are found on the invoice. Example: 256; 0% | No | Yes | Yes | Yes | No | No
 | Copy currency from LineItems | If the Currency field (for the Total Tax Amount) is not found, the value is copied over from the LineItems table. | No | Yes | Yes | Yes | Yes | Yes
 | Collect matched order items (necessary for proper work of PO Matching at items level) | Compiles a list of PO line items that are already associated with their corresponding invoice line items. In the case of manual comparison, the Operator will see only those invoice line items for which no matches has yet been found in the purchase order. | Yes | Yes | Yes | Yes | Yes | Yes
Line Items | If Order is checked make all corresponding line items valid | If the Is Valid option is selected for one of the line items when comparing invoice line items against the purchase order, all the other line items will be marked as valid. | Yes | Yes | Yes | Yes | Yes | Yes
 | Copy order number from PurchaseOrders group | If the Order Number field of the LineItems table is not matched, the order number value will be copied into this table from the Order Number field (the order number from the PurchaseOrder group of fields) | Yes | Yes | Yes | Yes | Yes | Yes
 | Separate currency from amount in field | This rule splits amount and currency and copies the currency to the Currency field if it is empty. | No | Depending on the field group to which this rule is applied | Depending on the field group to which this rule is applied | Depending on the field group to which this rule is applied | Yes | Depending on the field group to which this rule is applied
 | Add GL Code to Vendor | This rule checks if the GLCode column in the Vendors data set contains the necessary value for a specific vendor. Performs the same check for both vendor and business unit if the BusinessUnitId column in the data set is mapped. If the GLCode column does not contain the necessary value, it will be copied from the LineItems/GLCode field. | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields)
 | Set suggests list for GL Code | This rule creates a list of suggestions for the GLCode field out of data from the GLCodes data set | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields)
 | Fill in GL code | This rule checks if the GLCode column in the Vendors data set contains the necessary value for a specific vendor. Performs the same check for both vendor and business unit if the BusinessUnitId column in the data set is mapped. If the GLCode column contains the necessary value, it will be copied from the data set to the LineItems/GLCode field. | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields)
 | Set suggest list for cost centers | This rule creates a list of suggestions for the GLCode field out of data from the CostCenters data set. The suggestions are filtered by their BUId values. | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields) | Yes if the Line items extraction and GL Coding features are enabled (See Additional fields)

note Note: When using an external database, the country of a document is the country of the vendor's business unit. If no external database is used, the country will be determined by an automatic country detector.


Keywords

Keywords for the Vendor / Business Unit and Invoice Header Data groups of fields

ABBYY FlexiCapture for Invoices uses keywords to search for fields on an image: if a keyword is detected, the program will look for a field in its vicinity. Common examples of keywords include field titles and captions.

For example, let us say an invoice contains the following text: Invoice Date: <value>. In this case "Invoice Date" will be the keyword used to find the InvoiceDate field.

Keywords can be specified using Located elements. Each Located element can only be attributed to one field in the Document Definition, but each field can have more than one Located element, each of which describes a separate model of the relationship between the keyword and the field on the invoice.

·Keywords are specific to languages and countries. When a Document Definition is applied, the program takes keywords from the vendor's country, the business unit's country, and from the languages of these countries.

·Normalization is applied to keywords.

otabs, spaces, line break characters and diacritical marks are ignored

oletter case is ignored (the program makes no distinction between lower-case and upper-case letters)
For example, for keyword purposes Tax point is the same as taxpoint.

·The program allows for 2 or 3 recognition errors in keywords (depending on the element).

·Sometimes a keyword appears in more than one language, for example Quantity/Anzahl. We recommend adding the whole keyword (Quantity/Anzahl) to both languages.

Field group | Located Elements | Description | Specified in the properties of
Vendor / Business Unit | Bank Account | Keywords for the Bank Account field | Country (the Keywords tab)
 | Bank Code | Keywords for the Bank Code field | Country (the Keywords tab)
 | IBAN | Keywords for the IBAN field | Country (the Keywords tab)
 | National VATID | Keywords for the National VATID field | Country (the Keywords tab)
 | Total | Keywords for the Total field | Country (the Keywords tab)
 | Total tax | Keywords for the Total tax field | Country (the Keywords tab)
 | VATID | Keywords for the VATID field | Country (the Keywords tab)
Invoice Header Data | PurchaserNameLabels | Different possible names of the PurchaserName field in the language. | Language
 | PurchaserNameFalseFieldPrefixes | Different possible names of fields that may be incorrectly identified as the PurchaserName field. We recommend specifying these only if you see specific cases. | Language
 | CreditNoteKeywords | Words in the language that may be used to identify the language as a Credit Note: | Language
 | InvoiceIdentifiers | Words which indicate that the document is an invoice. | Language
 | OrderNumberLabels | Possible names of the OrderNumber field in the language. | Language
 | InvoiceNumberExcludePreffixes | Words that are placed before numbers and may be omitted, such as "No." | Language
 | InvoiceNumberExcludeSuffixes | Words that are placed after numbers and may be omitted. We recommend specifying these only if you see specific examples. | Language
 | InvoiceNumberWithDateLabels | Text that may precede an invoice's number, if that name is written in the same line as the date and they are separated by a slash or other character. Examples: Invoice Number / date 23061336 / 07.07.2013 Rechnungsnr./ -datum 23061336 / 07.07.2013 | Language
 | InvoiceNumberHighConfidenceLabels InvoiceNumberLowConfidenceLabels | The InvoiceNumberHighConfidenceLabels list contains fragments of text that unambiguously identify the field, such as "Invoice number" and "Document number". More ambiguous fragments of text such as "No." and "Bill" are listed in InvoiceNumberLowConfidenceLabels. | Language
 | DueDateLabels | Possible names of the DueDate field in the language. | Language
 | DeliveryDateLabels | Possible names of the DeliveryDate field in the language. | Language
 | InvoiceDateLabelsNearCity | Any fragment of text that may be used to separate the name of a city and the date if they are in the same line, such as a comma. | Language
 | InvoiceDateLabelsNearInvoiceNumber | Any fragment of text that may be used to separate the number of the invoice and the date if they are in the same line. | Language
 | InvoiceDateHighConfidenceLabels InvoiceDateLowConfidenceLabels | The InvoiceDateHighConfidenceLabels list contains fragments of text that unambiguously identify the field, such as "Invoice date" and "Document date". More ambiguous fragments of text such as "Tax Date" and "Tax Point" are listed in InvoiceDateLowConfidenceLabels. | Language

Keywords for the Amounts group of fields

ABBYY FlexiCapture is capable of determining when a word is part of a word combination. For example, if you add the keywords total and total netto, and the image contains total netto, it will be identified as total netto and not total.

·The program allows for up to 3 recognition errors in keywords.

·This limitation can lead to errors. For example, the program may mix up the words brutto and netto. To avoid these errors, if you add a value (such as total netto) to AmountTotalNettoLabels, add the corresponding value (such as total brutto) to AmountTotalLabels.

Field group | Located Elements | Description | Specified in the properties of
Amounts | AmountTotalHighConfidenceLabels AmountTotalLowConfidenceLabels | The captions of the Total field. It is advisable to place captions that occur only with the total amount on the invoice in the HighConfidence group. Captions that may occur with other amounts should be placed in the LowConfindence group. | Language
 | AmountTotalNettoLabels | The keyword that may be to the left or on the top of the Total Netto field | Language
 | AmountTotalTaxLabels | The keyword that may be to the left or on the top of the Total Tax field | Language, Country (the Keywords tab)
 | ReversedChargeKeywords | Words that can be used to indicate "Reversed Charge" in the language | Language
 | Tax Rates | Keywords for tax rates | Country (the Tax Rates tab)
 | Currency | Keywords or characters that indicate currencies. | Country (the Currency tab)

note Note: It is usually a bad idea to add the same word to Total Netto and Total.

Keywords for the Line Items group of fields

Keywords are used to find table titles that contain invoice fields, and for finding specific columns in tables. Words that are frequently used in titles of columns that correspond to Located Elements work best in this capacity.

If the same word can be found in titles of different columns, we recommend adding it to the Located Elements of these columns. In this case the program will be able to tell the columns apart by the contents of cells in these columns.

If the program still fails to tell the columns apart, or if the word is used frequently in one column and infrequently in other columns, leave the word in the Located Element of the column where it is used the most frequently and remove it from the Located Elements of the other columns.

·The program allows for up to 3 recognition errors in keywords.

·Keywords cannot take up more than one line.

·The contents of a column must be located directly beneath the title of the column.

·Keywords on images must be surrounded by spaces, commas or periods. So Quantity/Anzahl is one keyword, and Quantity / Anzahl is two.
If a keyword may be written in more than one way, add all of the different ways it can be written, for example Quantity/Anzahl, Quantity and Anzahl.

Field group

Located Elements

Description

Specified in the properties of

Line Items

LineItemsArticleNumberLabels

Keyword for the Article Number column

Language

LineItemsArticleNumberBULabels

Keyword for the Article Number BU column

Language

LineItemsCurrencyLabels

Keyword for the Currency column

Language

LineItemsDeliveryDateLabels

Keyword for the Delivery Date column

Language

LineItemsDescriptionLabels

Keyword for the Description column

Language

LineItemsDiscountAmountLabels

Keyword for the Discount Amount column

Language

LineItemsDiscountPercentageLabels

Keyword for the Discount Percentage column

Language

LineItemsMaterialNumberBULabels

Keyword for the Material Number BU column

Language

LineItemsMaterialNumberLabels

Keyword for the Material Number column

Language

LineItemsOrderDateLabels

Keyword for the Order Date column

Language

LineItemsOrderNumberLabels

Keyword for the Order Number column

Language

LineItemsPositionLabels

Keyword for the Position column

Language

LineItemsQuantityLabels

Keyword for the Quantity column

Language

LineItemsQuantityOrderedLabels

Keyword for the Quantity Ordered column

Language

LineItemsQuantityUndeliveredLabels

Keyword for the Quantity Undelivered column

Language

LineItemsSubtotalVariants

Reserved

Language

LineItemsTotalPriceBruttoLabels

Keyword for the Total Price Brutto column

Language

LineItemsTotalPriceNettoLabels

Keyword for the Total Price Netto column

Language

LineItemsUnitsOfMeasureLabels

Keyword for the Units of Measure column

Language

LineItemsUnitsOfMeasureVariants

Possible field values in the Unit Of Measure column

Language

LineItemsUnitPriceDenominatorLabels

Captions in the column header which is used as a multiplier for the Unit Price column when computing the equality for an invoice item: Unit Price * Denominator * Quantity = Total Netto.

For instance, if UnitPrice is price per unit and Quantity indicates the number of packs, the Boolean column UnitPriceDenominator will correspond to a column that indicates the number of units in one pack.

Language

LineItemsUnitPriceLabels

Keyword for the UnitPrice column

Language

LineItemsVATAmountLabels

Keyword for the VAT Amount column

Language

LineItemsVATCodeLabels

Keyword for the VAT Code column

Language

LineItemsVATPercentageLabels

Keyword for the VAT Percentage column

Language

note Note: The quality of keyword detection depends on the quality of full-text recognition.

You can change the pre-recognition mode on the FlexiLayout tab of the Document Definition Properties dialog box. The higher the quality of pre-recognition, the more time it will take.


Extended regular expressions

Formats are specified by means of extended regular expressions.

Extended regular expressions include the following additions:

1.Special brackets [% and %]. Characters inside the brackets are supplemented with popular OCR errors.
For example, [%S%] may allow S, $, and 5.

2.Special words inside [%...%] for common character sets and OCR errors:

a.LETTERS - Capital Latin letters and characters commonly recognized as capital Latin letters

b.DIGITS - Digits and characters commonly recognized as digits

c.LETERSANDDIGITS - Capital Latin letters, digits, and characters commonly recognized as capital Latin letters and digits

For example, [%DIGITS%]{9} specifies nine consecutive digits or common OCR errors for digits, e.g. "OI234Sb7B9".


Glossary

ABBYY FlexiCapture for Invoices

An ABBYY FlexiCapture component that captures data from invoices.

Additional FlexiLayout

An additional FlexiLayout used in conjunction with the main FlexiLayout to capture additional document fields.

Business unit

An invoiced legal entity.

Credit note

A "negative invoice" issued by a vendor and aimed at correcting the amount or quantity stated in the previously issued invoice. A credit note may be issued, for instance, in the case of undelivered, incomplete, damaged or incorrect goods, or if a buyer has been overcharged. A vendor can either repay the money to the buyer or credit it against future payments.

Database lookup

Comparing captured data against database records.

Generic FlexiLayout

The default FlexiLayout that is used to process all documents of a given type. For documents variants, FlexiLayout variants may be used.

Invoice

A document that lists goods that have been supplied, their quantity, price, characteristics (such as color, weight, etc.), shipment conditions, and details of the parties.

Invoice line item

A line in an invoice that describes a product or service and states its price and quantity.

Keywords

Words which are associated with certain invoice fields and which may be used to detect invoice fields. Different languages and countries may have different keywords.

Located element

A FlexiLayout element that is used for locating invoice fields.

Main FlexiLayout

A FlexiLayout that is used to capture the main fields of a document.

Normalization

Converting differently formatted but essentially identical values to a "normal" format for subsequent comparisons. For example, you can set up the program to ignore spaces and letter case so that it treats "Invoice Number" and "invoicenumber" as one and the same value.

Purchase order

An official offer to buy goods or services that states the kinds of goods and services, their quantity, and agreed price.

Purchase order matching

A feature in ABBYY FlexiCapture for Invoices that helps Operators to verify invoices by comparing them with their respective purchase orders.

Status

The status assigned to an invoice after applying the validation rules to the captured data. One of the following three statuses may be assigned

·Valid - Means that the invoice complies with all requirements and can be exported to a data processing system.

·Rejected - Means that the invoice does not comply with all requirements.

·Exception - Means that the invoice complies with all requirements but still cannot be treated as "Valid" for some reason. Exceptions require special handling by a data processing system.

Vendor

A legal entity or a physical person that sells goods or services. Vendors issue invoices for their goods and services. Data from invoices can be captured by means of ABBYY FlexiCapture for Invoices.


Capturing receipts

ABBYY FlexiCapture for Invoices includes a special type of project called Receipts, which allows you to capture data from receipts without any additional preparations. You can use this type of project, for example, to capture receipts from business trips and receipts confirming out-of-pocket expenses. You can also customize the preconfigured Receipts project to suit your business requirements.

A receipt is a document that shows the prices you paid for goods or services, the date and time of purchase, and location where the purchase was made.

ABBYY FlexiCapture for Invoices uses neural networks and machine learning technology to capture data from receipts.

To start capturing receipts, create a new ABBYY FlexiCapture project, selecting Receipts for the type of your project. The newly created project will include a Document Definition named Receipt, complete with all the required fields, verification rules, and image preprocessing settings.

If you need to process both invoices and receipts, you can combine two Document Definitions within the same project. For this combination to work, you will need to configure and train a classifier so that the appropriate Document Definition can be selected for each class of document (see Creating a classifier for detailed instructions). Document Definitions for invoices can be imported from the preconfigured invoice project included with ABBYY FlexiCapture for Invoices.


Image preprocessing

When you feed a receipt to ABBYY FlexiCapture for Invoices, the program determines whether the image is a photo or a scan and selects the image preprocessing operations appropriate for each type of image. For example, photos will be automatically cropped and their text lines will be straightened, as this will help the program to detect the fields more reliably. Scans, on the other hand, will be deskewed for the same purpose.

If you want to preview the original image, select the Store original image during processing option:

·on the Image Processing tab of the Project Properties dialog box (prior to loading your images)

·in the image processing settings dialog box that is displayed when you create an image import profile

·in the image processing settings dialog box that is displayed when you load images manually

note Note: If you choose to store the original images, your project will take up more memory and receipts will take longer to process. We recommend storing the original images only when absolutely necessary.

To view the original image, click View → Image → Show Original Image. Alternatively, right-click anywhere in the captured document and click Show Original Image on the shortcut menu.

note Note: The program will not be able to capture data from images containing multiple receipts scanned or shot together. Before feeding such images to the program, you will need to split them using the Split tool on the image editing toolbar, making sure that each image contains only one receipt.


Supported countries

Show/Hide Hidden Text

A Receipts project can be used to capture receipts from any of the countries listed in the table below. The appropriate country will be detected by a classifier.

Country | Country code | Currency code
Argentina | AR | ARS
Australia | AU | AUD
Austria | AT | EUR
Brazil | BR | BRL
Canada | CA | CAD
Colombia | CO | COP
Costa Rica | CR | CRC
Ecuador | EC | USD
Finland | FI | EUR
France | FR | EUR
Germany | DE | EUR
Guatemala | GT | GTQ
Honduras | HN | HNL
Ireland | IE | EUR
Italy | IT | EUR
Netherlands | NL | EUR
New Zealand | NZ | NZD
Panama | PA | PAB
Peru | PE | PEN
Poland | PL | PLN
Russia | RU | RUB
Singapore | SG | SGD
Spain | ES | EUR
Sweden | SE | SEK
Switzerland | CH | CHF
Turkey | TR | TRY
United Kingdom | GB | GPB
Uruguay | UY | UYU
USA | US | USD

If you are going to process receipts from one particular country, you can explicitly specify the two-letter code of that country in the fc_Predefined:ReceiptPredefinedCountries registration parameter. In this case, the program will not need to use a classifier in order to detect the country.

The fc_Predefined:ReceiptPredefinedCountries registration parameter can be added using an event handling script that is triggered whenever a new document is added. You can set up this script in the Batch Type Tools dialog box. If you are using a distributed edition of the program, you can create a custom processing stage and include the required event handling script into that stage (see Scripts for processing interface events for detailed instructions).

An example of using a script to specify a country

In this example, we assume that Canadian receipts will be processed. Prior to loading your images, click Project → Project Properties. On the Event Handlers tab, select After document created and click Edit Script.

In the dialog box that opens, enter the following code for your script ("CA" is the two-letter code for Canada provided in the table above):

Document.Properties.Set("fc_Predefined:ReceiptPredefinedCountries", "CA");

Now any receipts you feed to the program will be automatically deemed to be Canadian.


Captured fields

The Receipt Document Definition includes the following preconfigured fields:

Field

Description

Expense type

The type of expense is detected by a pretrained classifier. The classifier was trained on the following types of documents:

·Airfare (receipts for booked flights)

·CarParking (receipts from parking meters)

·CarRental (receipts from car rental services)

·GasolineStation (receipts from gas stations)

·GeneralRetail (receipts from stores, supermarkets, etc.)

·Hotel (hotel invoices)

·Restaurant (restaurant bills)

·Taxi (receipts for taxi rides)

·TollRoad (toll receipts)

·Transport (receipts for public transportation fares)

You will be able to change the type of expense at the verification stage.

note Note: You can also specify a custom expense type in this field. To do this, you will need to connect a vendor data set.

Vendor name

The name of the organization that issued the receipt.

Date

The date when the receipt was issued.

Country

The country where the goods or service was purchased. You will be able to change the country at the verification stage.

City

The city where the goods or service was purchased.

Currency

The currency of the payment. You will be able to change the currency at the verification stage.

Total

The total amount of the receipt.

Tax

The total amount of tax levied on the purchase.

Taxes

oTaxRate

oTaxAmount

Tax details. No details will be shown if the TaxRate and TaxAmount fields are empty. If multiple taxes have been detected, they will be displayed as multiple lines of a repeating group. The total amount of tax will be recorded in the Tax field.

The following fields will only appear on the data form if Hotel is selected for Expense type.

Check-in date

The day when the customer checked in.

Check-out date

The day when the customer checked out.

The following fields will not appear on the data form by default. To display these fields, open the document editor, select Show on verification on the General tab, and then specify the location of each field on the data form.

Time

The time of the payment.

Address

The vendor’s address.

Phone

The vendor’s phone number.

Subtotal

The amount before tax.

VatID

The taxpayer number of the vendor’s company.

TaxName

The name of the tax.

TaxCode

The code of the tax.

LineItems

·ItemName

·TotalValue

·UnitsCount

·PricePerUnit

·SKU

The goods or services purchased.

You can also add your own custom fields to the Receipt Document Definition. Before the program can capture data from a custom field, you must train the program to capture this field or create a separate FlexiLayout for this field (see Custom fields for details).


Validation rules

The Receipt Document Definition includes the following preconfigured validation rules (you can disable any of these rules in the settings of the Receipt Document Definition or create your own validation rules):

Rule | Description
Expense Type from list | Allows users to select an expense type from a drop-down list during verification.
Choose Country form list | Allows users to select a country from a drop-down list during verification.
Choose Currency form list | Allows users to select a currency from a drop-down list during verification.
Show only for Hotel | Displays the Check-in and Check-out fields if "Hotel" is selected in the Expense type field.
Calculate Tax Amount | Calculates the total tax amount.
Check if Amounts equals Total | Checks if LineItems + Tax (if present) = Total. This rule is disabled by default. For this rule to work, both rule and LineItems must be enabled.
Check if Total equals Sum of TotalValue | Checks if the total amount of the receipt is the sum total of the amounts indicated for the line items.
Vendor Database Check Copy Expense Type Copy Company Name | A set of rules for working with a vendor data set.


Using data set to improve detection

Sometimes, vendors can be more reliably detected if you accumulate and use a data set of possible vendors. Such a data set will also allow users to specify custom expense types for certain vendors. For example, if company employees usually buy office supplies and stationery from a particular vendor, you can specify “Office Supplies” as the expense type for this vendor. Now for all captured receipts from this vendor, the expense type will be automatically changed to “Office Supplies.”

The fields and rules for data set checks are disabled by default. To enable them, complete the steps below.

1.In the Document Definition Editor, enable the following fields by clicking Show on verification on the General tab of the field properties dialog box: VendorID_Dataset, VendorName_Dataset, VendorExpenseType_Dataset, and FinalExpenseType.

2.In the Document Definition Properties dialog box, enable the following rules: Vendor Database Check, Copy Expense Type, and Copy Company Name.

3.To be able to look up vendors during verification, add a button onto the data form (right-click on the form and select Insert Button on the shortcut menu or click Form → Insert Control → Button). In the dialog box that opens, click the Format tab and specify Database Lookup as the type of action and then select the Vendor Database Check rule.

4.Save and publish your Document Definition.

The names of vendors will be automatically added to the data set each time the program detects a new name on a receipt. As your data set of vendors grows, the program will be able to detect vendors more reliably.

To edit the vendor data set or to find a particular vendor during verification, click the button that you added onto the data form and then click the Edit record, Add record, Reset data or Select button, depending on the action you want to perform (for more information, see Looking up vendors and business units in the database). When adding or editing a record, you can specify an expense type typical of the given vendor. Next time a user captures a receipt from this vendor, this expense type will appear in the Expense type (Final) field.


Capturing purchase orders

ABBYY FlexiCapture for Invoices includes a special type of project called Orders, which allows you to capture data from purchase orders without any additional preparations. For this type of project, a preconfigured Document Definition is available which contains the fields, rules, country settings, and validation rules required to capture data from purchase orders.

A purchase order is a document used for ordering goods. Structurally, purchase orders are in many respects similar to invoices. For this reason, purchase order projects share many settings with invoice projects. You will be able to use a database of companies, create training batches for documents originating from a specific company, use country settings for country-specific keywords and tax rates, etc.

To capture purchase order fields, the program uses both FlexiLayouts and machine learning based on neural networks. Both methods are intelligently combined to achieve the best possible results. Any fields that the program fails to capture using its machine learning algorithms will be captured by means of a suitable FlexiLayout.

To start capturing purchase orders, create a new ABBYY FlexiCapture project, selecting Orders for the type of your project. The newly created project will include a Document Definition named Order, complete with all the required fields and rules.

Data capture can be improved by using automated training. The training batches will be associated with the ID of the company ordering goods.


Supported countries

An Orders project can be used to capture purchase orders from any of the following countries:

·USA (purchase orders in English)

·Germany (purchase orders in German)

·France (purchase orders in French)

·Spain (purchase orders in Spanish)

The program will automatically add all the settings required to capture data from purchase orders from any of the above countries, including the keywords in their respective languages. Localization files are also provided to enable the display of field names and rules in the appropriate language.

If you need to process purchase orders from other countries, configure the settings for those countries and their respective languages:

1.Click Project → Document Definitions....

2.In the dialog box that opens, click the Edit... button.

3.Click Document Definition → Document Definition Properties....

4.In the dialog box that opens, click the Document Definition Settings tab.

5.Click the Edit... button to the right of the Countries and Languages group.

6.In the Countries and Languages dialog box, specify the required country and language settings.

For more information, see Country and language settings.

The country settings you select for your project determine the currency, tax rates, and keywords that are expected to occur next to the respective fields. The recognition language to be used also depends on the selected country. When adding a country, be sure to add only those languages that will actually be used to capture data, as selecting too many languages will slow down the recognition process.


Captured fields

The Order Document Definition includes the following preconfigured fields.

Field

Description

OrderNumber

The number of the purchase order.

OrderDate

The date when the purchase order was created.

BU (group of fields)

·BUId

·Street

·City

·Country

·VATID

·Name

·State

·IBAN

·BankCode

·BankAccount

·Address

·PostalCode

The company that sells the goods (i.e. the recipient of the purchase order).

You can use a database of business units. To do this, associate your database of business units with the data set named “BusinessUnits”

When no database is used, only the following fields will be captured:

·Name

·Address

Issuer (group of fields)

·IssuerId

·Name

·Street

·PostalCode

·City

·Address

·IBAN

·BankCode

·BankAccount

·VATID

·Country

·State

The entity or individual that ordered the goods (i.e. the creator of the purchase order).

You can use a database of buyers. To do this, associate your database of buyers with the data set named “Variants”

When no database is used, only the following fields will be captured:

·Name

·Address

ShipTo (group of fields)

·Name

·Address

The delivery address.

BillTo (group of fields)

·Name

·Address

The address to which to send an invoice.

LineItems

Position

The number of a line item.

ArticleNumber

The article number in the buyer’s database.

ArticleNumberBU

The article number in the business unit’s database.

Description

A description of the goods.

Quantity

The quantity of the ordered goods.

UnitOfMeasurement

The unit used for counting, weighing, etc. the goods.

UnitPrice

The price charged for a unit of goods.

UnitPriceDenomination

The number or amount of goods in each unit. (If the goods are priced per package or per crate, for example, the unit price denominator indicates the weight of the package, the number of bottles in the crate, etc.).

DiscountPercentage

The applicable discount (stated as a percentage).

DiscountValue

The applicable discount (stated as an amount in the currency of the purchase order)

TotalPriceNetto

Total amount payable without tax.

TotalPriceBrutto

Total amount payable with tax.

Currency

The currency used in the line items.

DeliveryDate*

The date when the goods should be delivered.

Total

The total amount payable for the entire purchase order. Unlike invoices, this field is not obligatory on purchase orders.

Currency

The currency of the total amount. If no total amount is indicated on a purchase order, the Currency field will remain empty.

DeliveryDate*

The date when the goods should be delivered.

AdditionalCost

Additional amounts charged besides the order amount.

Amounts (group of fields)

·TotalTaxAmount

·TotalNetAmount

·NetAmount

·TaxAmount

·TaxRate

·Additional Tax Groups

This group of fields is used for detecting taxes. By default, these fields are disabled in the Order Document Definition. To enable these fields, enable the Taxes option:

1.In the Document Definition Editor, click Document Definition → Document Definition Properties....

2.In the dialog box that opens, click the Document Definition Settings tab and then click the Edit... button in the Additional Fields and Features group.

* If only one delivery date is stated on a purchase order, this date will be extracted into the DeliveryDate field. If a delivery date is indicated for each line item, these dates will be extracted as columns in the LineItems table.

You can also add your own custom fields to the Order Document Definition. Before the program can capture data from a custom field, you must train the program to capture this field or create a separate FlexiLayout for this field (see Custom fields for details).


Validation rules

Show/Hide Hidden Text

The Order Document Definition includes the following preconfigured validation rules (you can disable any of these rules in the settings of the Order Document Definition or create your own validation rules):

Field |  | Rule | Description
Total |  | Separate currency from amount in Total field | Separates the currency symbol from the amount if OCR fails to differentiate it from the digits.
 |  | Amount check | Adds up the line item prices and additional costs and compares the result against the number in the Total field.
LineItems |  | Check item amount | Checks that the amount in each line item equals the quantity multiplied by the price minus the discount.
 | UnitPrice | Separate currency from amount in LI_UnitPrice field | Separates the currency symbol from the amount if OCR fails to differentiate it from the digits.
 | TotalPriceNetto | Separate currency from amount in LI_TotalPriceNetto field
 | TotalPriceBrutto | Separate currency from amount in LI_TotalPriceBrutto field
 | Quantity | Quantity is required | Makes sure that the quantity of goods has been detected.
 | Currency | Hide currency if total empty | Removes the value from the Currency field if no Total field has been detected.
 |  | Check LineItems currency value | Checks the value in the Currency field.
 | ArticleNumberBU | Article Number must be found in database | Indicate whether only the article number or both the article number and the business unit must be present in the database.
 |  | Article Number and BU must be found in database
Issuer |  | Buyer must be found in database | Indicate whether buyer details must be present in the database or added into the database.
 |  | Buyer details must be added to database
DeliveryDate |  | Delivery date must be later than order date | Checks that the detected delivery date is later than the detected order date.
Currency |  | Set currency to CAD or USD | Sets the currency depending on the country of the business unit (CAD for Canada and USD for the USA).
 |  | Detect national currency | Determines the currency based on the country of the business unit.
 |  | Copy currency from LineItems | Copies the currency from LineItems (if available).
 |  | Check currency value | Checks the value of the Currency field if the Total is not empty.
BU |  | Information about business unit must be added to database | Indicates whether business unit details must be present in the database or added into the database.
 |  | Business unit must be found in database

The tax rules are identical to those used in invoice projects but are disabled by default. To enable the tax rule for your Orders project, enable the Taxes option:

1.In the Document Definition Editor, click Document Definition → Document Definition Properties....

2.In the dialog box that opens, click the Document Definition Settings tab and then click the Edit... button in the Additional Fields and Features group.

Tax validation rules for the Order Document Definition

Field |  | Rule | Description
Amounts |  | Check Total field if total tax amount is optional | Checks that the sum of all the pre-tax amounts (NetAmount0, NetAmount1, and NetAmount2), tax amounts (TaxAmount1 and TaxAmount2), and additional costs (AdditionalCosts) equals the amount indicated in the Total field. This rule can only be used for German purchase orders.
 |  | Check Total field if total tax amount is required | Checks that the sum of all the pre-tax amounts (NetAmount0, NetAmount1 and NetAmount2), tax amount (TotalTaxAmount), and additional costs (AdditionalCosts) equals the amount indicated in the Total field. This rule can only be used for non-German purchase orders.
 | TotalTaxAmount | Check Total Tax field | The following check is performed: TotalTaxAmount = TaxAmount1 + TaxAmount2 + Additional Tax Groups / TaxAmount. This rule can only be used for non-UK purchase orders.
 |  | Total Tax is a required field | Checks that the Amounts\TotalTaxAmount field is filled in. This rule can only be used for non-German purchase orders.
 |  | Separate currency from amount in TotalTaxAmount field | Separates the currency symbol from the amount if OCR fails to differentiate it from the digits.
 |  | Complete Total Tax field if only one tax rate is found | Automatically completes the Amounts\TotalTaxAmount field for documents that contain only one tax rate.
 |  | Complete Total Tax field if it is optional | Automatically completes the Amounts\TotalTaxAmount field for countries where this field is optional. This rule can only be used for German purchase orders.
 | TotalNetAmount | Verify net total against order items | Adds up the values in the TotalPriceNetto column in the LineItems table and checks the result against the amount in TotalNetAmount.
 |  | Separate currency from amount in TotalNetAmount field | Separates the currency symbol from the amount if OCR fails to differentiate it from the digits.
 |  | Check Net Total field | The following check is performed: TotalNetAmount = NetAmount0 + NetAmount1 + NetAmount2. If the TotalNetAmount field is empty, this rule will complete his field with the calculated amount.
 | Additional Tax Groups
 | TaxRate, TaxAmount | If tax rate is detected, pre-tax amount is required | Checks that each detected tax rate has a corresponding non-empty NetAmount field.
 | TaxRate | Complete Tax Rate field if it is empty | Calculates the amount for the TaxRate field and completes this field if no tax rate has been found on the image but other tax fields have been found.
 |  | Tax Rate field must not be empty | Checks that each detected net amount or tax amount has a corresponding non-empty TaxRate field.
 | TaxAmount | Check Tax field | The following check is performed: TaxAmount = NetAmount * (TaxRate/100).
 | TaxAmount, NetAmount | Separate currency from amount in TaxAmount field | Separates the currency symbol from the amount if OCR fails to differentiate it from the digits.

note Note: When using an external database, the country of a document is the country of the vendor's business unit. If no external database is used, the country will be determined by an automatic country detector.


Using data sets to improve detection

When using an external database, you can use data sets with the Order Document Definition to detect buyer and vendor company details. Before you can use a data set, you need to connect it to your external database (for detailed instructions, see Using vendor and business unit databases).

You can use the following data sets with the Order Document Definition:

Data set | Description
BusinessUnits | A data set for detecting business units when using an external database.
Variants | A data set for detecting document issuers when using an external database.
Articles | A data set for checking article numbers against an external database. note Note: Currently, you cannot check article numbers against a database directly. You can, however, check if your database contains article numbers detected by using neural networks and a FlexiLayout. For more information about detecting the main document fields, see Detecting the main fields.

To connect a data set to your external database:

1.Open the Document Definition Editor.

2.Open the properties of the Order Document Definition.

3.Click the Data Sets tab, select the desired data set, and click Set Up....

4.In the Data Set dialog box, provide the connection string to be used to connect to your external database and configure the columns, search options, refresh period, and other settings.


BusinessUnits data set

The BusinessUnits data set contains information about the business units of the company receiving purchase orders. This data set is used for detecting the vendor and checking extracted vendor information against an external database.

note Note: Information from external databases can be used to facilitate the detection of company details on purchase orders. If no external databases are used, ABBYY FlexiCapture will use its built-in neural networks to detect company details.

Name | Type | Description
Id | Text, not normalized | Required field. Obtained by detecting the vendor. Identifies the vendor in an external information system. The unique key of the entry in the data set.
Name | Text, normalized to Text | Optional field. Contains the name of the vendor's company.
Street | Text, normalized to Text | Optional field. Contains the street portion of the vendor's address.
City | Text, normalized to Text | Optional field. Contains the city portion of the vendor's address.
State | Text, not normalized | Optional field. Contains the state portion of the vendor's address.
PostalCode | Text, normalized to Alphanumeric code | Optional field. Contains the postal code portion of the vendor's address.
CountryCode | Text, normalized to Alphanumeric code | Required field. Contains the country portion of the vendor's address.
VATID | Text, normalized to Alphanumeric code | Optional field. The vendor's tax ID.

For more information about detecting the main document fields, see Detecting the main fields.


Variants data set

The Variants data set contains information about ordering companies. This data set is used for detecting the issuing company and checking extracted issuer information against a database.

note Note: Information from external databases can be used to facilitate the detection of company details on purchase orders. Additionally, field training becomes available if external databases are used. If no external databases are used, ABBYY FlexiCapture will use its built-in neural networks to detect company details.

Name

Type

Description

Id

Text, not normalized

Required field. Obtained by detecting the company. Identifies the company in an external information system.

note Note: This is the unique ID of the entry in the data set if all of the vendor's business units use the same customer database. Otherwise, the entry in the data set is uniquely identified by a combination of Id and BusinessUnitId.

Name

Text, normalized to Text

Optional field. Contains the name of the company.

Street

Text, normalized to Text

Optional field. Contains the street portion of the company's address.

City

Text, normalized to Text

Optional field. Contains the city portion of the company's address.

State

Text, not normalized

Optional field. Contains the state portion of the company's address.

ZIP

Text, normalized to Alphanumeric code

Optional field. Contains the postal code portion of the company's address.

CountryCode

Text, normalized to Alphanumeric code

Required field. Contains the country portion of the company's address.

BusinessUnitId

Text, not normalized

Optional field. The ID of the vendor's business unit (i.e. the recipeint of the order).

note Note: If the vendor's business units use different customer databases, this data set field must be filled in, as the unique key of the entry in the data set will be a combination of BusinessUnitId and Id.

VATID

Text, normalized to Alphanumeric code

Optional field. The company's tax ID.

NationalVATID

Text, normalized to Alphanumeric code

Optional field. The company's national tax ID.

IBAN

Text, normalized to Alphanumeric code

Optional field. The company's International Bank Account Number.

BankAccount

Text, normalized to Alphanumeric code

Optional field. The company's bank account.

BankCode

Text, normalized to Alphanumeric code

Optional field. The code of the company's bank.

For more information about detecting the main document fields, see Detecting the main fields.


Articles data set

The Articles data set contains information about ordered articles. This data set is used for checking extracted article information against an external database.

note Note: Currently, you cannot use an external database for article detection. However, you can use an external database to verify article values detected by means of the built-in neural networks and FlexiLayouts. For more information about detecting the main document fields, see Detecting the main fields.

Name | Type | Description
ArticleNumber | Text, not normalized | Optional field. Contains an article number.
Description | Text, not normalized | Optional field. Contains an article description.
BUId | Text, not normalized | Optional field. The ID of the vendor's business unit. This field must be detected when processing purchase orders issued to different business units of the same vendor.


Additional options available for the Order Document Definition

The Order Document Definition includes some additional options which allow you to enable or disable the extraction of tax fields and line items, to use training based on operator corrections, and to use document clustering for training.

These additional options can be accessed via the Document Definition Editor: open the Document Definition Properties... dialog box and on the Document Definition Settings tab, click the Edit... button to the right of the Additional Fields and Features group.

·Line items extraction – Enables or disables extraction of line items (selected by default).

·Training during processing – Enables training for a FlexiLayout variant (for details, see Training ABBYY FlexiCapture for Invoices).

·Taxes – Enables or disables extraction of taxes (not selected by default).

·Enable clustering – Enables or disables document clustering for training (for details, see Training with clustering).


Training ABBYY FlexiCapture for Invoices

Show/Hide Hidden Text

The quality of data capture can be improved by training ABBYY FlexiCapture for Invoices. Users can train the program either prior to or while processing documents.

Training is available only for the following kinds of images and in the following cases:

·Images on which fields cannot be reliably detected by the pre-configured Document Definition.

·The user needs to extracted data from fields not defined in the default Document Definitions.

When training may be required

·Field location varies among documents of the same time
In a stream of documents of the same type unusual documents may pop up where field locations differ from those on the standard document. If ABBYY FlexiCapture for Invoices cannot reliably detect fields on such documents, the user can indicate the correct field locations and the program will "learn" how to detect these fields.

note Note: The exact document layout depends on the issuing company. For this reason, documents from different companies are treated as different variants and ABBYY FlexiCapture for Invoices will self-train separately on each document variant.

·The user needs to extract fields not defined by default
Apart from the main and additional fields supported by default, the user may need to capture data from fields yet unknown to the program. This can be achieved by creating custom fields in the Document Definition and specifying their locations on document images.
How training works

During normal document processing or in a special training mode, the user adds document images to be used for training the program. The added documents are automatically recognized and submitted for verification. The user verifies the documents and corrects field locations wherever required, thus creating a reference layout.

Next, he trained document is placed into the training batch created for the given document variant. The administrator can view the list of all document variants and their training batches by clicking DocVariantsButton Open Field Extraction Training Batches. Once the first training document is added for a document variant, the program begins to accumulate documents in the respective training batch.

To initiate the training process, a training batch must contain at least one document. If clustering is used, a separate FlexiLayout will be created for each cluster; otherwise, a FlexiLayout will be created for each company (see Training with clustering for more information).

Training creates a FlexiLayout variant, which will be used for all documents that belong to the given document variant (e.g. for invoices from a particular vendor or for purchase orders from a particular customer).

Once the training completes, the program automatically tests the FlexiLayout variant onall the sample documents.

The quality of the new FlexiLayout variant is determined by comparing the recognition results with the reference layout specified by the user (in the same manner, the program will determines the quality of the main FlexiLayout, is used when no training has been done). Next, the quality of the FlexiLayout variant is compared against the quality of the previous FlexiLayout variant or with the quality of the main FlexiLayout:

·If the quality of the new FlexiLayout variant is worse than the quality of the old FlexiLayout variant or the main FlexiLayout, the new FlexiLayout variant is not saved and the user sees a corresponding message in the Train Document Definition window.

·If the quality of the new FlexiLayout variant is better than the quality of the old FlexiLayout variant or the main FlexiLayout, it is saved and used to process this document variant.

ABBYY FlexiCapture for Invoices can be trained either by the administrator or by operators with sufficient permissions. To train the program, the user needs to add document images to the working batch, which will then be automatically recognized and submitted for verification. Once the user verifies the results and corrects field locations where required, the documents will be added to the training batch used for the given document variant. When the program has a sufficient number of documents for the document variant, training will begin automatically. The program will use the knowledge obtained through training to recognize all future documents that belong to this document variant.

If an operator fails to achieve a sufficient degree of accuracy through training, the administrator can DocVariantsButton Open Field Extraction Training Batches and continue training the program himself. The administrator additionally can:

·Add or remove document images used for training.

·Create new training batches.

·Add document images that will not be used for training, but will be used when testing the trained FlexiLayout variant.

·Export the trained FlexiLayout variant to ABBYY FlexiLayout Studio or import another FlexiLayout from ABBYY FlexiLayout Studio.

Once the desired degree of accuracy is achieved, the administrator can prohibit operator training for the given document variant.

See also:

details Training while processing documents

details Training in the Document Variants view


Training while processing documents

Show/Hide Hidden Text

ABBYY FlexiCapture for Invoices lets you improve recognition quality while processing documents. If the program fails to detect the correct location of a field on a document image, you can specify its correct location and the program will use it when recognizing other documents.

Training is only available if ABBYY FlexiCapture can reliably identify the company by finding the corresponding record in a database. If you have no databases but still want to use field training, you can accumulate company information by adding records to your data sets while capturing documents. For more information, see Looking up vendors and business units in the database.

This article explains how to train ABBYY FlexiCapture for Invoices using the locally-installed version of the Verification Station, and covers some training-related issues that operators need to know.

To train the program while processing documents, complete the following steps:

1.Collect a batch of documents (e.g. invoices processed within the past month) and start feeding them to the program. See How to capture invoices.

2.Once the documents are fed to the program, they will be automatically recognized (this will happen only if the Recognize added images automatically option is enabled on the Document Processing tab of the Options dialog box; to open this dialog, click Tools → Options...) and the data will be checked by means of validation rules.

3.If the status of a recognized document is other than Valid or if you have other reasons to believe that the program failed to detect some of the fields, open the document in the document editor.

4.Review the document form. The Vendor/Issuer group of fields must be filled out correctly.
More...

Training is done independently for each document variant. Documents from the same company will be deemed to belong to the same document variant. If the program fails to identify the issuing company, either select it from your company database or key it in manually from the document image and save it to your company database by clicking Save.

Depending on your project's settings, you may also have to specify the unique ID of the issuing company to use its document for training. To do this, type the company's unique ID in the VATID field (this field may have a different name in some projects depending on the country). The VATID is a unique identification number assigned to companies for tax purposes.

If documents originating from the same company have widely varying layouts, you should use the clustering feature. For details, see Training with clustering.

5.Training will only be successful if the regions of all the fields are identified correctly, so you need to make sure that the regions match the actual locations of their respective fields on the image. For more information on how to mark up line items on a document, see Training line items.
To do this, in the image window of the document editor, adjust the regions or draw regions for those fields which the program failed to detect.
After that, the program will analyze the document. If the region markup has been modified and training for documents from this company is not prohibited, the document will be added to the batch.

How to change the region of a field

·Position the mouse pointer in a desired field on the data form, find the corresponding region on the image (it will be highlighted in blue), and click it (or draw a rectangle with the mouse).

·Position the mouse pointer on a desired region on the image (it will be highlighted in blue), click it (or draw the region with the mouse), and then select the corresponding field from the drop-down list that opens.

·Adjust the position of a region on the image by moving its boundaries with the mouse.

·Delete an incorrectly located region from the image: position the mouse pointer on its rectangle and when a red cross appears in the top right corner, click the red cross. The markup of the region will be deleted. Now create the correct region for this field.

·On the data form, start typing a value into a field. A drop-down list will be displayed, listing the words captured from the image that look like the word that you are typing. Select the right word from the list, and the position of the word on the image will become the region of the field.

note Note: The program will be trained on all the document's fields, not just on those whose regions you have drawn or adjusted.

6.Open the next document and repeat steps 4 and 5.

7.To initiate the training process, a training batch must contain at least one document. If clustering is used, a separate FlexiLayout will be created for each cluster; otherwise, a FlexiLayout will be created for each company (see Training with clustering for more information).

8.The program will test trained FlexiLayout variant by applying it to all the documents in the training batch and comparing the results with the adjusted markup obtained in step 5. If the program determines that the trained FlexiLayout delivers better results than its earlier version, the trained FlexiLayout will be used next time you recognize documents belonging to this document variant.

If the program determines that the trained FlexiLayout variant delivers worse results than its earlier version, you will need to continue training it on documents from the given company (steps 4 and 5). The training process completes when the trained FlexiLayout variant can correctly identify all the field regions.

Training While Setting Up ABBYY FlexiCapture for Invoices


Training done by project administrators

Navigation: ABBYY FlexiCapture for Invoices > Training ABBYY FlexiCapture for Invoices >

Return to chapter overview

Training by project administrators

Show/Hide Hidden Text

A project administrator can train the program using some training batches during project setup. When operators make corrections to recognized documents, the corrected documents will be put into the training batches used by the administrator. The administrator can also make additional changes to the training batches and retrain the program if training by operators does not deliver the desired results.

Once the training is complete, the administrator can lock specific batches to prevent them from being modified by processing operators. To lock a training batch used for a specific company, right-click the batch and then click Lock Training by Operators on the shortcut menu.

Training is only available if ABBYY FlexiCapture can reliably identify the issues by finding the corresponding record in a database.

If you have no databases but still want to use field training, you can accumulate company information by adding records to your data sets while capturing documents. For more information, see Looking up vendors and business units in the database.

note Note: The actions described in this section can only be performed by the administrator or by users who have the permissions to set up projects in ABBYY FlexiCapture for Invoices.

The training batch view displays all the document images that will be used for training. To switch to the training batch view, click DocVariantsButton (Open Field Extraction Training Batches) on the toolbar. Alternatively, click Field Training → Open Field Extraction Training Batches.

The program will display a list of training batches for all the document variants that have been added by the operators. For convenience, important company parameters are displayed in this view, including VATIDs, IBANs, and database IDs.

You can work with document variants in this view.

Managing sample images used for training FlexiLayout variants

Double-click a training batch or right-click a training batch and then click Open on the shortcut menu. A list of sample images used for the corresponding FlexiLayout variant will be displayed.

Each sample image may be in one of the following three states:

·Unused - This sample image is not used for training or testing this FlexiLayout variant.

·For training - This sample image is used for training and testing this FlexiLayout variant.

·For testing - This sample image is used only for testing this FlexiLayout variant.

In this view, you need only one sample image to start training a FlexiLayout variant. However, we recommend having at least three sample images in For training state.

If there is not enough sample images for training, load more images by clicking Load Images.... By default, any newly added images will be marked as For training.

If the images you add are not recognized automatically, force-start the recognition process by clicking Recognize.

1.Change the state of the images that you wish to use to For training. To change the state, select the images you need, right-click them, and then select Set Document State → For training. We recommend changing the state of all the sample images to For training if you have not trained this document variant before.

2.Check the markup of the all regions and make any adjustments as may be necessary. This is important, because the positions of all the regions will be taken into account.

3.To start training the FlexiLayout variant, either

oSelect Fields Training → Train from the main menu, or

oRight-click anywhere in the list and select Train from the shortcut menu, or

oSwitch into the training batch view and select Train from the shortcut menu of the document variant.

Training progress will be indicated in the Train Document Definition window. As a result of this training, a FlexiLayout variant will be created. Next, the FlexiLayout Variant will be tested on all documents marked For training and For testing. The program will apply the FlexiLayout to each sample image (the user will not see this process) and compare the result with the reference layout (i.e. the layout created manually by the user). Then the quality of matching will be established.

If the new FlexiLayout variant is better than the previous version of this FlexiLayout variant and the main FlexiLayout, the new FlexiLayout variant will be saved and used for subsequent data capture.

If you think that some of the sample images adversely affect the training but you still want to use them for testing, change their state to For testing.

Make sure than at the time of training the regions of all fields on these sample images are located correctly. The testing process itself will not be visible to the user.

Exporting FlexiLayout variants to FlexiLayout Studio for manual adjustment

Right-click a document variant and select Export Trained FlexiLayout... from the shortcut menu.

You may need to do this if you can't achieve the desired results by just adding or removing sample images.

Importing FlexiLayout variants from FlexiLayout Studio

Right-click a document variant and select Import FlexiLayout... from the shortcut menu.

You may need to do this if you have a FlexiLayout that has been created manually in FlexiLayout Studio for the document variant.

Prohibiting further training on documents from a specific company

Right-click a document variant and select Lock Training by Operators from the shortcut menu.

You may want to prohibit training if the FlexiLayout for the given document variant has already been trained (or created manually) and no further training will be necessary during processing.

Prohibiting the use of training results when processing documents from a specific company

Right-click a document variant and select Disabled from the shortcut menu.

Select this option if you want only the main FlexiLayout to be used when processing documents from the given company.

Creating a new training batch

You may want to create a new training batch if you want to train a FlexiLayout variant before operators start capturing documents.

1.In the training batch view, right-click an empty field and select New Batch... from the shortcut menu.

After the training batch has been created, choose its associated Document Definition (if your project uses multiple Document Definitions) and the company for which the training results will be used.

1.If there is more than one Document Definition in your project, select the desired Document Definition in the Select Document Definition dialog box (right-click the batch and click Change Document Definition... on the shortcut menu).

2.Choose the issuing company for the training batch.

note Note: Be sure to recognize documents in a batch using only the Document Definition assigned to that batch.

Use the shortcut menu of the batch to change the company or the Document Definition associated with the batch.

The Clear Document Definition command removes the Document Definition associated with the batch. Batches that have no Document Definitions associated with them cannot be used for training.

1.Add documents to the training batch by right-clicking it and selecting the Load Images... from the shortcut menu. The newly added documents will be automatically recognized.

1.Check whether field regions have been detected correctly and adjust them if necessary.

2.Select the documents you want to use for training the FlexiLayout variant, right-click one of them and click Set Document State → For training.

3.Start training the FlexiLayout variant. There are several ways to do this:

oIn the main window, open the Fields Training menu and click Train;

oRight-click an empty spot in the list and click Train on the shortcut menu.

oOpen the training batch view, right-click a FlexiLayout variant and click Train on the shortcut menu.

note Note: Disable the Use own recognition settings of FlexiLayout option. This will synch the full-text recognition settings and speed up document processing.

If you wish to import into your training batch a modified or a completely new FlexiLayout to be used for one specific company, complete the following steps:

1.In ABBYY FlexiLayout Studio, click File → Export... and in the Export FlexiLayout dialog box that opens, specify the name of the file and the folder where it should be placed.

2.In ABBYY FlexiCapture, click Train Field Extraction → Import FlexiLayout...

If you are using the clustering feature, please note the following limitations:

·If you are creating a new FlexiLayout manually, make sure that it covers all the possible document variants originating from the given company—you cannot manually create a FlexiLayout for one cluster only.

·Only a FlexiLayout for the main document fields will be exported. No FlexiLayout can be generated and exported for line item fields, as this type of field uses a separate machine learning algorithm, whose results cannot be exported or modified. However, you can still create a FlexiLayout for line item fields manually.

·Only the FlexiLayout trained for the first cluster will be exported.

·After you import a new or modified FlexiLayout into your training batch:

oThere will be no training while processing documents.

oClustering will be disabled for this batch.

oThe imported FlexiLayout will be used for processing all documents from this company, regardless of their cluster.

For details, see Training with clustering.


Training with clustering

During training, ABBYY FlexiCapture places incoming documents into their appropriate training batches associated with their originating companies. Typically, documents from the same company will have similar layouts, which means that you can train a FlexiLayout and use it at the verification stage. If documents originating from the same company have widely varying layouts, you should use the clustering feature. When the clustering feature is turned on, ABBYY FlexiCapture for Invoices will automatically analyze documents and put them into groups (termed “clusters”) based on features that they have in common. A separate FlexiLayout will be created for each cluster.

The clustering feature is turned on by default. To disable clustering, complete the following steps:

1.In the Document Definition editor, click Document Definition → Document Definition Properties....

2.In the dialog box that opens, click the Document Definition Settings tab.

3.Click the Edit... button to the right of the Additional Fields and Features group.

4.In the Document Definition Features dialog box, clear the Enable clustering option.

The training documents will be placed into the batch associated with their respective company. If the clustering feature is turned on and you receive documents with widely varying layouts from the same company, documents from this company will be clustered inside the training batch used for this company. A separate FlexiLayout will be trained for each cluster. Training will be initiated once a cluster contains at least one document. Please note that clustering is a fully automatic process and the actual clusters remain invisible to the user.

If you have no databases but still want to use field training, you can accumulate company information by adding records to your data sets while capturing documents. For more information, see Looking up vendors and business units in the database.

A FlexiLayout will be created as a result. Please note the following:

·If the clustering feature is turned off, documents will be placed into their appropriate training batches used for their respective companies and a FlexiLayout will be created for each company.

·If the clustering feature is turned on, documents will be clustered inside the training batch and a FlexiLayout will be created for each cluster.

note Note: When updating a project created in an earlier version of ABBYY FlexiCapture, you can use your existing FlexiLayouts without any modifications. However, if you choose to use the clustering feature, the clustering algorithm will redistribute your documents among the training batches and a new FlexiLayout will be created for each cluster.

If documents from a specific company are recognized with too many errors, you can create a custom FlexiLayout or export a trained FlexiLayout and edit it in ABBYY FlexiLayout Studio. Once you are done, import your custom or edited FlexiLayout back into the training batch.

To export a trained FlexiLayout from ABBYY FlexiCapture, do the following:

1.On the Project Setup Station, switch to the training batch view by clicking Field Training → Open Field Extraction Training Batches (or by pressing Ctrl + Alt + B).

2.Right-click the batch and then click Export Trained FlexiLayout... on the shortcut menu.

3.In the dialog box that opens, select where you want to save the *.fsp project file containing your FlexiLayout. (You will then be able to open this file in ABBYY FlexiLayout Studio and modify the FlexiLayout.)

You can import a modified or a completely new FlexiLayout into a training batch to be used for one specific company (for details, see Training by users with project setup permissions).

To import a FlexiLayout into a training batch, do the following:

1.On the Project Setup Station, switch to the Field Extraction Training Batches view by clicking Fields Training → Open Field Extraction Training Batches (or by pressing Ctrl + Alt + B).

2.Right-click the batch and then click Import FlexiLayout... on the shortcut menu.

3.In the dialog box that opens, select the *.afl file containing your FlexiLayout.

If you are using the clustering feature, please note the following limitations:

·If you are creating a new FlexiLayout manually, make sure that it covers all the possible document variants originating from the given company — you cannot manually create a FlexiLayout for one cluster only.

·Only a FlexiLayout for the main document fields will be exported. No FlexiLayout can be generated and exported for line item fields, as this type of field uses a separate machine learning algorithm, whose results cannot be exported or modified. However, you can still create a FlexiLayout for line item fields manually.

·Only the FlexiLayout trained for the first cluster will be exported.

·After you import a new or modified FlexiLayout into your training batch:

oThere will be no training while processing documents.

oClustering will be disabled for this batch.

oThe imported FlexiLayout will be used for processing all documents from this company, regardless of their cluster.


Transferring training results into another project

Show/Hide Hidden Text

In ABBYY FlexiCapture for Invoices, you can re-use training results across multiple projects.

To be able to use your training results in another project, you need to import the training batches into that project.

A separate training batch is created for documents originating from company. Therefore, when importing your training batches:

·For invoices, map each training batch to its appropriate company in the Vendors database.

·For purchase orders, map each training batch to its appropriate company in the Variants database.

Mapping training batches to vendors (for invoices)

Mapping training batches to vendors based on VendorId

In ABBYY FlexiCapture for Invoices and in the external system where the data captured from invoices are exported, vendors are identified by the value of VendorId.

When these identifiers are the same in both projects (this can be the case when both projects are related to the same external system), enable the Preserve Variant ID option in the Import Training Batches dialog box (Fields Training → Import Training Batches...). This retains VendorId identifiers for all batches.

Do not use the Preserve Variant ID option if the project to which you are importing batches uses different VendorId identifiers or if VendorId identifiers depend on the business unit.

Mapping training batches to vendors based on VATID and IBAN

Training batches cannot be matched with their respective vendors based on VendorId if:

·your projects export data into different external systems (because different vendor lists are used)

·VendorId is different for different business units

To associate a training batch with its vendor, other unique vendor identifiers can be used, such as VATID and IBAN. A training batch stores the VATID and IBAN values of its vendor. When a training batch is imported into a new batch, the program automatically searches for a vendor with the same VATID or IBAN value. If it finds an entry in the Vendors data set where at least one of these values is the same, it will associated the vendor with the batch.

Importing training batches into a new project

1.Open a new project in the Project Setup Station of ABBYY FlexiCapture Distributed or the Administrator Station of ABBYY FlexiCapture Standalone.

2.On the main menu, click Fields Training → Import Training Batches....

3.Depending on which method will be used to map the training batches to their companies, either select or clear the Preserve Variant ID option in the Import Training Batches dialog box.

4.Specify the path to the project that contains the training batches to be imported.

5.If the project from which the training batches are being imported (the old project) has more than one Document Definition, select the Document Definition from which you want to import training batches.

6.If there is more than one Document Definition in the target project, select the Document Definition for which you want to import the training batches.

note Note: An imported a training batch can be associated with a Document Definition manually. To do this, right-click the training batch and click Change Document Definition... on the shortcut menu. You can also associate a training batch with its appropriate company.

As a result, the training batches will be imported into the new project, together with

·the trained FlexiLayout variants

·the sample images that were used for training.

You can additionally train imported FlexiLayout variants by adding some new document images besides those that have been imported.

note Note: If you attempt to import a training batch for a company for a which a training batch already exists in the new project, the program will select the best training batch: the documents in each batch will be matched with the trained FlexiLayout variant from the given batch and the batch with the greater number of correctly detected fields will win.


Using NLP to process unstructured documents

Natural Language Processing (NLP) is a subfield of artificial intelligence and computational linguistics. NLP is concerned with computer analysis and synthesis of natural languages. One possible practical application of NLP is the extraction of meaningful data from text.

The way a document is processed depends on its structure. For our purposes, we can distinguish three types of documents: structured, semi-structured, and unstructured documents.

·Structured documents contain a set of well defined data fields whose design, number, and placement do not change from one document to another. Examples of structured documents include forms, questionnaires, and applications.

·Semi-structured documents contain a set of data fields whose design, number, and placement can vary significantly from one document to another. They are also sometimes called "flexible documents." One example of semi-structured documents is invoices, where the number of entries and formatting often depends on the issuing company.

·Unstructured documents contain information that is not structured in any way. They also do not contain explicit data fields. Examples of unstructured documents include contracts, letters, and orders.

For more information about document types, see Types of documents processed using ABBYY FlexiCapture.

NLP technology should be used to process unstructured documents. For example, NLP can be used to extract the following types of data from a contract: reference numbers, names of parties, important dates (signing date, effective date, term, and termination date), contract price, fees, terms of payment, and so on.

To extract information from tables, structured, and semi-structured documents, other methods should be used (for example, FlexiLayouts).

Extracting information from texts

ABBYY software products use NLP models to extract information from unstructured texts. An NLP model tells the program which entities should be extracted from a document. When you train an NLP model on sample documents, the subject area of your texts and the appropriate extraction algorithm are determined so that the information you need can be extracted more efficiently. The effort required to create an NLP model depends on the variety of your documents, the context available to the program, and the complexity and amount of the information that you need to extract.

Extracting data from unstructured texts requires a lot of computing power. Larger texts will take longer to analyze.

However, the necessary information can often be found on a certain page or in a certain paragraph of a very large text. The process of finding such useful parts of text is called segmentation. This process requires considerably less time and computing resources than entity extraction, so sometimes you may want to segment a document before extracting information from it. For more information about identifying useful segments, see Creating a segmentation NLP model.

To process unstructured documents using NLP, complete the following steps:

1.Install the NLP module.

2.Create a Document Definition.

3.Create and train an NLP model.

4.Alternatively, load an existing NLP model into your Document Definition.


Installing the NLP module

The NLP module is not installed by default. To install it, do the following:

1.Install ABBYY FlexiCapture 12 Distributed Release 3 or later.

2.In the ABBYY FlexiCapture installation directory, open the NLP folder and run the following executable file: ABBYYFlexiCapture12_Release3_NLP_[installation_version_number].exe

3.Follow the installation wizard instructions.


Creating a new Document Definition

In ABBYY FlexiCapture, NLP technology is used in conjunction with Document Definitions, which contains information about the locations of various document elements. So before you can use NLP, you need to create a Document Definition and choose the appropriate document type (see the Document Definitions section for detailed instructions).


Creating NLP models

Show/Hide Hidden Text

Creating document fields

For every entity that you want to extract, a corresponding field should be created in the Document Definition. To create a field:

1. In the Document Definition Editor, right-click the Document Section name and select Create Field.

2.Create a Text field.

3.On the General tab, select the Can have region option.

4.In the Name field, specify a name for the field (for example, PreambleSegment).

warning Important! Field names must not contain spaces or non-English characters or start with a number.
Properties window

Repeat the above steps for each entity.

note Note: If segmentation is used, a separate text field should be created for each segment.

For each segment from which entities will be extracted:

·Create a non-repeating field in a repeating group.

·Select the Text segment option in the field properties.

·Select the Allow multiple regions option if some of the segments begin and end on different pages.

Creating a segmentation NLP model

Segmentation improves the accuracy and speed of entity extraction. Segmentation is optional. A special NLP model is required to segment documents.

warning Important! You can have only one segmentation model for each document section.

To create a segmentation model:

1.In the Document Definition Editor, right-click the Document Section name.

2.Select Properties....

3.In the dialog box the opens, click the NLP tab and then click Create....

4.In the Name field, specify a name for your segmentation model (for example, SegmentationModel).

5.In the Model type field, choose Segmentation.

6.In the Language list, select the required language.
Creating a segmentation NLP model

7.Click Next....

8.In the dialog box that opens, specify all the fields into which the segments will be extracted.

9.Click OK.

Once you have created a segmentation model, you need to train it on some sample documents.

note Note: The Allow training option allows you to train your NLP model during document processing. Your NLP model will be trained when you train field extraction using a field extraction training batch. Training results can be either disabled or deleted. To disable training results, right-click the training batch and select the Disabled item on the shortcut menu. To delete training results, right-click the training batch and select the Delete item on the shortcut menu.

Creating an entity extraction NLP model

To extract entities, you need an entity extraction NLP model that has been trained on manually marked up documents. To create an NLP model:

1.In the Document Definition Editor, open the document section properties and click the NLP tab.

2.Click Create....

3.Specify a Name for your NLP model (for example, EntitiesExtraction).

4.For the data source, select either a section (if no segmentation is used) or a segment (if have chosen to use segmentation).

5.In the Model type field, choose Extraction.

6.In the Language list, select the required language.

7.Click Next....

8.Choose the result fields that will be extracted from the selected document section or segment.

Repeat steps 1 through 9 for each document segment or section from which entities should be extracted.

10. Click Document Definition > Save to save your Document Definition.

11.Click Document Definition > Close to close the Document Definition editor.

12.Click Document Definition > Publish to publish your Document Definition.

Once you have created an entity extraction NLP model, you need to train it on some sample documents.

note Note: The Allow training option allows you to train your NLP model during document processing. Your NLP model will be trained when you train field extraction using a field extraction training batch. Training results can either be disabled or deleted. To disable training results, right-click the batch and select the Disabled item on the shortcut menu. To delete training results, right-click the batch and select the Delete item on the shortcut menu.


Training your NLP models

Show/Hide Hidden Text

After you have published your Document Definition, close the Document Definition dialog box, then navigate to the Field Extraction Training Batches section and create a new document batch.

1.Click File and select New Batch.

2.In the dialog box that opens, select the Document Definition that you created earlier, then select the section for which you have configured fields and click OK.

3.In the Look up Variant for Training Batch window, select the variant to be used for training.

4.Select the newly created batch and either select the NLP batch option or click Field extraction training > NLP batch.
NLP batch option

Now you need to load the documents that will be used to train the NLP model.

1.Open the batch that you have created by double-clicking it.

2.Click File > Load Images....

3.In the dialog box that opens, click Image Processing Settings..., select the One document per file option, and click OK.

4.Choose the documents to be used for training the NLP model.

5.After all the documents have been loaded, select them and click Recognition > Match Document Definition. Alternatively, right-click the selection and click Match Document Definition. Then choose the appropriate Document Definition.

The quality of a trained NLP model depends on the number of documents in the training batch and the quality of their markup. Please note the following:

·All the fields described by the Document Definition should be marked up in the training documents.

·It is recommended to have between 100 and 500 documents in each training batch. This number of documents will enable the program to select the best parameters for your NLP model without slowing down the training process.

After you have successfully loaded the documents, you need to manually mark up the fields on each document so that the NLP models will know where to look for entities. To do this, complete the following steps for each document:

1.Double-click a document to open it.

2.Select a field for which information from the document should be extracted. Then either choose the value of the field on the document or draw a rectangle around it. Repeat this step for each field.

3.Go to the next document by clicking the [image] button. Repeat the above steps for all the remaining documents.

4.Save the changes.

After you have marked up all the documents, return to the Field Extraction Training Batches view. Right-click the batch and click Train on the shortcut menu. Once trained, the model is ready to use.

Training results can either be disabled or deleted. To disable training results, right-click the training batch and select the Disabled item on the shortcut menu. To delete training results, right-click the training batch and select the Delete item on the shortcut menu.

If you need to use your trained NLP model in another project, simply import the training batch and its associated Document Definition into that project.


NLP model training based on feedback from verification operators

The quality of data extraction can be improved through additional training of NLP models by operators. If the program fails to detect certain fields or mistakes one field for another, the verification operator can indicate the correct field and retrain the NLP model. The program will then use the retrained model for more accurate data extraction.

note Note: Additional training is not available for NLP models loaded into Document Definitions.

There are two ways to initiate the training of an NLP model during verification. You can:

·Add a training stage after the verification stage. Training will start when the conditions specified for the training batch are met. For more information about setting up workflow stages, see Workflow setup.

·Manually send documents to the training stage. To do this, right-click the document in the working batch and select Train on the shortcut menu.

Generally, the training procedure is as follows:

·When training is initiated, ABBYY FlexiCapture automatically creates a generic training batch in the list of training batches (if it does not contain one already). All documents related to a specific Document Definition will be copied into this batch, regardless of their variant.

·Each document is assigned either the For training or the For testing status.

·Documents marked For training undergo training. As a result, a new NLP model is created.

·The new model that has been created during training is then tested using documents marked For testing.

·If the overall performance of the new model is not worse than that of the existing model, the existing model will be replaced with the new one. Otherwise, the new model will be rejected.

During document processing, it may be discovered that for some documents the field locations differ significantly, even though they contain identical sets of fields. In order to improve the recognition quality of such documents, create separate training batches for each document variant.

Creating a field extraction training batch for a specific vendor or variant

In order to train documents that come from a specific vendor or belong to a particular variant, a new batch must be created. Proceed as follows:

1.On the Project Setup Station, open the project with the NLP model. For more information about setting up an NLP model, see Creating NLP models.

2.Navigate to Field Extraction Training Batches by selecting Fields Training > Open Field Extraction Training Batches. Alternatively, you can either use the Ctrl + Alt + B key combination, or select Field Extraction Training Batches DocVariantsButton on the shortcut menu.

3.Create a new batch by selecting File > New Batch. Alternatively, you can use the Ctrl + N key combination. Choose the appropriate Document Definition and variant and then select the NLP Batch option on the shortcut menu.

4.Add your documents, recognize them, edit the order of sections, and start the training by selecting Train on the shortcut menu. Alternatively, you can either use the Ctrl + F7 key combination or click the Train Batch [image] button on the toolbar.

The quality of a trained NLP model depends on the number of documents in the training batch and the quality of their markup. Please note the following:

·All the fields described by the Document Definition should be marked up in the training documents.

·It is recommended to have between 100 and 500 documents in each training batch. This number of documents will enable the program to select the best parameters for your NLP model without slowing down the training process.

When operator feedback is used for training, new documents will be added to both the training batch and the variant batch.

·For a variant with an existing training batch, the NLP model created for that particular batch will be used.

·For all other variants, the NLP model created for the generic training batch will be used.

If a document identical to one already present in a training batch is added to it from the same source, the new document will replace the older one. This will also be recorded in the background task log for the training task. The program uses the document registration parameters to decide whether a document is a copy of an already existing document or not.

After creating the batch, you can specify additional options. To do this, select Show NLP Batch Settings....

The following additional options can be specified in the Training Batch Settings dialog box:

·Maximum documents in each training batch
If the maximum number of documents is reached, any new documents added into a training batch will replace the old documents.

·Maximum percentage of replaced documents
Indicates the percentage of old documents that can be replaced with new ones during one training session. Documents that have been sent to the training stage but were not included in the batch will not be used to train the new NLP model.

·Start training if batch contains more than __ new documents or more than __ % of new documents
Training will start when at least one of the following is true: the number of new documents added into a training batch is greater than the specified value; the percentage of new documents relative to the total number of documents in a batch is equal to or greater than the specified value. Otherwise, training will not start, and an entry will be added into the background task log saying that there are not enough new documents to start training.

·Percentage of documents to be used for training
Specifies the percentage of documents marked For testing and For training. For example, if you limit the percentage of "For training" documents to 70%, the remaining 30% will be marked "For testing".

Training statistics

Once training is finished, statistics for an NLP model can be exported. This includes the following:

·Information about the training batch settings.

·Information about both the new and the old NLP models.

·Training time.

·The version of the NLP component used to train the NLP model.

·Document and field training statistics.

·Information about how recent the exported data is.
If the isActual parameter is false, the batch was modified after the training and creation of a new NLP model: documents may have been added or removed, document markup might have changed, etc. For up-to-date statistics, training should be launched again.

To export the log for a training batch, right-click the batch, click Export Field Extraction Statistics... on the shortcut menu, and specify where you want to save the CSV file.


Loading an existing NLP model

To load an existing NLP model into a Document Definition, complete the following steps:

1.Open the Project Setup Station, click Project > Document Definitions, choose a Document Definition, and click Edit....

You will see a Document Structure pane on the right. If the document structure is not visible, click View > Document Structure > Show Document Structure. Alternatively, press Alt + F1.

2.In the Document Structure pane, right-click the section name and select Properties... on the shortcut menu.

3.In the Properties dialog box, click the NLP tab.

4.Load the ZIP file containing your NLP model.

5.Choose the appropriate language.

6.In the document section properties, click OK.

Now all fields that can be extracted by the NLP model will be automatically created in the document structure. Set up the data form that will be used by the verification operator (see this section for detailed instructions).

7.Click Document Definition > Save to save the Document Definition.

9.Click Document Definition > Close to close the Document Definition Editor.

10. Click Document Definition > Publish to publish your Document Definition.

note Note: Additional training is not available for NLP models loaded into Document Definitions.


When to use extraction scripts

Extraction results can sometimes be improved by using extraction scripts alongside an NLP model. You may want to use extraction scripts if:

·You need to extract entities from a table.

·You do not have enough sample documents to train your NLP model.

·You are not satisfied with the quality of extraction on some of the fields.

Extraction scripts allow you to

·Identify text spans that match

ocertain regular expressions

ocertain words or phrases from user dictionaries occurring in any inflected form in the text

oany of the built-in NER objects:

§People (NerPerson)

§Organizations (NerOrg)

§Locations (NerGeo)

§Addresses (NerAddress)

§Amounts of money (NerMoney)

§Dates (NerDate)

note Note: The NerMoney and NerDate objects are used only in extraction scripts.

·Run queries on text and text spans where search words and phrases may occur in any inflected form.

·Save any identified text spans into document fields.

·Extract addresses and the following address components from documents:

oZIP code (NerZipCode)

oCountry (NerCountry)

oState (NerState)

oCity (NerCity)

oStreet (NerStreet)

To create an extraction script or select user dictionaries to be used, follow these steps:

1.Open the Document Definition editor.

2.Select a document section, right-click it, and click Properties… on the shortcut menu.

3.Click the NLP tab.

4.Under Extraction Scripts, click Create....

5.In the Extraction Script dialog box,

oClick the Load… button to load a user dictionary, or

oClick the Edit... button to open the script editor.

note Note: The user dictionaries should be encoded in UTF-8 with BOM or ANSI.

Extracting address components from a document

To extract address components, do the following:

1.Specify the area of the document that contains the address.

We recommend that you restrict the search area with a FlexiLayout field and then use that area as a source for an extraction script. For more information, see Search constraints.

An address may only contain one instance of each of the following components: ZIP code, country, state, city, and street. However, an extraction script may return several instances of a component. The more precisely you define the search area for an address, the fewer instances will be returned.

2.Apply the appropriate extraction script.
You can search for address components in the entire field or in a part of the field.

When using the ParseAddressInPosition( resultCollectionNamePrefix : string, startPos : int, endPos : int ) and ParseAddressInSpan( resultCollectionNamePrefix : string, span : IInterval ) methods to parse an address, each word in the detected components receives the following attributes during indexing, which can then be used in XML queries:

1.The name of the collection in the format [resultCollectionNamePrefix]_[NerTypeOfComponent].

2.The resultCollectionNamePrefix prefix.

3.The type of the NER object.

See below for a sample XML address extraction query.

note Note: Currently, you can only extract components of German and US addresses.


Examples of use

An example of using extraction scripts in C#

FieldExtractor.ExtractRegularExpression( "(grant(s))|(convey to)|(grant)", "keyWords" );

FieldExtractor.ExtractWordsFromUserDictionary("dictionary", "English");

FieldExtractor.ExtractNerObjects();

// Access identified objects by collection name

IExtractedObjects personObjects = FieldExtractor.ExtractedObjects( "NerPerson" );

IExtractedObjects keyWordsObjects = FieldExtractor.ExtractedObjects( "keyWords" );

// Look for matching person to left of keyword

for( int i = 0; i < keyWordsObjects.Count; i++ ) {

IExtractedObject keyWord = personObjects.Item( i );

IInterval span = keyWord.Span;

IExtractedObject grantor = personObjects.Find( span.StartPos, false );

string grantorName = grantor.Value;

if ( grantorName.Length > 2 && grantorName != "Doug Darrell" ) {

FieldExtractor.SaveSpanToField( grantor.Span, "NlpField1" );

}

}

// Access source text

string sourceText = FieldExtractor.SourceText;

// Write any text span to field

FieldExtractor.SaveTextToField( 0, sourceText.Length - 1, "NlpField2" );

// An XML query that looks for two-word dictionary phrases

string query = "<Request> " +

"<Query>" +

"<Contain MaxDistance=\"1\">" +

"<Required>" +

"<Form><Attributes><Attribute>dictionary1</Attribute></Attributes></Form>" +

"</Required>" +

"<Required>" +

"<Form><Attributes><Attribute>dictionary2</Attribute></Attributes></Form>" +

"</Required>" +

"</Contain>" +

"</Query>" +

"</Request>";

// Run query, get collection of results, and save them to field

FieldExtractor.RunQueryAndSaveToField( query, "query1", "NlpField3");

// Run query and get collection of results

IExtractedObjects queryResults1 = FieldExtractor.RunQuery( query, "query2" );

// An alternative way of accessing query results after running the query

IExtractedObjects queryResults2 = FieldExtractor.QueryResults( "query2" );

Script parameters

Name | Type | Permissions | Value
FieldExtractor | IFieldExtractor | Read | Identifies fields in the text of a document

Sample address extraction script

The script is called for the entire source field.

// Parse the address

this.ParseAddress();

// Extract the components into separate fields

var zip = this.ExtractedObjects( "NerZipCode" );

var street = this.ExtractedObjects( "NerStreet" );

for( var i = 0; i < zip.Count; i++ ) {

this.SaveSpanToField( zip.Item(i).Span, "ZipCode" );

}

for( var j = 0; j < street.Count; j++ ) {

this.SaveSpanToField( street.Item(j).Span, "Street" );

}

Sample address extraction script

The script is called for part of the source field.

// Detect all NER objects in the text of the field or section

this.ExtractNerObjects();

// Extract the Address object

var address = this.ExtractedObjects( "NerAddress" );

// Split the address into components

for( var addressSpanIndex = 0; addressSpanIndex < address.Count; addressSpanIndex++ ) {

this.SaveSpanToField( address.Item(addressSpanIndex).Span, "Address" );

// Assign a unique prefix to the names of all component collections for the given address

var collectionName = "nerAddress" + String(addressSpanIndex);

// Extract the address

this.ParseAddressInPosition( collectionName, address.Item(addressSpanIndex).Span.StartPos, address.Item(addressSpanIndex).Span.EndPos );

// Save the components into separate fields

var zip = this.ExtractedObjects( collectionName, "NerZipCode" );

var street = this.ExtractedObjects( collectionName, "NerStreet" );

RunQueryAndSaveToField

for( var i = 0; i < zip.Count; i++ ) {

this.SaveSpanToField( zip.Item(i).Span, "ZipCode" );

}

for( var j = 0; j < street.Count; j++ ) {

this.SaveSpanToField( street.Item(j).Span, "Street" );

}

}


Object types

This section contains the description of objects used in scripts, their properties and methods.

IFieldExtractor

IExtractedObjects

IExtractedObject

IInterval


IFieldExtractor

Purpose

Identifies fields in the text of a document.

note Note: Can only be changed in an extraction script.

Methods

Name

Description

ExtractRegularExpression( regularExpression : string, resultCollectionName : string )

Specifies a regular expression for identifying text spans.

The resultCollectionName parameter sets a name for the resulting collection of objects. The name of the collection can be used in XML queries run on documents. You can also access the resulting collection by its name.

ExtractNerObjects()

Tells the field identification mechanism to identify NER entities in the text of a document. Once the objects are identified, the field identification mechanism will have collections available with the following predefined names: NerPerson, NerOrg, NerGeo, NerAddress, NerMoney, and NerDate.

note Note: The NerMoney and NerDate objects are used only in extraction scripts and are not available in ABBYY FlexiLayout Studio.

ExtractWordsFromUserDictionary( userDictionaryName : string, languageName : string )

Tells the field identification mechanism to identify words from a user dictionary in the text of a document. Words may occur in the text in any inflected form. A user dictionary can be selected on the Properties tab of the script rule. The dictionary will be accessed by its name.

The languageName parameter specifies the language in which to generate the inflected forms of the words in the user dictionary.

ParseAddress()

Parses the text in a field or section into address components.

ParseAddressInPosition( resultCollectionNamePrefix : string, startPos : int, endPos : int )

Parses the text fragment between specified start and end positions in a field or section into address components.

ParseAddressInSpan(resultCollectionNamePrefix : string, span : IInterval )

Parses the text fragment within a specified interval in a field or section into address components.

RunQuery( xmlQuery : string, queryName : string ) : IExtractedObjects

Runs an XML query on the text of a document and identified text spans. Returns a collection of results as an array of text spans containing the identified resulting strings.

The queryName parameter specifies a name for the query, which can then be used to get the resulting collection from the field identification mechanism.

RunQueryAndSaveToField( xmlQuery : string, queryName : string, fieldName : string )

Runs an XML query on the text of a document and identified text spans and saves the results to a document field.

SaveSpanToField( span : IInterval, fieldName : string )

Saves the text fragment corresponding to the span specified for a text substring to a document field.

SaveTextToField( startPos : int, endPos : int, fieldName : string )

Saves the text fragment corresponding to the start and end positions specified for a text substring to a document field.

ExtractedObjects( collectionName : string, [optional] objectTypeName : VARIANT) : IExtractedObjects

Allows accessing a collection of identified objects by the name of the collection.

For collections of NER objects identified as address components, do one of the following:

·For collectionName, use the name passed as resultCollectionNamePrefix to the ParseAddress... methods. Additionally, set objectTypeName as the name of the type of the collection (e.g. "NerStreet" or "NerCity"), or

·Specify collectionName as [resultCollectionNamePrefix ]_[ objectTypeName] without specifying objectTypeName as an optional argument.

QueryResults( queryName : string ) : IExtractedObjects

Allows accessing the result of an XML query by the name of the query.

Properties

Name | Type | Permissions | Value
SourceText() | string | Read | The text of the document or field to which the field identification mechanism is applied.
SourceNode() | IField | Read | The field or the section to which the field identification mechanism is applied.
SourceDocument() | IDocument | Read | The document that contains SourceNode.


IExtractedObjects

Purpose

This is a collection of objects of type IExtractedObject found in the text.

Properties

Name | Type | Permissions | Value
Name() | string | Read | The name of the collection.
Count() | int | Read | The number of items in the collection.
Item( index : int ) | IExtractedObject | Read | Accesses an item by its index.
Find( position : int, toTheRight : bool ) : ExtractedObject | IExtractedObject | Read | Finds an item whose text span is closest to a specified position in the text. toTheRight specifies search direction.
Attributes () | IVARAIANTArray | Read | Attributes for the indexed collection. These attributes can be used in XML queries when searching the collection for specific words.


IExtractedObject

Purpose

This object describes a substring in the source text of a document.

Properties

Name | Type | Permissions | Value
Value () | string | Read | The value of the substring.
Span () | IInterval | Read | The span that describes the location of the substring in the text.


IInterval

Purpose

This type describes the span of a substring in the source text of a document.

Properties

Name | Type | Permissions | Value
StartPos() | int | Read | The start position of the text span.
EndPos() | int | Read | The end position of the text span.


Query language

Show/Hide Hidden Text

A query specifies what words or combinations of words a document must contain. The query language used by extraction scripts is based on XML.

A simple query may look something like this:

<Request>

<Query>

<Contain>

<Required>

<Form><Text>first</Text></Form>

</Required>

<Optional>

<Form><Text>second</Text></Form>

</Optional>

<Except>

<Query>

<Contain>

<Required>

<Form><Text>third</Text></Form>

</Required>

<Optional>

<Form><Text>fourth</Text></Form>

</Optional>

</Contain>

</Query>

</Except>

</Contain>

</Query>

</Request>

·<Request> — This is the root element of a query.

·<Query> — This is a basic query. A basic query contains a query tree that specifies certain conditions to be met by the combination of words that you are looking for. A basic query may be part of a combination of word forms in a higher-level query. This is a required element.

·<Contain> — Specifies what words or combinations of words a document must contain. A query may have only one <Contain> element. This is a required element. This element may include any number of the following elements, in any order:

o<Required> — Specifies a word form or subquery that a word combination must contain. This is an optional element.

o<Optional> — Specifies a word form or subquery that a word combination may contain. This is an optional element.

o<Except> — Specifies a word form or subquery that a word combination must not contain. This is an optional element.

Each of the above elements must contain the following elements:

·<Query> — Specifies whether a string of word forms must be included in or excluded from the word combination.

·<Form> — Specifies whether a word form must be included in or excluded from a word combination.

note Note: The <Contain> element must contain at least one <Required> or <Optional> element.

Attributes of the <Contain> tag

Additional restrictions on a combination of word forms can be specified in the attributes of the <Contain> tag.

MinCount attribute for the minimum number of items in a combination of word forms

The minimum number of items in a combination of word forms can be specified in a MinCount attribute. Each item is either a word form or a string of word forms returned by the subquery. The default value of the attribute is 1. The value of this parameter must not be greater than the total number of <Required> and <Optional> elements in the given combination of word forms.

This parameter is useful when a combination of word forms contains one or more <Optional> elements.

First, here is an example of a query that looks for either first or the second parameter (MinCount has the default value of 1):

<Query>

<Contain>

<Optional>

<Form><Text>first</Text></Form>

</Optional>

<Optional>

<Form><Text>second</Text></Form>

</Optional>

</Contain>

</Query>

The following query tells the program to find at least three of the four words specified in the query, of which two words are required:

<Query>

<Contain MinCount="3">

<Optional>

<Form><Text>US</Text></Form>

</Optional>

<Required>

<Form><Text>President</Text></Form>

</Required>

<Optional>

<Form><Text>Barack</Text></Form>

</Optional>

<Required>

<Form><Text>Obama</Text></Form>

</Required>

</Contain>

</Query>

The query above will find the following phrases: “US President Barack Obama,” “President Barack Obama,” and “US President Obama.”

KeepOrder attribute for a fixed order of items in a combination of word forms

To specify that the order of items in a combination of word forms is fixed, you can use a KeepOrder attribute of type Boolean. The default value of the attribute is false.

Here is an example of a query that specifies that the order of items is fixed:

<Query>

<Contain KeepOrder="true">

<Required>

<Form><Text>first</Text></Form>

</Required>

<Required>

<Form><Text>second</Text></Form>

</Required>

<Required>

<Form><Text>third</Text></Form>

</Required>

</Contain>

</Query>

The combination “first third second third” will not match the query, even though the query does contain a string of words arranged in the required order.

KeepOrder will also apply to any <Except> elements. Any words corresponding to the <Except> elements in a query must not occur between the words that they separate in the query; however, they may occur in any other positions beyond the fixed-order query strings.

For example, if we modify the above query by putting the word form “second” into an <Except> element instead of <Required>, then a document containing the combination of word forms “first third second” will match the query (but the word form “second” will not be included in the result). If we further modify the above query by removing the KeepOrder attribute, a document containing the combination of word forms “first third second” will not be included in the result because the word form “second” must not occur anywhere in the text of a document.

MinDistance and MaxDistance attributes for specifying distances

The MinDistance and MaxDistance attributes specify the minimum and maximum distances between words in a query. These attributes have no default values. If either of the two attributes is not specified, no distance limitations will apply.

Distance between words is measured in words and is calculated as the difference in the positions of the two corresponding words. The distance between two neighboring words equals 1 and so the minimum value of either attribute is 1. MaxDistance must be greater than or equal to MinDistance.

The distance between two strings of words is calculated as follows. If the strings do not overlap, then the distance is calculated as the difference between the position of the left-most word in the right string and the position of the right-most word in the left string. If the strings overlap, then the distance is assumed to be 0.

For example, in the phrase “The quick brown fox jumped over the lazy dog,” the distance between the strings “quick fox” and “lazy dog” is 4 and the distance between the strings “quick fox” and “brown lazy dog” is 0.

For <Except> elements, the distance between words is calculated as follows:

·If KeepOrder="true," the word must not occur within the specified distance of the neighboring words in the string (i.e. those words between which it occurs in the query). At the same time, the distance between the neighbors of the <Except> element must be within the specified range.

·If KeepOrder="false," then the word must not occur within the specified distance of any other word in the string.

Example 1:

<Query>

<Contain KeepOrder="true" MaxDistance="2">

<Required>

<Form><Text>sodium /Text></Form>

</Required>

<Except>

<Form><Text>tetraborate</Text></Form>

</Except>

<Optional>

<Form><Text>carborate</Text></Form>

</Optional>

<Optional>

<Form><Text>sulfate</Text></Form>

</Optional>

<Required>

<Form><Text>decahydrate</Text></Form>

</Required>

</Contain>

</Query>

This query will find such phrases as “sodium carborate decahydrate” and “sodium sulfate decahydrate.”

Example 2:

<Query>

<Contain KeepOrder="false" MaxDistance="2">

<Required>

<Form><Text>sodium /Text></Form>

</Required>

<Except>

<Form><Text>tetraborate</Text></Form>

</Except>

<Optional>

<Form><Text>carborate</Text></Form>

</Optional>

<Optional>

<Form><Text>sulfate</Text></Form>

</Optional>

<Required>

<Form><Text>decahydrate</Text></Form>

</Required>

</Contain>

</Query>

This query will only find “sodium sulfate decahydrate,” because the word "tetraborate" is placed in the <Except></Except> tags and the maximum distance between "tetraborate" and “sodium” is two words.

<Form> element for getting a word form

A query for one word form is specified using a <Form> element. This element may contain the following elements:

·<Attributes> — An optional element that contains a query for the attributes of a word form.

·<Text> — An optional element that contains the Unicode text of a word form.
If no word from text is specified, any word will match the query that matches the attributes query, which is required in this case.

·Additional search conditions for a word form can be specified in the attributes of the <Form> tag.

SearchType attribute for specifying the type of word form search

The type of word form search can be specified in the SearchType attribute of the <Form> tag. This attribute may have the following values:

·AllFormsSearch – The program will look for all the forms of the specified word.

·ExactSearch – The program will look only for the specified form of the word.

·PrefixSearch – The program will look for any word forms prefixed by the specified string.

·FuzzySearch – The program will perform a fuzzy search for the specified word. FuzzySearch may be useful if you have reasons to believe that your texts may contain OCR errors and ExactSearch will not work. FuzzySearch can only be used for words containing at least 3 characters. For words between 3 and 5 characters in length, FuzzySearch allows 1 OCR error. For words longer than 5 characters, FuzzySearch allows up to 2 OCR errors.

·FuzzyPrefixSearch – The program will perform a fuzzy search for any words prefixed by the specified string.

The SearchType attribute is optional and is set to AllFormsSearch by default.

CaseSensitive attribute for case-sensitive searches

For case-sensitive searches, the CaseSensitive attribute of the <Form> tag can be used. This attribute is optional and is set to false by default.

Here is a query which illustrates the use of attributes of the <Form> tag:

<Query>

<Contain KeepOrder="true">

<Required>

<Form SearchType="ExactSearch" CaseSensitive="true">

<Text>WHO</Text>

</Form>

</Required>

</Contain>

</Query>

This query will look for the acronym WHO in exactly this form, which helps avoid a large number of redundant results containing “who,” “whom,” or “whose.”

<Attributes> element for getting word form attributes

A query for word form attributes is a logical expression built with AND, OR, and NOT operators. NOT is a unary operator, whereas AND and OR are n-ary. The operands of this logical expression are values of type Bool. This logical expression is written in the form of a tree. The result of the query will be the word forms in the text of a document that satisfy this logical expression.

To get word form attributes, use an <Attributes> element is used. This element may contain the following elements:

·<Attribute> — This element contains the text of the required word attribute. It is a leaf on the logical expression tree.

·<Or> — The OR operator is a node in the tree.

·<And> — The AND operator is a node in the tree.

·<Not> — The NOT operator is a node in the tree.

The <Not> element is constructed in the same manner as the <Attributes> element and may contain only one of the above elements.

The <Or> and <And> elements must contain at least two of the above elements.

The <Attribute> tag has an optional SearchType attribute, which specifies the type of attribute search. This attribute may have the following values:

·ExactSearch — The program will look for the attribute in exactly the same form as specified in the query.

·PrefixSearch — The program will look for any attributes prefixed by the specified text.

Search for attributes is always case-sensitive. The SearchType attribute is set to ExactSearch by default.

Suppose we have a document where we have already identified:

·NER objects (by calling the ExtractNerObjects function)

·word forms from a user dictionary named “dictionary” (by calling the ExtractWordsFromUserDictionary function)

·all objects that satisfy a regular expression that we have passed as a parameter (by calling the ExtractRegularExpression function)

Let’s also assume that the resulting collection of these objects is named “regExp.”

note Note: The name of the collection can be used in XML queries performed on the indexed document. The resulting collection itself can be accessed by its name.

Then a form attribute query will look something like this:

<Query>

<Contain>

<Required>

<Form>

<Attributes>

<Attribute>regExp1</Attribute>

</Attributes>

</Form>

</Required>

<Required>

<Form>

<Attributes>

<And>

<Attribute>NerOrg1</Attribute>

<Not>

<Attribute> dictionary1</Attribute>

</Not>

</And>

</Attributes>

</Form>

</Required>

</Contain>

</Query>

This query will look for a two-word phrase, where the first word must match the specified regular expression and the second is an allowed name of an organization.

The digits after the attribute names serve to single out the required words in detected multi-word objects that have been indexed with the respective attributes. For example, a regular expression named “date” may find a date in the format “May 31, 2019.” Then date 1 will correspond to the word “May,” date 2 will correspond to “31,” and date 3 will correspond to “2019.”

<FormSet> element for getting a set of word forms

A query for multiple word forms is specified using a <FormSet> element.

This type of query combines multiple one-form queries using OR. It is equivalent to a <Query> query where all subqueries are optional word form queries.

For a <FormSet> query, however, you can specify an attribute query common to all the forms. This will make for more efficient searches when ExactSearch is used to find all the word forms, there is an attribute query for each form, and all these attribute queries share some common fragment.

A <FormSet> element contains the following elements:

·<Attributes> — This is an optional element that contains a query for form attributes. This query is combined with form attribute queries using AND.

·<Form> — This is a required element that contain a query for a word form. A <FormSet> element must contain at least one <Form> element.

Sample XML address extraction query

The result of an address extraction query will be a text string containing the first word of the country, the first word of the street, the first word of the city, the first word of the state, and the first word of the ZIP code (in that order and provided they are no more than 5 words apart from one another).

The string of consecutive words making up a component (e.g. a street name) are additionally numbered in the index, starting from 1.

var xmlQuery = "<Request> \
<Query> \
<Contain MaxDistance=\"5\" KeepOrder=\"true\"> \
<Optional> \
<Form><Attributes><Attribute>NerCountry1</Attribute></Attributes></Form> \
</Optional> \
<Optional> \
<Form><Attributes><Attribute>NerStreet1</Attribute></Attributes></Form> \
</Optional> \
<Optional> \
<Form><Attributes><Attribute>NerCity1</Attribute></Attributes></Form> \
</Optional> \
<Optional> \
<Form><Attributes><Attribute>NerState1</Attribute></Attributes></Form> \
</Optional> \
<Required> \
<Form><Attributes><Attribute>NerZipCode1</Attribute></Attributes></Form> \
</Required> \
</Contain> \
</Query> \
</Request>";

The result of an address extraction query is recorded into a repeating xmlQueryResult field:
this.RunQueryAndSaveToField( xmlQuery, "query", "xmlQueryResult" );


Known limitations

Currently, the NLP technology used in ABBYY FlexiCapture has the following limitations:

·Selecting multiple overlapping fields or segments leads to a decrease in extraction quality.

·Selecting a field outside of a segment when the entity corresponding to that field is extracted from that segment will lead to the field not being trained.

·Fields used in training cannot be nested more than one level deep. You can train a field inside a group of fields, but fields inside a group that is part of another group cannot be trained. The nesting level of a field into which an entity should be extracted starts at the source field.

·You cannot create multiple segmentation models within one Document Section

·Multi-lingual NLP models are not supported.


Glossary

D

Document

A set of one or more page images and data extracted from them.

Document Definition

A Document Definition defines the principles to be used for identifying and processing a particular type of document. A Document Definition defines:

·The document structure, i.e. the allowed order of pages in documents of this type (this information will be used for the correct assembly of pages into documents)

·Document sections

·Rules that field data should satisfy

·The locations of the fields and their captions on the data form

·Document export settings

·Document processing settings

Document type

Documents that have certain characteristics in common and thus are handled in a uniform manner within a business process. Examples of document types include invoices, contracts, and passports.

E

Entity

A field or a group of fields containing information that needs to be extracted by means of NLP technology. Examples of entities include: people, companies, places, amounts, and dates.

F

Field

A document element intended for data extraction. Fields may be simple or complex. An example of a complex field is a field of type "Table," where each cell can be regarded as a separate child field.

N

NER (Named Entity Recognition)

An information extraction task that seeks to locate and classify named entity mentions in unstructured text.

NLP (Natural Language Processing)

A subfield of artificial intelligence and computational linguistics that studies computer analysis and synthesis of natural languages. One application of NLP is information extraction. Other uses of NLP include machine translation, chatbots, document classification, and sentiment analysis.

NLP model

A mechanism that determines what entities and segments should be extracted form texts and how. The subject area and the extraction algorithm are selected when training an NLP model.

S

Segment

A text fragment consisting of one or more paragraphs that contains data that needs to be extracted. A segment can also be a field that needs to be extracted (for example, conditions for terminating an agreement).

Segmentation

The process of identifying segments. Segmentation precedes information extraction and is useful in the case of large documents, as it narrows down a search for entities to specific text fragments.


ABBYY FlexiCapture interface

Show/Hide Hidden Text

This section describes the main elements of ABBYY FlexiCapture interface: the main windows, menus and toolbars.

Project Setup Station

listPicture Project Setup Station Menus

listPicture Project Setup Station Toolbars

Verification Station

listPicture Verification Station Menu

listPicture Verification Station Toolbars

Data Verification Station

listPicture Data Verification Station Menu

listPicture Data Verification Station Toolbars

Document Definition Editor

listPicture Document Definition Editor Menus

listPicture Document Definition Editor Toolbars

Group Verification Window

listPicture Group Verification Window Menus

listPicture Group Verification Window Toolbars

Field Verification Window

listPicture Field Verification Window Menus

listPicture Field Verification Window Toolbars


Project Setup Station window

Show/Hide Hidden Text

The main window of the Project Setup Station contains a list of document batches from the current project. By default, all batches except for those that have already been processed are displayed.

Filtering batches

You can filter batches from projects that are stored on the processing server. To do this, select a filter from the Show drop-down list and specify filter settings.

·All batches except processed;

·Batches on stages... filters batches by processing stages.
Additional filter settings

oOnly enabled stages hides stages that are not used for processing any of the batch types in the current project.

oShow out-of-processing batches shows batches that were not processed. If this option is enabled, you will not be able to filter by selected batch types.

·Batch with name prefix...
Filters batches by the prefixes of their names.

·Batch with ID...
Filters batches by their IDs.

·Batch containing document with ID...
Filters batches by IDs of documents they contain.

·Batches created in period...
Filters batches by their creation time. Dates earlier than 02/01/1753 and later than 12/31/2100 are not permitted.

·Batches with batch type...
Filters batches by their type.

·Batches with specific registration parameter...
Filters batches by registration parameter names and values. The filter can include up to three parameters.
Details...

You can specify the name and value of a registration parameter manually or select them from the Parameter drop-down list. This list contains registration parameters from all batch types and the last ten parameter names that you typed. The Value drop-down list contains ten registration parameters that were specified by a user.

·Batches filtered with...
Advanced search that uses batch name prefixes, batch types, creation dates, registration parameters and stages.

·Batches overdue within time period...
Filters batches by deadline dates.

·Batches with expiration status...
Filters batches by their deadline status. For details, see SLA Settings.

When a filter is in use, a brief summary of its settings is displayed to the right of the Show drop-down list. To change the settings of the filter that is currently in use, click the DotsButton button.

The Batch window

The top part of the window contains the menu bar and the toolbar. The bottom part contains the status bar, which displays messages about the program's status and the operations it is performing, and brief descriptions of selected menu items and buttons.

The rest of the main window is taken up by the Batch pane that contains a list of batches.

Screenshot of the main window with the batch list

One page can contain up to 500 batches. Use the arrow buttons in on the right to switch between pages.

Double-click a batch to view the documents it contains.

Screenshot of the main window with a list of documents from an open batch

To return to the list of batches, click View → Working Batches (or Test Batches if you are working with test batches).

Copying and moving documents

Documents can be copied and moved from one batch to another. If the document is copied or moved, all information about it, including the applied Document Definition and any recognized data, is retained. To copy or move documents (for example from a regular batch to a test batch for training), select them in the list of documents and press Ctrl+C to copy and Ctrl+X to cut. You can also use the [image] and [image] buttons and the Copy and Cut commands on the Edit menu. Next, open the batch to which you want to copy the files and press Ctrl+V, click the [image] button or select Edit → Paste to copy.

The Document window

To begin verifying data, open the Document window by double-clicking the name of a document or one of its pages. This window is divided into 3 panes:

·a pane containing an image of the document;

·a pane with data form;

·a pane with rule errors (this pane is only displayed if there are rule errors).

note Note: When you place the mouse pointer over a field that contains a date or a number, a tooltip is displayed. The format of the data in the tooltip depends on the regional settings on your computer.

Screenshot of the Document window

Viewing and editing document sets in the Document window

You can open any number of documents from a document set. A new tab will be created for each document. The caption of each tab will contain the number of the document in the batch and the name of each applied Document Definition. An asterisk next to a name indicates that there are unsaved changes in the document. You can switch between tabs by clicking them, by clicking the left and right buttons to the right of the tabs, or by clicking the quick button and selecting the desired document from the list.

Important!

·Clicking the [image] button on the toolbar will save changes in all the open documents.

·If you open several documents from a set and then open a document from a different set, all documents from the old set will be closed.

·When you open a document from a set, its parent documents will also be opened.

If a Document Definition has a summary section set up which contains links to original fields, you can quickly switch to the required original field. To do this, double-click the desired link or click the Go to Original Field command on the shortcut menu.

listPicture Project Setup Station menu

listPicture Project Setup Station toolbars


Main window menu

Navigation: ABBYY FlexiCapture interface > Project Setup Station window >

Return to chapter overview

ABBYY FlexiCapture Project Setup Station menu

Show/Hide Hidden Text

File

Menu

Description

New Project...

Creates a new project.

Open Project...

Opens an existing project.

Open Project from Server...

Opens an existing project from the Application Server.

Close Project

Closes the current project.

Upload Project to Server...

Opens a dialog box where you can upload your project to the Application Server.

Save

Saves the changes.

New Batch...

Creates a new batch.

Load Images...

Loads images from files.

Load Images from Folders

Loads images that are sorted into folders according to their class in one step. Saves the names of the folders the images were downloaded from.

note Note: Use the Set Class Based on Subfolder Name option to assign a reference class based on the name of the folder.

Scan Images...

Adds images obtained by scanning.

Import Images...

Imports images using one of the configured Image Import Profiles.

Export

Starts export using custom export profiles.

Export To

Data to Files...

Exports data to a file.

Images to Files...

Exports images to files.

Database...

Exports data to a database.

Recent Projects

Opens one of the previously opened projects.

Exit

Closes ABBYY FlexiCapture.

Edit

Menu |  | Description
Undo |  | Cancels the last action.
Redo |  | Restores the canceled action.
Cut |  | Cuts the selected objects.
Copy |  | Copies the selected objects to the Clipboard.
Paste |  | Pastes the copied object from the Clipboard.
Delete |  | Deletes the selected objects.
Document | Lock Document Boundaries | Locks the boundaries of a document to prevent it from being merged with other documents.
 | Unlock Document Boundaries | Unlocks the boundaries of a document.
 | Create Document | Creates a document from subsequent pages and documents.
 | Merge | Merges subsequent pages into one document.
 | Split | Splits selected documents into pages and documents.
Image | Despeckle | Despeckles the image.
 | Invert | Inverts the image.
 | Flip Horizontally | Flips the image horizontally (relative to the vertical axis).
 | Flip Vertically | Flips the image vertically (relative to the horizontal axis).
 | Rotate 90° Clockwise | Rotates the image 90° clockwise.
 | Rotate 90° Counterclockwise | Rotates the image 90° counterclockwise.
 | Rotate 180° | Rotates the image 180°
 | Autocrop | Automatically searches for page boundaries on an image, crops the area that contains data for extraction, corrects skews and distortions.
 | Crop | Opens the manual image crop dialog.
 | Split | Splits an image horizontally / vertically for the selected number of separate pages. note Note: With this action you need to make sure that documents on all images are placed evenly. Otherwise, you risk losing significant information.
 | Change Resolution... | Changes the resolution of the image.
 | Save As... | Saves the image with the specified name.
 | Show Original Image | Shows the original image prior to enhancements being applied. note Note: The Store original image during processing option should be selected in the project properties on the Image Processing tab.
 | Revert to Original | Reverts the enhancements applied to the image. note Note: The Store original image during processing option should be selected in the project properties on the Image Processing tab.
 | Apply Image Enhancement Profile | Applies an image enhancement profile to images.
Select All |  | Selects all objects.
Find... |  | Finds specified text. note Note: In batch view, the text of all the columns is searched. In document view, the document fields is searched.
Find Next |  | Finds the next text that was previously specified.
Go To | Next Document | Goes to the next document in the batch.
 | Previous Document | Goes to the previous document in the batch.
 | Next Confirmed Field | Navigates to the next confirmed field. note Note: This command is available only if the Go to Uncertain Field on Confirmation option is enabled in the shortcut menu of the data form in the Document pane.
 | Previous Confirmed Field | Navigates to the previous confirmed field. note Note: This command is available only if the Go to Uncertain Field on Confirmation option is enabled in the shortcut menu of the data form in the Document pane.

View

Menu |  | Description
Test Batches |  | Opens the list of test batches.
Working Batches |  | Opens the list of batches.
Open Field Extraction Training Batches |  | Opens a list of field extraction training batches.
Open Classifier Training Batches |  | Opens a list of classifier training batches.
Details |  | Shows the documents and their pages as a detailed list.
Thumbnails |  | Shows document images as thumbnails.
Choose Columns... |  | Allows configuring the list of columns displayed in the detailed view mode.
Document Editor | Image Mode | Enables the document image viewing mode.
 | Data Mode | Enables the recognized data viewing mode.
 | Image Window | Allows positioning the image in the document window.
 | Errors Window | Allows selecting the location of the Errors pane in the Document pane and the types of errors to display in the list.
 | Image Scale | Allows selecting a suitable field image scale.
 | Data Text Size | Allows selecting the font size used when displaying recognized data.
 | Show Toolbar | Shows/hides the toolbar in the document window. This toolbar allows correcting some of the matching errors, for example, you can add the field that wasn't found, and add or delete a table separator. This is mainly used when working with FlexiLayouts.
 | Show Error Message for Active Field | Changes the way errors are displayed for the current field.
 | Show Image in Black and White | Shows full color and gray scale images of document pages in black and white.
 | Arrange Pages Vertically | Arranges the pages in the image window vertically.
 | Go to | Navigates to the previous or next opened document.
 | Go to Original Field | Navigates to the referenced field when working with a link to an existing field on the document form.
Thumbnail options |  | Lets you show or hide error notifications and values of key fields in the Thumbnails view. Error messages are displayed beneath the name of the Document Definition, and values of key fields are displayed beneath the thumbnail and the section name.
Thumbnails Size |  | Allows selecting the size of page thumbnails.
Toolbars |  | Shows/hides the toolbars.
Side Panels |  | Shows/hides the side panels.
Status Bar |  | Shows/hides the status bar.
Full Screen |  | Switches to full screen mode.
Refresh |  | Refreshes the information displayed.
Properties... |  | Opens the Page of Document Properties dialog box.

Recognition

Menu | Description
Analyze | Analyzes the pages of the documents and finds a suitable Document Definition.
Match Document Definition... | Matches the selected Document Definition to the selected document or page.
Confirm Document Definition | Confirms the results of Document Definition matching.
Recognize | Starts the recognition.
Clear Analysis Results | Clears the results of the automatic document assembly and Document Definition matching. note Note: If the Bound option is selected, the document will not be disassembled.

Verification

Menu | Description
Run Data Verification... | Starts verification.
Confirm Document Definition | Confirms the results of Document Definition matching.
Confirm All Document Symbols | Confirms all characters that have been recognized as "uncertain".
Next Item to Verify | Goes to the next verification object.
Previous Item to Verify | Goes to the previous verification object.
Next Assembly Error | Goes to the next assembly error.
Previous Assembly Error | Goes to the previous assembly error.
Next Uncertain Character | Goes to the next uncertainly recognized character.
Previous Uncertain Character | Goes to the previous uncertainly recognized character.
Next Rule Error | Goes to the next rule error.
Previous Rule Error | Goes to the previous rule error.
Train | Starts the FlexiLayout training process.

Project

Menu | Description
Document Definitions... | Opens the dialog box with the list of Document Definitions, which allows creating, editing, importing, and deleting them.
Batch Types... | Opens the dialog box with the list of batch types, which allows creating, editing, and deleting them.
Image Import Profiles... | Opens the dialog box with the list of Image import Profiles, which allows creating, copying, editing, and deleting them.
Protect with Password... | Allows protecting the current project with a password.
Unprotect... | Allows disabling password protection of the project.
Export Project... | Exports the project to the specified folder. Images are taken from the current project.
Update Project... | Configures project updating. Messages and errors that appear during import can be saved to a file (right-click and then click - Export to File).
Compact | Reduces the size of the project by compacting the Document Definition database and converting the Document Definitions to a new format.
Create Test Copy | Creates a test copy of the project.
Commit Test Copy | Commits the test copy to the working copy.
Delete Test Copy | Deletes the test copy of the project.
Project Properties... | Opens the Project Properties dialog box.

Fields Training

Menu | Description
Open Field Extraction Training Batches | Opens a list of field extraction training batches.
Train | Starts FlexiLayout training.
Set Document State | Sets the status of a document when training a FlexiLayout variant. Possible statuses: ·Unused ·For testing ·For training
Change Document Definition... | Changes the Document Definition associated with the training batch.
Clear Document Definition | Disassociates the Document Definition from the batch. note Note: A batch that has no Document Definition associated with it cannot be used in FlexiLayout training.
Change Variant... | Allows changing the FlexiLayout variant of documents that have been used for training.
Change Vendor... | Changes the vendor associated with the training batch.
Export Trained FlexiLayout... | Exports a trained FlexiLayout variant to FlexiLayout Studio for further modification.
Import FlexiLayout... | Imports a FlexiLayout variant from FlexiLayout Studio.
Import Training Batches... | Imports training batches into the current project.
NLP batch | Uses the batch to train the NLP model.
Lock Training by Operators | Prohibits further FlexiLayout training for a particular vendor.
Disable | Disables the use of the training results for a particular vendor.

Classification Training

Menu | Description
Open Classifier Training Batches | Opens a list of classifier training batches.
Train | Starts classification training.
Classify | Starts testing classification on the selected pages.
View Statistics | Opens the classification statistics window.
Set Class... | Allows setting the reference class for the selected pages.
Set Previous Class | Sets the previous reference class for the selected pages.
Set Recent Class | Sets a recent reference class to the selected pages.
Set Class Based on Classification Result | Sets a reference class identical to the result class to the selected pages.
Set Class Based on Subfolder Name | Sets a reference class identical to the subfolder where they are located for the selected pages.
Clear Class | Cancels the reference class selection for the selected pages.
Create New Class | Opens the New Document Class dialog box.
Class Mapping... | Opens the Class Mapping... dialog box.
Show Similar Pages | Finds pages that are similar to the selected one.
Show Similar Pages from Reference Class | Finds pages that are similar to the selected one and have the same reference class.
Show Similar Pages from Result Class | Finds pages that are similar to the selected one and have a reference class that is the same as the result class for the selected page.
Set Document State | Changes the status of a document for classification training. Possible statuses: ·Unused ·For Testing ·For Training
Benchmark | Opens the dialog box that can be used to split the selected documents into training and testing documents.
Change Classification Profile | Changes the classification profile. The following profiles are available: ·Image and Text (Fast) ·Image and Text (Thorough) ·Image Only ·Text Only
Change Recall/Precision Priority | Changes the precision/recall balance of classification. Possible settings: ·High Recall ·Balanced ·High Precision
Export Classifier... | Exports the selected classification batch to ABBYY FlexiLayout Studio.
Lock Training by Operators | Does not let the operator carry out further classifier training with the verification results.
Use Anonymized Images for Training | Lets you use anonymized images loaded together with the FLS classifier for further training.
Import Training Batches... | Imports classification training batches from other projects.
Set Batch Filter... | Opens the Classifier Batch Filter Settings dialog box.
Clear Batch Filter | Clears the set classification batch filter.

Tools

Menu |  | Description
Update to Latest Version |  | Applies the project changes to the currently processed documents.
Reanalyze |  | Re-analyzes the documents.
Rerecognize |  | Re-recognizes the documents.
Refresh Assembly |  | Refreshes the assembly of pages into documents.
Recheck Rules |  | Re-checks rules.
Check Batch Integrity |  | Checks batch integrity.
Change Batch Type... |  | Changes the batch type.
Duplicate Documents |  | Adds a copy of the document to the batch.
Export Batch to FlexiLayout Studio | Create New FlexiLayout Studio Project... | Creates a new ABBYY FlexiLayout Studio project for creating an additional FlexiLayout.
 | Add to Existing FlexiLayout Studio Project... | Adds the batch to an existing ABBYY FlexiLayout Studio project.
Options... |  | Opens the Options dialog box, where you can configure different properties such as background task processing, window view, and other.

Help

Menu | Description
Help Topics | Opens the ABBYY FlexiCapture help file.
Web Help | Opens the ABBYY FlexiCapture help website.
Technical Support | Opens the Technical Support section in the program help.
How to Buy ABBYY Products | Opens the Buying ABBYY FlexiCapture section in the program help.
ABBYY Website | Opens the ABBYY website.
Send Feedback... | Allows sending feedback to ABBYY.
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 12 dialog box containing brief description of the program.


Main Window toolbars

Navigation: ABBYY FlexiCapture interface > Project Setup Station window >

Return to chapter overview

ABBYY FlexiCapture Project Setup Station toolbars

Show/Hide Hidden Text

The standard toolbar

Tool | Button | Description
Open Project\Open Project from Server | \ | Opens a project\Opens an existing project on the server.
Save Changes |  | Saves the changes
Cut |  | When working with data in the document window, cuts the selected object
Copy |  | Copies the selected object to the Clipboard
Paste |  | Pastes the copied object from the Clipboard
Delete |  | Deletes the selected object
Undo |  | Cancels the last action
Redo |  | Restores the canceled action

Documents view

Tool | Button | Description
Details |  | Shows the documents and their pages as a detailed list
Thumbnails |  | Shows thumbnails of document images
Test Batches | TestBatches | Shows the list of test batches
Work Batches | WorkBatches | Shows the list of work batches
Training Batches | DocVariantsButton | Opens the list of training batches.
Classification Training Batches |  | Opens the classification training batch view
Refresh | Refresh | Refreshes information in the main window

Navigation

Tool | Button | Description
Previous Item to Verify |  | Goes to the previous verification object. The navigation is carried out through all errors, including assembly errors, uncertainly recognized characters, rule errors, key field mismatching, etc.
Next Item to Verify |  | Goes to the next verification object. The navigation is carried out through all errors, including assembly errors, uncertainly recognized characters, rule errors, key field mismatching, etc.
Previous Document |  | Goes to the previous document.
Next Document |  | Goes to the next document.

Project setup

Tool | Button | Description
Document Definitions... |  | Opens the window with the list of Document Definitions in the project.
Batch Types... |  | Opens the window with the list of batch types in the project.
Project Properties... |  | Opens the Project Properties window.
Show Image Import Profile |  | Opens the window with the list of Image Import Profiles in the project.
Upload Project to Server... |  | Opens the window allowing to upload the project to the Application Server.

Classification Training

Tool | Button | Description
Load Images from Folder | ButtonLoadfromfolder | Loads images from a folder that contains subfolders with sorted files
Classes from Subfolders | ButtonClassesfromsubfolders | Assigns a reference class to the selected pages. The reference class will be identical to the folder they are located in
Classes Mapping | ButtonMapping | Opens the Class Mapping dialog box
Benchmark | ButtonBenchmark | Opens a dialog box that can be used to split the documents in the batch into training and testing documents
Train | ButtonTrain | Starts classification training
Classify | ButtonClassify | Starts testing classification on the selected pages
Statistics | ButtonStatistics | Opens the Classification Statistics dialog box
Set Filter | ButtonSetfilter | Opens the Classifier Batch Filter Settings dialog box
Clear Filter | ButtonClearfilter | Clears the set classification batch filter. Available only when a batch filter has been set.


Verification Station window

Show/Hide Hidden Text

The top part of the window contains the menu bar and the toolbar. The bottom part contains the status bar, which displays messages about the program's status and the operations it is performing, and brief descriptions of selected menu items and buttons. The rest of the main window is taken up by a pane that contains either a list of queues or a list of documents.

There are two view modes: the queue mode and the batch mode. The contents of the main window will change depending on which mode is selected.

Queues

The main window contains a list of queues from which you can select a tasks to process.

The Verification Operator and the Senior Verification Operator have access to several task queues.

The task pane contains the following information:

·All Tasks Count
The number of available tasks in the queue. Includes automated tasks and tasks created by Operators.

·Max Priority
The highest priority of all tasks in the queue.

·Personal Tasks Count
The number of tasks assigned to the current user.

·Formed Tasks Count
The total number of documents in all tasks that were generated automatically.

·Formed Tasks Count
The number of tasks that were created manually by Operators, for example when documents were added to the queue while the Create task option was enabled.

·Out-of-Processing Batches Count
The number of batches that were added to the queue by an Operator without creating a separate task.

·Processing Warning Task Count
The number of tasks containing documents from batches that are approaching their deadline.

·Overdue Task Count
The number of tasks containing documents from overdue batches.

Tip. You can use the Explore Queue command on the shortcut menu of a queue to open the view.

Show the main window

A list of documents in a task is displayed when a task is received.

Show the main window displaying the list of documents

Batches

note Note: This view is available for the Senior Verification Operator only.

In this mode the main window contains batch-related information, including the number of documents and pages in batches, the priority of batches and the amount of recognized, verified and exported symbols in batches and deadlines.

By default, all batches available to the Operator except for those that have already been processed are displayed. One page can contain up to 500 batches. Use the arrow buttons in on the right to switch between pages.

Filtering batches

You can filter batches from projects that are stored on the processing server. To do this, select a filter from the Show drop-down list and specify filter settings.

·All batches except processed;

·Batches on stages... filters batches by processing stages.
Additional filter settings

oOnly enabled stages hides stages that are not used for processing any of the batch types in the current project.

oShow out-of-processing batches shows batches that were not processed. If this option is enabled, you will not be able to filter by selected batch types.

·Batch with name prefix...
Filters batches by the prefixes of their names.

·Batch with ID...
Filters batches by their IDs.

·Batch containing document with ID...
Filters batches by IDs of documents they contain.

·Batches created in period...
Filters batches by their creation time. Dates earlier than 02/01/1753 and later than 12/31/2100 are not permitted.

·Batches with batch type...
Filters batches by their type.

·Batches with specific registration parameter...
Filters batches by registration parameter names and values. The filter can include up to three parameters.
Details...

You can specify the name and value of a registration parameter manually or select them from the Parameter drop-down list. This list contains registration parameters from all batch types and the last ten parameter names that you typed. The Value drop-down list contains ten registration parameters that were specified by a user.

·Batches filtered with...
Advanced search that uses batch name prefixes, batch types, creation dates, registration parameters and stages.

·Batches overdue within time period...
Filters batches by deadline dates.

·Batches with expiration status...
Filters batches by their deadline status.

When a filter is in use, a brief summary of its settings is displayed to the right of the Show drop-down list. To change the settings of the filter that is currently in use, click the DotsButton button.

listPicture Verification Station Menu

listPicture Verification Station Toolbars


Verification Station menu

Show/Hide Hidden Text

File

Menu |  | Description
Open Project from Server... |  | Opens an existing project from the Application Server.
Close Project |  | Closes the current project.
Save |  | Saves the changes on the server.
New Batch... |  | Creates a new batch (in the Batches view).
Load Images... |  | Loads images from files.
Scan Images... |  | Adds images obtained by scanning.
Export To | Data to Files... | Exports data to a file.
 | Images to Files... | Exports images to files.
 | Database... | Exports data to a database.
Recent Projects |  | Opens one of the previously opened projects.
Exit |  | Closes ABBYY FlexiCapture.

Edit

Menu |  |  | Description
Undo |  |  | Cancels the last action.
Redo |  |  | Restores the canceled action.
Cut |  |  | Cuts the selected objects.
Copy |  |  | Copies the selected objects to the Clipboard.
Paste |  |  | Pastes the copied object from the Clipboard.
Delete |  |  | Deletes the selected objects.
Document | Lock Document Boundaries |  | Locks the boundaries of a document to prevent it from being merged with other documents.
 | Unlock Document Boundaries |  | Unlocks the boundaries of a document.
 | Create Document |  | Creates a document from subsequent pages and documents.
 | Merge |  | Merges subsequent pages into one document.
 | Split |  | Splits selected documents into pages and documents.
 | Go To | Next Open Document | Navigates to the next opened document.
 |  | Previous Open Document | Navigates to the previous opened document.
Image | Despeckle |  | Despeckles the image.
 | Invert |  | Inverts the image.
 | Flip Horizontally |  | Flips the image horizontally (relative to the vertical axis).
 | Flip Vertically |  | Flips the image vertically (relative to the horizontal axis).
 | Rotate 90° Clockwise |  | Rotates the image 90° clockwise.
 | Rotate 90° Counterclockwise |  | Rotates the image 90° counterclockwise.
 | Rotate 180° |  | Rotates the image 180°.
 | Change Resolution... |  | Changes the resolution of the image.
 | Save As... |  | Saves the image with the specified name.
Select All |  |  | Selects all objects.
Find... |  |  | Finds specified text. note Note: In batch view, the text of all the columns is searched. In document view, the document fields is searched.
Find Next |  |  | Finds the next text that was previously specified.
Go To | Next Document |  | Goes to the next document in the batch.
 | Previous Document |  | Goes to the previous document in the batch.
 | Next Confirmed Field |  | Navigates to the next confirmed field. note Note: This command is available only if the Go to Uncertain Field on Confirmation option is enabled in the shortcut menu of the data form in the Document pane.
 | Previous Confirmed Field |  | Navigates to the previous confirmed field. note Note: This command is available only if the Go to Uncertain Field on Confirmation option is enabled in the shortcut menu of the data form in the Document pane.

View

Menu |  | Description
Working Batches |  | Opens the list of batches.
Queues |  | Opens the list of queues.
Details |  | Shows the documents and their pages as a detailed list.
Thumbnails |  | Shows document images as thumbnails.
Choose Columns... |  | Allows configuring the list of columns displayed in the detailed view mode.
Thumbnail options |  | Lets you show or hide error notifications and values of key fields in the Thumbnails view. Error messages are displayed beneath the name of the Document Definition, and values of key fields are displayed beneath the thumbnail and the section name.
Document Editor | Image Mode | Enables the document image viewing mode.
 | Data Mode | Enables the recognized data viewing mode.
 | Image Window | Allows positioning the image in the document window.
 | Errors Window | Allows selecting the location of the Errors pane in the Document pane and the types of errors to display in the list.
 | Image Scale | Allows selecting a suitable field image scale.
 | Data Text Scale | Allows selecting the font size used when displaying recognized data.
 | Show Toolbar | Shows/hides the toolbar in the document window. This toolbar allows correcting some of the matching errors, for example, you can add the field that wasn't found, and add or delete a table separator. This is mainly used when working with FlexiLayouts.
 | Show error message for active field | Changes the way errors are displayed for the current field.
 | Show Image in Black and White | Shows color and gray images in black and white.
 | Arrange Pages Vertically | Arranges the pages in the image window vertically.
 | Go to | Navigates to the previous or next opened document.
 | Go to Original Field | Navigates to the referenced field when working with a link to an existing field on the document form.
Thumbnails Size |  | Allows selecting the size of page thumbnails.
Toolbars |  | Shows/hides the toolbars.
Show Task Comment |  | Shows comments to the task.
Status Bar |  | Shows/hides the status bar.
Full Screen |  | Switches to full screen mode.
Refresh |  | Refreshes the information displayed.

Task

Menu |  | Description
Get Task |  | Gets a task from the selected queue.
Get Entire Batch |  | If the Operator is assigned the role whose access permissions allow editing batches, then in the batches view mode, the Operator can edit an opened batch. The command is available if at least one document of the batch belongs to the task. If all document belong to the same task, opens this task. If the documents belong to different tasks, creates a task for the batch in the Exceptions stage.
Close Task |  | Closes the current task and returns it to the Application Server as completed.
Reject Task |  | Rejects the current task and returns it to the Application Server.
Postpone Task... |  | Postpones the current task for later processing.
Send to | Exceptions... | Sends the current task to the Exceptions stage.
 | Rescanning... | Sends the current task to the Rescanning stage.
 | Stage... | Sends the current task to a selected stage. Sending documents to stages other than Exception and Rescanning is available for the Senior Verification Operator role type only.
Send tasks to... |  | Sends multiple tasks to a particular processing stage.
Mark Documents for Sending to | Exception... | Marks selected documents for sending to the Exceptions stage. When you close the task, marked documents will be sent to the stage.
 | Rescanning... | Marks selected documents for sending to the Rescanning stage. When you close the task, marked documents will be sent to the stage.
 | Stage... | Marks selected documents for sending to a selected stage. When you close the task, marked documents will be sent to the stage. Sending documents to stages other than Exception and Rescanning is available for the Senior Verification Operator role type only.
Add to Marked Documents... |  | Adds selected documents to already marked documents. In the dialog box that opens, select a desired stage from the list of earlier selected stages.
Clear Sending Mark |  | Deletes selected documents from the list of document marked for sending.
View Marked Documents... |  | Opens the Sending Marks dialog box where you can view the list of marks, delete a mark or change its comment.
Automatic Task Receive |  | Enables/disables automatic task receiving.
View Queue |  | Opens the selected queue.
Task Properties... |  | Opens the Task Properties dialog box where you can view the task details: task ID, creation time, priority, etc.

Recognition

Menu | Description
Analyze | Analyzes the pages of the documents and finds a suitable Document Definition.
Match Document Definition... | Matches the selected Document Definition to the selected document or page.
Recognize | Starts the recognition.
Clear Analysis Results | Clears the results of the automatic document assembly and Document Definition matching. note Note: If the Bound option is selected, the document will not be disassembled.

Verification

Menu | Description
Run Data Verification... | Starts verification.
Next Item to Verify | Goes to the next verification object.
Previous Item to Verify | Goes to the previous verification object.
Next Assembly Error | Goes to the next assembly error.
Previous Assembly Error | Goes to the previous assembly error.
Next Uncertain Character | Goes to the next uncertainly recognized character.
Previous Uncertain Character | Goes to the previous uncertainly recognized character.
Next Rule Error | Goes to the next rule error.
Previous Rule Error | Goes to the previous rule error.
Use for Training | Adds the selected document to the training batch; this document is further used to train or test the alternative.
Don't Use for Training | Removes the selected document from the training set.

Tools

Menu | Description
Update to Latest Version | Applies the project changes to the currently processed document.
Reanalyze | Re-analyzes the documents.
Rerecognize | Re-recognizes the documents.
Refresh Assembly | Re-assembles the pages into documents.
Recheck Rules | Re-checks rules.
Check Batch Integrity | Checks batch integrity.
Change Document Priority | Allows you to change the priority of currently processed documents. Possible values: ·Lowest, ·Low, ·Normal, ·High, ·Highest, ·Extra-High.
Change Batch Priority | Allows selecting batch priority.
Change Batch Type... | Changes the batch type.
Options... | Opens the Options dialog box, where you can configure different properties such as background task processing, window view, and other.

Help

Menu | Description
Help Topics | Opens the ABBYY FlexiCapture help file.
Web Help | Opens the ABBYY FlexiCapture help website.
Technical Support | Opens the Technical Support section in the program help.
How to Buy ABBYY Products | Opens the How to Buy ABBYY FlexiCapture section in the program help.
ABBYY Website | Opens the ABBYY website.
Send Feedback... | Allows sending feedback to ABBYY.
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 12 dialog box containing brief description of the program.


Verification Station toolbar

Show/Hide Hidden Text

The standard toolbar

Tool | Button | Description
Open Project from Server... |  | Opens a project from server.
Save Changes |  | Saves the changes.
Cut |  | When working with data in the document window, cuts the selected object.
Copy |  | Copies the selected object to the Clipboard.
Paste |  | Pastes the copied object from the Clipboard.
Delete |  | Deletes the selected object.
Undo |  | Cancels the last action.
Redo |  | Restores the canceled action.

Documents view

Tool | Button | Description
Details |  | Shows the documents and their pages as a detailed list.
Thumbnails |  | Shows thumbnails of document images.
Test Batches | TestBatches | Shows the list of test batches.
Work Batches | WorkBatches | Shows the list of work batches.
Refresh | Refresh | Refreshes information in the main window.

Navigation

Tools | Button | Description
Previous Item to Verify |  | Goes to the previous verification item; navigates through all errors, including assembly errors, uncertainly recognized characters, rule errors, key field mismatching, etc.
Next Item to Verify |  | Goes to the next verification item; navigates through all errors, including assembly errors, uncertainly recognized characters, rule errors, key field mismatching, etc.
Previous Document |  | Goes to the previous document.
Next Document |  | Goes to the next document.
Image editing

Tools | Button | Description
Autocrop |  | Automatically finds page borders on the image and crops the edges of the image, as well as corrects skewing and distortion
Crop |  | Crops the image borders selected manually by the user
Split |  | Splits the image into parts and saves each fragment as a separate page
Invert |  | Inverts the image colors
Rotate 90° Clockwise |  | Rotates the image 90° clockwise
Rotate 90° Counterclockwise |  | Rotates the image 90° counterclockwise
Rotate 180° |  | Rotates the image by 180°
Despeckle |  | Removes blemishes from the image

Queues and tasks

Tool | Button | Description
Get Task |  | Opens a task from the selected queue
Close Task |  | Returns the task to the server.
Mark for sending to exception |  | Marks the document for sending to Exceptions (for the Senior Verification Operator - to the selected processing stage). When closing or rejecting the task, you will be prompted to send marked documents to Exceptions
Mark for sending to rescanning |  | Marks the document for sending to Rescanning. When closing or rejecting the task, you will be prompted to send marked documents to Rescanning.
Unmark documents |  | Unmarks the selected document marked for sending to Exceptions or Rescanning.
Postpone Task... |  | Postpones the task.
Reject Task |  | Cancels the task (it will be sent to another Operator by the server).
Automatic Task Receive |  | Enables/disables automatic task getting.


Data Verification Station main window

The main window of the program shows the names of the queues tasks are taken from (data verification queues).

After you get a task, the Group and Field Verification windows will open consecutively.

The main menu, with toolbars below it, is located on the top of the window.

The Status Bar is located on the bottom of the window. The Status Bar shows the status of the program and the operations being carried out. When you position the cursor over menu items or buttons, the Status Bar will display their short descriptions.

listPicture Data Verification Station menu

listPicture Data Verification Station toolbars


Data Verification Station menu

Show/Hide Hidden Text

Project

Menu | Description
Open Project from Server... | Opens an existing project from the Application Server.
Close Project | Closes the current project.
Recent Projects | Opens one of the previously opened projects.
Exit | Closes ABBYY FlexiCapture.

View

Menu | Description
Toolbars | Shows/hides the toolbars.
Status Bar | Shows/hides the status bar.
Full Screen | Switches to full screen mode.
Refresh | Refreshes the information displayed.

Tasks

Menu | Description
Get Task | Gets a task from the selected queue.
Reject Task | Rejects the current task and returns it to the Application Server.
Send Task to Exceptions... | Sends the current task to Exceptions.
Automatic Task Receive | Enables/disables automatic task receive mode.

Tools

Menu | Description
Options... | Opens the Options dialog box, where you can configure different properties such as background task processing, window view, and other.

Help

Menu | Description
Help Topics | Opens the ABBYY FlexiCapture help file.
Web Help | Opens the ABBYY FlexiCapture help website.
Technical Support | Opens the Technical Support section in the program help.
How to Buy ABBYY Products | Opens the How to Buy ABBYY FlexiCapture section in the program help.
ABBYY Website | Opens the ABBYY website.
Send Feedback... | Allows sending feedback to ABBYY.
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 12 dialog box containing brief description of the program.


Data Verification Station toolbars

Show/Hide Hidden Text

Queues and tasks

Tool | Button | Description
Get Task |  | Opens a task from the selected queue.
Reject Task |  | Rejects the task (it will be later sent to another Operator by the server).
Refresh | Refresh | Refreshes information in the main window.
Automatic Task Receive |  | Enables/disables automatic task receive mode.


Customizing adjacent area

You can customize displaying of characters or field surroundings. In the main menu, select Tools → Options... and then open the Adjacent Area tab.

1.Select the adjacent area dimension in the Size drop-down list.

2.Set the opacity of the adjacent area using the Contrast slider.

You can see an example of an image in the Preview box.

note Note: Adjacent area size changing will take effect on next verification session


Colors

You can customize background colors for different objects. In the Group Verification window, select Tools → Options... and then open the Colors tab.

To set a background color for an object, press button next to its description. Then select a color in the Color window.


Document Definition editor window

Show/Hide Hidden Text

Document Definitions are created and edited in the Document Definition editor window.

To open the Document Definition editor, from the main window of the program:

1.Select the menu item Project → Document Definitions....

2.In the Document Definitions dialog box that opens, highlight the Document Definition name and click Edit....

The Document Definition editor window also opens when the Document Definition Wizard finishes.

Show Document Definition editor window

The Document Definition editor window consists of three parts:

1.The page image with the marking of fields and static elements shown at the top-left.
The program has two modes for handling fields and static elements:

othe Field Regions mode enabled by clicking the [image] button;

oStatic Elements mode enabled by clicking the [image] button.

2.The editor for configuring data presentation is at the bottom left.

3.The right side of the window contains the Document Structure pane. The Fields tab of this pane contains a list of all fields in the Document Definition, and the Pages tab contains thumbnails of all pages in the document. You can change the order of the pages by dragging the thumbnails or by using shortcut menu commands (right-click a thumbnail and click Move → Up or Down on the shortcut menu). The order of the pages in the Pages pane affects document assembly settings in the Document Definition.

listPicture Document Definition editor menu

listPicture Document Definition editor toolbars


The Document Definition editor menu

Navigation: ABBYY FlexiCapture interface > Document Definition editor window >

Return to chapter overview

Document Definition editor menu

Show/Hide Hidden Text

Document Definition

Menu item |  | Description
Add Pages... |  | Adds a new page image to the Document Definition.
Add Document Section... |  | Adds a new section to the batch.
Add Summary Section... |  | Adds a summary section to the batch
Import Document Section... |  | Imports the selected document section.
Add Link to Document... |  | Adds a link to another Document Definition to the Document Definition.
Script Modules | Rule Script... | Opens the Rule Global Script Module of the Script Editor. For more about script modules, see Using scripts in FlexiCapture.
 | Export Script... | Opens the Export Global Script Module of the Script Editor. For more about script modules, see Using scripts in FlexiCapture.
Export Settings... |  | Opens the Export Settings dialog box, where you can configure data export options.
Document Definition Properties... |  | Opens a dialog box where you can view and edit the properties of the Document Definition.
Localization | Localizable Script Messages... | Opens a dialog box where you can view and edit error messages. For more information, see Localizing a Document Definition.
 | Localization Options... | Opens the localization options for the Document Definition. For more information, see Localizing a Document Definition.
Save |  | Saves your changes.
Close |  | Closes the Document Definition editor.

Edit

Menu item |  | Description
Undo |  | Undoes the previous action.
Redo |  | Redoes the undone action.
Cut |  | Cuts highlighted objects.
Copy |  | Copies highlighted objects to the Clipboard.
Paste |  | Pastes the Clipboard contents to the user-specified location.
Delete |  | Deletes highlighted objects.
Delete Region |  | Removes regions from the images of highlighted objects.
Select All |  | Selects all.
Select Regions by Type... |  | Detects objects of a certain type.
Select Fields by Type... |  | Highlights fields of a specific type on the image.
Create Field | Text | Adds a text entry field to the document structure (without adding a region on the image).
 | Checkmark | Adds a checkmark field to the document structure (without adding a region on the image).
 | Checkmark Group | Adds a checkmark group field to the document structure (without adding a region on the image).
 | Barcode | Adds a barcode field to the document structure (without adding a region on the image).
 | Picture | Adds a picture field to the document structure (without adding a region on the image).
 | Table | Adds a table field to the document structure (without adding a region on the image).
 | Group | Adds a group of fields to the document structure (without adding a region on the image).
 | Service Field | Adds a service field to the document structure (without adding a region on the image).
 | Link to Existing Field | Adds a link to an existing field
Copy Text from Image... |  | Gets text from a region and stores it in the Clipboard. After selecting this command, highlight the region where the desired text is located.
Image... | Despeckle | Removes noise from the image.
 | Invert | Inverts the image.
 | Rotate 90° Clockwise | Rotates the image 90° clockwise.
 | Rotate 90° Counterclockwise | Rotates the image 90° counterclockwise.
 | Rotate 180° | Rotates the image 180°.
 | Change Resolution... | Opens the Set Resolution dialog box, where you can specify a new image resolution value.
 | Save As... | Saves the image to a file.
 | Replace... | Replaces the image with another one.

View

Menu item |  | Description
Image Layout | Static Elements | Switches to Static Elements mode.
 | Field Regions | Switches to Field Regions mode.
Document Structure | Show Document Structure | Shows/hides the document structure window.
 | Fields | Switches the Document Structure window to the Fields mode.
 | Pages | Switches the Document Structure window to the Pages mode.
Data Form |  | Shows/hides the data form.
Data Form Text Size | Very Large | Selects the largest font for the text displayed in the data from.
 | Large | Selects a large-sized font for the text displayed in the data from.
 | Medium | Selects a medium-sized font for the text displayed in the data from.
 | Small | Selects a small-sized font for the text displayed in the data from.
 | Very Small | Select the smallest font for the text displayed in the data from.
Layout Toolbar | Horizontal | Docks the toolbar of the image layout window horizontally.
 | Vertical | Docks the toolbar of the image layout window vertically.
Errors Window | Top | Places the errors window at the top of the screen.
 | Bottom | Places the errors window at the bottom of the screen.
 | Left | Places the errors window on the left.
 | Right | Places the errors window on the right.
 | Show Assembly Errors | Shows / hides the assembly errors.
 | Show Multi-Field Rule Errors | Shows / hides the multi field rule errors.
 | Show Single-Field Rule Errors | Shows / hides the single field rule errors.
 | Show Unmatched Region Errors | Shows / hides the unmatched regions errors.
Status Bar |  | Shows / hides the status bar.
Show Image in Black and White |  | Shows color and grayscale images in black-and-white.
Image Scale | Fit to Width | Fits the width of the page to the display area.
 | Fit to Height | Fits the height of the page to the display area.
 | Best Fit | Fits the entire page to the display area.
 | 400% | Scales the image to 400% of the original size.
 | 200% | Scales the image to 200% of the original size.
 | 100% | Scales the image to 100% of the original size.
 | 75% | Scales the image to 75% of the original size.
 | 50% | Scales the image to 50% of the original size.
 | 25% | Scales the image to 25% of the original size.
 | Custom... | Lets you select your own custom scaling setting.
 | Zoom in | Makes the image larger.
 | Zoom out | Makes the image smaller.
Properties... |  | Opens a dialog box where you can view and edit the properties of the highlighted object.

Layout

Menu item |  | Description
Adjust Region |  | Adjusts the positions of the selected form elements.
Align Regions | Left | Aligns the selected form elements along the left-hand side of the last selected element.
 | Right | Aligns the selected form elements along the right-hand side of the last selected element.
 | Top | Aligns the selected form elements along the top side of the last selected element.
 | Bottom | Aligns the selected form elements along the bottom side of the last selected element.
Space Evenly | Across | Evenly distributes the selected elements horizontally.
 | Down | Evenly distributes the selected elements vertically.
Suggest Name |  | Suggests the explanatory text that is closest to the field region to be used as the name of the field.
Get Name from Image... |  | Changes the name of the field to a recognized text fragment located anywhere on the page.
Group |  | Groups highlighted objects.
Ungroup |  | Ungroups highlighted objects.
Duplicate Field |  | Creates a copy of a field or group of fields.
Continue Region... |  | Creates a field with multiple regions.
New Instance... |  | Creates a field with multiple instances.

Form

Menu item |  | Description
Restore Default Size |  | Restores the default size of the selected form element.
Margins | Adjust | Sets the same margin size for all the selected elements.
 | Reset All to Default | Restores the default margin size for the selected elements.
 | Delete All | Deletes the margins for the selected elements.
 | Reset Left to Default | Restores the default left margin size for the selected elements.
 | Delete Left | Deletes the left margin for the selected elements.
 | Reset Right to Default | Restores the default right margin size for the selected elements.
 | Delete Right | Deletes the right margin for the selected elements.
 | Reset Top to Default | Restores the default top margin size for the selected elements.
 | Delete Top | Deletes the top margin for the selected elements.
 | Reset Bottom to Default | Restores the default bottom margin size for the selected elements.
 | Delete Bottom | Deletes the bottom margin for the selected elements.
Horizontal Alignment | Left | Aligns the selected form elements along the left-hand side of the last selected element.
 | Right | Aligns the selected form elements along the right-hand side of the last selected element.
 | Center | Aligns the selected form elements along the center of the last selected element, without shifting the elements vertically.
 | Stretched | Evenly distributes the selected elements horizontally.
Vertical Alignment | Top | Aligns the selected form elements along the top side of the last selected element.
 | Bottom | Aligns the selected form elements along the bottom side of the last selected element.
 | Center | Aligns the selected form elements along the center of the last selected element, without shifting the elements horizontally.
 | Stretched | Evenly distributes the selected elements vertically.
Select | Select Form Control | Selects the control element of the field.
 | Select Cell | Selects the cell that contains the selected field.
 | Select Caption | Selects the caption related to the field.
 | Select Field Picture | Selects the picture related to the field.
 | Select Field | Selects the field related to the caption.
 | Select All Cells | Selects all the cells on the form.
 | Select Row Cells | Selects all the cells in the row that contains the selected cell.
 | Select Columns Cells | Selects all the cells in the column that contains the selected cell.
 | Deselect Cells | Clears cell selection.
Group | Group | Groups the selected elements.
 | Ungroup | Ungroups the selected elements.
 | Lock Group | Locks the selected group of fields. Locked elements cannot be moved.
 | Unlock Group | Unlocks the selected group of fields.
Add Caption |  | Adds the caption of the selected field which corresponds to the document structure.
Add Field Picture |  | Adds the picture of the selected field.
Insert Control | Text | Adds explanatory text to the data form.
 | Button | Adds a button to the data form. The button opens a dialog box enabling the user to check the field value against a database using a rule.
 | Field | Adds a field to the data form. This command is only available if at least one of the fields is missing in the data form.
Show as Table |  | Displays the selected repeating group of fields as a table on the form.
Columns and Rows | Create Columns and Rows... | Creates a table in an empty data form. Range of allowed values: 1 to 1000.
 | Add Rows Above... | Adds 1 to 10 rows above the row that contains the selected cell.
 | Add Rows Below... | Adds 1 to 10 rows below the row that contains the selected cell.
 | Add Columns Left... | Adds 1 to 10 rows to the left of the row that contains the selected cell.
 | Add Columns Right... | Adds 1 to 10 rows to the right of the row that contains the selected cell.
 | Remove Row | Deletes the row that contains the selected cell.
 | Remove Column | Deletes the column that contains the selected cell.
 | Remove Empty Columns and Rows | Deletes any columns and rows that contain no elements.
 | Restore Column Sizes | Restores the default column sizes.
 | Restore Default View | Restores the default row sizes.
Merge Cells |  | Merges adjoining cells.
Split Cells |  | Splits previously merged cells.
Tab Order... |  | Opens the Tab Order... dialog box, where you can view or edit the order in which the TAB key moves the input focus from one field to another during verification.
Restore Default View |  | Restores the original appearance of the form. note Note: All the changes made by the user will be lost.

Testing

Menu item |  |  | Description
Run Test |  |  | Starts testing the Document Definition on a document image.
Finish Test |  |  | Stops testing the Document Definition.
Image Mode |  |  | Enables the default document image viewing mode.
Data Mode |  |  | Enables the default document data viewing mode.
Layout | Image Window | Top | Places the image window at the top of the screen.
 |  | Bottom | Places the image window at the bottom of the screen.
 |  | Left | Places the image window on the left.
 |  | Right | Places the image window on the right.
 | Show Toolbar |  | Shows/hides the toolbar in data mode. In the image mode, the toolbar is always displayed and cannot be hidden.
Show error message for active field |  |  | Changes the way errors are displayed for the current field.
Verification |  | Next Item to Verify | Goes to the next item to be verified.
 |  | Previous Item to Verify | Goes to the previous item to be verified.
 |  | Next Uncertain Character | Goes to the next low-confidence character.
 |  | Previous Uncertain Character | Goes to the previous low-confidence character.
 |  | Next Rule Error | Goes to the next rule error.
 |  | Previous Rule Error | Goes to the previous rule error.

Batch

Menu item |  | Description
Switch to Test Batch... |  | Allows testing the Document Definition using test batches.
Close Test Batch... |  | Closes the test batch.
View | Details | Switches to Details view.
 | Thumbnails | Switches to Thumbnails view.
 | Customize Documents Table... | Opens the Choose Columns dialog box, where you can select columns to display and customize their view.
Load Images... |  | Opens the Load Images dialog box, where you can select images to be loaded and specify image pre-processing options.
Scan Images... |  | Opens a dialog box where you can scan images to be added to the batch.
Import Images... |  | Opens a dialog box where you can select an image import profile.
Recognize |  | Recognizes the batch.
Run Data Verification... |  | Runs verification on the batch.
Export |  | Exports the batch.
Export to | Data to Files... | Opens a dialog box where you can specify data saving options.
 | Images to Files... | Opens a dialog box where you can specify image saving options.
 | Database... | Opens a dialog box where you can configure the database connection settings.

Tools

Menu item | Description
Autodetect Objects by Type... | Automatically detects and highlights fields and static elements of a certain type (depending on the mode).
Update Index Fields | Updates links to existing fields
Check Document Definition | Checks the Document Definition.
Match Section | Checks the matching of a Document Definition section.
Update FlexiLayouts... | Allows updating used FlexiLayouts.
Update Definition with XFD... | Updates a Document Definition created from an XML Form Definition. For more information, see Using XFD files to update Document Definitions.
Options... | Opens a dialog box where you can select GUI colors and view or modify the keyboard shortcuts.

Help

Menu item | Description
Help Topics | Opens ABBYY FlexiCapture help file.
Web Help | Opens ABBYY FlexiCapture help website.
Send Feedback... | Allows users to send comments and suggestions to ABBYY.


Document Definition editor toolbars

Show/Hide Hidden Text

Standard toolbar

Name | Button | Description
Save Changes |  | Saves changes
Cut |  | Cuts a selected object when you work with data in the document window
Copy |  | Copies a selected object
Paste |  | Pastes a previously copied object from the clipboard
Delete |  | Deletes a highlighted object
Undo |  | Undoes the previous action
Redo |  | Redoes a previously undone action
Check Document Definition |  | Checks a Document Definition. Check results display in the bottom part of the Document Definition editor window

Toolbar in the image layout window

The toolbar in the image layout window is used to create static elements and Document Definition fields. The set of buttons on the toolbar changes according to the selected mode.

In Static Elements mode:

In Field Regions mode:

This toolbar can be docked horizontally or vertically. The orientation of the toolbar can be changed under View → Layout Toolbar.

Name | Button | Description
General
Static Elements Mode |  | Switches to Static Elements Mode
Field Regions Mode |  | Switches to Field Regions Mode
Zoom |  | Increases the image scale
Auto Detect Objects | Autodetect | Automatically detects objects on the image. Select this tool and then left-click in the object region.
Select Regions |  | Highlights regions of objects that have been marked on the image. To highlight a region, select this tool and left-click in the object region.
In the static elements mode
Create Anchor | Anchor | Creates an anchor. Select this tool and then use the mouse to frame the anchor with a rectangle.
Create Separator | Separator | Creates a separator. Select this tool and then use the mouse to frame the separator with a rectangle.
Create Anchor Text |  | Creates an anchor text. Select this tool and then use the mouse to frame the text with a rectangle.
Create Anchor Barcode | Bar-code | Creates an anchor barcode. Select this tool and then use the mouse to frame the barcode with a rectangle.
In the field marking mode
Create Text | Text | Creates a text entry field. Select this tool and then use the mouse to frame the text entry region with a rectangle.
Create Checkmark | Checkmark | Creates a checkmark field. Select this tool and then use the mouse to frame the checkmark region with a rectangle.
Create Checkmark Group |  | Creates a checkmark group. Select this tool and then use the mouse to frame the checkmark group with a rectangle.
Create Barcode | Bar-code | Creates a barcode field. Select this tool and then use the mouse to frame the barcode with a rectangle.
Create Picture |  | Creates a picture field. Select this tool and then use the mouse to frame the picture with a rectangle.
Create Table | Table | Creates a table field. Select this tool and then use the mouse to frame the table with a rectangle. Additional table marking buttons will appear on the toolbar.
Create Group |  | Creates a field group. Select this tool and then use the mouse to frame the field group with a rectangle.
Create Region for Field without Region |  | Creates a region for a field that is included in the document structure but does not have a region on the image. Select this tool and then use the mouse to frame the field region with a rectangle. Select a name from the dropdown list. (The list shows names of fields that do not have a region on the image).
Create Unrecognizable Region |  | Highlights a field that will be excluded from the recognition process.
Buttons for table marking Shown if at least one table has been created in the given Document Definition section
Delete Separator |  | Deletes a separator


Group verification window

The Group Verification window appears at the start of data verification.

This window is used to visually check the characters recognized with the same value. Identically recognized characters are displayed to allow identification and correction of the characters that stand out. See Group verification.

listPicture Group verification menu

listPicture Group verification toolbars


Group verification menu

Show/Hide Hidden Text

Verification

Menu | Description
Confirm All | Confirms correct verification of all characters and goes to the next stage
Postpone All | Postpones verification of all characters and marks them with a question mark
Toggle | Postpones verification of the selected character and marks it with a question mark
Next Page | Goes to the next page if all the characters don't fit in one screen
Previous Page | Goes to the previous page if all the characters don't fit in one screen
Close | Closes the verification window

Edit

Menu | Description
Undo | Cancels the last action
Redo | Restores the canceled action
Select All | Selects all characters

View

Menu |  | Description
Field Image | Show Field Image | Shows/hides the image of the field with the current character
 | At Top | Positions the field image on the top of the verification window
 | At Bottom | Positions the field image on the bottom of the verification window
 | Image Scale | Allows selecting a suitable field image scale
Show Field Image |  | Shows the image of the character
Black&White Images |  | Shows color and grayscale images of pages in the black-and-white mode
Toolbar |  | Shows/hides the toolbars
Info Bar |  | Shows/hides the info bar
Status Bar |  | Shows/ hides the status bar
Character Size |  | Allows selecting the suitable character size
Full Screen |  | Switches to full screen mode

Tools

Menu | Description
Options... | Allows setting up the area adjacent to the character

Help

Menu | Description
Help Topics | Opens the ABBYY FlexiCapture help file.
Web Help | Opens the ABBYY FlexiCapture help website.
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 12 dialog box with brief information about the program.


Group verification toolbars

Show/Hide Hidden Text

The standard toolbar

Tool | Button | Description
Previous Page |  | Goes to the previous page, if all characters don't fit in one screen
Next Page |  | Goes to the next page, if all characters don't fit in one screen
Confirm All |  | Confirms correct recognition of all characters and goes to the next stage
Change Character State |  | Changes character state to rejected and back
Undo |  | Cancels the last action
Redo |  | Restores the canceled action


Field verification window

The field verification window appears after group verification finishes.

This window is used to visually verify uncertainly recognized characters in the context of the whole field. See Field verification.

listPicture Field verification menu

listPicture Field verification toolbars


Field verification menu

Show/Hide Hidden Text

Verification

Menu | Description
Confirm Field | Confirms the field
Postpone | Postpones field verification
Next Uncertain Character | Goes to the next uncertainly recognized character
Previous Uncertain Character | Goes to the previous uncertainly recognized character
Next Field | Goes to the next field
Previous Field | Goes to the previous field
Close | Closes the verification window

Edit

Menu | Description
Undo | Cancels the last action
Redo | Restores the canceled action
Cut | Cuts the selected objects
Copy | Copies the selected objects to the Clipboard
Paste | Pastes the copied object from the Clipboard
Delete | Deletes the selected objects
Delete All | Deletes all objects
Select All | Selects all objects
Insert Line Break | Inserts a line break
Merge Characters | Merges the selected characters if a character was split into multiple characters during recognition

View

Menu |  | Description
Field Data | Recognized Text | Shows/hides the recognized text
 | Character Images Cutting | Switches to field view with character image cutting
 | Show Special Characters | Shows/hides special characters
Field Image | Show Field Image | Shows/hides the image of the field with the current character
 | At Top | Positions the field image on the top of the verification window
 | At Bottom | Positions the field image on the bottom of the verification window
 | Image Scale | Allows selecting a suitable field image scale
Analogous Fields |  | Shows/hides similar fields in other documents
Show Character Image |  | Shows the image of the character
Black&White Images |  | Shows color and grayscale images of pages in the black-and-white mode
Toolbar |  | Shows/hides the main window toolbars
Info Bar |  | Shows/hides the info bar
Status Bar |  | Shows/hides the status bar
Character Size |  | Allows selecting the suitable character size
Full Screen |  | Switches to full screen mode

Tools

Menu | Description
Options... | Allows setting up the area adjacent to the character

Help

Menu | Description
Help Topics | Opens the ABBYY FlexiCapture help file.
Web Help | Opens the ABBYY FlexiCapture help website.
About ABBYY FlexiCapture | Opens the About ABBYY FlexiCapture 12 dialog box with brief information about the program.


Field verification toolbars

Show/Hide Hidden Text

The standard toolbar

Tool | Button | Description
Previous Field |  | Goes to the previous field
Next Field |  | Goes to the next field
Confirm Field/Skip Field |  | Confirms correct recognition of all characters in the field and goes to the next field. If the field value doesn't correspond to the field format, the button name will change to Skip Field. If the field value cannot be corrected, it can either be skipped or postponed.
Postpone Field |  | Postpones verification of the field, if it is impossible to correct it
Previous Uncertain Character |  | Goes to the previous uncertainly recognized character
Next Uncertain Character |  | Goes to the next uncertainly recognized character
Undo |  | Cancels the last action
Redo |  | Restores the canceled action


Script editor window

The script editor allows you to write and edit scripts.

You can select any of the following scripting languages for your script: VBScript, JScript.Compact, JScript, C#.Net, VisualBasic.Net or JScript.Net.

The language you select will remain selected the next time you start the editor.

Checking scripts

To begin debugging a script, you can:

·Press F9.

·Click the Check button on the toolbar.

·Open the Tools menu and click Check Script.

If no errors are found, the Script is correct. message will be displayed.

If the script contains errors, they will be listed in the error pane. Double-click an error message in the error pane to jump to the fragment with the error in the script editor.

note Note: You can save scripts with errors and fix the errors later.

By default, the error pane is displayed at the bottom of the editor. You can change its size of this pane using the mouse. You can also change its location (see below for details).

Customizing the editor

You can use the View menu to customize the appearance of the script editor. The View menu contains the following items:

1.Errors Window
Changes the position of the error pane in the editor. You can choose to place it at the top, at the bottom (selected by default), on the right or on the left.

2.Toolbar
Shows or hides the toolbar.

3.Status Bar
Shows or hides the status bar.

Adding a custom function

To add a custom function, select one of the following global modules in the drop-down list on the toolbar: Script in <object_name\document_definition_name>, Rule Global Script Module or Export Global Script Module.

For more information about scripting in ABBYY FlexiCapture, see Using scripts.

note Note: You cannot use RTL languages for text constants in the script editor. If you need to add RTL text into your script, use one of the following workarounds:

1.Place your RTL text into a user script message or an environment variable.

2.Use an external assembly for your project or Document Definition (for more information, see External assemblies).


Appendix

Using scripts in ABBYY FlexiCapture

Keyboard Shortcuts

Supported recognition languages

Fonts for correct characters rendering

Supported text types

Supported barcode types

Supported input formats

Export file formats

Date formats

Alphabet used in regular expressions

Third-party technologies


Using scripts in ABBYY FlexiCapture

This section describes how to use scripts for customizing processing stages and the stations interface in ABBYY FlexiCapture.

Supported scripting languages

ABBYY FlexiCapture supports the following scripting languages: C#.Net, VisualBasic.Net, JScript.Net, JScript®, JScript.Compact and VBScript.

listPicture Specifics of scripts written in .Net languages

Specifics of usage

In VBScript it is mandatory to use the keyword "Me" when passing a NULL value (the alternative of "this" in JScript), while in .Net languages the NULL value is passed as an ordinary parameter.

For each script, access permissions for all its parameters are originally known. Access permissions determine the subset of methods that are available from scripts. When addressing the object methods, permissions for returned objects are always inherited from the source object (exceptions from this rule are described in comments to the corresponding methods).

note Note: Script objects cannot be used after completion of the script because of indeterminate object behavior.

note Note: For debugging scripts written in ABBYY FlexiCapture script editor, the MessageBox method can be used.

Custom functions

The script editor allows users to create their own functions and procedures and then to call them from the code of scripts.

Custom functions and procedures should be written to the global module, which can be accessed from the Script Editor. For this, from the drop-down list on the toolbar of the script editor, select an available global module: Rule Global Script Module, Export Global Script Module, Events or NonInteractiveProcessor.

All functions within one module must be written in the same language. The core code of a script can be written in a language different from that used in the corresponding global module.

Global functions written in JScript®, JScript.Compact and VBScript scripting languages can be called from scripts also written in one of these languages. For example, from the code of a rule written in VBScript you can call a function contained in the global module that is written in JScript.

Global functions written in .Net languages can be called from scripts which are written in one of .Net languages (C#.Net, VisualBasic.Net or JScript.Net).

To call a function from its global module, a corresponding prefix (Rules, Export, Events or NonInteractiveProcessor) must be used. For example, the function DoSomething from the Rule Global Script Module module must be called as follows: Rules.DoSomething ().

note Note: For scripts written in .Net languages, functions from global modules are called by their names without using prefixes.

note Note: You cannot use RTL languages for text constants in the script editor. If you need to add RTL text into your script, use one of the following workarounds:

1.Place your RTL text into a user script message or an environment variable.

2.Use an external assembly for your project or Document Definition (for more information, see External assemblies).

Script execution timeout

The default timeouts are 30 seconds for export and 10 seconds for other scripts.

To change the default timeouts, specify the following value in the registry:

HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller\ScriptSupport\DefaultScriptTimeout

The value of a timeout in the registry is specified in milliseconds. If a script takes longer to execute than the specified timeout, it will be terminated and an error message will be returned "Script execution timeout". If the script is a part of import, recognition or export task, a similar error message will be recorded in the log.

warning Important! Script execution timeout applies for scripts written in JScript and VBScript only.

warning Important! To change timeouts for scripts executed under the NetworkService, you need to modify the registry branch for the corresponding user profile.

Object model

The object model is compatible with scripts created in earlier versions of ABBYY FlexiCapture.

Read more about the object model


Specifics of scripts written in .Net languages

This section describes specifics of scripts written in .Net languages.

·Additional keywords are not used to access object members. For example, in rules written in .Net languages the context of the rule is passed as a parameter with the name "Context".

·.Net assemblies should be compiled using Microsoft .Net Framework 4.0 and above. You can specify a desired .Net Framework version in the properties of your Visual Studio project.
It is possible to add an external assembly that can be used in scripts and global modules. Both standard and compiled user assemblies can be used. All classes of the added assemblies will be available in scripts and global modules. See External Assemblies for details.

·Once the script is compiled, a compiled script body is stored in the same location where the script is defined. Thus .Net script can occupy more space than other scripts.

·All FlexiCapture objects are defined as COM-objects, so functioning of .Net scripts can be slowed down when addressing object fields frequently because of managed-unmanaged transitions.

·FlexiCapture objects do not support multithreading.

·For debugging .Net scripts, the System.Diagnostics.Debugger.Break method is used.

·When debugging .Net scripts, you also need a *.pdb file with debugging information. This file can be very large and we do not recommend storing it in the project together with your scripts. However, when debugging a .Net script, you must specify that the script should be compiled using certain debugging information.
If you use Microsoft Visual Studio 2010, you can attach to the process where the .Net code is executed.

·FlexiCapture script objects are stored in the ControllerInterop.dll and ShellInterop.dll assemblies and belong to the ABBYY.FlexiCapture and ABBYY.FlexiCapture.ClientUI namespaces, accordingly. The assemblies are located in the root folder of the program.

·All ABBYY FlexiCapture script objects are accessible under their own names from the ABBYY.FlexiCapture and ABBYY.FlexiCapture.ClientUI namespaces. For example:

ABBYY.FlexiCapture.IDocument document = Batch.Documents[i];>
ABBYY.FlexiCapture.ClientUI.IToolbars toolbars = TaskWindow.MainWindow.Toolbars;

·The "Using" directives can be written in the beginning of the script body together with comments and empty strings. The same syntax as in the programming language is used (using for C#.Net, Import for JScript.Net and Imports for VisualBasic.Net). For example:

using System.Drawing;
Image img = Image.FromFile( @"D:\2.png" );
FCTools.ShowMessage( img.VerticalResolution.ToString(), false );

note Note: You can use the using directive in the script editor, provided that the keyword "using" occurs before the first line of the executable code. For example:

using ABBYY.FlexiCapture;
using ABBYY.FlexiCapture.ClientUI;

·In .Net scripts, functions from all global modules are called directly without using the name of the global module.

note Note: Classes defined in the Rule Global Script Module and in the Export Global Script Module must have different names. Otherwise, when creating an instance of class in the code of rule, an error will occur.

·If you do not want to specify the value of an optional parameter of the function (for functions with optional parameters), you must pass System.null or System.Type.Missing instead.

note Note: For scripts, that are executed noninteractively (that is by FlexiEx.exe process instead of FlexiCapture.exe), the Debug button is not displayed for the FlexiEx.exe process in the "Checking for solution" window by default (for scripts, that contain a breakpoint). For the button to be displayed, click on the Action Center icon on your task bar and select Change Action Center settings → Problem reporting settings → Never check for solutions.


External assemblies

It is possible to use external assemblies in scripts and global modules. Both standard and compiled user assemblies can be used.

Adding external assemblies

An assembly can be added on the .Net References tab of the batch type properties, project properties or Document Definition properties. All classes of the added assemblies are available in scripts and global modules.

Assemblies added in batch type properties and Document Definition properties are available to a particular batch type or Document Definition respectively. Assemblies added in project properties are shared assemblies which are available to all batch types and Document Definitions of the given project. So if you need to use the same assembly for different batch types and Document Definitions, you can use a shared assembly. If a shared assembly must be updated, you need to update it in project properties only.

To add an assembly in project properties, do the following:

1.On the .Net References of the project properties, click Add...

2.In the Add Assembly dialog box that opens select the type: Standard assembly name or Attached file.

3.Depending on the selected type either enter the standard assembly name or browse to an assembly file.

A shared assembly is added to newly created batch types automatically. To add a shared to Document Definitions and existing batch types, do the following:

1.On the .Net References of batch type or Document Definition properties, click Add...

2.In the Add Assembly dialog box that opens select Shared assembly.

3.Select the assembly name from the Reference list.

note Note: You cannot add a shared assembly with a name which is similar to the name of an existing standard assembly.

Below is a sample code of the user assembly that contains a namespace, a class and a method of this class:

namespace TestNameSpace
{
public class Test
{
public void Show(string text)
{
// will show text by standard FlexiCapture means static method void ShowMessage(string text, bool IsError) from static class FCTools ABBYY.FlexiCapture.FCTools.ShowMessage(text, false);
}
}
}

For classes and methods of an added assembly to be accessible to the event handler scripts, it must be added on the .Net References tab of the batch type properties (for a particular batch type) or project properties (for the Default batch type).

For the following scripts, external assemblies are added on the .Net References tab of the Document Definition properties:

·script rule

·autocorrection script

·export script

·user script

·document assembly script

·custom recognition script

The script using classes and methods from the external assembly must contain the following code:

TestNameSpace.Test test = new TestNameSpace.Test(); // creates an object of Test class
test.Show("hello world"); // calls void Show() method from Test class

Debugging external assemblies

When debugging external assemblies, both the assembly file and a .pdb-file with symbolic information are required. Only assemblies with loaded .pbd files can be debugged. As pbd-files are rather large, it is better to disable loading symbolic information in the working project.

Registry keys that control the loading of symbolic information

You can use the following registry keys to specify whether .pdb-files should be loaded:

·HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller\ScriptSupport\ [LoadSymbolsFromOriginalPath] - specifies whether to load pdb-files from the original folders of the assembly files (set the key value to true to load .pdb-files);

·HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller\ScriptSupport\ [PDBSearchLocations] = - sets the search paths for .pbd-files (paths must be listed separated by semicolons; the search result is a .pdb-file with symbolic information whose name coincides with an assembly name).

These keys are not created in the registry by default. If required, the Administrator may add these keys into the registry of the user's operating system.

For the changes in the registry to take effect, you need to restart the program.

For debugging an assembly, connection to managed code must be used.


Object model

Specifics of the used object model are described below.

Working with collections

All collections in the object model support the following methods:

Name | Type | Access | Description
Count | int | Read-only | The number of items in the collection
Item( index : int ) | ItemInterface | Read-only | Retrieves an item of the collection with the given index. Enumeration begins with "0".

note Note: Instead of using the method Item you can also address items of the collection using parentheses or square brackets depending on the selected language. In JScript, VBScript and Visual Basic.Net languages, parentheses are used. In C#.Net it is only possible to use square brackets. In JScript.Net both parentheses and square brackets can be used.

For example,

Items( 1 ).Text = "Hello" or Items[ 1 ].Text = "Hello"

All collections can be used in "for each" and similar constructs.

Working with recurring fields and tables

All document fields except tables can be recurring.

In the document structure recurring fields are represented with a special prototype field which has a nonempty Items collection.

A prototype field has neither child items nor value. It is used only for storing the set of the field iterations. Child fields and/or field values can be attributes of the field instances only, which are available through the Items method of the IField object.

Tables always have the Rows collection (Rows is the synonym of Items). The Rows collection contains only those rows of the table whose cells can be accessed through the method Children of the rows.

Composing paths to fields

Field, HasField and IndexedItemValue methods of the IDocument object use paths to the fields on the form as their parameters. The formal way to represent the path with a BNF (Backus-Naur Form) is as follows:

<Path> ::= <Path_component> | <Path> "\" <Path_component>

<Path_component> ::= <Field_name> | <Field_name> "["<Field_iteration_number>"]"

Where Field_name indicates the names of the document fields as they are defined in Document Definition and Field_iteration_number is the iteration number of the recurring field (the row number for tables) beginning from "0".

The path can be full or relative. Full paths are constructed beginning with the name of the document section, while relative paths are constructed beginning with the name of the child item in the group.

For example, to address the third row of the column "Total" in the table "Table", which is located in the section "Section" you should write the following:

"Section\Table[2]\Total"

Such a full name can be constructed by means of the FullName method of the IField object.


Scripts for customizing processing stages

This section describes how to use scripts to create custom rules, to run an export, and to create event handlers in ABBYY FlexiCapture.

listPicture Types of scripts

listPicture Objects

listPicture Sample scripts


Types of scripts

In FlexiCapture you can create scripts of the following types:

Script rule

Autocorrection script

Export script

User script (custom action)

Document assembly script

Custom recognition script

Stage rule

Processing scripts

Data set update script

Data set validation scripts

Document classification script

Event handlers

To view sample scripts of the above types, please refer to the Sample scripts section.


Script rule

What it does

Rules based on scripts enable you to create complex custom algorithms for document validation and normalization.

The script rule is configured on the Rules tab of the Document Definition properties.

Parameters

Name | Type | Access | Description
Context | IRuleContext | According to the rule settings | The context of the rule

Procedures that you wish to use in more than one rule should be written to the global rule module, which can be accessed from the script editor. From the drop-down list on the toolbar of the script editor, select Rule Global Script Module. The global rule module can also be accessed from the Document Definition editor (Document Definition → Script Modules → Rule Script...).

Script rules can be used to access records of a cached data set. This can be useful if you need to create validation rules manually. Complete the following steps to access records in a cached data set:

1.Connect to the data set using the IRuleContext.DataSet method.

2.Create a query using the IDataSet.CreateQuery method.

3.Add one or more conditions using the IDataSetQuery.AddValue method.

4.Use the IDataSet.GetRecords method to get data that satisfies the query. If you need to determine how many records satisfy the query, use the IDataSet.GetRecordsCount method.

5.You can get records with specific index numbers using the IRecordset.GetRecord method.

If classes and methods of an external assembly are used in the script or global module, the assembly file must be attached on the .Net References tab of the Document Definition properties.

See also:

details Script rule


Autocorrection script

What it does

This script allows you to convert field values and run context-independent format checks.

The script is configured on the Data tab of the field properties dialog box.

Parameters

Name | Type | Access | Description
Value | IValue | Read/write | Field value

note Note: If the Apply AutoCorrect only once after recognition option is selected, a format error message specified in IValue.ErrorMessage is not displayed because such errors can not be fixed.

Unless this option is selected, the script can run several times even within a stage.

note Note: The script is launched when confirming a field in the Data Verification station.

If classes and methods of an external assembly are used in the script, the assembly file must be attached on the .Net References tab of the Document Definition properties.

See also:

details Processing entered values


Export script

What it does

This script allows you to customize export.

The script rule is configured on the Export Destinations tab of the Document Definition properties.

Parameters

Name | Type | Access | Description
Document | IDocument | Read-only | The document to be exported
Processing | IProcessingCallback | Read-only | The object for logging the information about processing

note Note: Information on export results must be written to the Document.Action field.

Procedures that you wish to use in more than one export script be written to the global export module, which can be accessed from the script editor. From the drop-down list on the toolbar of the script editor, select Export Global Script Module. The global export module can also be accessed from the Document Definition editor (Document Definition → Script Modules → Export Script...).

If classes and methods of an external assembly are used in the script or global module, the assembly file must be attached on the .Net References tab of the Document Definition properties.

See also:

details Export described with a script


User script (custom action)

What it does

This is a custom scripting rule triggered by the user when viewing a field during field verification or in the document editor.

The script is configured on the Custom Action tab of the field properties dialog box.

Parameters

Name | Type | Access | Description
Context | IRuleContext | According to the rule settings | The context of the rule

If classes and methods of an external assembly are used in the script, the assembly file must be attached on the .Net References tab of the Document Definition properties.

See also:

details User Script


Document assembly script

What it does

This script is used to determine whether the array of documents passed to the user can be merged into one document.

For this, assembly errors for the result document are generated. The condition of a successful assembly is as follows: two documents will be merged into one, if the result document contains no more assembly errors than any of the source documents.

The script is configured on the Assembly tab of the Document Definition properties. To open the script editor window, click the Edit Assembly Script... button under the Use custom assembly rules option.

This script is executed either automatically after recognition or it can be run manually to refresh the assembly (for this, select Tools → Refresh Assembly command). In the first case the script will contain a number of assembly errors generated during the standard check.

Parameters

Name | Type | Access | Description
AssemblingErrors | IAssemblingErrors | Read/write | Resultant assembly errors
BatchItems | IBatchItems | Read-only | A collection of child elements (i.e. documents and pages) of a document

note Note: Document assembly scripts created in ABBYY FlexiCapture 11 and earlier will remain operational in ABBYY FlexiCapture 12. However, if you choose to delete such a script, you will have to write a script with the new interface that will use a collection of child elements.

note Note: For better optimization of the assembly process, it is recommended to avoid addressing documents internal fields. When addressing documents internal fields, the whole document is loaded which can cause a slowdown of the assembly process. If you need to address the document fields, it is preferable to use index fields when possible.

note Note: The AssemblingErrors parameter of the script can contain different assembly errors depending on the way of getting this parameter:

1.AssemblingErrors can be passed to the script as one of input parameters. In this case it will contain the error of the current check.

2.One of input parameters of the script is a collection of documents for which the assembly script is launched. Each document has its own assembly errors, which can be retrieved the following way: document.AssemblingErrors. In this case the AssemblingErrors parameter will contain errors of the last check carried out for the given document.

Procedures that you wish to use in more than one rule should be written to the global rule module, which can be accessed from the script editor. From the drop-down list on the toolbar of the script editor, select Rule Global Script Module. The global rule module can also be accessed from the Document Definition editor (Document Definition → Script Modules → Rule Script...).

If classes and methods of an external assembly are used in the script or global module, the assembly file must be attached on the .Net References tab of the Document Definition properties.

See also:

details Creating Document Definitions for multipage documents


Custom recognition script

What it does

With this script you can define a custom recognition (or initialization) algorithm for fields which have regions.

The custom recognition script is configured on the Recognition tab of the field properties dialog box.

The script is launched when a field value is initialized from the results of the recognizer. The image area being recognized is passed to the script as an input parameter. The document layout is not initialized at the moment, so access to the document fields is denied (however access to registration and other parameters is allowed).

With this script you can specify which symbols are suspicious and must be verified (IsSuspicious and NeedVerification properties).

Parameters

Name | Type | Access | Description
FieldRegion | IFieldRegion | Read-only. Internal* fields of batch documents and pages are unavailable. (Applies to all parents as well.) | The region to be recognized
Result | IValue /ICheckmarkValue /ICheckmarkGroupValue | Read/write. Access to the CharacterParams.NeedVerification flag is denied. CharacterParams.IsSuspicious flag is available with read/write permissions. | The resultant recognized value. Depending on the field type the received parameters can be of the following types: ·IValue - for text fields ·ICheckmarkValue - for checkmarks ·ICheckmarkGroupValue - for checkmark groups

* - The internal field requires loading the object into memory.

If classes and methods of an external assembly are used in the script, the assembly file must be attached on the .Net References tab of the Document Definition properties.

See also:

details Text field recognition options


Stage rule

What it does

This script is used to determine whether the document can be routed to a certain stage. Applies in rule settings in the Advanced mode of the Workflow setup.

If an error occurs during the script execution, the document will be sent to the Exceptions stage.

Parameters

Name | Type | Access | Description
Document | IDocument | Read-only | The document for which the check is carried out
Result | IRoutingRuleResult | Read/write | The result of the rule execution

Procedures that you wish to use in more than one rule should be written to the global rule module, which can be accessed from the script editor. From the drop-down list on the toolbar of the script editor, select NonInteractiveProcessor.

If classes and methods of an external assembly are used in the script or global module, the assembly file must be attached on the .Net References tab of the batch type properties (for a particular batch type) or project properties (for the Default batch type).

When a task is completed at the current stage the system determines what will be the next stage for this task. For this purpose the system estimates input conditions for further stages, for example, input scripting rules.


Processing scripts

What it does

Document and batch processing scripts allow you to change the document or batch structure respectively, specify a custom order of sections in the document or order of documents in the batch. Processing scripts can be added when creating a custom stage in the in the Advanced mode of the Workflow setup.

Both scripts are used to process multiple documents and have the possibility to log the processing progress.

Document processing script

All documents to be processed are passed to this script in turn.

Parameters

Name | Type | Access | Description
Document | IDocument | Read/write | The document to be processed
Processing | IProcessingCallback | Read/write | The object for logging the information about processing

note Note: If the task is cancelled, the processing status will change to false (similar to using the method IProcessingCallback.ReportError).

Batch processing script

The input parameters of the script are a batch and a set of documents in it to be processed. The iteration over documents is implemented by the user.

The advantage of the batch processing script is that the methods, which can change the batch structure, are available in it. These methods make it possible to move or delete documents and pages.

Parameters

Name | Type | Access | Description
Batch | IBatch | Read-only. Internal* fields of batch documents and pages are unavailable. | The batch
Documents | IDocuments | Read/write. For these documents the batch structure can be modified. | Documents to be processed
Processing | IProcessingCallback | Read/write | The object for logging the information about processing

* - The internal field requires loading the object into memory.


Data set update script

What it does

Scripts of this type can be used to add records to a data set.

Scripts of this type can be added in the properties dialog box of a data set. Select Script from the Source drop-down list and click the Edit... button on the right to open the script editor.

Parameters

Name | Type | Access | Description
Dataset | IDataSet | Read-only | Data set


Data set validation scripts

What it does

This script checks and validates records in a data set. It is run individually for every record that needs to be checked. To enable checks that use scripts, enable the Check records using scripts in the properties dialog box of a data set and click Edit... to create a validation script.

Parameters

Name | Type | Access | Description
Record | IDataSetRecord | Read-only | Represents a record from the data set.
Result | IRecordCheckResult | Read/write | Represents the check result.

Script validation occurs when:

·A data set is updated

·A data set is checked manually in its properties dialog box

·When a record is manually added to the data set or an existing record is edited manually in the data set editing dialog box of the Document Definition Editor.


Document classification script

Show/Hide Hidden Text

An ABBYY FlexiCapture classifier processes submitted documents and determines their class. This lets you choose a document definition to be used for field extraction.

Each classifier corresponds to a specific classification training batch.

If you want to use several classifiers for a single batch, you need to set up a classification script. This can be useful when there are documents that need to undergo additional classification. In this case, the first classifier will be used to classify the documents according to their class, and then, an additional classifier will be selected from the script depending on the classification results. For example, documents can be first classified into "invoices" and "contracts", then the invoices can be further classified according to company name.

note Note: This script can only be set up for an already existing classification training batch and cannot be set up when creating a new batch.

To set up a classification script:

1.Open Project → Project Properties....

2.Go to the Recognition tab found in the project properties window.

3.Open the classification script Editor by clicking Set... to the right of Use script in the Classification section.

4.In the dialog box, select an appropriate classifier by clicking Add... and choosing a classification batch from the list.

5.Now, you can change a classifier's Alias Name. This allows you to not have to rewrite a script if a classifier's name has been changed during processing. The script will refer to the particular name specified in the Alias Name column.

6.Open the script editor window by clicking Edit Script....

Parameters

Name

Type

Access

Description

BatchTypeClassifier

IBatchTypeClassifier

Read-only

A classifier in the batch type.

IsConfident

bool

Read-only

Classification confidence. Unlike working with automatic classifiers, when working with the script this parameter must be manually specified in page properties.

Example

IClassificationResult result = Classifiers[0].ClassifyPage( Page );

Page.ResultClassName = result.ClassName;

Page.IsResultClassConfident = result.IsConfident;

Page

IPage

Read/write

Document page.

Processing

IProcessingCallback

Read/write

The object for logging the information about processing.

Sample scripts

This script classifies pages and adds the name of a class to their properties:

IBatchTypeClassifierResult classifierResult = BatchTypeClassifier.ClassifyPage( Page, null );

Page.ResultClassName = classifierResult.ClassName;

The sample script below allows you to get classification confidence levels:

IClassificationResult result = Classifiers[0].ClassifyPage( Page );

FCTools.ShowMessage( "Class: " + result.ClassName );

Page.ResultClassName = result.ClassName;

FCTools.ShowMessage( "IsConfident: " + result.IsConfident );

Page.IsResultClassConfident = result.IsConfident;

Sample script that combines multiple classifiers for cascade classification

var res0 = Classifiers.Get ( "Batch" ).ClassifyPage( Page );

IClassConfidences classVars = res0.Classes;

foreach( IClassConfidence c in classVars )

{

FCTools.ShowMessage( c.Name + " --> " + c.Confidence.ToString() );

}

FCTools.ShowMessage( "Class res0: " + res0.ClassName);

if (res0.ClassName == "Invoice")

{

var res1 = Classifiers.Get ( "Batch2" ).ClassifyPage( Page );

IClassConfidences classVars1 = res1.Classes;

foreach( IClassConfidence d in classVars1 )

{

FCTools.ShowMessage( d.Name + " --> " + d.Confidence.ToString() );

}

FCTools.ShowMessage( "Class res1: " + res1.ClassName);

Page.ResultClassName = res1.ClassName;

}

else

{

Page.ResultClassName = res0.ClassName;

}

FCTools.ShowMessage( "Page.ResultClassName: " +Page.ResultClassName);

Sample script that assigns the Unknown class to documents, whose classification confidence turns out to be lower than the specified value

The following script can be used if your scenario does not require documents with a low confidence level to be assigned a class (even if a class has already been specified for them). Such documents should be classified manually by an operator.

warning Important! For the script to work, a new class should be created beforehand — for example, “Unknown”. Then, it should be linked to the document definition in the Class Mapping... dialog. For more information, see Mapping classes to Document Definition sections.

using System;

IClassificationResult result = Classifiers.Get ( "ClassifierBatch" ).ClassifyPage(Page);
Page.ResultClassName = result.ClassName;
IClassConfidences classVars = result.Classes;
Page.Comment = "";

foreach( IClassConfidence c in classVars )
{
//FCTools.ShowMessage( c.Name + " -- " + c.Confidence.ToString() ); // records the classification confidence value in the event log
Page.Comment = Page.Comment + c.Name + "-" + c.Confidence.ToString() + "; "; // records the classification confidence value in the page comments
}

if (classVars.Count>0)
{
if (classVars[0].Confidence<80) Page.IsResultClassConfident=false; // confidence threshold below which a document will be classified as uncertainly classified
else Page.IsResultClassConfident=true;
if (classVars[0].Confidence<20) Page.ResultClassName="Unknown"; // confidence threshold below which a document will be assigned the "Unknown" class
if (classVars.Count>1) {
int classesToShow = Math.Min(classVars.Count, 3);
for(int i=0; i<classesToShow; i++)
{ Page.Comment = Page.Comment + classVars[i].Name + "-" + classVars[i].Confidence.ToString() + "; "; }
}
}
FCTools.ShowMessage( "Class: " + Page.ResultClassName );

note Note: The confidence threshold values in this script are only for demonstration purposes and can be modified by the user depending on a particular workflow.


Event handlers

Show/Hide Hidden Text

FlexiCapture lets you create handlers for events that affect batches, documents and fields.

Event handlers are stored in batch types and Document Definitions. You can find their settings on the Event Handlers tab of the Properties dialog of:

·Batch Types (for Document Definitions);

·Projects (for all batch types in the project except for those for which event handlers have been set up in batch type properties).

·Document Definitions (for documents of the current type).

Batch events

listPicture After batch created

listPicture Before batch delete

listPicture Before batch parameter change

listPicture After page added

listPicture Before page delete

listPicture After document created

listPicture Before document delete

listPicture Before pages move

listPicture After batch opened

listPicture Before batch close

listPicture Batch integrity check

Document events for batch types

These event handlers are set up in a batch's properties or in a batch type's properties.

listPicture Before document parameter change

listPicture After document state changed

listPicture After export completed

listPicture Before matching

Document event for the current batch type

These event handlers are set up in a Document Definition's properties.

listPicture Before document parameter change

listPicture After document state changed

listPicture After document rules are checked

Event handlers for fields can also be set up in a Document Definition's properties (see below).

Field events

listPicture Field verification request

note Note: If the same event handler is set up for batch types and the current document type, the event handler for the document will be executed first, followed by the event handler for batch types.

Storing procedures in global modules

We recommend adding procedures that you plan to use in sever event handlers to a global module. To do this, select Events from the drop-down list on the toolbar of the script editor.

note Note: Global modules are not available for event handlers in the Document Definition editor.
Adding external assemblies

If a script or a global module is using methods from an external assembly, you can add this external assembly on the .Net References tab of the properties dialog of an object (a batch type, a project or a Document Definition).


Batch created

What it does

The handler of this event is used when you need to do some manipulations on the batch, e.g., to save data to the batch registration parameters.

When it is launched

The script is launched upon adding a batch to the project.

Parameters

Name | Type | Access | Description
Batch | IBatch | Read-only. Document and page internal* fields are available. | A newly added batch

* - The internal field requires loading the object into memory.


Batch deleted

What it does

The handler of this event is used if you need to clear some data relating to the batch.

When it is launched

The script is launched prior to deleting the batch.

note Note: Deleting a batch does not initiate the event of deleting batch documents and pages.

Parameters

Name | Type | Access | Description
Batch | IBatch | Read-only. Internal* fields of batch documents and pages are unavailable. | The batch being deleted

* - The internal field requires loading the object into memory.


Batch parameter change

What it does

The handler of this event can be used for formatting some of the batch properties.

Properties

·Batch type (name of the batch type)

·Batch name

·Batch description

·Value of the registration parameter

·Batch priority (in form of a string). For the list of admissible values, see the description of the TProcessingPriority object.

When it is launched

The script is launched prior to changing a batch property.

note Note: This script does not allow specifying a new value of the batch type.

Parameters

Name | Type | Access | Description
Batch | IBatch | Read-only. Internal* fields of batch documents and pages are unavailable. | The batch whose property is being changed
PropertyModification | IPropertyModificationInfo | Read/write. | Stores information on the property being changed. Allows substituting the set value.

* - The internal field requires loading the object into memory.


Batch structure change (page added/page deleted/document added/document deleted)

What it does

The handler of this event can be used if you need to do some manipulations on the batch, the document or the page depending on a new image. For example, to count the number of pages added to the batch to ensure that no pages are missing.

When it is launched

The script is launched upon adding pages (or documents) or prior to deleting them.

note Note: Deleting a document does not initiate the event of deleting document pages.

Parameters

Name | Type | Access | Description
Batch | IBatch | Internal* fields of batch documents and pages are unavailable | The batch being manipulated
Document (or Page) | IDocument (or IPage) | External fields of the changed document (or page) can be modified. Access to the deleted document (or page) and other documents and pages of the batch is read-only. | The item being deleted (or added).

* - The internal field requires loading the object into memory.


Pages moved

note Note: Pages can be moved during the document assembly as well.

What it does

The handler of this event can be used if you need to do some manipulation on the new document based on the source documents, for example, to save the merged registration parameters.

If one document is fully embedded into another one, then in the Pages array its pages will go in succession and in the same order as they go in the target document.

note Note: After merging pages the layout of the target document can change.

When it is launched

The script is launched prior to moving pages from one document to another.

Parameters

Name | Type | Access | Description
Batch | IBatch | Internal* fields of batch documents and pages are unavailable | The batch
InsertionPosition | int | Read-only | The position in the document where pages are inserted
Pages | IPages | Read-only | The array of pages being moved
TargetDocument | IDocument | Read/write | The target document pages are moved into

* - The internal field requires loading the object into memory.


Batch opened/closed

When it is launched

The script is launched upon opening or prior to closing the batch.

Parameters

Name | Type | Access | Description
Batch | IBatch | Read-only. Internal* fields of batch documents and pages are unavailable. | The batch

* - The internal field requires loading the object into memory.


Batch integrity check

What it does

Checks the batch structure. For example, you can check whether the batch contains obligatory documents or whether the number of documents specified on the control page coincides with the number of documents actually processed.

When it is launched

The script is launched prior to export (if the corresponding option is selected in workflow settings) or by an explicit user command.

Parameters

Name | Type | Access | Description
CheckResults | IBatchCheckResults | Read-only. Internal* fields of batch documents and pages are unavailable. | The object that provides access to the batch being checked. Also used to set the check results.

* - The internal field requires loading the object into memory.

note Note: In this script, the following methods are unavailable: HasField, Field, SaveAs, ExcludedFromDocumentImage, Page.Rect, Document.Children (to address document fields, the IndexedItemValue must be used).


Document parameter changed

What it does

The handler of this event can be used for formatting some of document properties.

Document properties

·Comment

·Value of the registration parameter

·ExternalID

·Document priority (specified in form of a string). For the list of admissible values, see the description of the TProcessingPriority object.

When it is launched

The script is launched prior to changing a document property.

Parameters

Name | Type | Access | Description
Document | IDocument | Internal* fields of batch documents and pages are unavailable | The document
PropertyModification | IPropertyModificationInfo | Read/write | Stores information on the property being changed

* - The internal field requires loading the object into memory.


Document state changed

What it does

At any moment the document state can be described with an array of flags. The event occurs every time when the state changes. A set of flags describing changes in the document state are passed to the event as input parameters.

Flags that determine the document state

·Preprocessed

·Analyzed

·Recognized

·HasErrors

·Assembled

·Verified

·Exported

·HasLayout

When it is launched

The script is launched on document export provided the document state has changed since it was read.

Parameters

Name | Type | Access | Description
ChangedStates | IScriptBinaryAttributes <TStateType> | Read-only | Stores information about changes of the document state
Document | IDocument | Read/write | The document


Export completed

What it does

Export results are passed to this script as input parameters.

When it is launched

The script is launched after the export task is completed. If the Process entire batches option is selected for the Export stage, the task will contain all documents of the batch. If the option is deselected, the number of documents in the task can vary from one document to all documents of the batch. The script is launched irrespective of the export result (whether it succeeded or failed). This is the main difference of this script from the event Document state changed.

If some export targets are omitted (as the document has been exported to those targets earlier), then for the corresponding export results, the value of the Applied flag will be false.

Parameters

Name | Type | Access | Description
ExportResults | IDocumentsExportResults | Read-only. Internal* fields of batch documents and pages are unavailable. | Export results for all documents and all export targets
Processing | IProcesingCallback | Read/write | The object for logging the information about processing

* - The internal field requires loading the object into memory.


Check Rules

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > Types of scripts > Event handlers >

Return to chapter overview

Script that is run after rule checks

What it does

The handler of this event is used after rule checks.

Parameters

Name | Type | Access | Description
Document | IDocument | Read/write | Represents the document.


Before matching

What it does

The handler of this event allows you to control what sections or Document Definitions will be matched on each subsequent page and specify the matching order.

With this script you can accelerate matching the Document Definition if sections to be matched are known in advance. For example:

·it is known that only the first page of the batch may have the Document Definition "Contents";

·it is known that the given page belongs to a particular section type;

·the order of sections in the documents is known.

The script allows you to disable recognition of document after a Document Definition is matched. For this, set the IMatchingInfo.NeedRecognition parameter to false. It can be useful if field values are supposed to be entered manually.

It is also possible to mark the page as an annex page which does not need recognition. For this, it is necessary to specify an empty list of sections and set the IMatchingInfo.ForceMatch parameter to true.

When it is launched

The script is launched prior to matching sections on each subsequent page.

Parameters

Name | Type | Access | Description
Document | IDocument | Read-only. Internal* fields of batch documents and pages are unavailable. | The document whose pages are being analyzed
Matching | IMatchingInfo | Read/write | The object that specifies some of the matching parameters
PageIndex | int | Read-only. Internal* fields of batch documents and pages are unavailable. | The index of the document page to be analyzed

* - The internal field requires loading the object into memory.

note Note: It is also possible to specify Document Definitions and sections to be matched by using named registration parameters. For details, see Registration Parameters.


Field verification request

What it does

This script allows you to specify which fields will not be submitted to the context verification. Can be used to verify different fields at different processing stages.

The input parameters for the script are a field and a document.

When it is launched

The script is applied to all fields before they are submitted to the context verification. For the fields which skip the context verification, the script is not executed.

Parameters

Name | Type | Access | Description
Document | IDocument | Read-only | The document that contains the field
Field | IField | Read-only | The field being checked
NeedVerification | IBoxedBoolean | Read/write | Specifies whether to verify the field. If the value is set to false, the field is not verified.


Objects

This section contains the description of objects used in scripts, their properties and methods.

listPicture IActionResult

listPicture IAssemblingError

listPicture IAssemblingErrors

listPicture IBatch

listPicture IBatchItem

listPicture IBatchItems

listPicture IBatchCheckResults

listPicture IBatchTypeClassifier

listPicture IBatchTypeClassifierResult

listPicture IBoxedBoolean

listPicture ICharacterParams

listPicture ICharactersParams

listPicture ICheckmarkGroupValue

listPicture ICheckmarkValue

listPicture IDataSet

listPicture IDataSetQuery

listPicture IDataSetRecord

listPicture IDocument

listPicture IDocuments

listPicture IDocumentDefinitionInfo

listPicture IDocumentDefinitionInfoArray

listPicture IDocumentExportResults

listPicture IDocumentsExportResults

listPicture IEditablePictureObject

listPicture IExportFieldsToRedact

listPicture IExportImageSavingOptions

listPicture IField

listPicture IFieldRegion

listPicture IFieldRegions

listPicture IFields

listPicture IFlexiCaptureTools

listPicture IMatchedSectionInfo

listPicture IMatchingInfo

listPicture IPage

listPicture IPageClassificationResult

listPicture IPages

listPicture IPictureObject

listPicture IPictureObjectsInfo

listPicture IPrincipal

listPicture IPrincipals

listPicture IProcessingCallback

listPicture IProject

listPicture IProperties

listPicture IProperty

listPicture IPropertyModificationInfo

listPicture IRecordCheckResult

listPicture IRecordset

listPicture IRect

listPicture IRects

listPicture IRoutingRuleResult

listPicture IRuleContext

listPicture IRuleError

listPicture IRuleErrors

listPicture IRuleTag

listPicture IRuleTags

listPicture IScriptBinaryAttributes

listPicture IScriptDefinitionContext

listPicture ISectionDefinitionInfo

listPicture ISectionDefinitionInfoArray

listPicture IStageInfo

listPicture IUserAttachment

listPicture IUserAttachments

listPicture IUserSessionInfo

listPicture IValue

listPicture IVARIANTArray

listPicture TAssemlingErrorType

listPicture TBatchItemType

listPicture TExportFieldType

listPicture TExportType

listPicture TPageClassificationType

listPicture TPrincipalType

listPicture TProcessingPriority

listPicture TPropertyType

listPicture TRuleErrorType

listPicture TStateType


IActionResult

What it does

A special object that is used to describe whether the export (or a post-export event) of a particular document succeeded.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name

Type

Access

Description

Applied

bool

Read-only

Specifies whether the document has been exported to the target during the current export session. For the false value of the flag:

·if the Succeeded flag value is true, it means that the document has exported to the target earlier;

·if the Succeeded flag value is false, it means that the document is not suitable for export to this target (e.g. because of errors).

ErrorMessage

string

Read/write, Mutable (can be modified even in scripts with read-only permissions)

An error message

Name

string

Read-only

The name of an export profile

Result

string

Read/write, Mutable (can be modified even in scripts with read-only permissions)

Formal description of the operation result. In the event of export, a description of the path where the document was exported (for example, a path to the file).

Succeeded

bool

Read/write, Mutable (can be modified even in scripts with read-only permissions)

Specifies whether the operation succeeded

Type

TExportType

Read-only

The type of export profile (applies in Export completed script)


IAssemblingError

What it does

Represents a document assembly error.

Properties

Name | Type | Access | Description
Description | string | Read-only | The description
Position | int | Read-only | The position in the document
SectionName | string | Read-only | The name of a missing section (in case of the AET_ObligatoryItemOmitted error). For annex pages, the section name is empty.
Type | TAssemblingErrorType | Read-only | The type of an assembling error
Weight | string | Read-only | The weight of an error


IAssemblingErrors

What it does

A collection of IAssemblingError objects.

Can be modified in the document assembly script only.

Methods

Definition | Description
AddCustomError( description : string, [optional] weight : int ) | Adds a custom assembling error.
AddRedundantPageError( int position, [optional] description ) | Adds an error concerning an extra page.
AddSectionOmittedError( int position, sectionName : string, [optional] description ) | Adds an error concerning a missing section.

warning Important! The AddCustomError method should be used with caution and only if there are no other suitable methods. As document assembly is fully determined by the number of errors, the error weight must be set correctly when adding such errors. And setting the weight correctly can cause difficulties.

It is recommended not to combine several standard errors in one CustomError that will produce one common error message.


IBatch

Show/Hide Hidden Text

What it does

Represents the batch.

note Note. Some methods and properties of this object are not available on the Web Verification Station for checking rules locally. The methods and properties that are not supported are marked with an asterisk (*).

Methods

warning Important! The methods below require permissions for changing the batch structure. These methods can be called only from the batch processing script.

Definition

Description

CleanRecognitionResults( document : IDocument ) *

Deletes recognition results for the document.

CreateDocumentFromPage( targetPosition : int, page : IPage ): IDocument *

Takes a page from the document and creates a new document from that page. In the targetPosition parameter, specify an index for the new document in the batch. The index must be a number between 0 and N, N being the total number of documents in the batch.

When the CreateDocumentFromPage method is called:

·The documents having indexes from 0 to targetPosition – 1 will remain in their original positions.

·The documents having indexes from targetPosion to N will be moved one position forward.

·The new document will be placed in the vacated targetPosition.

note Note: If the document becomes empty after the page is removed, it will be deleted.

Example

An example of a script for processing the first document:

IDocument document = Documents[0];

for( int i = document.Pages.Count - 1; i >= 0; --i )

{

Batch.CreateDocumentFromPage( document.Index + 1, document.Pages[i] );

}

CreatePageFromImage( page : IPictureObject, [optional] target : IDocument, [optional] position : int, [optional] sourceInfo : string ) : IPage *

Creates a page from the IPictureObject object and returns the created page:

·If a target document is specified, the page is added to this document. To create a one-page document, specify null as a target document.

·If a position is specified, the page is added to the specified position of the document (if a target document is specified). Otherwise a one-page document is added to the specified position of the batch (if null is specified as a target document). The initial position corresponds to "0," the end of the document or batch corresponds to "-1."

·If the sourceInfo parameter is specified it is written into the information about the page source. Otherwise, information about the page source is received from IPictureObject.

DeleteDocument( document : IDocument ) *

Deletes the document.

DeletePage( page : IPage ) *

Deletes the page.

MoveDocument( source : IDocument, targetPosition : int ) *

Moves the document to the specified position in the batch.

MovePage( source : IDocument, target : IDocument, sourcePageIndex : int, int targetPageIndex : int ) *

Moves the page with the sourcePageIndex index from the source document to the targetPageIndex position in the target document.

Properties

Name | Type | Access | Description
AsBatchItem * | IBatchItem | Read-only | Converts the batch into an IBatchItem object.
Attachments | IUserAttachments | Read-only | User attachments.
BatchTypeName | string | Read-only | The name of the batch type.
Comment | string | Read/write | The comment.
CreatedBy | IPrincipal | Read-only | The author of the newly created batch.
CreationDate | DateTime | Read-only | The time when the batch was created.
Documents | IDocuments | Read-only | Documents the batch consists of
Id | int | Read-only | The batch identifier (unique within the project).
Name | string | Read/write | The name of the batch.
Priority | TProcessingPriority | Read/write | The priority of the batch.
Project | IProject | Read-only | The project containing the batch.
Properties | IProperties | Read-only | Named parameters of the batch.
SLAExpirationDate | DateTime | Read/write | Processing deadline of the batch.
SlaStartDate | DateTime | Read-only | The time when processing of the batch started.
SlaWarningPeriod * | Int | Read/write | The starting time of the period during which a warning about the task's approaching deadline will be displayed. Specified in minutes remaining until the deadline.
StageInfo | IStageInfo | Read-only | Returns the IStageInfo object with information about the document's processing stage. The TaskId and PrincipalId fields are not used.


IBatchCheckResults

What it does

Represents the context of the batch integrity check event.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
Batch | IBatch | Read-only | The batch
CheckSucceeded | bool | Read/write, Mutable (can be modified even in scripts with read-only permissions) | Specifies whether the check succeeded
ErrorMessage | string | Read/write, Mutable (can be modified even in scripts with read-only permissions) | The error message


IBatchItem

What it does

Represents an element (a batch, document or page) as the type specified in the Type property.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Name
AsBatch | IBatch | Read-only | Returns the element as a batch
AsDocument | IDocument | Read-only | Returns the element as a document
AsPage | IPage | Read-only | Returns the element as a page
Batch | IBatch | Read-only | The batch that contains the element
BatchName | string | Read-only | The name of the batch
ChildItems | IBatchItems | Read-only | A collection of child elements
Index | int | Read-only | The index number of the element in the collection
Parent | IBatchItem | Read-only | The parent element
Type | TBatchItemType | Read-only | The type of the element


IBatchItems

Show/Hide Hidden Text

What it is

A collection of IBatchItem.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Methods

Definition | Description
Move(item : IBatchItem, position : int) | Moves the element to the specified position in the collection. note Note: This method is called for the collection where the element needs to be moved. note Note: The position parameter may take values starting from 0 and up to the size of the collection.

Properties

Name | Type | Access | Name
Count | int | Read-only | The number of elements in the collection

Example of the Move method

The script executes several consecutive scenarios, which result in a script for assembling sets from unsorted lists of documents:

·Disassembles sets

·Groups documents by type in the specified order

·Groups documents by the specified key field

·Assembles documents into sets with the same key field

Sample script

using System.Collections.Generic;

IBatchItems batch = Batch.AsBatchItem.ChildItems;
List<string> docDefs = new List<string> {"DocSet","Doc1","Doc2"}; // Document assembly order

// Key field name

// (the field should be indexed in all documents and have the same name)
string keyFieldName = "SSN";
List<string> keyFields = new List<string>();

// Disassembling sets
bool foundChildren = false;
do
{
foreach (IBatchItem itm in batch)
{
if (itm.ChildItems.Count > 1)
{
int shift = 0;
foreach (IBatchItem subItm in itm.ChildItems)
{
shift++;
batch.Move(subItm, itm.Index + shift);
}
}
}
foreach (IBatchItem itm in batch)
if (itm.ChildItems.Count > 1)
foundChildren = true;
} while (foundChildren);

// Sorting documents the way they should be in the set

// (i.e. the set itself followed by all its subdocuments)
foreach (string docDefName in docDefs)
{
List<int> indexList = new List<int>();
foreach (IBatchItem itm in batch)
if (itm.Type == TBatchItemType.BIT_Document)
if (itm.AsDocument.DefinitionName == docDefName) indexList.Add(itm.Index);
for (int i = 0; i < indexList.Count; i++)
batch.Move(batch[indexList[i]-i], batch.Count);
}

// Searching for all options of key fields in the batch
foreach (IBatchItem itm in batch)
{
if (itm.Type == TBatchItemType.BIT_Document)
{
string keyFieldValue = (string)itm.AsDocument.IndexedItemValue(keyFieldName);
if (!keyFields.Contains(keyFieldValue))
keyFields.Add(keyFieldValue);
}
}
// Assembling documents with the same key field
foreach (string keyFieldValue in keyFields)
{
List<int> indexList = new List<int>();
foreach (IBatchItem itm in batch)
if (itm.Type == TBatchItemType.BIT_Document)
if ((string)itm.AsDocument.IndexedItemValue(keyFieldName) == keyFieldValue) indexList.Add(itm.Index);
for (int i = 0; i < indexList.Count; i++)
batch.Move(batch[indexList[i]-i], batch.Count);
}

// Moving subdocuments into sets only if key fields match
// (set sections first, child documents second)
int ind = 0;
while (ind < batch.Count)
{
if (batch[ind].Type == TBatchItemType.BIT_Document)
// Looking for the beginning of the set
if (batch[ind].AsDocument.DefinitionName == docDefs[0])
// If a document after the set is not a set and key fields match,
// we add it to this set
while (ind+1 < batch.Count &&
batch[ind+1].AsDocument.DefinitionName != docDefs[0] &&
(string)batch[ind+1].AsDocument.IndexedItemValue(keyFieldName) == (string)batch[ind].AsDocument.IndexedItemValue(keyFieldName))
batch[ind].ChildItems.Move(batch[ind+1], batch[ind].ChildItems.Count);
ind++;
}

Download the sample here: Sample_IBatchItems_Move.zip


IBatchTypeClassifier

What it does

Classifies a page based on the batch type.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Methods

Definition | Description
ClassifyPage ( page : IPage, [optional] callback, IProcessingCallback ) : IBatchTypeClassifierResult | Starts page classification using the classifier associated with the batch type

See Document classification script for a sample script.


IBatchTypeClassifierResult

Show/Hide Hidden Text

What it does

Gets the confidence level.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
ClassName | string | Read-only | The class name given to the page as a result of classification

Sample script

IBatchTypeClassifierResult res = BatchTypeClassifier.ClassifyPage( Page );
IClassConfidences classVars = res.Classes;
foreach( IClassConfidence c in classVars )
{
FCTools.ShowMessage( c.Name + " --> " + c.Confidence.ToString() );

}


IBinarizationParams

What it does

Configures binarization parameters.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
IsPdfWithText | bool | Read/write | Shows whether an image is a PDF document with a text.
IsPhoto | bool | Read/write | Shows whether an image is a photo.
SmoothTexture | bool | Read/write | Shows whether an image has a smooth texture.


IBoxedBoolean

What it does

Passes in-out boolean values to scripts.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
Value | bool | Read/write | The value


ICharacterParams

Show/Hide Hidden Text

What it does

Stores information about character properties.

note Note. Some methods and properties of this object are not available on the Web Verification Station for checking rules locally. The methods and properties that are not supported are marked with an asterisk (*).

Methods

Definition

Description

SetRect( newRect : string, [optional] pageId : int ) *

Specifies a new rectangle for a character. The newRect parameter must be passed in the form of the string "[left, top, right, bottom]".

The specified rectangle must be completely inside the region of the field that contains the character.

note Note: This method is not available in the autocorrection script.

Properties

Name

Type

Access

Description

Confidence *

int

Read-only

Confidence level for a batch type. Returns a value from 0 to 100.

warning Important! Using this property requires storing some additional data, which may increase the size of a document and additional disk space. By default, no additional data are saved and the property is disabled. For the correct operation of the property, set the registry key [HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller] "ForceSaveConfidenceLevel" = "true". Instead of HKEY_CURRENT_USER, select the branch of the user account that will recognize documents.

IsSuspicious *

bool

Read/write

Specifies whether or not a character has been recognized with a sufficient degree of confidence. This flag is effective only in the custom recognition script.

note Note: When the IsSuspicious property is assigned to a character by a recognition script, the program will check the field containing this character against the field verification threshold. If the percentage of characters with the IsSuspicious property in the field exceeds the specified threshold, the NeedVerification property will be added to the field.

Lang *

int

Read/write

Detects the language of characters in a field.

Example

An example of a script for an on-user-command event that detects the language of each character in the field and writes the detected languages in a comment to the page:

ITaskWindow taskWindow = MainWindow.TaskWindow;

ISelection selection = MainWindow.Selection;

IDocumentItems items = selection.DocumentItems;

foreach( IDocumentItem item in items ) {

IDocument doc = item.Document;

taskWindow.OpenDocument(doc);

foreach (IPage page in doc.Pages) {

IField field = doc.Field("Field Name");

ICharactersParams characterParams = field.Symbols;

string str = "";

foreach( ICharacterParams param in characterParams ) {

str = str + " " + param.Lang.ToString();

}

page.Comment = str;

}

}

note Note: This script will process only selected documents at the verification stage.

NeedVerification

bool

Read/write

Specifies whether any additional verification is required for the character. The value of this flag determines whether the character will be highlighted in the document editor.

note Note: When the NeedVerification property is assigned to a field by any script other than a recognition script, the field is automatically marked as sent to verification. The program checks the field verification threshold (see the note for the IsSuspicious property) prior to allocating the NeedVerification property.

To specify, whether the whole field (not particular characters) needs verification, use the NeedVerification property of the IField interface.

PageId *

int

Read-only

Identifies the page on which the rectangle of the character is located. Required for multi-page fields.

Rect *

IRect

Read-only

A rectangle that contains the character. If the rectangle is not specified, null is returned.

Symbol

string

Read/write

A character (a string consisting of one character).


ICharactersParams

What it does

A collection of ICharacterParams objects.

Methods

Definition

Description

Add( value : Object, [optional] position : int )

Inserts a new value element into the text in the specified position. If the position is not set, the value is added to the end of text.

note Note: The value parameter can be a character, a string, an ICharacterParams object or an ICharactersParams object. Thus characters or text can be copied from other fields with preserved layout and highlighting. If characters regions are larger than the region of a new field, they are not copied.

Delete( index : int, count : Variant)

Deletes an element by its index in the collection.

note Note: The count parameter sets the number of characters to be deleted.

Properties

Name | Type | Access | Description
Count | int | Read-only | Number of objects in the collection.


ICheckmarkGroupValue

What it does

A collection of ICheckmarkValue objects.

note Note. This object is not available on the Web Verification Station for checking rules locally.


ICheckmarkValue

What it does

Represents a checkmark value.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
IsSuspicious | bool | Read/write | Whether a checkmark value is certainly recognized. By default all checkmark values are considered uncertain.
Name | string | Read-only | Checkmark name (field name in the Document Definition)
Rect | IRect | Read-only | A rectangle of the checkmark
Value | bool | Read/write | Checkmark value


IDataSet

Show/Hide Hidden Text

What it does

Represents a data set.

Methods

Definition

Description

AddRecord ( dataSetRecord : IDataSetRecord )

Adds the record to the data set.

CreateQuery () : IDataSetQuery

Creates a data set query object.

CreateRecord () : IDataSetRecord

Creates a record that can be added to the data set later.

DeleteRecord ( dataSetRecord : IDataSetRecord )

Removes the data set record with the specified primary key **.
Sample

If the ID is used as the primary key in the data set, and its value is set to "MyTestid":

IDataSet dataSet = Context.DataSet( "BusinessUnits" );
IDataSetRecord rec = dataSet.CreateRecord();
rec.AddValue( "Id", "MyTestid" );
dataSet.DeleteRecord( rec );

GetRecords (IDataSetQuery : query) : IRecordset

Gets records that satisfy query parameters from the data set.

GetRecordsCount (IDataSetQuery : query) : int

Gets the number of records from the data set that satisfy query parameters.

ModifyRecord ( dataSetRecord : IDataSetRecord )

Edits a data set record in a column with the specified primary key **.

note Note: This method cannot be used to create or edit complex columns.
Sample

If the ID is used as the primary key in the data set, and its value is set to "MyTestid":

IDataSet dataSet = Context.DataSet( "BusinessUnits" );
IDataSetRecord rec = dataSet.CreateRecord();
rec.AddValue( "Id", "MyTestid" );
rec.AddValue( "Name", "MyName");
rec.AddValue( "CountryCode", "DE" );
dataSet.ModifyRecord( rec );

** The ModifyRecord and DeleteRecord methods only work with data sets that have a Primary Key column.


IDataSetQuery

What it does

Represents a data set query.

Methods

Definition | Description
AddValue ( column : string, value : object ) | Lets you add one or more conditions to the query by specifying a column's name and value.


IDataSetRecord

What it does

Represents a record from a data set.

Methods

Definition | Description
AddValue ( column : string, value : object ) | Adds a value to a data set record. The name and value of the column must be specified.
GetColumnName ( index : int ) : string | Gets the name of a column. note Note: Since a column can have multiple names, IDataSetRecord can include the name item multiple times with different values.
GetValue ( index : int ) : object | Gets the value of a field.

Properties

Name | Type | Access | Description
ColumnCount | Int | Read-only | The amount of fields in a record


IDocument

What it does

Represents the document.

note Note. Some methods and properties of this object are not available on the Web Verification Station for checking rules locally. The methods and properties that are not supported are marked with an asterisk (*).

Methods

Definition

Description

AddFileToExportResults( sourceFile : string, destinationName : string, replaceIfExists : bool ) *

Adds a user file to document export results.

In the sourceFile parameter, specify the address of the user file to be added.

note Note: Be sure to specify the root export path in the project settings. Otherwise, the user file will be placed into the batch folder in the file storage location.

In the destinationName parameter, specify an export destination.

Set the replaceIfExists parameter to true if you want to overwrite any existing file with the same name in the destination. Set the replaceIfExists parameter to false if you want to keep any existing file with the same name in the destination and add an error message to the log.

CheckRules( ) *

Checks all rules in the document. Write permissions for the document are required.

Field( name : string ) : IField *

Gets access to a document field by the full path to the field. Full paths are used.

Is an internal** field. Cannot be used in rules.

HasField( name : string ) : bool *

Checks whether a field with the specified path exists. Relative paths are used.

Is an internal** field. Cannot be used in rules.

IndexedItemValue( name : string ) : VARIANT *

Retrieves the field value by the name or the path to the field. Available from external fields of documents and pages. Both a field name and a full path to the field can be used. Cannot be used in rules.

IndexedItemValues( name : string ) : IVARIANTArray *

Retrieves a set of index values corresponding to a field in the Document Definition by the name or the path to the field. If a field is marked as an index field in the recurring section, the method returns all values of the field from all sections. Available from external fields of documents and pages. Both a field name and a full path to the field can be used. Cannot be used in rules.

Property( name : string ) : VARIANT

Retrieves the value of a specified property by its name. The returned value can be in the form of a string, a number or time.

Properties names and returned values:

·Exported - when the document was exported

·ExportedBy - who exported the document

·Created - when the document was created

·CreatedBy - who created the document

·Recognized - when the document was recognized

·RecognizedBy - who recognized the document

·Modified - when the document was modified last

·ModifiedBy - who modified the document

·TotalSymbolsCount - the total number of symbols

·UncertainSymbolsCount - the total number of uncertain symbols

·RecognizedSymbolsCount - the number of recognized symbols

·Comment - the comment on the document

·ProcessingErrors - document processing errors

·ProcessingWarnings - document processing warnings

·Verified - the time when the fields of the documents were last edited manually

·VerifiedBy - the user who made the last manual changes to the fields of the document (does not save information from Processing Stations)

SaveAs( filename : string, [optional] options : IExportImageSavingOptions ) *

Saves the image of a one-page or multi-page document. If no saving format is specified in the saving options, the image is saved in a *.tif file. This is an internal** field.

SaveAsStream( [optional] options: IExportImageSavingOptions) : byte[] *

Saves the document to a memory stream and returns it as a byte array (COM SafeArray).

note Note: JScript and VBScript do not support iteration over this array.

SaveXmlToFile( filename : string ) *

Saves the XML file with the description of the document without preprocessing to the specified location to be used in the Web Verification Station.

SaveXmlToFileStorage() *

Saves the XML file with the description of the document without preprocessing to the file storage to be used in the Web Verification Station.

warning Important! The Property method should not be confused with the Properties collection which contains document properties specified by the user.

Properties

Name | Type | Access | Description
Action * | IActionResult | Read-only | Is effective in export and post export scripts only.
AsBatchItem * | IBatchItem | Read-only | Converts the document into an IBatchItem object.
AssemblingErrors | IAssemblingErrors | Read-only | A collection of assembly errors. Access to the collection is always read-only.
Attachments | IUserAttachments | Read-only | User attachments
Batch | IBatch | Read-only | The batch. Irrespective of permissions of the script for the document, access to the batch is read-only and internal** fields of documents and pages are unavailable.
BatchName | string | Read-only | The batch name.
Children * | IFields | Read-only | Child fields (document sections). Unlike the property Sections, section order corresponds to their order in Document Definition. Recurring sections are represented as one item and the instances are available through the Items method of that item. Is an internal** field. Cannot be used in rules.
Comment | string | Read/write | A comment of the document.
DefinitionName | string | Read-only | The name of the Document Definition. For unprocessed and unrecognized documents, the property returns an empty string.
DocumentDefinition | IDocumentDefinitionInfo | Read-only | Detailed information about the Document Definition which is matched on the document.
HasErrors | bool | Read-only | Specifies whether the document has single-field or multi-field errors.
HasUnpreparedImages | bool | Read-only | Specifies whether the document contains un-preprocessed pages.
HasWarnings | bool | Read-only | Specifies whether the document has rule or format warnings.
Id | string | Read-only | Document identifier (External Id). The value starts with 1 and is unique only within one batch.
Index | int | Read-only | The index of the document in the batch. The value starts with 0 and is unique only within one task.
IsAnalyzed | bool | Read-only | Specifies whether the document is analyzed. The document is considered analyzed if all pages of the document are analyzed.
IsAssembled | bool | Read-only | Specifies whether the document is assembled.
IsExcludedFromAutomaticAssembling | bool | Read/write | Checks if the document is included into automatic assembly.
IsExported | bool | Read-only | Specifies whether the document is exported.
IsRecognized | bool | Read-only | Specifies whether the document is recognized. The document is considered recognized if each page of the document is either recognized or this is an annex page.
IsUsedForTraining | bool | Read/write | Specifies whether the document is used for training.
IsVerified | bool | Read-only | Specifies whether the document is verified.
Pages | IPages | Read-only | Document pages.
PreviousStageInfo * | IStageInfo | Read-only | Returns the IStageInfo object, i.e. the processing stage of the document. The TaskId and PrincipalId fields are not used.
Priority | TProcessingPriority | Read-only | A priority of the document.
ProcessingErrors * | string | Read-only | Processing errors divided by line breaks.
ProcessingWarnings * | string | Read-only | Processing warnings divided by line breaks.
ProhibitedUserId * | int | Read-only | A task created from the document will not be available to the user with the given identifier. By default the value is "0" which means that the task is available to all users.
Properties | IProperties | Read-only | Registration parameters of the document.
RecognizedSymbolsCount * | int | Read-only | The number of recognized symbols.
RuleErrors * | IRuleErrors | Read-only | A collection of document errors (format errors, rule errors, errors of merging double verification results). note Note: Available for open documents only.
Sections * | IFields | Read-only | A flat list of document sections. If there is a recurring section, the list contains all replications of the section. Sections in the list go in the same order as the first pages of the document sections. Sections without pages close the list. Is an internal** field. Cannot be used in rules.
StageInfo | IStageInfo | Read-only | Information about the processing stage on the application server.
SymbolsForVerificationCount | int | Read-only | The number of symbols that need verification.
TotalSymbolsCount | int | Read-only | The total number of symbols.
UncertainSymbolsCount | int | Read-only | The number of uncertain symbols.

** - The internal field requires loading the object into memory.


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > Objects >

Return to chapter overview

IDocuments

What it does

A collection of IDocument objects.


IDocumentExportResults

What it does

The object represents a set of export results of a document to different targets. This is a collection of the IActionResult objects which contain information about export for particular targets.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
Document | IDocument | Read-only | The document exported with the given results
ErrorMessage | string | Read-only | The message that describes why the export failed
Succeeded | bool | Read-only | Specifies whether the document export succeeded


IDocumentsExportResults

What it does

A collection of IDocumentExportResults objects.

The object represents export results for a set of documents.

note Note. This object is not available on the Web Verification Station for checking rules locally.


IDocumentDefinitionInfo

What it does

Contains detailed information about the Document Definition matched with the document.

Properties

Name | Type | Access | Description
Name | string | Read-only | The name of the Document Definition.
SectionsInDefinition | ISectionDefinitionInfoArray | Read-only | An array of sections in the Document Definition. Returns only included sections.
Version | int | Read-only | The version of the Document Definition.


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > Objects >

Return to chapter overview

IDocumentDefinitionInfoArray

What it does

A collection of objects of type IDocumentDefinitionInfo.


IEditablePictureObject

Show/Hide Hidden Text

What it does

Represents a picture that can be edited in ABBYY FlexiCapture. The object is an extension of the IPictureObject interface.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Methods

Definition

Description

Allowable image color

ApplyContourSmoother ( params: IContourSmootherParams )

Applies the contour smoother to an image.

For gray and color images

ApplyLocalContrastFilter ( params: ILocalContrastParams )

Applies the non-adaptive contrast filter to an image.

For gray and color images

ApplyMultiscaleLocalContrastFilter ()

Applies the adaptive contrast filter to an image. Use this method to transform an image into a scan.

For gray and color images

ApplyShadowsHighlightsFilter ( params: IShadowsHighlightsParams )

Applies shadow highlighting to an image.

For gray and color images

ApplySigmaFilter ()

Removes digital noise from an image.

For all images

AutoCrop ( [optional] type : string )

Automatically crops an image. Possible values of the type parameter are Photo, Scan, and Generic. The parameter is set to Generic by default.

For all images

Binarize ( params: IBinarizationParams )

Converts colors on an image to black-and-white. Has a different set of properties than the ConvertToBW method.

For gray and color images

ConvertToBW ( [optional] threshold : int )

Converts an image to black-and-white. You can specify a brightness threshold value. Values above the threshold will be considered white and those below the threshold level will be considered black. Brightness threshold values can range from 0 to 255.

For all images

CreateBinarizationParams () : IBinarizationParams

Creates an object with parameters for the Binarize method.

For all images

CreateContourSmootherParams () : IContourSmootherParams

Creates an object with parameters for the contour smoother.

For all images

CreateLocalContrastFilterParams () : ILocalContrastParams

Creates an object with parameters for the contrasting action. Parameters inside the filter are set to default.

For all images

CreateShadowsHighlightsFilterParams () : IShadowsHighlightsParams

Creates an object with parameters for the action of changing a shadow light effect.

For all images

Crop ( rect : string )

Crops the image outside the specified rectangle.

For all images

CutOut ( rect : string ) : IEditablePictureObject

Cuts a specified rectangle from the image and returns this rectangle.

For all images

Deskew ( [optional] byLines : bool, [optional] byBlackSquares : bool, [optional] byText : bool )

Deskews the image. Image skew can be corrected based on straight lines, black squares or text. By default, the byText parameter is set to true.

For all images

Despeckle ( [optional] garbageSize : int )

Removes noise from black-and-white images. Speckles up to the size specified will be removed. If the garbageSize parameter is not specified, the size is detected automatically.

Only for black-and-white images

Erase ( rectangle : string, [optional] red : int, [optional] green : int, [optional] blue : int )

Erases an area on the image. You can specify the color to erase the area with. By default the black color is used.

For all images

FlipHorizontal ()

Flips the image horizontally.

For all images

FlipVertical ()

Flips the image vertically.

For all images

FreeScale ( newWidth : int, newHeight : int, newResolution : int )

Resizes the page according to the new values.

For all images

Invert ( [optional] rectString : string )

Inverts the image. You can specify a string with coordinates of the rectangle to be inverted.

For all images

NewRectsArray (): IRects

Creates a new collection of rectangles.

Only for color images

RemoveMotionBlur ()

Removes blurring caused by document, camera or scanner movement during scanning.

For all images

RemoveStamps ( color: TColorToFilter, rects: IRects )

This method deletes color stamps and other marks of the specified color from an image.

·color
The color of stamps to remove.

·rects
The rectangle collection of the stamps to remove.

Example

Here is a sample script for an On User Command event that removes red stamps from all the pages (entire page area is searched for stamps):

MainWindow.TaskWindow.OpenDocument( MainWindow.TaskWindow.EditorWindow.Document );

foreach (IPage page in MainWindow.TaskWindow.EditorWindow.Document.Pages)

{

if (page.Picture.IsColor)

{

IEditablePictureObject editablePicture = page.Picture.CreateEditableCopy();

IRects rects = editablePicture.NewRectsArray();

rects.AddRect(0, 0, editablePicture.Width - 1, editablePicture.Height - 1); // Вся страница

editablePicture.RemoveStamps(TColorToFilter.CTF_Red, rects);

page.ReplaceImage(editablePicture);

}

}

Only for color images

RemoveStampsExt ( colorsToFilter : string )

This method deletes color stamps and other marks of the specified color from an image. It is similar to the previous method but it also uses an improved algorithm that lets you delete more colors. It is advised that you use this method.

colorsToFilter - The color of stamps to remove.

·Accepts the following string values: Red, Green, Blue, Yellow, Orange, LightBlue, and Purple (not case-sensitive).

·You can specify multiple values, separating them with commas (e.g. "Red, Green").

·You can also specify an empty string ("") to make the program select the appropriate stamp color automatically. The program will delete any stamps it detects on an image which have one of the allowed color values.

Example

Here is a sample script for an On User Command event that removes red stamps from all the pages:

foreach (IPage page in Document.Pages)

{

if (page.Picture.IsColor)

{

IPictureObject picture = page.Picture;

IEditablePictureObject editablePicture = picture.CreateEditableCopy();

editablePicture.RemoveStampsExt("Red, Green");

page.ReplaceImage(editablePicture);

}

}

Only for color images

Rotate ( angle : int )

Rotates the image clockwise to the given angle.

For all images

Scale ( ratio : int )

Stretches or compresses the image relative to the base size of 100%.

The method applies to image pixel size only. Image physical size remains unchanged.

For all images

note Note: The rect parameter which is passed to the CutOut and Crop methods is a string in the form of "[left, top, right, bottom]". To get this string you can either call the ToString method for any object of the IRect type, or use the FCTools::Rect method.

Examples of scripts for custom processing stages that use methods of the IEditablePictureObject object

This script creates an object for the LocalContrastFilter filter with parameters set manually and applies the filter to an image.

foreach( IPage page in Document.Pages )

{

IPictureObject picture = page.Picture;

IEditablePictureObject editablePicture = picture.CreateEditableCopy();

// Creating an object with parameters (parameters are set by default)

ILocalContrastParams localContrastParams = editablePicture.CreateLocalContrastFilterParams();

// Setting parameters whose values will be changed afterwards

localContrastParams.Radius = 7;

localContrastParams.NoiseLevel = 200;

// Applying a filter to the image

editablePicture.ApplyLocalContrastFilter( localContrastParams );

// Replacing an image of a page with the modified one

page.ReplaceImage( editablePicture );

}

The script creates an object with parameters for the Binarize method and converts the image to black-and-white with set parameters.

foreach ( IPage page in Document.Pages )

{

IPictureObject picture = page.Picture;

IEditablePictureObject editablePicture = picture.CreateEditableCopy();

// Creating an object with parameters (parameters are set by default)

IBinarizationParams binarizationParams = editablePicture.CreateBinarizationParams();

// Setting the true or false parameter

binarizationParams.SmoothTexture = false;

editablePicture.Binarize( binarizationParams );

page.ReplaceImage( editablePicture );

}

This script increases the contrast levels, removes digital noise, applies automatic cropping, and removes blurring on the selected pages. The script is initiated by a Verification Station operator.

foreach( IPageItem pageItem in MainWindow.Selection.PageItems) {

pageItem.TaskWindow.CloseEditorWindow();

pageItem.TaskWindow.OpenDocument( pageItem.DocumentItem.Document );

IPage page = pageItem.Page;

IEditablePictureObject editablePicture = page.Picture.CreateEditableCopy();

// Applies the image transformations

editablePicture.AutoCrop();

editablePicture.ApplySigmaFilter();

editablePicture.ApplyMultiscaleLocalContrastFilter();

editablePicture.RemoveMotionBlur();

// Replaces the original document image with the edited image

page.ReplaceImage( editablePicture );

pageItem.TaskWindow.CloseDocument( pageItem.DocumentItem.Document );

}


IExportFieldsToRedact

What it does

The list of fields to be redacted in the resulting image.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Methods

Definition | Description
Add( field : IField ) | Adds a field to the list.
Clean() | Clears the list.

Properties

Name | Type | Access | Description
PlainList | string | Read-only | The list of fields to be redacted in the resulting image. Fields should be listed in a single line and separated by a semicolon.


IExportImageSavingOptions

What it does

Describes image saving options.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Methods

Definition

Description

Add( value : Object, [optional] position : int )

Places the value element in the text at certain position. If no position is specified, the element is placed at the end of the text.

note Note: The value parameter may be a character, a string, an ICharacterParams object, or an ICharactersParams object. Thus, you can copy character or text from other fields, preserving the markup and highlighting. If the regions of the characters you attempt to copy do not fit within the region of the new field, they will not be copied.

SetPdfDocumentInfo( type: TPdfDocumentInfoType, value: string )

The metadata of the PDF file.

Properties

Name

Type

Access

Description

AddProperFileExt

bool

Read/write

If the value is set to true, the extension is set according to the image format during image saving. By default, the value is set to false.

ColorType

string

Read/write

Color scheme. Admissible values: "FullColor", "GrayScale", "BlackAndWhite". Strings are not sensitive to the letter case.

FieldsToRedact

IExportFieldsToRedact

Read/write

The list of fields to be redacted in the resulting image.

Format

string

Read/write

Image saving format. Admissible expressions: "tif", "jpg", "bmp", "jpg2000", "pcx", "png", "pdf" plus "-s" (for PDF Searchable) and "-a" (for PDF/A) parameters. Strings are not sensitive to the letter case. Parameters begin with "-". They can be separated with spaces, tabs or no delimiters can be used. For example: "pdf -s", "pdf-a-s".

ImageCompressionType

TImageCompressionType

Read/write

Sets a compression method for the exported image. By default, a compression method is selected automatically based on the format and colors.

note Note: If an incompatible compression method is selected, the task will be placed in the Exceptions folder.

PdfAVersion

TPdfAVersion

Read/write

Specifies the PDF/A version.

PdfTextSearchArea

TPdfTextSearchAreaType

Read/write

Specifies where a text layer should be created for purposes of export to PDF-S.

Quality

int

Read/write

Image quality for JPEG-compression (in percentage terms).

RecognitionLanguages

string

Read/write

The list of languages that can be used for recognition of documents intended for export to searchable PDF. Consists of the internal names of languages in English divided by semicolons without spaces. If the list is empty, the language of the Document Definition applied to the document is used.

Is effective for annex pages only, as for pages with matched sections, only recognized fields have a text layer. As such fields are recognized in the recognition stage (not in the export stage), specifying this property does not influence recognition results for these fields.

Resolution

int

Read/write

Image resolution (measured in DPI).

SaveAttachmentsToPdf

bool

Read/write

Specifies whether to save the attachment of the PDF file.

ShouldOverwrite

bool

Read/write

Specifies if the existing file can be overwritten.

UseMRC

bool

Read/write

Enables compression using Mixed Raster Content (MRC) technology when exporting to PDF or PDF/A. MRC provides better compression for some images than the commonly used JPEG method, for example, for good quality images with high-contrast text against a uniform background. Use MRC to reduce the size of the resulting PDF file.

note Note: By default the flag is true when exporting to PDF and false when exporting to PDF/A.


IField

Show/Hide Hidden Text

What it does

A document field. The type of the field can be determined based on the Type property. For table fields, the Rows and Cell object methods are available.

Methods

Definition

Description

AddRegion( page : IPage, rect : string ) : IFieldRegion

Adds a region with the specified coordinates to the field. rect is a description of a rectangle formatted as [left,top,right,bottom]. This method requires write permissions for the IField object.

Sample code

Code sample that copies the region of field 1 to field 2:

field2.AddRegion( field1.Regions[0].Page, field1.Regions[0].SurroundingRect.ToString() )

note Note: This method isn't available for tables. To delete a region, use the IFieldRegion.Delete() method.

Cell( columnName : string, rowNum : int ) : IField

Retrieves a table cell by the column name and the row number. Available for tables only. Unavailable in script rules.

CheckRules( )

Checks rules for the given field and its children. Cannot be used in rules.

Field( Path : string) : IField

Search of the child element relative to the given element. Relative paths are used. Only synonyms of field names as they are defined in the rule settings can be used in rules.

GetLangs() : IVARAIANTArray

Returns the IDs of the languages detected in a field.

Example

An example of a user script that checks what languages are present in a field:

var t = Context.Field("Field Name").GetLangs();

var p = "";

foreach (var s in t)

{

p += s.ToString()+",";

}

FCTools.ShowMessage( "Language " + p);

HasField( parameter : string) : bool

Checks whether the field with the specified path exists. Relative paths are used. Only synonyms of field names as they are defined in the rule settings can be used in rules.

Suggest( VARIANT newSuggest )

Adds a prompt to the field.

note Note: Can be in the form of value or string. Added values are written with four decimal places.

For example, the method field.Suggest( "12.90" ) adds the prompt in the form of "12.90", while field.Suggest( 12.90 ) adds the prompt as 12.9000.

Properties

Name

Type

Access

Description

Caption

string

Read-only

The name of the field displayed on the form. The value of this property may be the same as the Name property.

Children

IFields

Read-only

Child items of the field (cells for tables). Unavailable in script rules.

FullName

string

Read-only

A full field name relative to the document. A unique identifier of the field in the document. Can be used for search of document fields through the Field method. In script rules the returned value coincides with Name and is not unique.

HasRuleError

bool

Read/write

Specifies whether a rule warning or error is associated with the field.

note Note: In script rules this property specifies whether to display the field in the error message.

A rule includes a collection of fields specified in the rule properties dialog box. If the rule check fails, an error message (specified in IRuleContext.ErrorMessage) and links to the fields from the collection are displayed in the document editor. Setting this property to false excludes the field from the list of links associated with the error.

IsExportable

bool

Read-only

Specifies whether the field is intended for export (according to the Document Definition settings).

IsIndexed

bool

Read-only

Specifies whether the field is indexable. If yes, the field value can be available from document and page external fields of the Document Definition.

IsMatched

bool

Read-only

Specifies whether the field is matched.

IsSuspicious

bool

Read-only

Specifies whether the field value is certainly recognized.

IsValid

bool

Read-only

Specifies if the field has no format errors.

IsVerified

bool

Read/write

Specifies whether the field is verified.

note Note: The property does not work for field groups.
The property can be set to true in rules even without "write" permissions for the field. To deselect the flag, "write" permissions are required.

If the flag is true, the field is displayed gray in the document editor, as if it were already confirmed. If the flag is false, the field is displayed white and needs to be confirmed. Once the field is verified, the flag is set to true.

note Note: Setting this flag to false does not provide routing the field to the Data Verification stage. For this, use the NeedVerification property of the IField or ICharacterParams interfaces.

IsVisible

bool

Read/write

Specifies whether the field should be reflected in document layout (according to the Document Definition settings).

Items

IFields

Read-only

Instances of the field (rows of table fields).

Name

string

Read-only

The field name in Document Definition.

NeedVerification

bool

Read/write

Specifies whether the field itself (not its characters) needs verification.

If the flag is true, the field is displayed against a red background in the document editor which means that the field needs verification. If the Send to field verification option is selected in the field properties, the field will be routed to the Data Verification stage. Once the field is verified, the flag is set to false.

To specify, whether particular characters, but not the whole field, need verification, use the NeedVerification property of the ICharacterParams interface.

ReadOnly

bool

Read-only

Specifies whether the field has "read-only" permissions (according to the Document Definition settings). When used in rules, indicates that the rule has "write" permission for the field.

ReadOnlyInForm

bool

Read/write

Specifies whether the field on the form has "read-only" permissions (according to the Document Definition settings).

Regions**

IFieldRegions

Read-only

An array of field regions. Overflowing fields can have several regions.

Rows

IFields

Read-only

A set of table rows. Unavailable for non-table fields.

Symbols

ICharactersParams

Read-only

Detailed information about the symbols properties.

Text

string

Read/write

The text representation of a field value.

Type

TExportFieldType

Read-only

The type of a field.

Value

VARIANT

Read/write

The value of the field in the form of VARIANT. The property returns an object of type Int32, if the settings of the field state that it contains an integer and its absolute value is not greater than 2147483647. If the absolute value of the field is greater than 2147483647, the property returns an object of type double.

** - The property is unavailable if the Advanced XML Export option in the license properties is deselected.


IFieldRegion

What it does

Represents a region of the document field.

note Note. Some methods and properties of this object are not available on the Web Verification Station for checking rules locally. The methods and properties that are not supported are marked with an asterisk (*).

Methods

Definition | Description
Delete( ) | Deletes a field region.

Properties

Name | Type | Access | Description
Field | IField | Read-only | The document field that corresponds to the region. The property value can be "0".
IsMatched | bool | Read-only | Specifies whether the region is matched
Page | IPage | Read-only | The page that contains the region
PageIndex | int | Read/write | The number of the page in the document the region is located on
Picture * | IPictureObject | Read-only | The picture that corresponds to the region
Rects | IRects | Read-only | The array of rectangles the region consists of
SurroundingRect | IRect | Read-only | The rectangle that describes the whole region

note Note: In the custom recognition script the value of the Field property is always "0" as the field does not exist at the time of recognition.


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > Objects >

Return to chapter overview

IFieldRegions

What it does

A collection of IFieldRegion objects.


IFields

Show/Hide Hidden Text

What it does

A collection of IField objects.

Methods

Definition

Description

AddNew( insertAt : int )

Inserts a new instance of a recurring field. The insertAt parameter specifies the position of the new instance in collection. The method allows you to create strings for a table block without region.

Cannot be used in script rules.

Sample code

Document.Field( "Page 1\\Address" ).Items.AddNew( 0 );

Delete( what : Object )

Deletes the instance of a field or a table row. The what parameter can be the item to be deleted from the collection or its index.

Cannot be used in script rules.


IFlexiCaptureTools

Show/Hide Hidden Text

What it does

The IFlexiCaptureTools interface is implemented with a FCTools global object which is available in scripts. All methods of the FCTools global object can be called as static methods, for example:

FCTools.ShowMessage( "Test" );

note Note. Some methods and properties of this object are not available on the Web Verification Station for checking rules locally. The methods and properties that are not supported are marked with an asterisk (*).

Methods

Definition

Description

ClassifyPage( page : IPage, [optional] callback : IProcessingCallback, [optional] detectClassesWithoutLayout : bool ) : IPageClassificationResult *

Classifies the page and, in the event of successful classification, returns the classification result. The classification result can be the name of a class from a batch type classifier or null.

This method can be used in the following cases:

·Pages must be classified and exported as searchable PDF to different folders according to classification results; no recognition or matching of Document Definitions is required;

·Depending on the classification results, some actions should be performed on the document prior to recognition (e.g., correction of page orientation).

note Note: If the detectClassesWithoutLayout parameter is not specified, its value is set to false. If the value is true, classification is based only on classes from a classifier and the available Document Definitions are not used for classification.

note Note: You can either use the IProcessingCallback interface, or implement your own interface.

IsModuleAllowedByLicense( authorId : string, moduleName : string ) : bool *

Checks whether the use of a module is allowed by the license.

LoadImage( filePath : string, [optional] pageNumber : int ) : IEditablePictureObject *

Loads an image from a file. The loaded image will be available for editing. If the pageNumber parameter is not specified, its value is set to "1."

NewImageSavingOptions() : IExportImageSavingOptions *

Creates a new object of the IExportImageSavingOptions class.

PictureFromHBitmap( [optional] resolution : int, bitmap : HBITMAP ) : IEditablePictureObject *

Generates an image from an HBITMAP object with specified resolution. If the resolution parameter is not specified, image resolution is detected automatically. The generated image will be available for editing.

Sample code

System.Drawing.Bitmap bitmap = System.Drawing.Image.FromHbitmap( handle );

<do something>

IPictureObject FinalPicture = FCTools.PictureFromHBitmap( 300, bitmap.GetHbitmap().ToInt32() );

note Note: As an HBITMAP object is taken into ownership, there is no need to call the CloseHandle method for it after generating the image.

Rect( left : int, top : int, right : int, bottom : int ) : string

Generates a string in the form of a rectangle with specified coordinates.

ShowMessage( text : string, [optional] isError : bool )

Shows a message to the user. If the isError flag is not specified, its value is set to false. If the isError flag is set to true, an error message will be displayed; otherwise, a notification message will be displayed. If the script is executed within a handling process, the message will be written to the processing log.

note Note: Unlike a classifier, the ClassifyPage method is used to analyze the page class, but the classification result is not matched. For example, if a classifier does not contain the Banking_eng Document Definition, the ClassifyPage method applied to the page can return a section of this Document Definition.

Properties

Name | Type | Access | Description
CurrentUserSession * | IUserSessionInfo | Read-only | Returns information about the session of the user currently using the Processing Station. During verification, it returns information about the session of the user currently performing verification (including remote users).
ScriptContext * | IScriptDefinitionContext | Read-only | Provides access to the object in which the script was created. This property allows you to access the project regardless of the parameters received by the script.


ILocalContrastParams

What it does

Configures contrasting parameters.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
Brightness | int | Read/write | Defines brightness of an image. Possible values are from 0 to 256.
Contrast | int | Read/write | Defines contrasting level.
NoiseLevel | int | Read/write | Defines noise level that will not increase. Possible values are from 0 to 256.
NoiseSensitivity | int | Read/write | Defines how sensitive an image is to an automatic noise level correction.
Radius | int | Read/write | A filter localization degree.
TargetBrightness | int | Read/write | A target brightness level. Possible values are from 0 to 255.


IMatchedSectionInfo

What it does

Contains detailed information about the Document Definition section which is matched on the page.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Methods

Definition | Description
FlexibleAlternativeName( ) : string | Returns the name of the FlexiLayout. Available only for documents that have already been opened.

Properties

Name

Type

Access

Description

DocumentDefinition

IDocumentDefinitionInfo

Read-only

Information about the Document Definition the section belongs to.

FlexibleInstanceId

int

Read-only

Index of a flexible section. A set of pages with the same index of the flexible section forms one document section.

The field is effective for flexible sections only.

If the value of FlexibleInstanceId is different for two pages on which the same definition of the flexible section is matched, it means that the pages belong to different document sections.

IsFlexible

bool

Read-only

Specifies whether the section is flexible.

Name

string

Read-only

The section name.

SectionDefinitionPageNumber

int

Read-only

The page number in the definition of the fixed section matched on the page.

The field is effective for fixed sections only.


IMatchingInfo

What it does

Stores parameters of matching Document Definitions and sections on a page.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
DefinitionsList | string | Read/write | The list of sections and Document Definitions to be matched on the page divided by semicolon. Document Definitions names and section names are specified in the form of <DefinitionName> or <DefinitionName>\<SectionName> respectively. Only existing sections and Document Definitions can be used. For example, the first section of the sample Banking_eng is specified as follows: Banking_eng\Page 1.
ForceMatch | bool | Read/write | Specifies whether to force-match the sections. The flag can be set to true only if no more than one section is set. If the section list is empty and the flag is set to true, the page will be marked as an annex page which does not need recognition.
MaxPagesToMatch | int | Read/write | Specifies the maximum number of pages with which the multi-page sections may be matched. 0 means that there are no restrictions.
NeedRecognition | bool | Read/write | Specifies whether fields within the section need recognition. If the flag is set to false, fields will not be recognized after matching.

note Note: For the page to be recognized with all sections, do not modify the DefinitionsList property. If the DefinitionsList property is empty and the ForceMatch flag is not set, the page will not be recognized and the error message "No Document Definitions to match" will be logged. If the ForceMatch flag is set to true, the page will be marked as an annex page.


IPage

Show/Hide Hidden Text

What it does

Represents a page.

note Note. Some methods and properties of this object are not available on the Web Verification Station for checking rules locally. The methods and properties that are not supported are marked with an asterisk (*).

Methods

Definition

Description

ApplyImageEnhancementProfile( name: string ) *

Applies the set enhancement profile to an image. If applying a profile creates new pages, they will be added to a document after the current page.

Example

The following code is an example of a script for the custom processing stage that applies the Photo enhancement profile to all images of the "photo" type:

foreach( IPage page in Document.Pages )

{

IPictureObject picture = page.Picture;

if(picture.IsPhoto())

{

page.ApplyImageEnhancementProfile("Photo");

}

}

MarkAsAnnex() *

Marks the page as an annex that does not require recognition.

ReplaceImage( newPicture : IPictureObject ) *

Replaces the page image with a new one.

The new image can be created by editing another IPictureObject object, loaded from file using the FCTools.LoadImage method or created from a bitmap file stored in memory (for example, .NET System.Drawing.Image) using the FCTools.PictureFromHBitmap method.

RevertToOriginalImage() *

Reverts to the original page image. This method can only be called if the HasOriginalImage property is set to true.

Example

The following code is an example of a script that takes the user back to the original page image on the Verification Station (if the Store original image during processing option is selected):

foreach( IPageItem pageItem in MainWindow.Selection.PageItems) {

pageItem.TaskWindow.CloseEditorWindow();

pageItem.TaskWindow.OpenDocument( pageItem.DocumentItem.Document );

IPage page = pageItem.Page;

if ( page.HasOriginalImage )

page.RevertToOriginalImage();

pageItem.TaskWindow.CloseDocument( pageItem.DocumentItem.Document );

}

SaveAs( filename : string, [optional] options : IExportImageSavingOptions ) *

Saves the page image depending on saving options. If options are not specified, the image is saved as *.tif.

Is an internal** field.

SaveSourceFile () *

Saves the source file from which the page image originated to the specified file. This method can only be called if the source file was saved. You can check if the source file was saved using the SourceFileGUID method.

See also Sample scripts describing export.

SaveXmlTextToFile( filename : string ) *

Saves all of the text on the page as an XML file to the specified folder.

SaveXmlTextToFileStorage() *

Saves all of the text on the page as an XML file to the folder of the batch in the file storage.

Properties

Name

Type

Access

Description

AsBatchItem *

IBatchItem

Read-only

Converts the page into an IBatchItem object.

Attachments *

IUserAttachments

Read-only

User attachments.

Comment *

string

Read-only

The page description.

Document *

IDocument

Read-only

The document that contains the page

ExcludedFromDocumentImage *

bool

Read/write, Mutable (can be modified even in scripts with read-only permissions)

Applies during export of the document image. Indicates that the current page image should not be exported when exporting the whole document.

Is an internal** field.

FullText *

string

Read-only

The recognized text on the page.

FullTextCharRects *

IRects

Read-only

Rectangles of characters from FullText.

HasOriginalImage *

bool

Read-only

Indicates whether or not the original page image is available.

Id

string

Read-only

The page identifier

ImageSource *

string

Read-only

The source of an image. If the image was imported from a file, this property will contain the path to the file. If the image was received from a scanner, ImageSource will contain the name of the source. Contains an empty value if the image was imported using a custom import.

ImageSourceFileSubPath *

string

Read-only

The path of the source image relative to the root of Hot Folder or the folder they were imported from.

ImageSourcePageNumber *

int

Read-only

The number of the source page in the file.

ImageSourceType *

string

Read-only

String "File", "Scanner" or "Custom" depending on the source

Index *

int

Read-only

The page index in the document

IsAnalyzed *

bool

Read-only

Specified whether the page is analyzed.

IsResultClassConfident *

bool

Read/write

Shows whether the page was confidently classified.

MatchedSection *

IMatchedSectionInfo

Read-only

Detailed information about the section which is matched on the page. If there are no matched sections on the page, the value is null.

Picture *

IPictureObject

Read-only

The page image.

Is an internal** field.

Rect *

IRect

Read-only

The rectangle of the page.

Is an internal** field.

ReferenceClassName *

string

Read-only

The reference class of the page.

ResultClassName *

string

Read/write

The name of the class that is assigned to the page.

SectionName *

string

Read-only

The document section name.

SourceFileGUID *

string

Read-only

The identifier of a source file of a document. Contains an empty string if the source file was not saved.

SourceImageRotation *

int

Read-only

The angle (in degrees) to which the source page image was rotated. Possible values: 0, 90, 180, 270. For pages rotated counter-clockwise, the value of clockwise rotation is returned (e.g. for image rotated 90˚ counter-clockwise, 270 is returned).

The property is available only if the document that contains the page is open.

Is an internal** field.

Returns the rotation angle for images:

1.imported from a Hot Folder;

2.loaded in the Project Setup Station or in the rich Verification Station;

3.rotated during recognition;

4.rotated manually in rich and remote stations;

5.rotated manually in the Web Verification Station or during verification in the Web Capture Station.

Ignores the rotation value for images:

1.rotated by scripts;

2.rotated in the (Web-) Scanning Station or during scanning in the Web Capture Station;

3.rotated automatically when correcting image skew.

** - The internal field requires loading the object into memory.


IPageClassificationResult

What it does

Stores information about results of classification of the page.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name

Type

Access

Description

MatchedSections

string

Read-only

The list of section that can be matched. Contains entries in the form of <Document Definition Name>\<Section Name> divided by semicolon. This unmodified list can be passed to the IMatchingInfo object as the DefinitionsList parameter (IMatchingInfo::DefinitionsList). To pass the results, do the following:

1.Create a custom stage based on script.

2.In this stage, write a script which classifies pages and writes classification results to registration parameters.

3.In the Before matching script, write the code which uses classification results from the registration parameter if the registration parameter is specified.

note Note: When passing classification results to the Before matching script, set the IMatchingInfo.ForceMatch flag to false so that pages are not classified repeatedly with a script.

PageType

TPageClassificationType

Read-only

The type of the page


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > Objects >

Return to chapter overview

IPages

What it does

A collection of IPage objects.


IPictureObject

Show/Hide Hidden Text

What it does

Represents the image of a page or a region.

The object implements the IPicture interface and provides access to some of its properties through the IDispatch interface.

For more details about the IPicture interface, see the corresponding article at MSDN.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Methods

Definition

Description

AnalyzePageObjects( [optional] reserved: Object ) : IPictureObjectsInfo

Defines objects on the page and returns the parameters of the page as seen by the recognition module. Some delay in the operation is possible.

CalcSuitabilityForOCR(): float

Shows how suitable is an image for OCR. Possible values are from 0.0 to 1.0.

Example

This script records results of method's operation for the selected documents to a page comment by clicking a user button:

foreach( IDocument doc in MainWindow.Selection.Documents )

{

MainWindow.TaskWindow.OpenDocument( doc );

foreach( IPage page in doc.Pages )

{

IPictureObject picture = page.Picture;

double score = (double)picture.CalcSuitabilityForOCR();

bool verdict = (bool)picture.IsSuitableForOcr();

page.Comment = score.ToString( "0.0000" ) + " / " + verdict.ToString();

}

}

CreateEditableCopy() : IEditablePictureObject

Creates an editable copy of the image.

DetectPageOrientation( [optional] language: string ) : int

Detects page orientation by the text on it. The internal name of the language is passed as the input parameter. If the language is not specified, the language of the current locale is used. Returns the angle (in degrees) to which the page must be rotated. The following values can be returned: 0, 90, 180 and 270.

IsPhoto(): bool

Shows whether an image is a photo.

IsSuitableForOcr(): bool

Shows whether an image is suitable for OCR.

SaveAs( filename : string, [optional] options : IExportImageSavingOptions )

Saves the image. If no options are specified, the image is saved as *.tif.

Properties

Name | Type | Access | Description
Handle | OLE_HANDLE | Read-only | The Windows GDI handle of the picture. In .Net this property can be used in System.Drawing.Image.FromHbitmap method to retrieve the picture object.
Height | int | Read-only | The height of the picture in dots
hPal | OLE_HANDLE | Read/write, Mutable (can be modified even in scripts with read-only permissions) | The Windows handle of the palette used by the picture. This property can be used in System.Drawing.Image.FromHbitmap as a second parameter.
IsBlackWhite | bool | Read-only | Whether the picture is black-and-white.
IsColor | bool | Read-only | Whether the picture is color.
IsGrayscale | bool | Read-only | Whether the picture is grayscale.
Type | SHORT | Read-only | The type of picture.
Width | int | Read-only | The width of the picture in dots
XResolution | int | Read-only | The horizontal image resolution
YResolution | int | Read-only | The vertical image resolution


IPictureObjectsInfo

What it does

An objects that stores the results of object detection.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
BarcodesCount | int | Read-only | The number of barcodes detected on the image (2-D barcodes are not counted).
BlacknessPercentage | int | Read-only | The percentage of black on the page.
BlackSquaresCount | int | Read-only | The number of detected black squares.
TextObjectsCount | int | Read-only | The number of text objects.


IPrincipal

What it does

Represents a user or a user group in scripts.

Properties

Name | Type | Access | Description
Id | int | Read-only | A unique identifier
Name | string | Read-only | The name of a user or a group
Type | TPrincipalType | Read-only | The type of principal


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > Objects >

Return to chapter overview

IPrincipals

What it does

A general collection of users and user groups (a collection of IPrincipal objects).


IProcessingCallback

What it does

Passes information about the processing progress.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Methods

Definition | Description
ReportError( error : string ) | Records an error message to the log. The operation that contains an error message is considered to have failed.
ReportMessage( message : string ) | Records an information message to the log.
ReportWarning( warning : string ) | Records a warning message to the log.

Properties

Name | Type | Access | Description
ShouldStop | bool | Read-only | Checks if the task was cancelled or not (whether the user clicked Cancel).


IProject

What it does

Represents the project in scripts.

note Note. Some methods and properties of this object are not available on the Web Verification Station for checking rules locally. The methods and properties that are not supported are marked with an asterisk (*).

Methods

Definition | Description
GetDocumentDefinitions( [optional] reserved :object ) : IDocumentDefinitionInfoArray | Returns information about the Document Definitions included in the project. The reserved parameter must be null or left unspecified.

Properties

Name | Type | Access | Description
EnvironmentVariables * | IProperties | Read-only | Returns an array of the environment variables used in the project.
ExportRootPath * | string | Read-only | The root export path as it is defined in the project settings. Can be an empty string.
Id | string | Read-only | Identifier of the project (only for projects that have been uploaded to the server).
Name | string | Read-only | The name of the project.
Path * | string | Read-only | The path to the project files.
Principals * | IPrincipals | Read-only | An array of users or groups.


IProperties

What it does

A collection of IProperty objects.

Methods

Definition | Description
Delete (name : string) | Deletes the property with the specified name. This method is unavailable from the script rules.
Get (name : string) : string | Retrieves the property value by the name.
Has (name : string) : bool | Checks whether the set contains the property with the specified name.
Set (name : string, value : string) | Sets the value of a named property. Creates a property, if it does not exist. This method is unavailable from the script rules. note Note: For information on how to change document state, refer to the ITaskWindow interface.


IProperty

What it does

Represents a named property of a document or a batch.

Properties

Name | Type | Access | Description
Name | string | Read-only | The property name
Value | string | Read-only | The property value


IPropertyModificationInfo

What it does

Stores information about modification of a document (or a batch) property.

A set value can be corrected.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
Name | string | Read-only | The name of the named parameter (only for the type PT_NamedPropertyValue)
NewValue | string | Read/write | A new value of the property. The script allows to set the value in a different form, e.g. to normalize the value.
PropertyType | TPropertyType | Read-only | The type of a property being modified


IRecordCheckResult

What it does

Represents the result of a check of a record in a data set (used during script checks).

warning Important! To enable script checks, enable the Check records using script option in the data set's properties.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
CheckSucceeded | bool | Read/write. Can be changed even in scripts with read permissions only. | Indicates that the check succeeded and the record is valid.
ErrorMessage | string | Read/write. Can be changed even in scripts with read permissions only. | Contains an error message and indicates that the record is invalid.


IRecordset

What it does

Represents the result of a search for a set of records in a data set.

Methods

Definition | Description
GetRecord ( index : int ) : IDataSetRecord | Returns a record with the specified index number. The resulting IDataSetRecord is available for reading only.

Properties

Name | Type | Access | Description
Count | int | Read-only | Number of records.


IRect

What it does

Represents a rectangle.

Methods

Definition | Description
ToString() : string | Represents a rectangle as a string of the form "[left,top,right,bottom]".

Properties

Name | Type | Access | Description
Bottom | int | Read-only | The coordinate of the bottom edge.
Left | int | Read-only | The coordinate of the left edge.
Right | int | Read-only | The coordinate of the right edge.
Top | int | Read-only | The coordinate of the top edge.

note Note: The above coordinates are in pixels.


IRects

What it does

A collection of IRect interfaces.

Methods

Definition | Description
AddRect (left: int, top: int, right: int, bottom: int) | Adds another rect element to the rectangle collection.


IRoutingRuleResult

What it does

Represents the result of the routing script execution.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name

Type

Access

Description

CheckSucceeded

bool

Read/write

Specifies whether the check succeeded

DocumentComment

string

Read/write

A comment which is added to the document in the event of successful routing

PrincipalId

int

Read/write

A user or user group identifier that is assigned to the document if the routing succeeds. If the document is not assigned to any principal in the routing script, the PrincipalId value is "0". The "0" value indicates that the document can be processed by any user.

For details, see IPrincipal.

Priority

TProcessingPriority

Read/write

The priority that will be assigned to the document if the routing script returns true.

ProhibitedUserId

int

Read/write

Allows you to specify or get the identifier of the user who is not allowed to process the task in the following stage. By default the value is "0" which means that the task can be processed by any user.

note Note: The property applies only to those tasks which are sent to a stage automatically according to a workflow scheme. If the task is sent to a stage manually, the property value is ignored.


IRuleContext

What it does

A context object of rules. Represents the object, at whose level the rule was created.

The object implements IField interface (by means of providing access to the context field of the rule) and also has additional methods.

Methods

Definition | Description
DataSet ( dataSetName : string ) : IDataSet | Accesses the cached data set. The resulting IDataSet is available for reading only.

Properties

Name | Type | Access | Description
CheckSucceeded | bool | Read/write, Mutable (can be modified even in scripts with read-only permissions) | Specifies whether the check succeeded
Document | IDocument | Read-only | Access to the document
ErrorMessage | string | Read/write, Mutable (can be modified even in scripts with read-only permissions) | A message concerning a rule error
Fields | IFields | Read-only | Collection of fields in the rule. Specified in rule settings.
FocusedField | IField | Read/write, Mutable (can be modified even in scripts with read-only permissions) | The field to be focused when clicking a rule error (the field that caused a rule error).
FocusRect | IRect | Read-only | A rectangle in screen coordinates, the executed action refers to (a rectangle of the window). Applies in the Custom Action script only.
ParentWindow | int | Read-only | A handle of the parent window. Applies in the Custom Action script only.


IRuleError

What it does

Represents a rule error, format error or merging error in the document.

note Note. Some methods and properties of this object are not available on the Web Verification Station for checking rules locally. The methods and properties that are not supported are marked with an asterisk (*).

Methods

Definition | Description
GetFields() : IFields | Returns the fields associated with the given field error.

Properties

Name | Type | Access | Description
IsWarning | bool | Read-only | Specifies whether the message is a warning.
Message | string | Read-only | The text of the error message.
RuleName | string | Read-only | The name of the rule that caused the error. For format and merging errors, an empty string is returned.
RuleTags * | IRuleTags | Read-only | Returns the IRuleTags object with rule tags.
Type | TRuleErrorType | Read-only | The error type.


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > Objects >

Return to chapter overview

IRuleErrors

What it does

A collection of IRuleError interfaces.


IRuleTag

What it does

Represents a tag of a rule.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
Value | string | Read-only | The value of the tag.


IRuleTags

What it does

Represents a collection of IRuleTag objects.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Methods

Definition | Description
HasTagWithValue( string tagValue ) | Checks if a tag with the specified value is present in the collection. Returns true if it is, false if it is not.


IScriptBinaryAttributes

What it does

Represents a set of bool flags.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Methods

Definition | Description
Has( TStateType : int ) : bool | Checks whether the requested flag is set


IScriptDefinitionContext

What it does

Provides access to some properties of the objects that may be used in scripts.

Methods

Definition | Description
LoadFile( name: string) : IUserAttachment | Loads a file that is attached to the object that contains the script. Some possible applications for this method are loading a dictionary from a FlexiLayout using its name or loading a reference assembly file. This method is also used in ABBYY FlexiCapture for Invoices scripts to load XML description files.

Properties

Name | Type | Access | Description
Project | IProject | Read-only | Provides access to information about the project.


ISectionDefinitionInfo

What it does

Describes a section in a Document Definition.

Properties

Name | Type | Access | Description
IsFlexible | bool | Read-only | Whether the section is flexible or not.
Name | string | Read-only | Section name.


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > Objects >

Return to chapter overview

ISectionDefinitionInfoArray

What it does

A collection of objects of type ISectionDefinitionInfo.


IShadowsHighlightsParams

What it does

Configures shadow parameters.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
RadiusHigh | int | Read/write | A degree of filter localization; a radius of light exposed spots processing.
RadiusLow | int | Read/write | A degree of filter localization; a radius of shadow processing.
StrengthHigh | int | Read/write | How strongly light exposed spots are processed; a degree of bright areas darkening.
StrengthLow | int | Read/write | How strongly shadows are processed; a degree of dark areas lightening.
TonalWidthHigh | int | Read/write | The width of the processed brightness range on light exposed spots. The value is set in percentage points.
TonalWidthLow | int | Read/write | The width of the processed brightness range on shadows. The value is set in percentage points.


IStageInfo

What it does

Stores information about a processing stage of the document.

Properties

Name | Type | Access | Description
PrincipalId | int | Read-only | The identifier of a user or a group which can receive a task with the given document. "0" indicated that the task is not assigned to any principal (user or group). For details, see IPrincipal.
StageId | int | Read-only | The identifier of the current processing stage
StageName | string | Read-only | The name of the current processing stage
TaskId | int | Read-only | The identifier of the task. If there is no task, its value is "0".


IUserAttachment

What it does

The interface is used for working with the contents of user attachment. The object represents an array of bytes. Bytes can be accessed as objects in the collection. The byte value at any position can be changed.

Methods

Definition | Description
FromFile( fileName : string) | Replaces the attachment contents with a file from the specified path.
SetSize( newSize : int) : bool | Changes the size of the file. Files whose size is smaller than the specified value are increased, files with larger size are cut.
ToFile( fileName : string) | Saves the file to the specified path on a hard disk.
UploadAttachment( ) | Saves changes made to the attachment.

Properties

Name | Type | Access | Description
AsString | string | Read/write | Represents the file as one Unicode string. Files can be both written and read as Unicode strings.
Name | string | Read-only | The name of the file


IUserAttachments

What it does

A collection of the IUserAttachment objects.

note Note. Some methods and properties of this object are not available on the Web Verification Station for checking rules locally. The methods and properties that are not supported are marked with an asterisk (*).

Methods

Definition | Description
AddNew( name : string) : IUserAttachment * | Creates a new attachment file and starts editing it. warning Important! The method creates a new IUserAttachment item without adding it to the collection. To add the item to the collection and make it available for editing, the UploadAttachment( ) method must be called. note Note: If a non-zero attachment with this name already exists, an exception will be returned.
Delete( name : string) * | Deletes the attachment file with the given name. note Note: When deleting an element, its existence is not checked. Thus the method succeeds even if the element being deleted is not in the collection.
Get( name : string) : IUserAttachment * | Accesses the attachment file with the given name
Has( name : string) : bool * | Checks whether the attachment file with the specified name exists

Properties

Name | Type | Access | Description
IsEmpty | bool | Read-only | Checks whether the array contains any attachment files
Names | IVariantArray | Read-only | The array with the names of attachment files


IUserSessionInfo

What it does

Information about the session of the current user of the Processing Station.

During verification, returns information about the session of the user doing the verification (including remote verification).

Properties

Name | Type | Access | Description
PrincipalId | int | Read-only | The ID of the user on the Application Server.
RoleId | int | Read-only | The ID of the user's role.
SessionId | int | Read-only | The identifier of the connection to the Application Server.
UserName | string | Read-only | The user name. When working without the Application Server, the name of the user under which the process is running is returned. When connected to the Application Server, tries to retrieve the name of the user logged into the Application Server.


IValue

What it does

Represents a field value.

note Note. This object is not available on the Web Verification Station for checking rules locally.

Properties

Name | Type | Access | Description
ErrorMessage | string | Read/write | Message concerning a value formatting error
Symbols | ICharactersParams | Read-only | Detailed information about symbols properties
Text | string | Read/write | Text representation of the value


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for customizing processing stages > Objects >

Return to chapter overview

IVARIANTArray

What it does

Represents a collection of items of Variant type.


TAssemlingErrorType

What it does

The type of assembly error.

Admissible values:

·AET_ObligatoryItemOmitted = 0 - A missing section

·AET_RubbishItem = 1 - An extra page

·AET_AssemblingRuleError = 2 - A custom assembly error

·AET_KeyValuesMismatch = 3 - Values of the key fields mismatch (there can be no more than one error of this type within the document)

·AET_ProhibitedTopLevelDocument = 5 - A child document in the set is moved to the top level


TBatchItemType

What it is

An enumerator of the int type that describes the IBatchItem element.

Admissible values:

·BIT_Page = 0
Indicates a page.

·BIT_Document = 1
Indicates a document.

·BIT_Batch = 2
Indicates a batch.


TColorToFilter

What it is

Specifies the color of stamps to remove. Used in the RemoveStamps method of the IEditablePictureObject object,

Admissible values:

·CTF_Red = 0

·CTF_Green = 1

·СTF_Blue = 2

·CTF_Yellow = 3


TExportFieldType

What it does

Enumeration of int type. Defines the type of the document fields.

Admissible values:

·EFT_TextField = 0 - A text field

·EFT_DateTimeField = 1 - A date field

·EFT_NumberField = 2 - A number field

·EFT_PictureField = 3 - A picture field

·EFT_CurrencyField = 4 - A currency field

·EFT_Checkmark = 5 - A checkmark

·EFT_CheckmarkGroup = 6 - A checkmark group

·EFT_Group = 7 - An ordinary group

·EFT_Table = 8 - A table. You can access table rows through the Items or the Rows methods of the IField object.

·EFT_Section = 9 - A document section

·EFT_Document = 10 - A document. Fields of this type can occur only in rules written for the level of a document. Most parameters of such fields are unavailable.

·EFT_TableRow = 11 - A table row. Table cells are the child fields of the row. They are available through the method Children.

·EFT_TimeField = 12 - A time field


TExportType

What it does

The type of the export target.

Admissible values:

·ET_File = 1 - Export to file

·ET_Database = 2 - Export to database

·ET_Script = 3 - Script export

·ET_SharePoint = 4 - Export to SharePoint

·ET_Unknown = 5 - The type is not specified in the event of an error that does not concern any particular exporter


TImageCompressionType

What it does

Sets a compression method for the exported image. Applies in the IExportImageSavingOptions interface.

Admissible values:

·ICT_Auto = -1. The type of compression is selected automatically.

·ICT_Lzw = 1

·ICT_Jpeg = 2

·ICT_PackBits = 3

·ICT_Png = 4

·ICT_Uncompressed = 5

·ICT_Zip = 6

·ICT_CcittGroup4 = 7


TPageClassificationType

What it does

The type of the page defined by the Classifier. Applies in the IPageClassificationResult interface.

Types:

·PCT_Unknown = 0 - An unknown page type.

·PCT_Empty = 1 - An empty page.

·PCT_FixedForm = 2 - A page with a fixed layout.

·PCT_FlexibleMultiPageFormHeader = 3 - A header of a multipage flexible section.

·PCT_FlexibleMultiPageFormNonHeader = 4 - A page in a multipage flexible section which is not a header.

·PCT_FlexibleSinglePageForm = 5 - A one-page flexible section.

·PCT_ClassWithoutDefinition = 6 - A page of the class without Document Definition.


TPdfAVersion

What it does

PDF/A version. Applies in the IExportImageSavingOptions interface.

Admissible values:

·PAV_1a = 0 for PDF/A-1a

·PAV_1b = 1for PDF/A-1b

·PAV_2a = 2for PDF/A-2a

·PAV_2b = 3 for PDF/A-2b

·PAV_2u = 4 for PDF/A-2u

·PAV_3a = 5 for PDF/A-3a

·PAV_3b = 6 for PDF/A-3b

·PAV_3u = 7 for PDF/A-3u


TPdfDocumentInfoType

What it does

Types of the fields in the PDF document. Applies in the IExportImageSavingOptions interface.

Admissible values:

·PDIT_Author = 0 the author of the document

·PDIT_Title = 1 the title of the document

·PDIT_Subject = 2 the subject of the document

·PDIT_KeyWords = 3 the keywords of the document


TPdfTextSearchAreaType

What it does

Specifies where a text layer should be created for purposes of export to PDF-S. Applies in the IExportImageSavingOptions interface.

Admissible values:

·PTSAT_AttachmentsOnly = 0 Only in annexes

·PTSAT_FormsOnly = 1 Only in pages with a form

·PTSAT_AllPages = 2 In all pages


TPrincipalType

What it does

Types of principals (users or processes that have an account in the current environment).

Admissible values:

·PT_User = 0 - A regular user

·ST_Group = 1 - A user group


TProcessingPriority

What it does

The processing priority of a document or a batch.

note Note: The value is passed to the event Document priority change (or Batch priority change) in the form of a string. A new value must be also specified in the form of a string.

Admissible values:

·PP_Lowest = -2 - The lowest priority. Passed in the form of the string "lowest".

·PP_Low = -1 - A low priority. Passed in the form of the string "low".

·PP_Normal = 0 - A normal priority. Passed in the form of the string "normal".

·PP_High = 1 - A high priority. Passed in the form of the string "high".

·PP_Highest = 2 - The highest priority. Passed in the form of the string "highest".

·PP_ExtraHigh = 3 - The extra-high priority. Passed in the form of the string "extrahigh".


TPropertyType

What it does

The type of document (or batch) properties. Applies in the IPropertyModificationInfo interface.

Types:

·PT_Name = 0 - The name. Applies for batches only.

·PT_Comment = 1 - The comment.

·PT_BatchType = 2 - The batch type. Applies for batches only.

·PT_NamedPropertyValue = 3 - A named property (formerly a registration parameter)

·PT_Id = 4 - The identifier (the ExternalId of the document). Its value changes occasionally and only for documents. The value changes mostly during import.

·PT_SLAExpirationDate = 6 - The deadline for processing the batch.


TRuleErrorType

What it does

The type of the error. Applies in the IRuleError interface.

Types:

·ET_RuleError = 0 - A rule error.

·ET_FormatError = 1 - A format error.

·ET_MergeVersionError = 2 - An error of merging different versions of the document.


TStateType

What it does

Types of document states. Used in the event Document state changed. The ChangedState parameter of this event can be used to get information on possible changes of each state type.

Admissible values:

·ST_Preprocessed = 0 - Whether the document is preprocessed. The value can be changed only from false to true.

·ST_Analyzed = 1 - Whether the document is analyzed

·ST_Recognized = 2 - Whether the document is recognized (a document is considered recognized if there is at least one recognized section in it)

·ST_HasErrors = 3 - Whether the document has errors (including format errors)

·ST_Assembled = 4 - Whether the document is assembled

·ST_Verifyed = 5 - Whether the document is verified completely

·ST_Exported = 6 - Whether the document is exported

·ST_HasLayout = 7 - Whether the document has a layout. (In analyzed document a layout can also be missing, e.g., if the page has an unknown type.)


Sample scripts

This section contains sample scripts written in JScript® and VBScript scripting languages.

listPicture Sample scripts for creating custom rules

listPicture Sample scripts describing export

listPicture Sample assembly scripts

listPicture Other sample scripts


Sample scripts for creating custom rules

Show/Hide Hidden Text

Automation rule

This example demonstrates a table data check. The rule checks whether the table data matches the value in the resulting field. The table has columns with prices and quantities of certain goods. The rule has been written at the level of a section containing the table and the resulting field.

[VBScript]
dim autoRule
set autoRule = CreateObject( "AutomationRule.CheckDoc" )
autoRule.CheckResult me.FIELD("cost"), me.FIELD("number"), me.FIELD("Result"), me

[JScript]
var autoRule = new ActiveXObject( "AutomationRule.CheckDoc" );
autoRule.CheckResult( Field("cost"), Field("number"),
Field("Result"), this );

Code of an ActiveX component

The code provided here is a CheckDoc class code from the AutomationRule project, which is used in the scripts mentioned above.

Option Explicit

' Checks whether table data matches the result
' column1 - price column
' column2 - quantity column
' resultField - resulting field (<Total> or equivalent)
' docObj - document node being checked
Public Sub CheckResult(ByRef column1 As Object, ByRef column2 As Object, _
ByRef resultField As Object, ByRef docObj As Object)
On Error GoTo err_h
Dim costItems AsObject, numItems AsObject
Dim curCost AsDouble, curNum AsLong, sum AsDouble
Dim result AsDouble
Dim i AsLong
Set costItems = column1.Items
Set numItems = column2.Items
' summing up table data
sum = 0
For i = 0 To costItems.Count - 1
curCost = costItems.Item(i).Value
curNum = numItems.Item(i).Value
sum = sum + curNum * curCost
Next
' comparison accuracy result rounded to the 2nd digit after the decimal point
result = resultField.Value
If (Round(result, 2) = Round(sum, 2)) Then
docObj.CheckSucceeded = True
Else
docObj.CheckSucceeded = False
docObj.ErrorMessage = "Table data does not match the resulting value"
resultField.Suggest sum
End If
Exit Sub
err_h:
docObj.ErrorMessage = Err.Description
docObj.CheckSucceeded = False
End Sub

Search in the variants list

The rule code provided below checks whether the field value matches one of the values in the list. If not, a rule error flag appears, and the field receives a list of suggested values. Depending on the check result, the field is marked as certainly or uncertainly recognized.

[VBScript]
'remember field value
Dim fieldValue
fieldValue = me.Field("Field6").Value
'create list of values for check
Dim list(5)
dim i
for i = 0 to 4
list(i) = "2" & i
next
dim success
success = false
'check whether field value matches values in the list
for i = 0 to 4
if list(i) = fieldValue Then
success = true
exit for
end if
next
'depending on the check result, set a corresponding certainly status for the field
me.Field("Field6").IsVerified = success
'fill the list of suggestions for the field a suggestion can be any of the
'suitable values
if success = false then
for i = 0 to 4
me.Field("Field6").Suggest( list(i) )
next
end if
'place an error flag
me.CheckSucceeded = success
[JScript]
// remember field value
var fieldValue = Field("Field6").Value;
// create list of values for check
var list = new Array(5);
for( i = 0; i < 5; i++ ) {
list[i] = "2" + i
}
var success = false;
// check whether field value matches values in the list
for( i = 0; i < 5; i++ ) {
if( list[i] == fieldValue ) {
success = true;
break;
}
}
// depending on the check result, set a corresponding certainly status for the field
Field("Field6").IsVerified = success;
// fill the list of suggestions for the field a suggestion can be any of the
// suitable values
if( !success ) {
for( i = 0; i < 5; i++ ) {
Field("Field6").Suggest( list[i] );
}
}
// place an error flag
CheckSucceeded = success;

Field match check

The rule code provided below checks whether the checked field has matched.

[VBScript]
if me.Field("InvoiceNumber").IsMatched then
me.CheckSucceeded = true
else
me.CheckSucceeded = false
me.ErrorMessage = "Field InvoiceNumber is not matched"
end if
[JScript]
if( Field("InvoiceNumber ").IsMatched ) {
CheckSucceeded = true;
} else {
CheckSucceeded = false;
ErrorMessage = "Field InvoiceNumber is not matched";
}

Checkmark check

The rule code provided below checks whether the checkmark has been selected or not

[VBScript]
if me.Field("Page status").Value then
me.CheckSucceeded = true
else
me.CheckSucceeded = false
me.ErrorMessage = "Page status is not checked"
me.FocusedField = me.Field(Page status) ""
end if
[JScript]
if( Field("Page status").Value ) {
CheckSucceeded = true;
} else {
CheckSucceeded = false;
ErrorMessage = "Page status is not checked";
FocusedField = Field("Page status");
}

Checkmark group check

The rule code provided below iterates all the checkmarks in the group and if none are selected, selects the first one. The rule is written for the checkmark group level. All the checkmarks in the group have been added to the list of fields included into the rule. The group itself has been excluded from the list. For the default checkmark (the first one), the ReadOnly flag has been disabled. If there are no checkmarks in the group, a rule error flag is enabled.

This sample code iterates all the fields included in the rule. Since field names are not specified in the code, this code can be used for any checkmark group.

[VBScript]
if me.Fields.Count = 0 then
me.CheckSucceeded = false
me.ErrorMessage = "There are no checkmarks in the group"
else
dim isChosen, i
isChosen = false
for i = 0 to me.Fields.Count - 1
if me.Fields.Item( i ).Value then
isChosen = true
exit for
end if
next
if Not isChosen then
me.Fields.Item(0).Value = true
end if
me.CheckSucceeded = true
end if
[JScript]
if( Fields.Count == 0 ) {
CheckSucceeded = false;
ErrorMessage = "There are no checkmarks in the group";
} else {
var isChosen = false;
var i;
for( i = 0; i < Fields.Count; i++ ) {
if( Fields.Item( i ).Value ) {
isChosen = true;
break;
}
}
if( !isChosen ) {
Fields.Item(0).Value = true;
}
CheckSucceeded = true;
}

Field reliability check

The rule code provided below checks the number of uncertain characters in the field and clears the field if the number of uncertain characters is greater than or equals three. This is an Autocorrection script.

[VBScript]
Dim totQty, suspQty
Dim i
totQty = me.Symbols.Count
suspQty = 0
for i = 0 to totQty - 1
if me.Symbols.Item(i).IsSuspicious = true then
suspQty = suspQty + 1
end if
next
if suspQty >= 3 then
me.Text = ""
end if
[JScript]
var susp, qty, strpos, i, SC, strposPrev
strposPrev = 1
qty = 0
SC = "1"
susp = SuspiciousSymbols

for ( i = 0; i < susp.length; i++) {
strpos = susp.indexOf (SC,i)
if ((strpos != strposPrev) && (strpos != -1)) {
qty = qty + 1
strposPrev = strpos
}
}

if (qty >= 3) {
text = ""
}

Character replacement without loosing regions and verification flags

The script replaces "+" with "&" without loosing information about regions and verification flags. This is an Autocorrection script.

[VBScript]
Dim totQty
Dim i
totQty = me.Symbols.Count
for i = 0 to totQty - 1
if me.Symbols(i).Symbol = "+" then
me.Symbols(i).Symbol = "&"
end if
next

Batch integrity check

Checks if the number of documents specified on the control page coincides with the inventory in the batch and with the number of documents actually processed. If the numbers do not match, an error is returned.

[VBScript]
dim DQty
dim i
for i = 0 to me.Batch.Documents.Count - 1
if me.Batch.Documents.Item(i).DefinitionName = "Inv" then
DQty = me.Batch.Documents.Item(i).IndexedItemValue("DocQty")
exit for
end if
next

dim AcQty
AcQty = me.Batch.Documents.Count
if acqty <> DQty then
me.CheckSucceeded = false
me.ErrorMessage = "Incorrect number of documents in the batch:" & " " & AcQty& ". " & "Expected number:" & " " & DQty & "!"
end if
[JScript]
for ( i = 0; i < [Batch.Documents.Count - 1]; i++ ) {
var TemplName = Batch.Documents.Item(0).DefinitionName;
if (TemplName = "Inv") {
var DQty = Batch.Documents.Item(i).IndexedItemValue("DocQty");
break ;
}
}

var AcQty = Batch.Documents.Count -1
if (AcQty != DQty) {
CheckSucceeded = false;
ErrorMessage = "Incorrect number of documents in the batch:" + " " + AcQty + "." + "Expected number:" + " " + DQty +"!" ;
}

Counting the number of documents and pages in a document set

This script counts the number of pages in a document set section and throws an error if the set contains an element of an unknown type.

int subDocumentsCount = 0;

int pagesCount = 0;

IBatchItem asBatchItem = Context.Document.AsBatchItem;

IBatchItems items = asBatchItem.ChildItems;

foreach (IBatchItem item in items)

{

if ( item.Type == TBatchItemType.BIT_Page )

{ pagesCount ++; }

else if( item.Type == TBatchItemType.BIT_Document )

{ subDocumentsCount ++; }

else

{

Context.CheckSucceeded = false;

Context.ErrorMessage = "Unknown type of element in set";

}

}

Context.Field("Field").Text = subDocumentsCount.ToString() + " " + pagesCount.ToString();


Sample scripts describing export

Show/Hide Hidden Text

Getting field values during export

This sample code shows how you can get the value of a field during export. You may use this value to name the files into which images or date are exported. If there is no such field in the document, an error will occur.

The structure of the document to be exported:

Section 1
Field1
…
Group1
Field2
…
…
FieldN
Section 2
Field1
…
FieldK

[VBScript]
Dim field1Value, field2Value
' Gets the value of Field1 in Section 1
if Not IsNull( me.Field( "Section 1\Field1" ).Value ) then
field1Value = me.Field( "Section 1\Field1" ).Value
end if
' Gets the value of Field2 in Group1 in Section 1
if Not IsNull( me.FIELD( "Section 1\Group1\Field2" ).Value ) then
field2Value = me.Field( "Section 1\Group1\Field2" ).Value
end if
' Gets the value of Field1 in Section 1 if the section has multiple instances
if Not me.Field( "Section 1" ).Items Is Nothing then
dim curPage
for each curPage in me.Field( "Section 1" ).Items
if Not curPage.Children Is Nothing then
dim curField
for each curField in curPage.Children
if curField.Name = "Field1" And Not IsNull( curField.Value ) then
field1Value = curField.Value
exit for
end if
next
end if
next
end if

[JScript]
// Gets the value of Field1 in Section 1
if( Field("Section 1\\Field1").Value != null ) {
var field1Value = Field("Section 1\\Field1").Value;
}
// Gets the value of Field2 in Group1 in Section 1
if( Field("Section 1\\Group1\\Field2").Value != null ) {
var field2Value = Field("Section 1\\Group1\\Field2").Value;
}
// Gets the value of Field1 in Section 1 if the section has multiple instances
if( Field( "Section 1" ).Items != null ) {
var i, j;
for( i = 0; i < Field( "Section 1" ).Items.Count; i++ ) {
var curPage = Field( "Section 1" ).Items.Item( i );
if( curPage.Children != null ) {
for( j = 0; j < curPage.Children.Count; j++ ) {
var curField = curPage.Children.Item( j );
if( curField.Name == "Field1" && curField.Value != null ) {
var field1Value = curField.Value;
break;
}
}
}
}
}

Exporting page images

The code in this example shows how to export images of all document pages using the required file format, color scheme and resolution. Images are saved by the page, i.e. every page in a separate file.

The files in this example are named "page1.tif," "page2.tif," etc. You can change the file naming mechanism if required. For example, you can create file names based on the value of a field.

[VBScript]
dim fso, folderName
set fso = CreateObject("Scripting.FileSystemObject")
folderName = "d:\ExportImages"
if Not fso.FolderExists( folderName ) then
fso.CreateFolder folderName
end if
dim imageOptions
set imageOptions = FCTools.NewImageSavingOptions
imageOptions.Format = "tif"
imageOptions.ColorType = "BlackAndWhite"
imageOptions.Resolution = 600
dim i
for i = 0 to me.Pages.Count - 1
dim fileName
' Sets the desired name and extension for the file depending on the selected format
fileName = fso.BuildPath( folderName, "page" & (i+1) & ".tif" )
me.Pages.Item(i).SaveAs fileName, imageOptions
next

[JScript]
var fso = new ActiveXObject("Scripting.FileSystemObject");
var folderName = "d:\\ExportImages";
if( !fso.FolderExists( folderName ) ) {
fso.CreateFolder( folderName );
}
var imageOptions = FCTools.NewImageSavingOptions();
imageOptions.Format = "tif";
imageOptions.ColorType = "BlackAndWhite";
imageOptions.Resolution = 600;
var i;
for( i = 0; i < Pages.Count; i++ ) {
// Sets the desired name and extension for the file depending on the selected format
var fileName = fso.BuildPath( folderName, "page" + (i+1) + ".tif" );
Pages.Item(i).SaveAs( fileName, imageOptions );
}

Exporting a table

This example shows how to export a table to a *.txt file.

[VBScript]
dim fso, txtFile, fileName
set fso = CreateObject("Scripting.FileSystemObject")
fileName = "d:\TestExportTable.txt"
set txtFile = fso.CreateTextFile( fileName, true )
txtFile.WriteLine "Table"
dim table, row, cell, rowNumber
set table = me.Field("Page 1\Table")
rowNumber = 1
for each row in table.Items
txtFile.WriteLine "RowNumber = " & rowNumber
for each cell in row.Children
txtFile.Write cell.Value & " "
next
txtFile.WriteBlankLines 1
rowNumber = rowNumber + 1
next
txtFile.Close
set txtFile = nothing
set fso = nothing

[JScript]
var fso, txtFile, fileName;
fso = new ActiveXObject("Scripting.FileSystemObject");
fileName = "d:\\TestExportTable1.txt";
txtFile = fso.CreateTextFile( fileName, true );
txtFile.WriteLine( "Table" );
var table, i, j;
table = Field("Page 1\\Table");
var rows = table.Items;
for( i = 0; i < rows.Count; i++ ) {
txtFile.WriteLine( "RowNumber = " + ( i+1 ) );
var cells = rows.Item(i).Children;
for( j = 0; j < cells.Count; j++ ) {
txtFile.Write( cells.Item(j).Value + " " );
}
txtFile.WriteBlankLines(1);
}
txtFile.Close();

Exporting a document of any nesting level

This example shows how to export fields of a document of any nesting level using custom-made functions from the global export module. If you need to export document fields of variable nesting, it is recommended to use an external COM component (see next example).

Core export code

[VBScript]
Export.ExportDocument me, FCTools

[JScript]
Export.ExportDocument( this, FCTools );

The code of the functions of the global export module

[VBScript]
' The procedure carries out the export: creates an export folder and
' saves in it page image files, the text file with the document fields,
' and information about the document
Sub ExportDocument(ByRef docObj, ByRef FCTools)
Dim folderName
Dim txtFile, fileName
Dim fso
On Error Resume Next
set fso = CreateObject("Scripting.FileSystemObject")
' creating the export folder
folderName = CreateExportFolder(docObj.DefinitionName, fso)
if Err.Number <> 0 then
docObj.Action.Succeeded = false
docObj.Action.ErrorMessage = "Error during create export folder: " + Err.Description
Err.Clear
Exit Subub
End if
' exporting images
ExportImages docObj, FCTools, folderName, fso
if Err.Number <> 0 then
docObj.Action.Succeeded = false
docObj.Action.ErrorMessage = "Error during export images: " + Err.Description
Err.Clear
Exit Sub
End if

' creating the text file
fileName = fso.BuildPath(folderName, "doc.txt")
Set txtFile = fso.CreateTextFile(fileName, True)
' exporting info about the document
ExportDocInfo docObj, txtFile
' exporting fields
txtFile.WriteLine "Fields:"
ExportFields docObj.Children, txtFile, ""
txtFile.Close
if Err.Number <> 0 then
docObj.Action.Succeeded = false
docObj.Action.ErrorMessage = "Error during export data: " + Err.Description
Err.Clear
Exit Sub
End if
Set txtFile = Nothing
Set fso = Nothing
End Sub
' Image export function
Function ExportImages( ByRef docObj, ByRef FCTools, ByVal exportFolder, ByRef fso )
Dim pages, page, imageOptions
Dim fileName, pageNum
' specifying export settings
Set imageOptions = FCTools.NewImageSavingOptions
imageOptions.Format = "bmp"
imageOptions.ColorType = "FullColor"
imageOptions.Resolution = 100
' page-by-page export
Set pages = docObj.Pages
pageNum = 1
For Each page In pageses
fileName = fso.BuildPath(exportFolder, "page" & pageNum & ".bmp")
page.SaveAs fileName, imageOptions
pageNum = pageNum + 1
Next
End Function

' The procedure that exports info about the document
Sub ExportDocInfo(ByRef docObj, ByRef txtFile)
txtFile.WriteLine "Doc info:"
txtFile.WriteLine ("DocumentId " & docObj.Id)
txtFile.WriteLine ("IsAssembled " & docObj.IsAssembled)
txtFile.WriteLine ("IsVerified " & docObj.IsVerified)
txtFile.WriteLine ("IsExported " & docObj.IsExported)
txtFile.WriteLine ("ProcessingErrors " & docObj.ProcessingErrors)
txtFile.WriteLine ("ProcessingWarnings " & docObj.ProcessingWarnings)
txtFile.WriteLine ("TotalSymbolsCount " & docObj.TotalSymbolsCount)
txtFile.WriteLine ("RecognizedSymbolsCount " & docObj.RecognizedSymbolsCount)
txtFile.WriteLine ("UncertainSymbolsCount " & docObj.UncertainSymbolsCount)
txtFile.WriteLine
End Sub
' The procedure that exports fields from the fields collection
Sub ExportFields(ByRef fields, ByRef txtFile, ByVal indent)
Dim curField
For Each curField In fields
ExportField curField, txtFile, indent
Next
End Sub
' Checks if the value of the fields is null
' If the field value is invalid, any attempt to access this field (even
' to check if it is null) may cause an exception
Function IsNullFieldValue( ByRef field )
on error resume next
IsNullFieldValue = IsNull( field.Value )
if Err.Number <> 0 then
IsNullFieldValue = True
Err.Clear
End if
End Function
' Field export procedure
Sub ExportField(ByRef field, ByRef txtFile, ByVal indent)
' saving field name
txtFile.Write (indent & field.Name)
' saving field value if it can be accessed
If IsNullFieldValue(field) Then
txtFile.WriteLine
Else
txtFile.WriteLine (" " & field.Text)
End If
If Not field.Children Is Nothing Then
' exporting child fields
ExportFields field.Children, txtFile, indent & " "
ElseIf Not field.Items Is Nothing Then
' exporting field instances
ExportFields field.Items, txtFile, indent & " "
End If
End Sub
' The function creates an export folder and returns a full path to this folder
Function CreateExportFolder(ByVal definitionName, ByRef fso)
Dim docFolder, folderName
' main folder
exportFolder = "d:\ScriptExport"
If fso.FolderExists(exportFolder) = False Then
fso.CreateFolder (exportFolder)
End If
' the folder of specified Document Definition
docFolder = fso.BuildPath(exportFolder, definitionName)
If fso.FolderExists(docFolder) = False Then
fso.CreateFolder (docFolder)
End If
' the folder of the exported document
Dim i
i = 1
folderName = fso.BuildPath(docFolder, i)
While fso.FolderExists(folderName)
i = i + 1
folderName = fso.BuildPath(docFolder, i)
Wend
fso.CreateFolder (folderName)
CreateExportFolder = folderName
End Function

[JScript]
// The function carries out the export: creates an export folder and
// saves in it page image files, the text file with the document fields,
// and information about the document
function ExportDocument(docObj, exportImageTools)
{
var folderName
var txtFile, fileName
var fso
fso = new ActiveXObject("Scripting.FileSystemObject");
// creating export folders
try {
folderName = CreateExportFolder(docObj.DefinitionName, fso);
} catch( e ) {
docObj.Action.Succeeded = false;
docObj.Action.ErrorMessage = "Error during create export folder: " + e.description;
return;n;
}
// exporting images
try {
ExportImages(docObj, exportImageTools, folderName, fso);
} catch( e ) {
docObj.Action.Succeeded = false;
docObj.Action.ErrorMessage = "Error during export images: " + e.description;
return;
}
// creating the text file
fileName = fso.BuildPath(folderName, "doc.txt");
txtFile = fso.CreateTextFile(fileName, true);
// exporting info about the document
ExportDocInfo( docObj, txtFile );
// exporting fields
txtFile.WriteLine( "Fields:" );
try {
ExportFields( docObj.Children, txtFile, "" );
} catch( e ) { {
docObj.Action.Succeeded = false;
docObj.Action.ErrorMessage = "Error during export data: " + e.description;
txtFile.Close();
return;
}
txtFile.Close();
txtFile = 0;
fso = 0;
}
// Image export function. If an error occurs when exporting images,
// it returns a message about the error; otherwise, it returns an empty string
function ExportImages( docObj, exportImageTools, exportFolder, fso )
{
// specifying export settings
var imageOptions = exportImageTools.NewImageSavingOptions();
imageOptions.Format = "bmp";
imageOptions.ColorType = "FullColor";
imageOptions.Resolution = 100;
// page-by-page export
var pages = docObj.Pages;
var i
for( i = 0; i < pages.Count; i++ ) {
var fileName = fso.BuildPath( exportFolder, "page" + (i+1) + ".bmp" );
pages.Item(i).SaveAs( fileName, imageOptions );
}
}
// The procedure that exports info about the document
function ExportDocInfo(docObj, txtFile)
{
txtFile.WriteLine( "Doc info:" );
txtFile.WriteLine("IsAssembled " + docObj.IsAssembled);
txtFile.WriteLine("IsVerified " + docObj.IsVerified);
txtFile.WriteLine("IsExported " + docObj.IsExported);
txtFile.WriteLine("ProcessingErrors " + docObj.ProcessingErrors);
txtFile.WriteLine("ProcessingWarnings " + docObj.ProcessingWarnings);
txtFile.WriteLine("TotalSymbolsCount " + docObj.TotalSymbolsCount);
txtFile.WriteLine("RecognizedSymbolsCount " + docObj.RecognizedSymbolsCount);
txtFile.WriteLine("UncertainSymbolsCount " + docObj.UncertainSymbolsCount);
txtFile.WriteLine();
}
// The procedure that exports fields from the fields collection
function ExportFields(fields, txtFile, indent)
{
var i
for( i = 0; i < fields.Count; i++ ) {
ExportField( fields.Item(i), txtFile, indent );
}
}
// Checks if the field value is null
// If the field value is invalid, any attempt to access this field (even
// to check if it is null) may cause an exception
function IsNullFieldValue( field )
{
try {
return ( field.Value == null );
} catch( e ) {
return true;
}
}
// Field export procedure
function ExportField(field, txtFile, indent)
{
// saving file name
txtFile.Write(indent + field.Name);
// saving field value, if it can be accessed
if( IsNullFieldValue( field ) ) {
txtFile.WriteLine();
} else {
txtFile.WriteLine(" " + field.Text);
} }
if( field.Children != null ) {
// exporting child fields
ExportFields( field.Children, txtFile, indent + " " );
} else if( field.Items != null ) {
// exporting field instances
ExportFields( field.Items, txtFile, indent + " " );
}
}
// The function creates an export folder and returns a full path to this folder
function CreateExportFolder(definitionName, fso)
{
var docFolder, folderName
// main folder
var exportFolder = "d:\\ScriptExport";
if( !fso.FolderExists(exportFolder) ) {
fso.CreateFolder (exportFolder);
} }
// the folder of the specified Document Definition
docFolder = fso.BuildPath(exportFolder, definitionName);
if( !fso.FolderExists(docFolder) ) {
fso.CreateFolder(docFolder);
}
// the folder of the exported document
var i = 1;
folderName = fso.BuildPath(docFolder, i);
while( fso.FolderExists(folderName) ) {
i++;
folderName = fso.BuildPath(docFolder, i);
}
fso.CreateFolder(folderName);
return folderName;
}

Using an external COM component

[VBScript]
dim autoExport
set autoExport = CreateObject( "AutomationExport.Exporter" )
autoExport.Export me, FCTools
[JScript]
var autoExport = new ActiveXObject("AutomationExport.Exporter");
autoExport.Export( this, FCTools );

Code of an ActiveX component in VisualBasic

Provided below is the Exporter class code from the AutomationExport project, which is used in the above mentioned scripts.

OptionExplicit
Dim mFso AsNew Scripting.FileSystemObject
' The procedure carries out document export: created an export folder and
' saves in it page image files, the text file with document fields,
' and information about the document
PublicSub Export(ByRef docObj As Object, ByRef FCTools As Object)
OnErrorGoTo err_h
Dim folderName AsString
Dim txtFile As TextStream, fileName AsString
Dim imageExportResult AsString, errMessage AsString
' creating export folder
folderName = createExportFolder(docObj.definitionName)
If folderName = "" Then
docObj.Action.Succeeded = False
docObj.Action.ErrorMessage = "Cannot create export folder"
ExitSub
EndIf
' exporting images
imageExportResult = exportImages(docObj, FCTools, folderName)
' creating the text file
fileName = mFso.BuildPath(folderName, "doc.txt")
Set txtFile = mFso.CreateTextFile(fileName, True)
' saving info about image export problems
If imageExportResult <> "" Then
txtFile.WriteLine imageExportResult
errMessage = errMessage & imageExportResult
EndIf
' exporting info about document
exportDocInfo docObj, txtFile
' exporting fields
txtFile.WriteLine "Fields:"
IfNot exportFields(docObj.Children, txtFile, "") Then
errMessage = errMessage & " Error during export data"
EndIf
txtFile.Close
' if errors occur during export, reset the
' export success flag to False
If errMessage <> "" Then
docObj.Action.Succeeded = False
docObj.Action.ErrorMessage = errMessage
EndIf

Set txtFile = Nothing
Set mFso = Nothing
ExitSub
err_h:
docObj.Action.Succeeded = False
docObj.Action.ErrorMessage = Err.Description
txtFile.Close
Set mFso = Nothing
EndSub
' Image export function. If an error occurs when exporting images,
' it returns a message about the error, otherwise it returns an empty string
PrivateFunction exportImages(ByRef docObj As Object, ByRef FCTools As Object, _
ByVal exportFolder AsString) AsString
OnErrorGoTo err_h
Dim pages As Object, page As Object, imageOptions As Object
Dim fileName AsString, pageNum AsLong
exportImages = ""
' specifying export settings
Set imageOptions = FCTools.NewImageSavingOptions
imageOptions.Format = "png"
imageOptions.ColorType = "GrayScale"
imageOptions.Resolution = 300
' page-by-page export
Set pages = docObj.pages
pageNum = 1
ForEach page In pages
fileName = mFso.BuildPath(exportFolder, page.definitionName + "_page" & pageNum & "." & imageOptions.Format)
page.SaveAs fileName, imageOptions
pageNum = pageNum + 1
Next page
ExitFunction
err_h:
exportImages = Err.Description
EndFunction
' The procedure that exports info about the document
PrivateSub exportDocInfo(ByRef docObj As Object, ByRef txtFile As TextStream)

OnErrorGoTo err_h
txtFile.WriteLine "Doc info:"
txtFile.WriteLine ("DocumentId " & docObj.Id)
txtFile.WriteLine ("IsAssembled " & docObj.IsAssembled)
txtFile.WriteLine ("IsVerified " & docObj.IsVerified)
txtFile.WriteLine ("IsExported " & docObj.IsExported)
txtFile.WriteLine ("ProcessingErrors " & docObj.ProcessingErrors)
txtFile.WriteLine ("ProcessingWarnings " & docObj.ProcessingWarnings)
txtFile.WriteLine ("TotalSymbolsCount " & docObj.TotalSymbolsCount)
txtFile.WriteLine ("RecognizedSymbolsCount " & docObj.RecognizedSymbolsCount)
txtFile.WriteLine ("UncertainSymbolsCount " & docObj.UncertainSymbolsCount)
txtFile.WriteLine
ExitSub
err_h:
txtFile.WriteLine Err.Description
EndSub
' The procedure that exports fields from the fields collection
PrivateFunction exportFields(ByRef fields As Object, ByRef txtFile As TextStream, ByVal indent As String) AsBoolean
OnErrorGoTo err_h
Dim curField As Object
exportFields = True
ForEach curField In fields
IfNot exportField(curField, txtFile, indent) Then
exportFields = False
EndIf
Next curField
ExitFunction
err_h:
txtFile.WriteLine Err.Description
exportFields = False
EndFunction
' Checks if the field value is null
' If the value is invalid, any attempt to access this field (even
' to check if it is null) may cause an exception
Function IsNullFieldValue(ByRef field As Object) AsBoolean
OnErrorGoTo err_h
IsNullFieldValue = IsNull(field.Value)
ExitFunction
err_h:
IsNullFieldValue = True
EndFunction
' Field export function
PrivateFunction exportField(ByRef field As Object, ByRef txtFile As TextStream, _
ByVal indent AsString) AsBoolean
OnErrorGoTo err_h
Dim result AsBoolean
result = True
' saving field name
txtFile.Write (indent & field.Name)
' saving field value if it can be accessed
IfNot IsNullFieldValue(field) Then
txtFile.WriteLine (" " & field.Value)
Else
txtFile.WriteLine
EndIf
IfNot field.Children Is NothingThen
' exporting child fields
result = result And exportFields(field.Children, txtFile, indent & " ")
ElseIfNot field.Items IsNothingThen
' exporting field instances
result = result And exportFields(field.Items, txtFile, indent & " ")
EndIf
exportField = result
ExitFunction
err_h:
txtFile.WriteLine Err.Description
exportField = False
EndFunction
' The function creates an export folder and returns a full path to this folder
PrivateFunction createExportFolder(ByVal definitionName AsString) AsString
OnErrorGoTo err_h
Dim docFolder AsString, folderName AsString
' main folder
Const exportFolder = "d:\AutomationExport"
If mFso.FolderExists(exportFolder) = FalseThen
mFso.CreateFolder (exportFolder)
EndIf
' the folder of the specified Document Definition
docFolder = mFso.BuildPath(exportFolder, definitionName)
If mFso.FolderExists(docFolder) = FalseThen
mFso.CreateFolder (docFolder)
EndIf
' the folder of the exported document
Dim i AsLong
i = 1
folderName = mFso.BuildPath(docFolder, i)
While mFso.FolderExists(folderName)
i = i + 1
folderName = mFso.BuildPath(docFolder, i)
Wend
mFso.CreateFolder (folderName)
createExportFolder = folderName
ExitFunction
err_h:
createExportFolder = ""
EndFunction

Using an external component written in .Net( C# )

To use an external component written in .Net, do the following:

1.Create a project of type ClassLibrary

2.Add ControllerInterop.dll to the References of the project ABBYY.FlexiCapture will appear in the References list and all the interfaces of the script objects will become available in the project.

3.Define the disp interface and the class that implements this interface, as well as ProgId (this will make it possible to work with the .Net component just like with ActiveX from the code of the script).

4.After building the project, register the generated types library (this can be done automatically by enabling the corresponding option in the project properties).

5.From the export code, call the method of the component in the usual manner:

[VBScript]
dim autoExport
set autoExport = CreateObject( "ExportLibrary1.Export" )
autoExport.ExportDocument me, FCTools

[JScript]
var autoExport = new ActiveXObject("ExportLibrary1.Export"); autoExport.ExportDocument( this, FCTools );

Below follows the code of such a component:

using System;
using System.Runtime.InteropServices;
using System.IO;
using ABBYY.FlexiCapture;
namespace ExportLibrary1
{

// The interface of the export component which can be accessed from the script
// When creating a new component, generate a new GUID
[Guid("32B10C3B-EEA3-4194-B0A0-E358C310225A")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface _cExport
{
[DispId(1)]
void ExportDocument(ref IExportDocument DocRef, ref FCTools Tools);
}
// The class that implements export component functionality
// When creating a new component, generate a new GUID
// and set your ProgId
[Guid("3BA19BD7-C6DC-4f63-BC08-0D95254DADC3")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("ExportLibrary1.Export")]
[ComVisible(true)]
public class Export : _cExport
{
public Export()
{
}
// The function carries out document export: creates an export folder and
// saves in it page image files,
// the text file with document fields, and information about the document
public void ExportDocument( ref IExportDocument docRef, ref FCTools FCTools )
{
try
{
string exportFolder = createExportFolder( docRef.DefinitionName );
exportImages( docRef, FCTools, exportFolder );
// creating the text file
string fileName = exportFolder + "//" + "doc.txt";
StreamWriter sw = File.CreateText( fileName );
// exporting info about document
exportDocInfo( docRef, sw );
// exporting fields
sw.WriteLine( "Fields:" );
exportFields( docRef.Children, sw, "" );
sw.Close();
}
catch( Exception e )
{
docRef.Action.Succeeded = false;
docRef.Action.ErrorMessage = e.ToString();
}
}
// The function creates an export folder and returns a full path to this folder
privatestring createExportFolder(string definitionName )
{
string docFolder, folderName;
// main folder
string exportFolder = "d:\\DotNetExport";
if( !Directory.Exists(exportFolder) )
{
Directory.CreateDirectory(exportFolder);
}
// the folder of the specified Document Definition
docFolder = exportFolder + "\\" + definitionName;
if( !Directory.Exists(docFolder) )
{
Directory.CreateDirectory( docFolder );
}
// the folder of the exported document
int i = 1;
folderName = docFolder + "\\" + i;
while( Directory.Exists(folderName) )
{
i++;
folderName = docFolder + "\\" + i;
}
Directory.CreateDirectory(folderName);
return folderName;
}
// Image export function
private void exportImages( IExportDocument docRef, FCTools FCTools, string exportFolder )
{
string baseFileName = exportFolder + "\\page_";
IExportImageSavingOptions imageOptions = FCTools.NewImageSavingOptions();
imageOptions.Format = "bmp";
imageOptions.ColorType = "FullColor";
imageOptions.Resolution = 100;
int i = 1;
foreach( IExportPage curPage in docRef.Pages )
{
string fileName = baseFileName + i + ".bmp";
curPage.SaveAs( fileName, imageOptions );
i++;
}
}
// Exporting info about document
private void exportDocInfo( IExportDocument docRef, StreamWriter sw )
{
sw.WriteLine( "Doc info:" );
sw.WriteLine("DocumentId " + docRef.Id );
sw.WriteLine("IsAssembled " + docRef.IsAssembled);
sw.WriteLine("IsVerified " + docRef.IsVerified);
sw.WriteLine("IsExported " + docRef.IsExported);
sw.WriteLine("ProcessingErrors " + docRef.ProcessingErrors);
sw.WriteLine("ProcessingWarnings " + docRef.ProcessingWarnings);
sw.WriteLine("TotalSymbolsCount " + docRef.TotalSymbolsCount);
sw.WriteLine("RecognizedSymbolsCount " + docRef.RecognizedSymbolsCount);
sw.WriteLine("UncertainSymbolsCount " + docRef.UncertainSymbolsCount);
sw.WriteLine();
}
// Exporting field collection
private void exportFields( IExportFields fields, StreamWriter sw, string indent )
{
foreach( IExportField curField in fields )
{
exportField( curField, sw, indent );
}
}
// Checks if the field value is null
// If the field value is invalid, any attempt to access this field (even
// to check if it is null) may cause an exception
privatebool IsNullFieldValue( IExportField field )
{
try
{
return ( field.Value == null );
}
catch( Exception e )
{
returntrue;
}
}
// Exporting the specified field
private void exportField( IExportField field, StreamWriter sw, string indent )
{
// saving the field name
sw.Write( indent + field.Name );
// saving the field value if it can be accessed
if( IsNullFieldValue( field ) )
{
sw.WriteLine();
}
else
{
sw.WriteLine( " " + field.Text );
}
if( field.Children != null )
{
// exporting child fields
exportFields( field.Children, sw, indent + " " );
}
else if( field.Items != null )
{
// exporting field instances
exportFields( field.Items, sw, indent + " " );
}
}
}
}

Export handler

This sample code demonstrates a simple export handler which saves information about exported documents and export results to text files. Two text files are used in this example: one containing the list of successfully exported documents and one containing the list of documents that returned errors during export.

[VBScript]
dim curDoc
dim fso, fileErrorName, txtErrorFile, fileSucceedName, txtSucceedFile
set fso = CreateObject("Scripting.FileSystemObject")
' creating the file with failed documents
fileErrorName = "d:\ExportResults\ErrorsDocuments.txt"
set txtErrorFile = fso.CreateTextFile( fileErrorName, true )
' creating the file with successfully exported documents
fileSucceedName = "d:\ExportResults\SucceedDocuments.txt"
set txtSucceedFile = fso.CreateTextFile( fileSucceedName, true )
dim i, exprortResult, docInfo
' iterating the collection of exported documents
for i = 0 Tome.Count - 1
set exportResult = me.Item(i)
docInfo = "DocumentId:" & exportResult.Document.Id
if exportResult.Succeeded then
docInfo = docInfo & " - Exported successfully."
txtSucceedFile.WriteLine docInfo
else
docInfo = docInfo & " - Export error: " & exportResult.ErrorMessage
txtErrorFile.WriteLine docInfo
endif
next
txtErrorFile.Close
txtSucceedFile.Close
[JScript]
var fso = new ActiveXObject("Scripting.FileSystemObject");
// creating the file with failed documents
var fileErrorName = "d:\\ExportResults\\ErrorsDocuments.txt";
var txtErrorFile = fso.CreateTextFile( fileErrorName, true );
// creating the file with successfully exported documents
var fileSucceedName = "d:\\ExportResults\\SucceedDocuments.txt"
var txtSucceedFile = fso.CreateTextFile( fileSucceedName, true );
var i
// iterating the collection of exported documents
for( i = 0; i < Documents.Count; i++ ) {
var curDoc = Documents.Item( i );
var docInfo = "DocumentId: " + curDoc.Id;
if( curDoc.Action.Succeeded ) {
docInfo = docInfo + ". Exported successfully. Result:" + curDoc.Action.Result;
txtSucceedFile.WriteLine( docInfo );
} else {
docInfo = docInfo + ". Export error: " + curDoc.Action.ErrorMessage + " Result:" + curDoc.Action.Result;
txtErrorFile.WriteLine( docInfo );
}
}
txtErrorFile.Close();
txtSucceedFile.Close();

Accessing source files in common office formats

This sample script shows how you can save the source files when exporting documents. The source files must be in any of the supported common office formats and must be given unique names in order to avoid naming conflicts.

using System;

using System.IO;

using System.Collections.Generic;

// Iterate through the pages.

for( int i = 0; i<Document.Pages.Count; i++ ) {

IPage page = Document.Pages[i];

// Check whether there is a source file.

if( page.SourceFileGUID == "" ) {

continue;

}

// The original name of the file.

string sourceFileName = @"";

// Specify the original file name.

if( page.ImageSourceType == @"File" ) {

sourceFileName = Path.GetFileName( page.ImageSource );

} else if( page.ImageSourceType == @"Scanner" || page.ImageSourceType == @"Custom" ) {

sourceFileName = Path.GetFileName( page.ImageSourceFileSubPath );

}

// Remove the file extension from the file name.

if( sourceFileName != @"" ) {

sourceFileName = Path.GetFileNameWithoutExtension( sourceFileName ) + @".";

}

// Unique source file name (original name + guid).

string sourceFileUniqueName = sourceFileName + page.SourceFileGUID;

// The path to the folder where the source file must be saved.

string sourceFilePath = Document.Batch.Project.ExportRootPath + @"\" + sourceFileUniqueName;

// Make sure that the file does not exist.

if( File.Exists( sourceFilePath ) ) {

continue;

}

// Save the file.

Processing.ReportMessage( "Saving source file: " + sourceFileUniqueName );

page.SaveSourceFile( sourceFilePath );

}


Sample assembly scripts

Show/Hide Hidden Text

Assembly script with conditional documents depending on the value of a field

The script in this example is used to assemble documents into document sets defined by a Document Set Definition. The Document Set Definition contains a section named Borrower's form and references to the following Document Definitions:

·Passport

·Guarantor's documents

·Co-borrower's documents

·Employer reference

The Borrower's form section includes the following fields:

·Co-borrower's name

·Loan sum

The documents that need to be included in the document set depend on the value of the Loan sum field. The script has two threshold values that determine which documents are included in the set:

1.If the loan sum is less than the first threshold value, the document set only needs to contain a passport.

2.If the loan sum is greater than the first threshold value but less than the second threshold value, the document set needs to contain a passport and an employer's reference.

3.If the loan sum is greater than the second threshold value, the document set needs to contain a passport, an employer's reference and a guarantor's documents.

In addition to this, if the Co-borrower's name field contains a value, the document set needs to contain a co-borrower's documents.

The script below uses this logic to assembles document sets.

using System.Collections.Generic;
int creditSum = 0;
bool creditSumFound = false;
string cocreditor = "";
int formCount = 0;
string formName = "Borrower's form";
// Document Definitions used in the document set
int referenceFromWorkCount = 0;
string referenceFromWorkName = "Employer reference";
int guaranteeDocsCount = 0;
string guaranteeDocsName = "Guarantor's documents";
int cocreditorDocsCount = 0;
string cocreditorDocsName = "Co-borrower's documents";
int passportCount = 0;
string passportName = "Passport";

foreach( IBatchItem item in BatchItems ) {
// Find the form and determine the sum of the loan
if (item.Type == TBatchItemType.BIT_Page)
{
if (item.AsPage.SectionName != formName)
AssemblingErrors.AddCustomError("Cannot contain the following sections: " + item.AsPage.SectionName, 1);
else
{
cocreditor = item.AsPage.Document.IndexedItemValue("Borrower's name").ToString();
string creditSumText = item.AsPage.Document.IndexedItemValue("Loan sum").ToString();
if (!int.TryParse(creditSumText, out creditSum))
AssemblingErrors.AddCustomError("Loan sum was not recognized: " + creditSumText, 1);
else
creditSumFound = true;
formCount++;
}
}
// Count the documents in the set
else if (item.Type == TBatchItemType.BIT_Document) {
if (item.AsDocument.TemplateName == referenceFromWorkName)
referenceFromWorkCount++;
else if (item.AsDocument.TemplateName == guaranteeDocsName)
guaranteeDocsCount++;
else if (item.AsDocument.TemplateName == passportName)
passportCount++;
else if (item.AsDocument.TemplateName == cocreditorDocsName)
cocreditorDocsCount++;
else
AssemblingErrors.AddCustomError("The document set cannot contain the document " + item.AsDocument.TemplateName, 1);
}
}

// Check the number of sections and documents in the set
if (formCount > 1)
AssemblingErrors.AddCustomError("There are too many documents of the type: " + formName, formCount);
else if (formCount < 1)
AssemblingErrors.AddCustomError("Missing the following documents: " + formName, 1);

if (passportCount > 1)
AssemblingErrors.AddCustomError("There are too many documents of the type: " + passportName, passportCount);
else if (passportCount < 1)
AssemblingErrors.AddCustomError("Missing the following documents: " + passportName, 1);

// Check that the document set contains a co-borrower if a co-borrower name is present in the form
if (cocreditor != "" && cocreditorDocsCount < 1)
AssemblingErrors.AddCustomError("Missing the following documents: " + cocreditorDocsName, 1);
else if (cocreditor != "" && cocreditorDocsCount > 1)
AssemblingErrors.AddCustomError("There are too many documents of the type: " + cocreditorDocsName, cocreditorDocsCount);
else if (cocreditor == "" && cocreditorDocsCount > 0)
AssemblingErrors.AddCustomError("There are too many documents of the type: " + cocreditorDocsName, cocreditorDocsCount);

// Check that the document set contains all of the document required due to the loan sum exceeding one of the thresholds
if (creditSumFound)
{
if (creditSum > 50000) // requires an employer reference
{
if (referenceFromWorkCount > 1)
AssemblingErrors.AddCustomError("There are too many documents of the type: " + referenceFromWorkName, referenceFromWorkCount);
else if (referenceFromWorkCount < 1)
AssemblingErrors.AddCustomError("Missing the following documents: " + referenceFromWorkName, 1);
}
if (creditSum > 500000) // requires the guarantor's documents
{
if (guaranteeDocsCount > 1)
AssemblingErrors.AddCustomError("There are too many documents of the type: " + guaranteeDocsName, guaranteeDocsCount);
else if (guaranteeDocsCount < 1)
AssemblingErrors.AddCustomError("Missing the following documents: " + guaranteeDocsName, 1);
}
}

Assembly script that checks for missing documents

The script in this example works with the Identification Documents Document Set Definition. The Document Set Definition contains references to the following Document Definitions:

·Passport

·Driver's license

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};

// Count the number of documents and pages in the set

foreach (IBatchItem item in BatchItems) {

if (item.Type == TBatchItemType.BIT_Document) {

if (item.AsDocument.TemplateName == docSetName)

AssemblingErrors.AddCustomError("Cannot contain a nested set", 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++;

}

// Check the number of documents and pages

if (foundCount[0] + foundCount[1] == 0)

AssemblingErrors.AddCustomError("At least one identification document is required", 1);

for (int i = 0; i < allowed.Count; i++) {

if (foundCount[i] > allowedCount[i])

AssemblingErrors.AddCustomError("Maximum number of documents: " + allowed[i] + ": " + allowedCount[i]);

}

if (pagesCnt > 0) AssemblingErrors.AddCustomError("The document set cannot contain pages that do not belong to a document", pagesCnt);


Other sample scripts

Show/Hide Hidden Text
Document merge event

Type: a handler of the Pages moved event

This sample code demonstrates how the "Pages moved" event can be transformed into the "Document merge" event. The logic of this script is as follows: if all pages of the document are moved, then this document is fully embedded into the target document.

The script is launched on the event Pages moved. The Events.OnDocumentsMerge procedure is a procedure that handles the "Document merge" event.

[VBScript]
Dim currentDocument, currentDocumentPagesMoved
set currentDocument = Pages( 0 ).Document
currentDocumentPagesMoved = 0
For i = 0 to Pages.Count - 1
If Pages( i ).Document.Id <> currentDocument.Id Then
' The next document
If currentDocument.Pages.Count = currentDocumentPagesMoved Then
' All pages are moved from the previous document. The event is spawned.
Events.OnDocumentsMerge TargetDocument, currentDocument
End If
Set currentDocument = Pages( i ).Document
Else
Next
If currentDocument.Pages.Count = currentDocumentPagesMoved Then
' All pages are moved from the last document. The event is spawned.
Events.OnDocumentsMerge TargetDocument, currentDocument
End If
[JScript]
var currentDocument = Pages( 0 ).Document;
var currentDocumentPagesMoved = 0;

for( i = 0; i < Pages.Count - 1; i++ ) {
if( Pages( i ).Document.Id != currentDocument.Id ) {
// The next document
if( currentDocument.Pages.Count == currentDocumentPagesMoved ) {
// All pages are moved from the previous document. The event is spawned.
Events.OnDocumentsMerge( TargetDocument, currentDocument );
}
currentDocument = Pages( i ).Document;
} else {
currentDocumentPagesMoved = currentDocumentPagesMoved + 1;
}
}

if( currentDocument.Pages.Count == currentDocumentPagesMoved ) {
// All pages are moved from the last document. The event is spawned.
Events.OnDocumentsMerge( TargetDocument, currentDocument )
}
Merging document registration parameters on document merge

Type: a handler of the Document merge event

This sample code demonstrates the easiest way to merge document registration parameters on document merge. When merging documents into a target document, only those parameters from new documents are added which were missing in it.

The code should be stored in a shared module. The OnDocumentsMerge procedure must called at the moment of merging documents. For details, see the description of the Document merge event.

[VBScript]
Sub MergeProperty(ByVal TargetDocument, ByVal propertyName, ByVal propertyValue)
If TargetDocument.Properties.Get(propertyName) = "" Then
' There is no such a parameter in the document.
TargetDocument.Properties.Set(propertyName, propertyValue)
End If
End Sub
Sub OnDocumentsMerge(ByVal Target, ByVal Document)
' Merging registration parameters.
For i = 0 To Document.Properties.Count - 1
MergeProperty(Target, Document.Properties(i).Name,
Document.Properties(i).Value)
Next
End Sub
[JScript]
function MergeProperty( TargetDocument, propertyName, propertyValue )
{
if( TargetDocument.Properties.Get( propertyName ) == "" ) {
// There is no such a parameter in the document.
TargetDocument.Properties.Set( propertyName, propertyValue );
}
}

function OnDocumentsMerge( Target, Document )
{
// Merging registration parameters.
for( i = 0; i < Document.Properties.Count - 1; i++ ) {
MergeProperty( Target, Document.Properties(i).Name, Document.Properties(i).Value );
}
}


Internal names of recognition languages

What it does

Internal names of recognition languages are used in the RecognitionLanguages property of the IExportImageSavingOptions object.

Compliance of recognition languages to their internal names:

A
Abkhaz | forward | Abkhaz
Adyghe | forward | Adyghe
Afrikaans | forward | Afrikaans
Agul | forward | Agul
Albanian | forward | Albanian
Altaic | forward | Altaic
Arabic (Saudi Arabia) | forward | Arabic
Armenian (Eastern) | forward | ArmenianEastern
Armenian (Grabar) | forward | ArmenianGrabar
Armenian (Western) | forward | ArmenianWestern
Avar | forward | Awar
Aymara | forward | Aymara
Azerbaijani (Cyrillic) | forward | AzeriCyrillic
Azerbaijani (Latin) | forward | AzeriLatin
B
Bashkir | forward | Bashkir
Basque | forward | Basque
Bemba | forward | Bemba
Blackfoot | forward | Blackfoot
Breton | forward | Breton
Bugotu | forward | Bugotu
Bulgarian | forward | Bulgarian
Buryat | forward | Buryat
Belarusian | forward | Belarusian
C
Catalan | forward | Catalan
Chamorro | forward | Chamorro
Chechen | forward | Chechen
Chinese Simplified | forward | ChinesePRC
Chinese Traditional | forward | ChineseTaiwan
Chukchee | forward | Chukcha
Chuvash | forward | Chuvash
Corsican | forward | Corsican
Crimean Tatar | forward | CrimeanTatar
Croatian | forward | Croatian
Crow | forward | Crow
Czech | forward | Czech
D
Danish | forward | Danish
Dargwa | forward | Dargwa
Dungan | forward | Dungan
Dutch | forward | Dutch
Dutch (Belgian) | forward | DutchBelgian
E
English | forward | English
Eskimo (Cyrillic) | forward | EskimoCyrillic
Eskimo (Latin) | forward | EskimoLatin
Esperanto | forward | Esperanto
Estonian | forward | Estonian
Even | forward | Even
Evenki | forward | Evenki
F
Faroese | forward | Faeroese
Fijian | forward | Fijian
Finnish | forward | Finnish
French | forward | French
Frisian | forward | Frisian
Friulian | forward | Friulian
G
Scottish Gaelic | forward | GaelicScottish
Gagauz | forward | Gagauz
Galician | forward | Galician
Ganda | forward | Ganda
German | forward | German
German (new spelling) | forward | GermanNewSpelling
German (Luxembourg) | forward | GermanLuxembourg
Greek | forward | Greek
Guarani | forward | Guarani
H
Hani | forward | Hani
Hausa | forward | Hausa
Hawaiian | forward | Hawaiian
Hebrew | forward | Hebrew
Hungarian | forward | Hungarian
I
Icelandic | forward | Icelandic
Ido | forward | Ido
Indonesian | forward | Indonesian
Ingush | forward | Ingush
Interlingua | forward | Interlingua
Irish | forward | Irish
Italian | forward | Italian
J
Japanese | forward | Japanese
K
Kabardian | forward | Kabardian
Kalmyk | forward | Kalmyk
Karachay-balkar | forward | KarachayBalkar
Karakalpak | forward | Karakalpak
Kasub | forward | Kasub
Kawa | forward | Kawa
Kazakh | forward | Kazakh
Khakass | forward | Khakas
Khanty | forward | Khanty
Kikuyu | forward | Kikuyu
Kirghiz | forward | Kirgiz
Kongo | forward | Kongo
Korean | forward | Korean
Korean (Hangul) | forward | KoreanHangul
Koryak | forward | Koryak
Kpelle | forward | Kpelle
Kumyk | forward | Kumyk
Kurdish | forward | Kurdish
L
Lak | forward | Lak
Sami (Lappish) | forward | Lappish
Latin | forward | Latin
Latvian | forward | Latvian
Latvian Gothic | forward | LatvianGothic
Lezgi | forward | Lezgin
Lithuanian | forward | Lithuanian
Luba | forward | Luba
M
Macedonian | forward | Macedonian
Malagasy | forward | Malagasy
Malay (Malaysian) | forward | Malay
Malinke | forward | Malinke
Maltese | forward | Maltese
Mansi | forward | Mansi
Maori | forward | Maori
Mari | forward | Mari
Maya | forward | Maya
Miao | forward | Miao
Minangkabau | forward | Minankabaw
Mohawk | forward | Mohawk
Moldavian | forward | RomanianMoldavia
Mongol | forward | Mongol
Mordvin | forward | Mordvin
N
Nahuatl | forward | Nahuatl
Nenets | forward | Nenets
Nivkh | forward | Nivkh
Nogay | forward | Nogay
Norwegian | forward | Norwegian
Norwegian (Bokmal) | forward | NorwegianBokmal
Norwegian (Nynorsk) | forward | NorwegianNynorsk
Nyanja | forward | Nyanja
O
Occidental | forward | Occidental
Ojibway | forward | Ojibway
Old English | forward | OldEnglish
Old French | forward | OldFrench
Old German | forward | OldGerman
Old Italian | forward | OldItalian
Old Spanish | forward | OldSpanish
Ossetian | forward | Ossetic
P
Papiamento | forward | Papiamento
Tok Pisin | forward | PidginEnglish
Polish | forward | Polish
Portuguese | forward | PortugueseStandard
Portuguese (Brazilian) | forward | PortugueseBrazilian
Occitan | forward | Provencal
Q
Quechua | forward | Quechua
R
Rhaeto-Romanic | forward | RhaetoRomanic
Romanian | forward | Romanian
Romany | forward | Romany
Rwanda | forward | Ruanda
Rundi | forward | Rundi
Russian (Old Spelling) | forward | RussianOldSpelling
Russian | forward | Russian
Russian and English | forward | Mixed
S
Samoan | forward | Samoan
Selkup | forward | Selkup
Serbian (Cyrillic) | forward | SerbianCyrillic
Serbian (Latin) | forward | SerbianLatin
Shona | forward | Shona
Dakota | forward | Sioux
Slovak | forward | Slovak
Slovenian | forward | Slovenian
Somali | forward | Somali
Sorbian | forward | Sorbian
Sotho | forward | Sotho
Spanish | forward | Spanish
Sunda | forward | Sunda
Swahili | forward | Swahili
Swazi | forward | Swazi
Swedish | forward | Swedish
T
Tabasaran | forward | Tabassaran
Tagalog | forward | Tagalog
Tahitian | forward | Tahitian
Tajik | forward | Tajik
Tatar | forward | Tatar
Thai | forward | Thai
Jingpo | forward | Tinpo
Tongan | forward | Tongan
Tswana | forward | Tswana
Tun | forward | Tun
Turkish | forward | Turkish
Turkmen | forward | Turkmen
Tuvinian | forward | Tuvin
U
Udmurt | forward | Udmurt
Uighur (Cyrillic) | forward | UighurCyrillic
Uighur (Latin) | forward | UighurLatin
Ukrainian | forward | Ukrainian
Uzbek (Cyrillic) | forward | UzbekCyrillic
Uzbek (Latin) | forward | UzbekLatin
V
Cebuano | forward | Visayan
Vietnamese | forward | Vietnamese
W
Welsh | forward | Welsh
Wolof | forward | Wolof
X
Xhosa | forward | Xhosa
Y
Yakut | forward | Yakut
Yiddish | forward | Yiddish
Z
Zapotec | forward | Zapotec
Zulu | forward | Zulu


Scripts for processing interface events

In ABBYY FlexiCapture, you can use scripts to process interface events. This allows you to configure the operation of a station, customize its interface, change a station's behavior under certain conditions, implement user commands, etc.

These scripts can be added for interactive workflow stages and for tools configured in the Tool Settings dialog box.

All script objects are available for reading and writing.

Access permissions to objects of the ControllerInterop used in scripts depend on the objects' state. The current document's state is returned by the DocumentState() method of the ITaskWindow interface. If the document's state is DS_Opened, then the ControllerInterop objects of the document are available for reading and writing. For other states, the objects of ControllerInterop are read-only.

Events that can be handled by means of scripts and their parameters are described below.

listPicture Events

listPicture Objects

note Note: Any changes you make to the interface by means of scripts will be discarded in the following cases:

·When you enter a batch type other than the default batch type

·When you exit a batch type other than the default batch type

·When you open or close a project

·When you close the station

note Note: Web Stations do not support the use of scripts.


Event handlers

Program shell events, that can be handled by using scripts, are listed below:

On Activate Document

On Closing Document

On Closing Project

On Document Closed

On Field Control Activate

On Field Control Deactivate

On Open Document

On Project Closed

On Region Change

On Region Control Draw

On Return From Task

On Task Close

On Task Reject

On Task Send To Stage

On Task Window Create

On Task Window Mode Changed

On Text Field Validating

On User Command


On Document Closed

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Document Closed

When it is launched

The script is launched after confirming the changes when closing a document in the document editor.

Parameters

Name | Type | Access | Description
Context | IDocumentEditor | Read/write | The document editor


On Project Closed

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Project Closed

When it is launched

The script is launched when closing the project is finished after the user confirms the action in the inquiry dialog (if it was).

Parameters

Name | Type | Access | Description
Context | IMainWindow | Read/write | The main window


On Activate Document

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Activate Document

When it is launched

The script is launched prior to activating the document in the task window (by a double-click, by using menu commands, etc.).

·If the CanOpen.Value property is set to true, the document will be opened in the document editor after the script execution.

·If the CanOpen.Value property is set to false, the document will not be opened.

By default, the value of the CanOpen parameter is true.

Parameters

Name | Type | Access | Description
CanOpen | IBoolean | Read/write | Specifies whether to open the document
Context | ITaskWindow | Read/write | The task window
DocumentItem | IDocumentItem | Read/write | The document being processed


On Field Control Activate

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Field Control Activate

When it is launched

The script is launched upon activating a field.

Parameters

Name | Type | Access | Description
Context | IFieldControl | Read/write | The activated field

note Note: You cannot activate a different field by this script.


On Return From Task

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Return From Task

When it is launched

The script is launched when processing the current task is finished after confirmation of changes.

Parameters

Name | Type | Access | Description
Context | ITaskWindow | Read/write | The task window


On User Command

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On User Command

When it is launched

The event occurs when calling a user command (provided that a corresponding item is added to the main menu or on the toolbar).

User command identifiers can be represented in the form of CI_UserCommand + <non-negative integer>.

Parameters

Name | Type | Access | Description
CommandId | TCommandID | Read/write | The identifier of the user command
Context | IMainWindow | Read/write | The main window of the application

note Note: To add a user command to the main menu or on the toolbar, you must use AppendItem / InsertItem and AppendButton /InsertButton methods of the IMenu interface and the IToolbar interface respectively. The command identifiers CI_UserCommand or CI_UserCommand + <non-negative integer> must be used.

The sample code below demonstrates how to add a menu item for a user command with a command identifier CI_UserCommand + 1.

ABBYY.FlexiCapture.ClientUI.TCommandID userCommand = ABBYY.FlexiCapture.ClientUI.TCommandID.CI_UserCommand;
ABBYY.FlexiCapture.ClientUI.TCommandID userCommand1 = (ABBYY.FlexiCapture.ClientUI.TCommandID) ((int)userCommand + 1);
IMenu menu = MainWindow.MainMenu[0].Submenu;
menu.AppendItem( userCommand1, "User command" );

A toolbar button or a menu item added for a user command will be disabled unless a handler of the On User Command event is added.

The sample code below demonstrates processing the On User Command event.

ABBYY.FlexiCapture.ClientUI.TCommandID commandID = ( ABBYY.FlexiCapture.ClientUI.TCommandID )( CommandId );
ABBYY.FlexiCapture.ClientUI.TCommandID userCommand = ABBYY.FlexiCapture.ClientUI.TCommandID.CI_UserCommand;
ABBYY.FlexiCapture.ClientUI.TCommandID userCommand1 = (ABBYY.FlexiCapture.ClientUI.TCommandID) ((int)userCommand + 1);
if( commandID == userCommand1 ) {
<... call necessary methods here ...>


On Field Control Deactivate

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Field Control Deactivate

When it is launched

The script is launched before a field stops being active.

The field that is going to be activated next is passed to the script as an input parameter. This parameter can be changed.

Parameters

Name | Type | Access | Description
Context | IFieldControl | Read/write | The field being deactivated
NewActiveControl | IBoxedFieldControl | Read/write | The field being activated. note Note: The property has null value if the field that is going to be activated belongs to another document.
WasModified | bool | Read/write | Specifies whether the field was modified


On Closing Document

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Closing Document

When it is launched

The script is launched when the document is being closed in the document editor (when going to a new document or closing the document editor) and prior to confirmation of changes.

·If the CanClose.Value property is set to false, the document will remain open.

·If the CanClose.Value property is set to true, the document will be closed after the script execution.

By default, the value of the CanClose parameter is true.

Parameters

Name | Type | Access | Description
CanClose | IBoolean | Read/write | Specifies whether to close the document
Context | IDocumentEditor | Read/write | The document editor


On Task Close

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Task Close

When it is launched

The script is launched prior to closing the current task.

·If the CanClose.Value property is set to true, the task will be closed after the script execution.

·If the CanClose.Value property is set to false, the task will remain open.

By default, the value of the CanClose parameter is true.

Parameters

Name | Type | Access | Description
CanClose | IBoolean | Read/write | Specifies whether to close the task
Context | ITaskWindow | Read/write | The task window


On Closing Project

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Closing Project

When it is launched

The script is launched when the project is being closed and prior to showing an inquiry dialog. The inquiry box appears if the user must confirm the action before proceeding.

·If the CanClose.Value property is set to false, the main window will remain open.

·If the CanClose.Value property is set to true, the main window will be closed.

By default, the value of the CanClose parameter is true.

Parameters

Name | Type | Access | Description
CanClose | IBoolean | Read/write | Specifies whether to close the main window
Context | IMainWindow | Read/write | The main window


On Region Change

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Region Change

When it is launched

The script is launched prior to modifying a region in the image window.

·If the AllowChangeRegion.Value property is set to true, the region will be changed after the script execution.

·If the AllowChangeRegion.Value property is set to false, the region will not be changed.

By default, the value of the AllowChangeRegion parameter is true.

Parameters

Name | Type | Access | Description
AllowChangeRegion | IBoolean | Read/write | Specifies whether to change the region.
Context | IFieldRegionControl | Read/write | The region
NewRegionParam | IShellRects | Read/write | Rectangles of the region. For tables, the whole table region is passed. note Note: When changing a container of the region, a new region of this container is returned and new regions of its child elements are not returned. When changing the region of a child element, only a new region of this child element is returned. For tables, the table region is always returned, also when changing a column or row region.


On Task Window Mode Changed

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Task Window Mode Changed

When it is launched

The script is launched when changing the view of the task window (when the user switches to a different view mode).

Parameters

Name | Type | Access | Description
Context | ITaskWindow | Read/write | The task window


On Open Document

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Open Document

When it is launched

The script is launched upon opening a document in the document editor (when opening a new document window or going to a new document).

When the script is launched, all windows inside the document editor are already created.

Parameters

Name | Type | Access | Description
Context | IDocumentEditor | Read/write | The document editor

note Note: Closing the document from this script is not allowed. Using the command DocumentEditor.TaskWindow.CloseEditorWindow(); will cause the error message:

"System.Runtime.InteropServices.COMException (0x80004005): Document editor cannot be closed."


On Task Window Create

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Task Window Create

When it is launched

The script is launched upon creating a task window.

Parameters

Name | Type | Access | Description
Context | ITaskWindow | Read/write | The task window


On Task Reject

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Task Reject

When it is launched

The script is launched prior to rejecting the task.

·If the CanReject.Value property is set to true, the task will be rejected after the script execution.

·If the CanReject.Value property is set to false, the task will not be rejected.

By default, the value of the CanReject parameter is true.

note Note: The event occurs only when using the Reject Task command. When closing the station the event does not occur.

Parameters

Name | Type | Access | Description
CanReject | IBoolean | Read/write | Specifies whether to reject the task
Context | ITaskWindow | Read/write | The task window


On Region Control Draw

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Region Control Draw

When it is launched

The script is launched prior to redrawing the region.

·If the DrawDefault.Value property is set to true, drawing the region will be cancelled.

·If the DrawDefault.Value property is set to false, the region will be redrawn.

By default, the value of the DrawDefault parameter is false.

Parameters

Name | Type | Access | Description
Context | IFieldRegionControl | Read/write | The region
DrawContext | IDrawContext | Read/write | The drawing context
DrawDefault | IBoolean | Read/write | Specifies whether to continue drawing the region


On Task Send To Stage

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Task Send To Stage

When it is launched

This event handler runs before a task is moved to another stage.

·If the value of the CanSend.Value property is set to true, the task will be sent to another stage after the execution of the script.

·If the value of the CanSend.Value property is set to false, the task will not be sent to another stage.

By default, the value of the CanSend parameter is set to true.

Parameters

Name | Type | Access | Description
CanSend | IBoolean | Read/write | Specifies whether to send the task to another stage.
Context | ITaskWindow | Read/write | The task window.


On Text Field Validating

Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Event handlers >

Return to chapter overview

On Text Field Validating

When it is launched

The script is launched when the control is validating the user editing of a text field, e.g. when trying to choose the value from suggestions or when the control loses focus.

·If the CanApply.Value property is set to true, the user input will be validated after the script execution.

·If the CanApply.Value property is set to false, the user editing will be undone.

By default, the value of the CanApply parameter is true.

Parameters

Name | Type | Access | Description
CanApply | IBoolean | Read/write | Specifies whether to save changes
Context | ITextEditor | Read/write | The document field editor


Objects

This section contains the description of objects used in scripts, their properties and methods.

listPicture IBoolean

listPicture IBoxedFieldControl

listPicture IDocumentEditor

listPicture IDocumentItem

listPicture IDocumentItems

listPicture IDocumentsCollection

listPicture IDocumentsWindow

listPicture IDrawContext

listPicture IErrorControl

listPicture IErrorControls

listPicture IErrorsWindow

listPicture IFieldControl

listPicture IFieldRegionControl

listPicture IFieldRegionControls

listPicture IFormWindow

listPicture IImageWindow

listPicture IMainMenu

listPicture IMainWindow

listPicture IMenu

listPicture IMenuItem

listPicture IPageControl

listPicture IPageItem

listPicture IPageItems

listPicture IPagesCollection

listPicture IPoint

listPicture ISelection

listPicture IShellRational

listPicture IShellRect

listPicture IShellRects

listPicture ITaskWindow

listPicture ITextEditor

listPicture IToolbar

listPicture IToolbarButton

listPicture IToolbars

listPicture TCommandBarType

listPicture TCommandID

listPicture TDockingType

listPicture TErrorType

listPicture TSelectionType

listPicture TTaskWindowMode

listPicture TTextSize

listPicture TUserRole

listPicture TWorkWindowType


IBoolean

What it does

Passes in-out boolean values to scripts.

Properties

Name | Type | Access | Description
Value | bool | Read/write | The value

note Note: To assign a value to an object of IBoolean type, you must use the Value property. For example, to assign a true value to the object A of IBoolean type, you must write A.Value = true instead of A = true.


IBoxedFieldControl

What it does

Stores the document field control.

Properties

Name | Type | Access | Description
Value | IFieldControl | Read/write | The field


IDocumentEditor

What it does

Represents the document editor.

Methods

Definition | Description
Save() : bool | Saves the document

Properties

Name | Type | Access | Description
Document | IDocument | Read-only | The document being edited
ErrorsWindow | IErrorsWindow | Read-only | The errors window
FormMode | bool | Read/write | Specifies whether the data displaying mode is enabled
FormWindow | IFormWindow | Read-only | The form window
Handle | int | Read-only | The handle of the window
ImageWindow | IImageWindow | Read-only | The image window
Modified | bool | Read-only | Specifies whether the document is modified
TaskWindow | ITaskWindow | Read-only | The task window


IDocumentItem

What it does

Represents a document in the documents window.

Properties

Name | Type | Access | Description
Collection | IDocumentItems | Read-only | The collection that contains the document
Document | IDocument | Read-only | The document
Expanded | bool | Read/write | Specifies whether the document is expanded
MarkedNextStage | IStageInfo | Read-only | The next stage to which the document will be sent after the task is complete.
PageItems | IPageItems | Read-only | The collection of pages included in the document
Rect | IShellRect | Read-only | The rectangle of the document in the IDocumentsWindow
Selected | bool | Read/write | Specifies whether the document is selected
TaskDocument | bool | Read-only | Specifies whether the document belongs to the current task
TaskWindow | ITaskWindow | Read-only | The task window

note Note: For the Thumbnails view mode, the Expanded property value is always true. Setting the property to false does not result in errors, but the value will remain true.

note Note: If the document is collapsed, the DocumentItem.PageItems.Count property returns "0".


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Objects >

Return to chapter overview

IDocumentItems

What it does

A collection of IDocumentItem objects. Represents documents in the documents window.


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Objects >

Return to chapter overview

IDocumentsCollection

What it does

A collection of IDocument objects.


IDocumentsWindow

What it does

The window for displaying documents in Thumbnails View or in Details View.

Methods

Definition | Description
EnsureRectVisible( imageRect : IShellRect ) | Moves the scroll box to make the specified rectangle visible
FindDocumentItem( document : IDocument ) : IDocumentItem | Retrieves IDocumentItem by the IDocument object of ControllerInterop
FindPageItem( page : IPage ) : IPageItem | Retrieves IPageItem by the IPage object of ControllerInterop. note Note: If the IDocumentItem, that contains the IPageItem you are looking for is collapsed (i.e. if Expanded=false), no IPageItem will be found.

Properties

Name | Type | Access | Description
ClientRect | IShellRect | Read-only | The rectangle of the client area (in window coordinates). Coordinates of the left upper corner of the main window are (0, 0).
Docking | TDockingType | Read/write | The position of IDocumentsWindow in the document editor
FocusedItem | IDocumentItem | Read-only | Focused document. If the focus is placed on a page, the property returns the document containing this page.
Handle | int | Read-only | The handle of the window
Items | IDocumentItems | Read-only | The collection of documents
Ratio | IShellRational | Read/write | The ratio of the window size to the size of the parent window
ScrollPos | IPoint | Read/write | The position of the scroll box
SelectedItems | IDocumentItems | Read-only | Selected documents
TaskWindow | ITaskWindow | Read-only | The task window
TotalRect | IShellRect | Read-only | The rectangle of the whole window


IDrawContext

What it does

Represents the context of drawing. Allows you to draw elementary geometric objects by using scripts. The color is specified as a sequence of four bytes: 0x00BBGGRR, where the "BB" bite represents the blue color, the "GG" bite is the green color and the "RR" bite is the green color.

Methods

Definition | Description
FillAlphaRect( rect : IShellRect, rgbColor : int, alpha : int ) | Draws a filled rectangle with a specified level of transparency.
FillRect( rect : IShellRect, rgbColor : int ) | Draws a filled rectangle of the specified color.
GetPixel( x : int, y : int ) : int | Retrieves the pixel color (in RGB) by its coordinates.
Line( start : IPoint, end : IPoint, rgbColor : int ) | Draws a line of the specified color connecting the "start" and "end" points.
Rect( rect : IShellRect, rgbColor : int ) | Draws a rectangle with a frame of the specified color.
SetPixel( x : int, y : int, rgbColor : int ) : int | Sets the color (in RGB) of the pixel with specified coordinates. Returns the previous color of the pixel (in RGB).

Properties

Name | Type | Access | Description
Handle | int | Read-only | The handle to the context (HDC)


IErrorControl

What it does

Represents an item in the IErrorsWindow list.

Methods

Definition | Description
Field( index : int ) : IField | Retrieves the field related to the error by the index of the error

Properties

Name | Type | Access | Description
Error | string | Read-only | The text of the error
FieldsCount | int | Read-only | The number of fields related to the error
Index | int | Read-only | The index of the error in the IErrorsWindow
IsWarning | bool | Read-only | Specifies whether the error is a warning
Type | TErrorType | Read-only | The type of the error


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Objects >

Return to chapter overview

IErrorControls

What it does

A collection of IErrorControl objects.


IErrorsWindow

What it does

Represents the errors window.

Properties

Name | Type | Access | Description
Controls | IErrorControls | Read-only | The collection of controls
Docking | TDockingType | Read/write | The position of IErrorsWindow relative to IFormWindow in the document editor.
DocumentWindow | IDocumentEditor | Read-only | The document editor
FocusedControl | IErrorControl | Read/write | The error which is focused at the moment
Handle | int | Read-only | The handle of the window
Ratio | IShellRational | Read/write | The ratio of the IErrorsWindow size (which is a numerator) to the total size of IFromWindow plus IErrorsWindow windows (which is a denominator).
ShowAssemblingErrors | bool | Read/write | Specifies whether to show assembly errors
ShowFormatErrors | bool | Read/write | Specifies whether to show format errors
ShowRuleErrors | bool | Read/write | Specifies whether to show rule errors
ShowUnmatchedRegionErrors | bool | Read/write | Specifies whether to show errors associated with unmatched regions


IFieldControl

What it does

Represents a control of the document field.

warning Important! The object returns null for fields not involved in distributed verification.

Properties

Name | Type | Access | Description
DeviceRect | IShellRect | Read-only | The rectangle of the control
Field | IField | Read-only | The document field
FieldFullName | string | Read-only | The full name of the field
FieldRegionControls | IFieldRegionControls | Read-only | The collection of field regions of the document. For fields, that do not have regions, null is returned.
First | IFieldControl | Read-only | The first child control
FormWindow | IFormWindow | Read-only | The form window
IsExpandable | bool | Read-only | If the property is set to true, the field can be expanded and collapsed on the form. This property allows you to check whether the field is expandable before applying the IsExpanded property to it. For group fields, the property is true.
IsExpanded | bool | Read/write | Retrieves information whether the group field is expanded. Allows you to collapse/expand the field.
IsUserReadOnly | bool | Read/write | Specifies whether the field is editable. If the property is set to true, editing the field is not allowed. If the property is set to false, the possibility to edit the field depends on the Document Definition settings.
Last | IFieldControl | Read-only | The last child control
Next | IFieldControl | Read-only | The next control
Parent | IFieldControl | Read-only | The parent control
Prev | IFieldControl | Read-only | The previous control
TextEditor | ITextEditor | Read-only | The field editor. For inactive fields, null is returned.


IFieldRegionControl

What it does

Represents a region of the document field.

warning Important! The object returns null for fields not involved in distributed verification.

Properties

Name | Type | Access | Description
DeviceRect | IShellRect | Read-only | The rectangle of the window
FieldControl | IFieldControl | Read-only | The control of the document field which is associated with the region
FieldRegion | IFieldRegion | Read-only | The region of a document field
First | IFieldRegionControl | Read-only | The first child region
Last | IFieldRegionControl | Read-only | The last child region
Next | IFieldRegionControl | Read-only | The next region
Page | IPageControl | Read-only | The page that contains the region
Parent | IFieldRegionControl | Read-only | The parent region
Prev | IFieldRegionControl | Read-only | The previous region
Visible | bool | Read/write | Specifies whether the region is visible
Window | IImageWindow | Read-only | The image window


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Objects >

Return to chapter overview

IFieldRegionControls

What it does

A collection of IFieldRegionControl objects.


IFormWindow

What it does

Represents the form window.

Methods

Definition | Description
EnsureRectVisible( imageRect : IShellRect ) | Moves the scroll box to make the specified rectangle visible
FindControl( field : IField ) : IFieldControl | Searches for a field control using the value of the field region of ControllerInterop

Properties

Name | Type | Access | Description
ActiveControl | IFieldControl | Read/write | The active control on the form. The value of this property cannot be modified from the On Field Control Activate and On Field Control Deactivate events.
ClientRect | IShellRect | Read-only | The rectangle of the client area (in window coordinates). The coordinates of the left upper corner of the main window are (0, 0).
Control | IFieldControl | Read-only | The main control of the form
Docking | TDockingType | Read/write | The position of IFormWindow relative to IImageWindow in the document editor.
DocumentWindow | IDocumentEditor | Read-only | The document editor
Handle | int | Read-only | The handle of the window
Ratio | IShellRational | Read/write | The ratio of the total size of IFormWindow plus IErrorsWindow windows (which is a numerator) to the size of IDocumentEditor (a denominator). If the Docking property value is DT_Top or DT_Bottom, the ratio between the y-extents is measured. Otherwise, the ratio between the x-extents is measured.
ScrollPos | int | Read/write | The position of the scroll box
TextSize | TTextSize | Read/write | The size of the text
TotalRect | IShellRect | Read-only | The rectangle of the whole form. If the size of the client area is smaller than the size of the form, the form window will have scrollbars


IImageWindow

What it does

Represents the image window.

Methods

Definition | Description
EnsureRectVisible( imageRect : IShellRect ) | Moves the scroll box to make the specified rectangle visible

Properties

Name | Type | Access | Description
ClientRect | IShellRect | Read-only | The rectangle of the client area (in window coordinates). The coordinates of the left upper corner of the main window are (0, 0). If the size of the client area is smaller than the size of the TotalRect, the image window will have scrollbars.
Docking | TDockingType | Read/write | The position of IImageWindow relative to IFormWindow in the document editor
DocumentEditor | IDocumentEditor | Read-only | The document editor
FirstPage | IPageControl | Read-only | The first page
Handle | int | Read-only | The handle of the window
ImageScale | IShellRational | Read/write | The image scale. The range of admissible values is from 1/8 to 8.
IsDocked | bool | Read/write | Specifies whether the image window is docked
LastPage | IPageControl | Read-only | The last page
Ratio | IShellRational | Read/write | The ratio of the IImageWindow size (which is a numerator) to the size of IDocumentEditor (a denominator). If the Docking property value is DT_Top or DT_Bottom, the ratio between the y-extents is measured. Otherwise, the ratio between the x-extents is measured.
ScrollPos | IPoint | Read/write | The position of the scroll box
ShowBWImages | bool | Read/write | Specifies whether to show a black-and-white image
ShowToolbar | IShellRational | Read/write | Specifies whether to show the toolbar
TotalRect | IShellRect | Read-only | The rectangle of the area occupied by all page images


IMainMenu

What it does

A collection of IMenuItem interfaces. Represents the main window menu.

For all items of this menu, the TCommandID property returns CI_SubMenu.

Methods

Definition | Description
Reset() | Resets the menu (restores the original view).

warning Important! After applying the Reset method the current object of IMainMenu type is destructed and a new object is generated. As a result, all references to the current object become invalid and attempts to use it will generate an exception. You must either define a new object or initialize the existing object anew.

The sample code below demonstrates applying the Reset method to an object. As a result, the menu object becomes invalid and cannot be referred to.

// Define a new IMainMenu object and initialize it
IMainMenu menu = TaskWindow.MainWindow.MainMenu;
// Call the Reset method
menu.Reset();


IMainWindow

What it does

Represents the main window.

Methods

Definition | Description
CommandIsEnabled( commandId: TCommandID ) : bool | Returns true for a command that is enabled and false for a command that is disabled.
EnableCommand( commandId: TCommandID, bool) | Makes a command available or unavailable in the GUI.

Properties

Name | Type | Access | Description
Handle | int | Read-only | The handle of the window
MainMenu | IMainMenu | Read-only | The main menu
Selection | ISelection | Read-only | The selection
TaskWindow | ITaskWindow | Read-only | The task window
Toolbars | IToolbars | Read-only | The collection of toolbars
UserRole | TUserRole | Read-only | The user role
WorkWindowType | TWorkWindowType | Read-only | The type of the working window


IMenu

What it does

A collection of IMenuItem objects. Represents a menu or a submenu.

Methods

Definition | Description
AppendItem( commandId : TCommandID, text : string ) : IMenuItem | Appends a menu item with the command identifier commandId and the text Text at the end of the menu. Returns the IMenuItem object of the corresponding element. Any identifiers from the TCommandID enumeration may be used (including CI_SubMenu and CI_Separator), except for CI_Undefined. For CI_Separator, the Text parameter will be ignored.
Delete( index : int ) | Deletes an element by its index in the collection.
Find( commandId : TCommandID ) : int | Finds the index of the first object with the specified ID of the command in the collection.
InsertItem( index : int, commandId : TCommandID, text : string ) : IMenuItem | Inserts a menu item with the command identifier commandId and the text Text in the position Index of the menu. Returns the IMenuItem object of the corresponding element. Any identifiers from the TCommandID enumeration may be used (including CI_SubMenu and CI_Separator), except for CI_Undefined. For CI_Separator, the Text parameter will be ignored.


IMenuItem

What it does

Represents a menu item.

Properties

Name | Type | Access | Description
Command | TCommandID | Read-only | The command identifier. For a submenu title, CI_SubMenu is returned. For a separator, CI_Separator is returned. If there is no identifier for a command among TCommandID values, CI_Undefined is returned.
Enable | bool | Read/write | Specifies whether to enable menu items. If the property is set to false, all menu items with the specified identifier (the Command property) will be disabled. If the property is set to true, enabling menu items depends on the internal logic of the program. For separators and submenu titles, the property is always true.
Submenu | IMenu | Read-only | The submenu. If a submenu is missing, null is returned.
Text | string | Read/write | The text of the menu item. note Note: The property does not allow changing text for the menu bar items: File, Edit, View, etc.


IPageControl

What it does

Represents a page in the image window.

Methods

Definition | Description
ImageToDevice( imageRect : IShellRect ) : IShellRect | Converts image coordinates to window coordinates

Properties

Name | Type | Access | Description
DeviceRect | IShellRect | Read-only | The rectangle of the page
First | IFieldRegionControl | Read-only | The first child region
ImageWindow | IImageWindow | Read-only | The image window
Last | IFieldRegionControl | Read-only | The last child region
Next | IPageControl | Read-only | The next page
Page | IPage | Read-only | The page
Prev | IPageControl | Read-only | The previous page


IPageItem

What it does

Represents a page in the documents window.

Properties

Name | Type | Access | Description
DeviceRect | IShellRect | Read-only | The rectangle occupied by the page in the IDocumentsWindow
DocumentItem | IDocumentItem | Read-only | The document that contains the page
Page | IPage | Read-only | The page
Selected | bool | Read/write | Specifies whether the page is selected
TaskWindow | ITaskWindow | Read-only | The task window


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Objects >

Return to chapter overview

IPageItems

What it does

A collection of IPageItem objects.


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Objects >

Return to chapter overview

IPagesCollection

What it does

A collection of IPage objects.


IPoint

What it does

Represents a point.

Properties

Name | Type | Access | Description
X | int | Read/write | X-coordinate
Y | int | Read/write | Y-coordinate


ISelection

What it does

Represents the selection of documents or pages.

Properties

Name | Type | Access | Description
DocumentItems | IDocumentItems | Read-only | The selected documents
Documents | IDocumentsCollection | Read-only | Objects of the IDocument type corresponding to the selected documents
PageItems | IPageItems | Read-only | The selected pages
Pages | IPagesCollection | Read-only | Objects of the IPage type corresponding to the selected pages
Type | TSelectionType | Read-only | The selection type

note Note: If the document is collapsed, the DocumentItems[i].PageItems.Count property returns "0".


IShellRational

What it does

Represents a fraction.

Properties

Name | Type | Access | Description
Denominator | int | Read/write | A denominator
Numerator | int | Read/write | A numerator


IShellRect

What it does

Represents a rectangle.

Methods

Definition | Description
ToString() : string | Represents a rectangle as a string of the form "[left,top,right,bottom]"

Properties

Name | Type | Access | Description
Bottom | int | Read/write | Bottom coordinate
Left | int | Read/write | Left coordinate
Right | int | Read/write | Right coordinate
Top | int | Read/write | Top coordinate


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Objects >

Return to chapter overview

IShellRects

What it does

A collection of IShellRect objects.


ITaskWindow

What it does

Represents the task window.

Methods

Definition | Description
CloseDocument( document : IDocument ) | Closes the document for editing from script. When calling this method, the document state is changed.
CloseEditorWindow() | Closes the document editor. warning Important! When closing the document editor, all unsaved changes will be lost. When calling this method, the document state is changed.
CloseTask( bool ) | Closes the task with a warning that the process will be canceled (if the argument is set to true) or without a warning (if the argument is set to false).
DocumentState( document : IDocument ) : TDocumentState | Retrieves the document state in the task window. note Note: The method cannot be invoked from a secondary thread.
EditDocument( document : IDocument, page : IPage ) : IDocumentEditor | Opens the document in the document editor for editing. note Note: If the document is opened successfully, the object of the IDocumentEditor type is returned. Otherwise null is returned. When calling this method, the document state is changed.
OpenDocument( document : IDocument ) | Opens the document for editing from script. The method can be called even when the document is opened in the document editor with read-only permissions. When calling this method, the document state is changed.
RejectTask( bool ) | Rejects the task with a warning that the process will be canceled (if the argument is set to true) or without a warning (if the argument is set to false).

Properties

Name | Type | Access | Description
Batch | IBatch | Read-only | The batch
DocumentsWindow | IDocumentsWindow | Read-only | The documents window
EditorWindow | IDocumentEditor | Read-only | The document editor
Handle | int | Read-only | The handle of the window
MainWindow | IMainWindow | Read-only | The main window
Mode | TTaskWindowMode | Read/write | The view mode


ITextEditor

What it does

Represents a document field editor.

Methods

Definition | Description
ApplyChanges() : bool | Applies made changes.
GetSelection( startPos : int, endPos : int ) | Gets the beginning and the end of the selection. If no field is selected, assigns "0" to the startPos and endPos parameters.
ResetChanges() | Resets made changes.
SetSelection( startPos : int, endPos : int ) | Sets a new selection.
ShowSuggestList() | Shows the list of suggestions, if exists. Otherwise, nothing happens.

Properties

Name | Type | Access | Description
Control | IFieldControl | Read-only | The field control
FormWindow | IFormWindow | Read-only | The form window
Modified | bool | Read-only | Specifies whether the field is modified
Text | string | Read-only | The text in the field


IToolbar

What it does

A collection of IToolbarButton objects. Represents a toolbar.

Methods

Definition

Description

AppendButton( commandId : TCommandID, text : string ) : IToolbarButton

Appends a toolbar item with the command identifier commandId and the text Text at the end of the toolbar. Returns the IToolbarButton object of the corresponding element.

Any command identifiers from the TCommandID enumeration may be used (including CI_SubMenu and CI_Separator), except for CI_Undefined. For CI_Separator, the Text parameter will be ignored.

Delete( Index : int )

Deletes an item by its index in the collection.

Find( commandId : TCommandID ) : int

Searches for the index of the button with a specified identifier in the collection.

InsertButton( index : int, commandId : TCommandID, text : string ) : IToolbarButton

Inserts a toolbar item with the command identifier commandId and the text Text in the position Index of the toolbar. Returns the IToolbarButton object of the corresponding element.

Any command identifiers from the TCommandID enumeration may be used (including CI_SubMenu and CI_Separator), except for CI_Undefined. For CI_Separator, the Text parameter will be ignored.

Reset()

Resets all changes and restores the original view of the toolbar.

Properties

Name | Type | Access | Description
Name | string | Read-only | The name of the toolbar
Type | TCommandBarType | Read-only | The type of the toolbar
Visible | bool | Read/write | Specifies whether the toolbar is visible


IToolbarButton

What it does

Represents a toolbar button.

Properties

Name | Type | Access | Description
Command | TCommandID | Read-only | The command identifier. The returned value cannot be CI_SubMenu. If there is no identifier for a command among TCommandID values, CI_Undefined is returned
Enable | bool | Read/write | Specifies whether to enable toolbar buttons: ·If the value is set to false, all toolbar buttons with the specified identifier (the Command property) will be disabled. ·If the value is set to true, enabling toolbar buttons depends on the internal logic of the program.
Text | string | Read/write | The text on the toolbar button
Visible | bool | Read/write | Specifies whether a toolbar button or a separator is visible


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Objects >

Return to chapter overview

IToolbars

What it does

A collection of IToolbar objects.


TCommandBarType

Description

The toolbar type. Applies in the IToolbar interface.

Types:

·CBT_Undefined = 0 - An undefined toolbar.

·CBT_GroupVerification = 1 - A toolbar with group verification commands.

·CBT_FieldVerification = 2 - A toolbar with field verification commands.

·CBT_Standard = 3 - A standard toolbar.

·CBT_Navigation = 4 - A navigation toolbar. Contains buttons such as Previous Document,Next Document, Previous Item to Verify, etc.

·CBT_Views = 5 - A toolbar for switching between the Details View and the Thumbnails View.

·CBT_Tasks = 6 - A toolbar with task operation tools.

·CBT_Setup = 7 - A toolbar with basic tools for managing project. Contains buttons such as Document Definitions..., Batch Types..., Project Properties..., etc.

·CBT_ScanAndRead = 8 - A toolbar with image operation tools (import, recognition and other operations on images).

·CBT_UserToolbar = 9 - A toolbar added by the user when specifying skin settings for a stage.


TCommandID

Show/Hide Hidden Text

Description

The command identifier.

Admissible values:

General

·CI_SubMenu - a submenu title

·CI_Separator - a separator

·CI_Undefined - an undefined command identifier
File menu commands

·CI_NewProject - New Project...

·CI_BrowseProject - Open Project...

·CI_BrowseWebProject - Open Project from Server...

·CI_CloseProject - Close Project

·CI_UploadProject - Upload Project to Server...

·CI_Save - Save

·CI_NewBatch - New Batch...

·CI_LoadImage - Load Images...

·CI_ScanImages - Scan Images...

·CI_ImportImage - Import Images...

·CI_Export - Export

·CI_ExportToFile - Export Data to Files

·CI_ExportImages - Export Images to Files

·CI_ExportToDB - Export to Database

·CI_RecentFiles - Open Recent Project

·CI_Exit - Exit ABBYY FlexiCapture 12

Edit menu commands

·CI_EditUndo - Undo

·CI_EditRedo - Redo

·CI_EditCut - Cut

·CI_EditCopy - Copy

·CI_EditPaste - Paste

·CI_EditClear - Delete

·CI_MergeDocuments - Merge Documents

·CI_SplitDocuments - Split Document

·CI_EditSelectAll - Select All

·CI_EditFind - Find...

·CI_EditFindNext - Find Next

·CI_MoveToNextItem - Next Document

·CI_MoveToPreviousItem - Previous Document

·CI_ImageClean - Despeckle Image

·CI_ImageInvert - Invert Image

·CI_ImageMirrorHorizontal - Flip Horizontally

·CI_ImageMirrorVertical - Flip Vertically

·CI_ImageRotate90 - Rotate 90° Clockwise

·CI_ImageRotate270 - Rotate 90° CounterclockWise

·CI_ImageRotate180 - Rotate 180°

·CI_ImageChangeResolution - Change Resolution

·CI_ExportImage - Save Image

Additional commands for a remote Verification station (Field verification):

·CI_EditDeleteAll - Delete All Characters

·CI_EditInsertLineBreak - Insert Line Break

·CI_VerificationMergeSymbols - Merge Characters

View menu commands

·CI_ShowTestBatches - Show Test Batches

·CI_ShowWorkBatches - Show Batches

·CI_ShowQueues - Show Queues

·CI_ShowDetails - Show Details

·CI_ShowThumbnails - Show Thumbnails

·CI_SetupDetailsView - Choose Details to View

·CI_DocModeImage - Document Editor in Image Mode

·CI_DocModeForm - Document Editor in Data Mode

·CI_DockImageOnTop - Image at Top of Document Editor

·CI_DockImageOnBottom - Image at Bottom of Document Editor

·CI_DocImageOnLeft - Image at Left of Document Editor

·CI_DocImageOnRight - Image at Right of Document Editor

·CI_DocImageUndocked - Undocked

·CI_DocErrorsOnTop - Errors at Top of Document Editor

·CI_DocErrorsOnBottom - Errors at Bottom of Document Editor

·CI_DocErrorsOnLeft - Errors at Left of Document Editor

·CI_DocErrorsOnRight - Errors at Right of Document Editor

·CI_ImageScalePageWidth - Fit Image to Width

·CI_ImageScalePageHeight - Fit Image to Height

·CI_ImageScaleWholePage - Best Image Fit

·CI_ImageScale400 - Scale Image to 400%

·CI_ImageScale200 - Scale Image to 200%

·CI_ImageScale100 - Scale Image to 100%

·CI_ImageScale75 - Scale Image to 75%

·CI_ImageScale50 - Scale Image to 50%

·CI_ImageScale25 - Scale Image to 25%

·CI_ImageScaleCustom - Custom Image Scale

·CI_ImageScaleZoomIn - Zoom Image In

·CI_ImageScaleZoomOut - Zoom Image Out

·CI_TextSizeLargest - Largest Data Text

·CI_TextSizeLarger - Larger Data Text

·CI_TextSizeMedium - Medium Data Text

·CI_TextSizeSmaller - Smaller Data Text

·CI_TextSizeSmallest - Smallest Data Text

·CI_ViewToolbarsLayout - Show Toolbar in Document Editor

·CI_ShowFormatErrorInBallon - Show Error Message for Active Field in Balloon

·CI_ShowFormatErrorInErrorView - Show Error Message for Active Field at Top

·CI_ShowFormatErrorInFormView - Show Error Message for Active Field at Bottom

·CI_BWImageMode - Show Images in Black and White

·CI_ThumbnailSizeSmallest - Smallest Thumbnail Size

·CI_ThumbnailSizeDefault - Default Thumbnail Size

·CI_ThumbnailSizeLargest - Largest Thumbnail Size

·CI_ThumbnailSizeIncrease - Increase Thumbnail Size

·CI_ThumbnailSizeDecrease - Decrease Thumbnail Size

·CI_ViewToolbarsStandard - Show/Hide Standard Toolbar

·CI_ViewToolbarsDocuments - Show/Hide View Toolbar

·CI_ViewToolbarsNavigation - Show/Hide Navigation Toolbar

·CI_ViewToolbarsScanAndRead - Show/Hide Scanning Toolbar

·CI_ViewToolbarsProjectSetup - Show/Hide Project Setup Toolbar

·CI_ViewToolbarsTasks - Show/Hide Queues Tasks Toolbar

·CI_ShowToolbar1 - Show Toolbars

·CI_ViewStatusbar - Show/Hide Status Bar

·CI_ViewFullScreen - Switch to Full Screen/Window

·CI_Refresh - Refresh

·CI_ViewProperties - Show Properties

Additional commands for a remote Verification station (Group verification):

·CI_ShowFieldImage - Show/Hide Field Image

·CI_ShowFieldImageOnTop - Show Field Image on Top

·CI_ShowFieldImageOnBottom - Show Field Image on Bottom

·CI_ShrinkToFit - Shrink Field Image to Fit

·CI_ContextImageScale400 - Scale Field Image 400%

·CI_ContextImageScale200 - Scale Field Image 200%

·CI_ContextImageScale150 - Scale Field Image 150%

·CI_ContextImageScale100 - Scale Field Image 100%

·CI_ContextImageScale75 - Scale Field Image 75%

·CI_ContextImageScale50 - Scale Field Image 50%

·CI_ShowCharacterImage - Show Character Image

·CI_ShowActionsToolBar - Show/Hide Actions Toolbar

·CI_ShowVerInfoBar - Show/Hide Verification Info Bar

·CI_VerificationOptions - Show Verification Preferences

Additional commands for a remote Verification station (Field verification):

·CI_ShowRecognizedText - Show Recognized Text

·CI_ShowSymbolImagesCutting - Show/Hide Character Images Cutting

·CI_ShowSpecialSymbols - Show/Hide Special Characters

·CI_ShowAnalogousFields - Show/Hide Analogous Field

Task menu commands

·CI_GetTask - Get Task

·CI_ReturnTask - Close Task

·CI_ShowTaskComment - Show Task Comment

·CI_CancelTask - Reject Task

·CI_DeferTask - Postpone Task

·CI_SendTaskToException - Send Task to Exceptions

·CI_SendTaskToRescan - Send Task to Rescanning Stage

·CI_SendTaskToStage - Send Task to Stage

·CI_AutoTaskReceive - Automatic Task Receive On/Off

·CI_AddDocsToMarked - Add Documents to Marked

·CI_UnmarksDocs - Unmark Documents

·CI_MarkDocsToException - Mark Documents to Send to Exceptions

·CI_MarkDocsToRescan -Mark Documents to Rescanning

·CI_MarkDocsToStage - Mark Documents to Stage

·CI_ViewMarkedGroupList - View Marked Groups List

Recognition menu commands

·CI_ApplyTemplate - Analyze

·CI_SetDocTemplate - Match Document Definition

·CI_ReadActive - Recognize

Verification menu commands

·CI_VerifyAll - Run Verification...

·CI_GotoNextError - Next Item to Verify

·CI_GotoPrevError - Previous Item to Verify

·CI_GotoNextAssembleError - Next Document with Assembly Error(s)

·CI_GotoPrevAssembleError - Previous Document with Assembly Error(s)

·CI_GotoNextUnkCharacher - Next Uncertain Character

·CI_GotoPrevUnkCharacher - Previous Uncertain Character

·CI_GotoNextRuleError - Next Rule Error

·CI_GotoPrevRuleError - Previous Rule Error

Additional commands for a remote Verification station (Group verification):

·CI_VerificationConfirmAll - Confirm All

·CI_VerificationPostponeAll - Postpone All

·CI_VerificationToggleSelected - Toggle Selected Item

·CI_VerificationNextPage - Next Verification Page

·CI_VerificationPrevPage - Previous Verification Page

·CI_VerificationClose - Close Verification

Additional commands for a remote Verification station (Field verification):

·CI_VerificationConfirmField - Confirm Field

·CI_VerificationNextUncertain - Next Uncertain Character

·CI_VerificationPrevUncertain - Previous Uncertain Character

·CI_VerificationNextField - Next Field

·CI_VerificationPrevField - Previous Field

Project menu commands

·CI_ShowTemplatesList - Show List of Document Definitions

·CI_ShowBatchTypes - Show Batch Types List

·CI_ShowImportProfiles - Show Import Profiles List

·CI_SwitchToAdminMode - Switch to Admin Mode

·CI_ProtectProject - Protect Project with Password

·CI_UnprotectProject - Unprotect Project

·CI_ExportProject - Export Project

·CI_ImportProject - Update Project

·CI_ViewProjectProperties - Show Project Properties

·CI_CreateTestCopy - Create Test Copy

·CI_CommitTestCopy - Commit Test Copy

·CI_DeleteTestCopy - Delete Test Copy

Tools menu commands

·CI_DocPriorityLowest - Set Lowest Document Priority

·CI_DocPriorityLow - Set Low Document Priority

·CI_DocPriorityNormal - Set Normal Document Priority

·CI_DocPriorityHigh - Set High Document Priority

·CI_DocPriorityHighest - Set Highest Document Priority

·CI_DocPriorityExtraHigh - Set Extra-High Priority for Document

·CI_UpdateDocToLatestVersion - Update Documents to Latest Version of Project

·CI_Reanalize - Reanalyze

·CI_Reread - Rerecognize

·CI_AssembleDocuments - Refresh Documents Assembly

·CI_RecheckRules - Recheck Rules

·CI_CheckBatchIntegrity - Check Batch Integrity

·CI_BatchPriorityLowest - Set Lowest Batch Priority

·CI_BatchPriorityLow - Set Low Batch Priority

·CI_BatchPriorityNormal - Set Normal Batch Priority

·CI_BatchPriorityHigh - Set High Batch Priority

·CI_BatchPriorityHighest - Set Highest Batch Priority

·CI_BatchPriorityExtraHigh - Set Extra-High Priority for Batch

·CI_ChangeBatchType - Change Batch Type

·CI_ViewOptions - Show Options

Commands of the field local menu

·CI_ExecuteCustomAction - Execute Custom Action

User commands

·CI_UserCommand - User commands

Help menu commands

·CI_HelpAbbyyWebSite - ABBYY Website

·CI_HelpAbout - About ABBYY FlexiCapture

·CI_HelpContent - Help Topics

·CI_HelpPurchaseInfo - How to Buy ABBYY Products

·CI_HelpSendFeedback - Send Feedback...

·CI_HelpTechSupport - Technical Support


TDockingType

Description

The side of the principal window adjacent to the given window.

Admissible values:

·DT_Undefined = 0 - The side is undefined or the windows are not adjacent.

·DT_Left = 1 - The left side.

·DT_Right = 2 - The right side.

·DT_Top = 3 - The upper side.

·DT_Bottom = 4 - The lower side.


TDocumentState

Description

The document state in the task window. Applies in the ITaskWindow interface.

Admissible values:

·DS_Locked = 0 - The document is locked. No actions on the document are allowed.

·DS_Edited =1 - The document is being edited in the document editor.

·DS_Closed = 2 - The document is closed. It can be both opened and edited.

·DS_Opened = 3 - The document is opened. It can be edited by using a script.

·DS_EditedAndOpened = 4 - The document is being edited in the document editor and can be edited by using a script.

·DS_EditedAndLocked = 5 - The document is opened in the document editor and locked from any actions.

note Note: If the document is being edited in the document editor, its state changes to DS_EditedAndOpened.


TErrorType

Description

The type of an error. Applies in the IErrorControl interface.

Admissible values:

·ET_Assembling = 0 - The assembly error

·ET_Rule =1 - The rule error

·ET_Format = 2 - The format error


TSelectionType

Description

Types of selection. Applies in the ISelection interface.

Admissible values:

·ST_Undefined = 0 - Indicates that no selection type is specified.

·ST_Documents = 1 - Indicates that the selection contains documents.

·ST_Pages = 2 - Indicates that the selection contains pages.

·ST_Both = 3 - Indicates that the selection contains both documents and pages.


TTaskWindowMode

Description

View modes. Applies in the ITaskWindow interface.

Admissible values:

·TWM_Undefinied = 0 - View is undefined

·TWM_ListView = 1 - Details view

·TWM_ThumbnailView = 2 - Thumbnails view


TTextSize

Description

The text size. Applies in the IFormWindow interface.

Admissible values:

·TS_Undefined = 0 - Text size is undefined

·TS_Smallest = 1 - The smallest text size

·TS_Smaller = 2 - Small text size

·TS_Medium = 3 - Medium text size

·TS_Larger = 4 - Large text size

·TS_Largest = 5 - The largest text size


TUserRole

Description

The role of the user. Applies in the IMainWindow interface.

Admissible values:

·UR_Undefined = 0 - The role is undefined

·UR_VerificationOperator =1 - The Verification Operator

·UR_SeniorVerificationOperator = 2 - The Senior Verification Operator


Navigation: Appendix > Using scripts in ABBYY FlexiCapture > Scripts for processing interface events > Objects >

Return to chapter overview

TWorkWindowType

Description

Types of working windows.

Types:

·WWT_Undefined = 0 - The window type is undefined

·WWT_Task = 1 - The task window


User scripts for the Web Verification Station

To enable a web custom action for the data form displayed on the Web Verification Station, follow these steps:

1.Open the Project Setup Station and click Project → Document Definitions....

2.In the Document Definitions dialog box, select the appropriate Document Definition and click Edit....

3.Open the field properties, click the Custom Action tab, and select the Enable Web Custom Action option.

To edit an existing script or to create a new one, complete steps 1 through 3 above and click the Edit... button next to the Enable Web Custom Action option. This will open a Script Editor window, where you can write the required code.

User scripts intended for use on the Web Verification Station are written in JavaScript. As opposed to using the Web Services API provided by the Application Server, such scripts will be run directly in the user's browser window when the user clicks the corresponding button on the data form.

A user script will be run in a separate <iframe> element, which must be closed after the script has been completed. The Web Verification Station and the <iframe> element communicate via postMessage using JSON-RPC.

By default, the <iframe> element is positioned in the <body> of the verification window. You can also place the <iframe> element in the central pane beneath the document image. To do this, specify the following path in the first line of the script: // mode: documentEditor.

See below for a description of the object model used for user scripts to be run on the Web Verification Station. We also provide a sample script that carries out a database search.

listPicture Objects

listPicture Sample script to search in a database


Objects

Show/Hide Hidden Text

Below is a list of functions that are available for creating custom scripts. To access object instances, use the commandArgs variable.

All variables in this section are global and are visible across the entire program.

Functions for working with fields

Function

Description

getCurrentField()

Returns a link to the field object that uses the current custom script.

getFieldByName(namesPath) (*)

Returns a link to the field for which the custom script has been opened.

Example:
['Document Section 1', 'Group[10]','Field3'],
where [10] is the number of the instance of the repeating group.

·namesPath is an array containing field and group names that form the path to the field or a link to a field object.

getFieldValue(namesPath) (*)

Returns:

·a string for a TextField field;

·a checkmark value for a Checkmark field;

·a string array for a Checkmark Group field.

namesPath | fieldObject:

·an array containing field and group names that form the path to the field or a link to a field object,

·or a link to the field object.

setCurrentFieldValue(value, forced, onSaved)

Modifies the field value for which the custom script has been opened.

Parameters:

·value – the field value.

·forced – updates the field value and records new data. This parameter is optional.

ofalse – the field value in the Document Definition will be updated only after the save() function has been called.

otrue – the field value in the Document Definition will be updated immediately.

For a custom script, an update will occur regardless of the mode.
By default, this parameter is set to false.

·onSaved – callback function. Called if the forced parameter is set to true. This parameter is optional.

setFieldValue(namesPath | field, value, forced, onSaved) (*)

Modifies the field value.

Parameters:

·namesPath | fieldObject:

oan array containing field and group names that form the path to the field,

oor a link to the field object.

·value – value of the corresponding field.

·forced – updates the field value and records new data. This parameter is optional.

ofalse – the field value in the Document Definition will be updated only after the save() function has been called.

otrue – the field value in the Document Definition will be updated immediately.

For a custom script, an update will occur regardless of the mode.
By default, this parameter is set to false.

·onSaved – A callback function. Called if the forced parameter is set to true. This parameter is optional.

save()

Closes the window where the custom script is executed and saves the changes.

cancel()

Closes the window where the custom script is executed without saving the changes.

(*) For some functions listed above, the path to the field is specified as an input parameter. It comprises the field name and the names of the parent elements (field group, section). For tables, repeating tables, and repeating groups, you need to specify the instance number starting at 0 (zero).

Example:
['Document Section 1', 'Group[10]','Field3'],

where [10] is the number of the instance of the repeating group.

Functions for working with data sets

Function

Description

addEntity(entityInfo: {cacheName, columns, values}, onResult(newId))

Adds an entry to the data set.

Parameters:

·entityInfo – an object:

ocacheName – a name for the data set.

ocolumns – names for the columns where data will be recorded. Array of strings.

ovalues – the values for the corresponding columns. Array of strings.

·onResult – a callback function that receives the ID of the record created in the data set.

editEntity(entityInfo: {cacheName, columns, values}, onResult())

Edits an entry in the database.

Parameters:

·entityInfo – an object:

ocacheName – a name for the data set.

ocolumns – names for the columns where data will be recorded. Array of strings.

ovalues – the values for the corresponding columns. Array of strings.

·onResult – a callback function.

getDict({cacheName, filters: [{FieldName, FieldValue}], cursorPos, allowMultipleColumnResults}, onResult (param: { FieldName, FieldValue, BoldMask}[][]) )

Carries out a data set search for a specified value or for a part of it. Returns the matching strings in the following format:

[{FieldName
FieldValue
BoldMask}].

Parameters:

·cacheName – the data set name.

·filters – search parameters:

oFieldName – the field name. Leave empty to search all fields.

oFieldValue – the field value.

·cursorPos – the position of the cursor in the entry field.

oIf a value was entered partially and the cursor is positioned after the typed symbols, they will be considered as a prefix for the value that is being searched for.

oIf the cursor is positioned before a partially typed word, those symbols will be considered as the ending of the value that is being searched for.

For example, if, when searching for a company name, you type in "AB" and the cursor is positioned after it, the value "ABBYY" will be selected.
If you type in "AB" and the cursor is positioned in front of it, the value "Mention Q LAB" will be selected.

·allowMultipleColumnResults – Returns the values of the fields that have been found.
The data set may contain entries for which one field name (FieldName) corresponds to multiple field values (FieldValue). For example, two or more variations of a company's name may be specified in the CompanyName column.

In this case:

otrue – returns and records all field values that satisfy the search conditions,

ofalse – returns and records a single result that best fits the search conditions.

·onResult – a callback function that returns a search result array. Each result is a single string from the data set, which is a string array. Each string comprises the field name, its value, and the BoldMask parameter.

BoldMask – a string of ‘0’ and ‘1’ the same length as the value found during the search. '1' represents a symbol from the found value that matches the corresponding symbol in the search field, and '0' represents a symbol that does not.

If, for example, the following is present in a data set:

CompanyName: ABBYY

Let's assume that a search is carried out for the symbols "AB".

Then, the following will be returned:

[

[

{

FieldName: ‘CompanyName’,

FieldValue: ‘ABBYY’,

BoldMask: ‘11000’

},

]

]

getDictAll({cacheName, filters: {FieldName, FieldValue}}, }, onResult (param: { FieldName, FieldValue, BoldMask}[][]))

Carries out a database search for the entire value specified. Returns the values of all fields that have been found.

Parameters:

·cacheName – the data set name.

·Filters – an object array:

oFieldName – the field name. In order to search on all fields, this should be left blank.

oFieldValue – the field value.

·onResult – a callback function that returns a search result array. Each result is a single string from the data set, which is itself a string array. Each string comprises the field name, its value, and the BoldMask parameter.

BoldMask – a string of ‘0’ and ‘1’ the same length as the value found during the search. '1' represents a symbol from the found value that matches the corresponding symbol in the search field, and '0' represents a symbol that does not.

If, for example, the following is present in a data set:

CompanyName: ABBYY

Let's assume that a search is carried out for the symbols "AB".

Then, the following will be returned:

[

[

{

FieldName: ‘CompanyName’,

FieldValue: ‘ABBYY’,

BoldMask: ‘11000’

},

]

]

Sample database search script

Functions for working with the document form

Function

Description

selectRow(tablePath, rowNumber) (*)

Marks a table row as selected.

·tablePath | fieldObject:

oan array of field and group names that form the path to the table field,

oor a link to a table object.

·rowNumber – the number of the row to select, zero-based.

deselectRow(tablePath, rowNumber?) (*)

Removes selection from a table row.

·tablePath | fieldObject:

oan array of field and group names that form the path to the table field,

oor a link to a table object.

·rowNumber – the number of the row to deselect, zero-based, if omitted the selection is removed from all rows in the table.

scrollFormToField(namesPath) (*)

Scrolls the form editor to get the field into view.

·namesPath | fieldObject:

oan array of field and group names that form the path to the table field,

oor a link to a table object.

getDomElementPosition(domId, onResult: (result?: {width, height, top, left, right, bottom}))

Gets the position of an element in the form editor window and returns the result of a callback function.

·domId – element ID in DOM format.

·onResult – a callback function that receives the object with the DOM coordinates of the element (width, height, top, left, right, bottom) relative to the top left corner of the browser window.

setStyles(styles, callback)

Adds CSS styles to the custom action frame window.

·styles – an object with CSS property names and values.

example:
{
display: 'block',
position: 'absolute',
top: '0px',
bottom: '0px',
left: '0px',
right: '0px',
width: '100%',
height: '100%',
border: '0',
overflow: 'hidden',
'overflow-x': 'hidden',
'overflow-y': 'hidden',
'z-index': '10000'
}

·callback – a callback function.

(*) For some functions listed above, the path to the field is specified as an input parameter. It comprises the field name and the names of the parent elements (field group, section). For tables, repeating tables, and repeating groups, you need to specify the instance number starting at zero.

Example:
['Document Section 1', 'Group[10]','Field3'],

where [10] is the number of the instance of the repeating group.

Properties of the commandArgs object

Variables

Variable

Type

Description

commandArgs.params.document

Document

Stores an object copy of an open document. This can be used to get access to any error, field, or region for the current document.

commandArgs.params.currentField

(Picture | Checkmark | Checkmark Groups | FieldsGroup | Table | TextField)

Returns a link to a field object that reflects the state of the field at the time when the script is called. Part of the document specified above.

note Note: If the field value was modified after the script was initialized, the changes will not be applied.

commandArgs.params.appPath

String

The server's domain name.

commandArgs.params.coordinates

Object
[{X1,X2,Y1,Y2}]

The coordinates of the DOM element that called the custom script.

commandArgs.params.currentElementDomId

String

The ID of the DOM element that called the custom script.

Functions

Function | Description
commandArgs.events.addEventHandler | Adds an event handler in the global context of the custom script.
commandArgs.events.triggerHandlers | Triggers an event in the global context of the custom script.
commandArgs.events.removeEventHandler | Deletes an event handler in the global context of the custom script.

Field Group field

Name

Type

Rights

Description

Fields

(Picture | Checkmark | Checkmark Groups | FieldsGroup | Table | TextField)[]

Read-only

Array of fields

HasTableLayout

Boolean

Read-only

Specifies if the field region is a table.

Caption

String

Read-only

Custom field name, caption

FieldType

Number

Read-only

Field type. Possible value:

4 – field group

Id

Number

Read-only

Field ID

IsReadOnly

Boolean

Read-only

Specifies whether editing of fields is disallowed.

IsVisible

Boolean

Read-only

Specifies whether the field is visible on the data form.

MaxRegions

Number

Read-only

Maximum number of field regions. If the value is -1, any number of regions is allowed.

Name

String

Read-only

Service name for the field.

NamePath

String[]

Read-only

Array of field and group names that form the path to the field.

NeedRecognize

Boolean

Read/write

Specifies whether to retrieve the field value from the region when the rules are checked again.

Regions

{
Id: number;
Status: number;
PageId: Number;
IsNew : Boolean;
Coordinates: Object
[{X1,X2,Y1,Y2}];
}[]

Read-only

Array of regions.

·Id – region ID.

·Status – status of the region.

o0 – region not superimposed (or region is deleted)

o1 – region is not recognized

o2 – the value from the region is substituted in the field

·PageId – ID of the page on which the region is located.

·IsNew – flag to indicate new regions.

·Coordinates – coordinates of the region in the image.

Section field

Name

Type

Rights

Description

Fields

(Picture | Checkmark | Checkmark Groups | FieldsGroup | Table | TextField)[]

Read-only

Array of fields

Pageids

Number[]

Read-only

Identifiers of the pages on which the section is located.

IsFlexible

Boolean

Read-only

Specifies whether the section is flexible.

Caption

String

Read-only

Custom field name, caption

FieldType

Number

Read-only

Field type. Possible value:

6 – section

Id

Number

Read-only

Field ID

IsReadOnly

Boolean

Read-only

Specifies whether field editing is disallowed

IsVisible

Boolean

Read-only

Specifies whether the field is visible on the data form.

MaxRegions

Number

Read-only

Maximum number of field regions. If the value is -1, any number of regions is allowed.

Name

String

Read-only

Service name of the field

NamePath

String[]

Read-only

Array of field and group names that form the path to the field.

NeedRecognize

Boolean

Read/write

Specifies whether to retrieve the field value from the region when the rules are checked again.

Regions

{
Id: number;
Status: number;
PageId: Number;
IsNew : Boolean;
Coordinates: Object
[{X1,X2,Y1,Y2}];
}[]

Read-only

Array of regions.

·Id – region ID.

·Status – status of the region.

o0 – region not superimposed (or region is deleted)

o1 – region is not recognized

o2 – the value from the region is substituted in the field

·PageId – ID of the page on which the region is located.

·IsNew – flag to indicate new regions.

·Coordinates – coordinates of the region in the image.

Table field

Name

Type

Rights

Description

Rows

{
Id: number;
RowNumber: number;
HasColorImage: boolean;
TableBlockID: number[];
Cells: (Picture | Checkmark | CheckmarkGroup | TextField)[];
}[]

Read-only

List of table rows.

The parameters of the object line in the table:

·Id – row ID.

·RowNumber – the sequence number of the row, counting from zero.

·TableBlockId – identifiers of sections, tables, table blocks forming the path to the table block..

·Cells – fields in table cells. Fields can be of the following types: picture, checkmark, checkmark group, text.

Caption

String

Read-only

Custom field name, caption

FieldType

Number

Read-only

Field type. Possible value:

7 – table

Id

Number

Read-only

Field ID

IsReadOnly

Boolean

Read-only

Specifies whether field editing is disallowed.

IsVisible

Boolean

Read-only

Specifies whether the field is visible on the data form.

MaxRegions

Number

Read-only

Specifies whether the field is visible on the data form -1, any number of regions is allowed.

Name

String

Read-only

Service name of the field.

NamePath

String[]

Read-only

Array of field and group names that form the path to the field.

NeedRecognize

Boolean

Read/write

Specifies whether to retrieve the field value from the region when the rules are checked again.

Regions

{
Id: number;
Status: number;
PageId: Number;
IsNew : Boolean;
Coordinates: Object
[{X1,X2,Y1,Y2}];
}[]

Read-only

Array of regions.

·Id – region ID.

·Status – status of the region.

o0 – region not superimposed (or region is deleted)

o1 – region is not recognized

o2 – the value from the region is substituted in the field

·PageId – ID of the page on which the region is located.

·IsNew – flag to indicate new regions.

·Coordinates – coordinates of the region in the image.

Text entry field

Name

Type

Rights

Description

Flags

Number[]

Read/write

array of the same length as the field Value. Consists of 0 and 1.

0 – a character that is in Value in the same position as 0 in Flags, requires verification.

Suggests

String[]

Read-only

List of suggested field values

Value

String

Read/write

Field value

TextType

Number

Read-only

Type of text field. Possible value:

·0 – text field.

·1 – numeric field.

·2 – currency amount fields.

·3 – DateTime field.

·4 – Date field.

·5 – Time field.

·6 – Code field.

Caption

String

Read-only

Custom field name, caption

FieldType

Number

Read-only

Field type. Possible value:

0 – text field

Id

Number

Read-only

Field ID

IsReadOnly

Boolean

Read-only

Specifies whether field editing is disallowed.

IsVisible

Boolean

Read-only

Specifies whether the field is visible on the data form.

MaxRegions

Number

Read-only

Maximum number of field regions. If the value is -1, any number of regions is allowed.

Name

String

Read-only

Service name of the field.

NamePath

String[]

Read-only

Array of field and group names that form the path to the field.

NeedRecognize

Boolean

Read/write

Specifies whether to retrieve the field value from the region when the rules are checked again.

Regions

{
Id: number;
Status: number;
PageId: Number;
IsNew : Boolean;
Coordinates: Object
[{X1,X2,Y1,Y2}];
}[]

Read-only

Array of regions.

·Id – region ID.

·Status – status of the region.

o0 – region not superimposed (or region is deleted)

o1 – region is not recognized

o2 – the value from the region is substituted in the field

·PageId – ID of the page on which the region is located.

·IsNew – flag to indicate new regions.

·Coordinates – coordinates of the region in the image.

IsVerified

Boolean

Read/write

Specifies whether the field has been verified.

NeedVerification

Boolean

Read-only

Specifies whether the field requires verification.

NeedDoubleVerification

Boolean

Read-only

Specifies whether the field requires double verification

IsSummary

Boolean

Read-only

Specifies whether the field is used in the formation of data summary on the data form.

Checkmark field

Name

Type

Rights

Description

Value

Boolean

Read/write

Field value

Caption

String

Read-only

Custom field name, caption

FieldType

Number

Read-only

Field type. Possible value:

2 – checkmark

Id

Number

Read-only

Field ID

IsReadOnly

Boolean

Read-only

Specifies whether field editing is disallowed.

IsVisible

Boolean

Read-only

Specifies whether the field is visible on the data form.

MaxRegions

Number

Read-only

Maximum number of field regions. If the value is -1, any number of regions is allowed.

Name

String

Read-only

Service name of the field.

NamePath

String[]

Read-only

Array of field and group names that form the path to the field.

NeedRecognize

Boolean

Read/write

Specifies whether to retrieve the field value from the region when the rules are checked again.

Regions

{
Id: number;
Status: number;
PageId: Number;
IsNew : Boolean;
Coordinates: Object
[{X1,X2,Y1,Y2}];
}[]

Read-only

Array of regions.

·Id – region ID.

·Status – status of the region.

o0 – region not superimposed (or region is deleted)

o1 – region is not recognized

o2 – the value from the region is substituted in the field

·PageId – ID of the page on which the region is located.

·IsNew – flag to indicate new regions.

·Coordinates – coordinates of the region in the image.

IsVerified

Boolean

Read/write

Specifies whether the field has been verified.

NeedVerification

Boolean

Read-only

Specifies whether the field requires verification.

NeedDoubleVerification

Boolean

Read-only

Specifies whether the field requires double verification.

IsSummary

Boolean

Read-only

Specifies whether the field is used in the formation of data summary on the data form.

Checkmark Group field

Name

Type

Rights

Description

MaxSelectedCount

Number

Read-only

Maximum number of selected field values.

MinSelectedCount

Number

Read-only

Minimum number of selected field values.

Values

Number[]

Read/write

Field value. An array of record IDs that make up the list of possible field values (Variants).

Variants

{Id:number, Name:string}[]

Read-only

List of possible field values:

·Id – record ID

·Name – record name

Caption

String

Read-only

Custom field name, caption

FieldType

Number

Read-only

Field type. Possible value:

3 – checkmark group

Id

Number

Read-only

Field ID.

IsReadOnly

Boolean

Read-only

Specifies whether field editing is disallowed.

IsVisible

Boolean

Read-only

Specifies whether the field is visible on the data form.

MaxRegions

Number

Read-only

Maximum number of field regions. If the value is -1, any number of regions is allowed.

Name

String

Read-only

Service name of the field.

NamePath

String[]

Read-only

Array of field and group names that form the path to the field.

NeedRecognize

Boolean

Read/write

Specifies whether to retrieve the field value from the region when the rules are checked again.

Regions

{
Id: number;
Status: number;
PageId: Number;
IsNew : Boolean;
Coordinates: Object
[{X1,X2,Y1,Y2}];
}[]

Read-only

Array of regions.

·Id – region ID.

·Status – status of the region.

o0 – region not superimposed (region is deleted)

o1 – region is not recognized

o2 – the value from the region is substituted in the field

·PageId – ID of the page on which the region is located.

·IsNew – flag to indicate new regions.

·Coordinates – coordinates of the region in the image.

IsVerified

Boolean

Read/write

Specifies whether the field has been verified.

NeedVerification

Boolean

Read-only

Specifies whether the field requires verification.

NeedDoubleVerification

Boolean

Read-only

Specifies whether the field requires double verification.

IsSummary

Boolean

Read-only

Specifies whether the field is used in the formation of data summary on the data form.

Picture field

Name

Type

Rights

Description

Caption

String

Read-only

Custom field name, caption

FieldType

Number

Read-only

Field type. Possible value:

1 – picture

Id

Number

Read-only

Field ID.

IsReadOnly

Boolean

Read-only

Specifies whether field editing is disallowed.

IsVisible

Boolean

Read-only

Specifies whether the field is visible on the data form.

MaxRegions

Number

Read-only

Maximum number of field regions. If the value is -1, any number of regions is allowed.

Name

String

Read-only

Service name of the field.

NamePath

String[]

Read-only

Array of field and group names that form the path to the field.

Regions

{
Id: number;
Status: number;
PageId: Number;
IsNew : Boolean;
Coordinates: Object
[{X1,X2,Y1,Y2}];
}[]

Read-only

Array of regions.

·Id – region ID.

·Status – status of the region.

o0 – region not superimposed (or region is deleted)

o1 – region is not recognized

o2 – the value from the region is substituted in the field

·PageId – ID of the page on which the region is located.

·IsNew – flag to indicate new regions.

·Coordinates – coordinates of the region in the image.

Repeating Group of Sections field

Name | Type | Rights | Description
Id | Number | Read-only | Field ID
Name | String | Read-only | Field name
Sections | Section[] | Read-only | Array of fields of Section type
FieldType | Number | Read-only | Field type. Possible value: 8 – recurring section group.

Properties of the document object

Name

Type

Rights

Description

AssemblingErrors

{
DocumentNodeRef: number[][];
Description: string;
SectionName: string[]
}[]

Read-only

Build errors in the document where:

·DocumentNodeRef – list of links as an array of field IDs to fields in the form

·Description – error description

·SectionName – list of sections involved in the error

BatchId

Number

Read-only

The package ID

Errors

{
DocumentNodeRef: number[][];
Severity: number;
Message: string;
RuleName: string;
}[]

Read-only

Errors in the document where:

·DocumentNodeRef – list of links as an array of field IDs to fields in the form

·Severity:

o1 – Error,

o0 – Warning

·Message – error text

·RuleName – the name of the rule that caused the error

Fields

(Section | SectionsGroup)[]

Read-only

List of sections/duplicate sections

Id

Number

Read-only

Document identifier

Index

Number

Read-only

Index of the document in the package

Pages

{
Id: number;
Modification: number;
HasColorImage: boolean;
ImageResolution: number;
KeyValue: string;
SectionTemplateId: number;
SectionTemplateName: string;
FlexibleInstanceId: number;
SectionTemplatePageNumber: number;
Comment: string;
ImageWidth: number;
ImageHeight: number;
}[]

Read-only

List of document pages containing the following:

·Id – page ID

·Modification – the revision number of the page

·HasColorImage –specifies the color of the page

·ImageResolution – image resolution

·KeyValue – the value of the key field page

·SectionTemplateId – ID section of the page

·SectionTemplateName – page section name

·SectionTemplatePageNumber – the page number in the section

·Comment – review of the page

·ImageWidth –width of the image page

·ImageHeight – height of the page image

ProjectId

Number

Read-only

Project identifier

TaskId

Number

Read-only

Task ID

TemplateId

Number

Read-only

Definition ID of the document

TemplateName

String

Read-only

The name of the definitions document

TemplateVersion

Number

Read-only

Definition version of the document

Version

Number

Read-only

Document version


Sample database search script

Show/Hide Hidden Text

This sample script will search for data in a database at the Web Verification Station.

Before you proceed to configure this user script, be sure to complete the following steps:

1.Open the Project Setup Station and click Project → Document Definitions...

2.Click Document Definition → Document Definition Properties, open the data sets tab, and then click Add....

3.Create a data set, create a few records, and click Close.

A new user script will be added to the Script Editor for Web Verification Station.

Sample script that searches for data in a database

//DataSet Name

var dbCacheName = 'DataSet1';

//Field in dataset, used to replace current field value

var fieldNameInCache = 'Field2';

var self = this;

var styles = {

display: 'block',

position: 'absolute',

top: '0px',

bottom: '0px',

left: '0px',

right: '0px',

width: '100%',

height: '100%',

border: '0',

overflow: 'hidden',

'overflow-x': 'hidden',

'overflow-y': 'hidden',

'z-index': '10000'

}

var newValueToInsert = '';

// Sets iframe styles

setStyles(

styles,

function() {

//Dialog markup

var windowMarkup = "<div class='frame'><div class='searchField'><input id='searchValue' /><button id='searchButton'>Search</button></div><div id='recordspanel'><table id='resultspreview'></table><div id='norecord'>No records found</div></div><div class='buttonsfield'><button id='confirm'>Ok</button><button id='cancel'>Cancel</button></div></div>";

//Dialog styles

var css = "<style>body{width:100vw;height:100vh;background:rgba(0,0,0,0.1);margin:0;padding:0;display:flex;align-items:center;justify-content:center;}.frame{width:400px;max-height:80vh;background:white;min-height:200px;padding:50px;}#norecord{display:none;}#searchValue{width:calc(100% - 60px);}#cancel{margin-left:20px;}.buttonsfield{display:flex;justify-content:flex-end;height:25px;}.bolded{font-weight:bold;}button{width:60px;}#confirm{display:none;}#recordspanel{min-height:145px;padding: 10px 0;}#searchfield{height:30px;}</style>";

//Set styles

$('head').append(css);

//Creates dom in iframe

$("body").append(windowMarkup);

// Search button click

$('#searchButton').click(function () {

//Look in Dictionary

getDict(

{

cacheName: dbCacheName, //dataset name

filters: [{ FieldName: "", FieldValue: $('#searchValue').val() }] //fields to search

},

function (result) {

//Records rows from dataset

var records = result.detail.result;

//First row description

var firstRecord = records[0];

//hide 'table' and 'ok' button if no result is found

if (!firstRecord) {

$('#resultspreview').hide();

$('#norecord').show();

$('#confirm').hide();

} else {

$('#resultspreview').show();

$('#confirm').show();

$('#norecord').hide();

$('#resultspreview').html('');

firstRecord.forEach(function (recordData) {

if (fieldNameInCache === recordData.FieldName) {

newValueToInsert = recordData.FieldValue;

}

$('#resultspreview')

.append('<tr class="' +

(fieldNameInCache === recordData.FieldName ? 'bolded' : '') +

'"><td>' +

recordData.FieldName +

'</td><td>' +

recordData.FieldValue +

'</td></tr>');

});

}

});

});

//On 'ok' button click

$('#confirm').click(function () {

if (newValueToInsert) {

//Set value to current field

setCurrentFieldValue(newValueToInsert);

//Save and close iframe

save();

}

});

//On 'cancel' button click

$('#cancel').click(function () {

cancel();

});

});

This sample script can also be found here: http://<ApplicationServer>/FlexiCapture12/Verification/Scripts/CustomScripts/customActionLookup.js, where <ApplicationServer> is the name of the computer where the Application Server is installed.

Replace the values in the following lines of the sample script:

·var dbCacheName = 'DataSet1', where DataSet1 is the name of the data set created earlier.

·var fieldNameInCache = 'Field2', where Field2 is the name of the data set field that will contain the value to be copied.


Hot keys

This section lists the keyboard shortcuts used in different windows of the program. Using shortcuts will save time and make work more convenient.

Project Setup Station Keyboard Shortcuts

Verification Station Keyboard Shortcuts

Data Verification Station Keyboard Shortcuts

Document Definition Editor Keyboard Shortcuts

Group Verification Keyboard Shortcuts

Field Verification Keyboard Shortcuts


Hot keys in the project setup station main window

Menu | Command | Shortcut
File | New Project... | Ctrl+Shift+N
 | Open Project... | Ctrl+Shift+O
 | Save | Ctrl+S
 | New Batch... | Ctrl+N
 | Load Images... | Ctrl+O
 | Scan Images... | Ctrl+K
 | Import Images... | Ctrl+I
 | Export to Data to Files... | Alt+Shift+S
 | Export to Database Database... | Alt+Shift+D
 | Exit | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Cut | Ctrl+X
 | Copy | Ctrl+C
 | Paste | Ctrl+V
 | Delete | Del
 | Select All | Ctrl+A
 | Find... | Ctrl+F
 | Find Next | F3
 | Go To → Next Document | Ctrl+D
 | Go To → Previous Document | Ctrl+Shift+D
 | Image → Despeckle | Ctrl+Alt+K
 | Image → Invert | Ctrl+Alt+V
 | Image → Rotate 90° Clockwise | Ctrl+W
 | Image → Rotate 90° Counterclockwise | Ctrl+Shift+W
View | Test Batches | Ctrl+Shift+B
 | Working Batches | Ctrl+B
 | Details | Alt+1
 | Thumbnails | Alt+2
 | Image Mode | Ctrl+1
 | Data Mode | Ctrl+2
 | Zoom In | Ctrl+Num+
 | Zoom Out | Ctrl+Num-
 | Thumbnails Size: Increase | Ctrl+Shift+Num+
 | Thumbnails Size: Decrease | Ctrl+Shift+Num-
 | Full Screen | F11
 | Refresh | F5
 | Object Properties | Alt+Enter
Recognition | Analyze | Ctrl+E
 | Match Document Definition... | Alt+Shift+E
 | Recognize | Ctrl+R
Verification | Run Data Verification... | F7
 | Next Item to Verify | F4
 | Previous Item to Verify | Shift+F4
 | Next Assembly Error | F9
 | Previous Assembly Error | Shift+F9
 | Next Uncertain Character | F8
 | Previous Uncertain Character | Shift+F8
 | Next Rule Error | F6
 | Previous Rule Error | Shift+F6
 | Copy Value to Other Rows | Ctrl+Q
 | Copy Value to All Rows | Ctrl+Shift+Q
Project | Document Definitions... | Ctrl+T
 | Batch Types... | Ctrl+Shift+T
 | Image Import Profiles... | Ctrl+Shift+I
Tools | Update to Latest Version | Alt+Shift+U
 | Reanalyze | Ctrl+Alt+E
 | Rerecognize | Ctrl+Alt+R
 | Recheck Rules | Ctrl+F6
 | Check Batch Integrity | Ctrl+Shift+E
Help | Help Topics | F1
General Commands | Open the document window (if a document or page is selected) | Enter


Hot keys in the Verification Station main window

Menu | Command | Shortcut
File | Save | Ctrl+S
 | New Batch... | Ctrl+N
 | Load Images... | Ctrl+O
 | Scan Images... | Ctrl+K
 | Export to Data to Files... | Alt+Shift+S
 | Export to Database... | Alt+Shift+D
 | Exit | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Cut | Ctrl+X
 | Copy | Ctrl+C
 | Paste | Ctrl+V
 | Delete | Del
 | Select All | Ctrl+A
 | Find... | Ctrl+F
 | Find Next | F3
 | Go To → Next Document | Ctrl+D
 | Go To → Previous Document | Ctrl+Shift+D
 | Image → Despeckle | Ctrl+Alt+K
 | Image → Invert | Ctrl+Alt+V
 | Image → Rotate 90° Clockwise | Ctrl+W
 | Image → Rotate 90° Counterclockwise | Ctrl+Shift+W
View | Working Batches | Ctrl+B
 | Queues | Ctrl+Q
 | Details | Alt+1
 | Thumbnails | Alt+2
 | Image Mode | Ctrl+1
 | Data Mode | Ctrl+2
 | Zoom In | Ctrl+Num+
 | Zoom Out | Ctrl+Num-
 | Thumbnails Size: Increase | Ctrl+Shift+Num+
 | Thumbnails Size: Decrease | Ctrl+Shift+Num-
 | Full Screen | F11
 | Refresh | F5
 | Object Properties | Alt+Enter
Task | Get Task | Ctrl+G
Recognition | Analyze | Ctrl+E
 | Match Document Definition... | Alt+Shift+E
 | Recognize | Ctrl+R
Verification | Run Data Verification... | F7
 | Next Item to Verify | F4
 | Previous Item to Verify | Shift+F4
 | Next Assembly Error | F9
 | Previous Assembly Error | Shift+F9
 | Next Uncertain Character | F8
 | Previous Uncertain Character | Shift+F8
 | Next Rule Error | F6
 | Previous Rule Error | Shift+F6
 | Copy Value to Other Rows | Ctrl+Q
 | Copy Value to All Rows | Ctrl+Shift+Q
Tools | Update to Latest Version | Alt+Shift+U
 | Reanalyze | Ctrl+Alt+E
 | Rerecognize | Ctrl+Alt+R
 | Recheck Rules | Ctrl+F6
 | Check Batch Integrity | Ctrl+Shift+E
Help | Help Topics | F1
General Commands | Open the document window (if a document or page is selected) | Enter
 | Registration parameters | Ctrl+P


Hot keys in the data verification station main window

Menu | Command | Shortcut
File | Exit | Alt+F4
View | Full Screen | F11
 | Refresh | F5
Tasks | Get Task | Ctrl+G
Help | Help Topics | F1


Hot keys in the Document Definition editor

Menu | Command | Shortcut
Document Definition | Add Pages... | Ctrl+P
 | Add Document Section... | Ctrl+Alt+S
 | Document Definition Properties... | Ctrl+T
 | Save | Ctrl+S
 | Close | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Cut | Ctrl+X
 | Copy | Ctrl+C
 | Paste | Ctrl+V
 | Delete | Del
 | Delete Region | Shift+Del
 | Select All | Ctrl+A
 | Select Regions by Type... | Ctrl+Shift+A
 | Select Fields by Type... | Ctrl+Shift+F
 | Create Field -Text | Alt+Shift+T
 | Create Field -Checkmark | Alt+Shift+C
 | Create Field -Checkmark Group | Alt+Shift+M
 | Create Field -Barcode | Alt+Shift+B
 | Create Field -Picture | Alt+Shift+P
 | Create Field - Table | Alt+Shift+L
 | Create Field -Group | Alt+Shift+G
 | Group | Ctrl+G
 | Ungroup | Ctrl+Shift+G
 | Copy Text from Image... | Ctrl+Alt+C
 | Image → Despeckle | Ctrl+Alt+K
 | Image → Invert | Ctrl+Alt+V
 | Image → Rotate 90° Clockwise | Ctrl+W
 | Image → Rotate 90° Counterclockwise | Ctrl+Shift+W
View | Static Elements | Ctrl+1
 | Field Regions | Ctrl+2
 | Show Document Structure | Alt+F1
 | Document Structure - Fields | Alt+1
 | Document Structure - Pages | Alt+2
 | Data Form | Alt+F2
 | Image Scale - Zoom In | Ctrl+Num+
 | Image Scale - Zoom Out | Ctrl+Num-
 | Properties | Alt+Enter
Document | Run Test | Ctrl+R
Tools | Autodetect Objects by Type... | Ctrl+D
 | Check Document Definition | F9
 | Match Section | Ctrl+E
Help | Help Topics | F1

Image Window

Command | Shortcut
Select Regions | Esc
Autodetect Objects | Ctrl+Shift+D
Create Anchor | A
Create Separator | S
Create Anchor Text | X
Create Anchor Barcode | D
Create Text | T
Create Checkmark | C
Create Checkmark Group | M
Create Barcode | B
Create Image | P
Create Table | L
Create Group | G
Create Region for Field without Region | R
Create Non-Recognized Region | O
Create Field Column | U
Add Separator to Table | F
Delete Separator from Table | E
Adjust Region | Ctrl+Alt+A
Suggest Name | Ctrl+Alt+N
Get Name from Image... | Ctrl+Alt+I
Detect Marking Type | Ctrl+Alt+D

Document Structure Window

Command | Shortcut
Show Field Image | Enter
Rename Field | F2
When a field is selected:
Add Column with Text | Alt+Shift+T
Add Column with Checkmarks | Alt+Shift+C
Add Column with Barcodes | Alt+Shift+B
Add Column with Images | Alt+Shift+P
When a checkmark group is selected:
Add Checkmark | Alt+Shift+C


Hot keys in the group verifier window

Menu | Command | Hot keys
Verification | Confirm All | Enter
 | Postpone All | Ctrl+Enter
 | Toggle | Space
 | Next Page | Page Down
 | Previous Page | Page Up
 | Close | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Select All | Ctrl+A
View | Field Image → Show Field Image | Ctrl+I
 | Field Image → At Top | Alt+1
 | Field Image → At Bottom | Alt+2
 | Field Image → Image Scale → Zoom In | Ctrl+Num+
 | Field Image → Image Scale → Zoom Out | Ctrl+Num-
 | Show Character Image | F2
 | Full Screen | F11
Help | Display Help | F1
Local Characters Menu | Show Character Image | F2
 | Confirm | Ctrl+E
 | Postpone | Ctrl+R
 | Reset | Esc


Hot keys in the field verifier window

Menu | Command | Hot keys
Verification | Confirm Field | Enter
 | Postpone | Ctrl+Enter
 | Next Uncertain Character | F4
 | Previous Uncertain Character | Shift+F4
 | Next Field | Page Down
 | Previous Field | Page Up
 | Close | Alt+F4
Edit | Undo | Ctrl+Z
 | Redo | Ctrl+Y
 | Cut | Ctrl+X
 | Copy | Ctrl+C
 | Paste | Ctrl+V
 | Delete | Del
 | Select All | Ctrl+A
 | Insert Line Break | Shift+Enter
 | Merge Characters | Ctrl+M
View | Field Data → Recognized Text | Alt+F1
 | Field Data → Character Images Cutting | Alt+F2
 | Field Image → Show Field Image | Ctrl+I
 | Field Image → At Top | Alt+1
 | Field Image → At Bottom | Alt+2
 | Field Image → Image Scale → Zoom In | Ctrl+Num+
 | Field Image → Image Scale → Zoom Out | Ctrl+Num-
 | Show Character Image | F2
 | Full Screen | F11
Help | Display Help | F1


Shortcuts

Navigation: Appendix > Hot keys >

Return to chapter overview

Customizing shortcuts

You can customize hotkeys to access commands which are used often. In the main menu, select Tools → Options... and then open the Keyboard Shortcuts tab.

To configure keyboard shortcuts, proceed as follows:

1.Select a category in the Categories drop-down list. Select All commands if you are not sure what category you need.

2.Select a command in the Commands list. The Current shortcut list contains hotkeys for the selected command.

3.To assign a new hotkey, click on the Press new shortcut key field and then press a combination of keys. It is displayed in the field. Press the Assign button to save a new shortcut. If it is used to access another command, information message will be displayed. Press the Yes button to change the command or the No button to discard your changes.

4.To remove an existing shortcut for a command, select it in the Current shortcut list and then press the Delete Shortcut button.

5.To restore shortcuts for a selected command to default settings, press the Reset button. If you want to restore shortcuts for all commands, press the Reset All button.


Additional options

You can set up document processing and the program interface to suit your needs. In the main window of the program, select Tools → Options.... The dialog that opens contains tabs Colors, Dialogs, Keyboard Shortcuts, Task Progress and Document Processing:.

·Task Progress
When tasks are executed in background mode, you can monitor the process in the task progress window, by reading the log file, and reading the pop-up tips. On this tab, you can select which information should be entered into the log file and in which cases balloon messages should be displayed.

·Colors
You can change the color if interface elements (e.g. the frames that enclose selected fields in the Document Definition editor or the frames and fill-in color of fields with errors and warnings). Select the desired element and then click the Color button.

·Document Processing
Images can be recognized automatically immediately after they have been added to the batch if you select the Recognize added images automatically option.Recognition can be ran in background mode (select Run recognition process in background mode).
If Skip documents with errors during manual export is selected, both successfully processed documents and documents with errors will be exported.
If an script error is detected, the Visual Studio debugger is launched. For Active Scripting scripts, you may select Disable external script debugging if you do not wish the debugger to be launched. Only an error message will be displayed.
In case when stations will not have access to the external database, data set updates on stations can be disabled by disabling the Update data sets when batch is opened option.

·Dialogs
By default, when you launch the program the Open Project dialog box is displayed, where you can select one of the existing projects. You can disable this dialog box by clearing the Show 'Open Project...' dialog on startup option on the Dialogs tab (alternatively, you can disable this dialog by clearing the same option in the dialog itself).
When you are closing a list of Document Definitions, the program warns you of any unpublished Document Definitions. If you do not wish this warning message to be displayed, clear the option Show warning if unpublished Document Definition exists (alternatively, you can disable this dialog by clearing the same option in the dialog itself).
If you want notifications to be shown when exporting documents with errors select Warn if document is exported with errors.
Select Prompt save changes when switching between documents if you want the program to display a confirmation dialog before saving changes when you switch to another document. If this option is not enabled, changes will be saved automatically.

·Keyboard Shortcuts
You can customize keyboard shortcuts on this tab.


Description of Processing Server commands

The command line interface can be used to perform the following operations on the Processing Server:

·initializing and stopping the server

·adding, setting up, and removing stations

·updating data sets

·managing hot folders

·managing diagnostics

Processing Server commands should be entered as follows: 'FlexiBrSvc Please [command]'. Instead of typing 'FlexiBrSvc Please ' in each command, you can enable command mode by using FlexiBrSvc Please obey. To disable command mode, use FlexiBrSvc Please quit.

For help on any of the above commands, use help [command].

The commands that can be used on the Processing Server are described below.

Specifying authentication credentials

·set basicauthstring=<username>:<passoword> – sets Basic authentication credentials for the Processing Server and Processing Stations. The user whose credentials are specified in this command must have the Processing Server role. To remove the currently used authentication credentials, use a blank string: 'set basicauthstring='. To display the currently used credentials, use 'view' (if no credentials have been specified, a blank string will be returned).

note Note: Basic authentication credentials can only be specified when the Processing Server and the Processing Stations are not running. If invalid credentials are specified, the Processing Server and the Processing Stations will not start.

Managing the server

·set <param>=<value> – assigns a value to a parameter. To display all the available parameters, use 'view'. To display all the allowed values for a parameter, use 'set <param>=?'.

·start server – initializes the Processing Server.

·stop server [timeout] – stops the Processing Server.

To set a time period during which the server should complete the initialized tasks, uSe the [timeout] parameter . If this parameter is not set, the server will stop instantly.

Managing stations

·add station <location> – adds a new station to <location>.

·list stations – displays information about existing stations.

·remove station <station>|* – removes a station. To remove all the stations, use '*'.

note Note: This command requires a station's name and location or UUID to be specified.

·set station <station> <param>=<value> – assigns a value to a parameter. To display all the available parameters, use 'view' . To display all the allowed values, use 'set station <station> <param>=?' .

To assign a value to all the stations, use '*' instead of a station name.

·start station <<station>|*> [/Async] – attempts to initialize a station. Use '*' to attempt to initialize all the stations.

note Note: This command requires a station's name and location or UUID to be specified.

To prevent other commands from being blocked if the specified station has not been initialized, use the [/Async] parameter

·stop station <<station>|*> [timeout] – stops a station. To stop all the stations, use '*' .

note Note: This command requires a station's name and location or UUID to be specified. To set a time period during which the server should complete the initialized tasks, use the [timeout] parameter.

·view <station>|* – displays detailed information about a station. To display information about all the stations, use '*'. If no station has been specified, this command will display information about the server.

Managing projects

·update dataset <project> [document definition] [data set] – updates a data set. To specify the full path to the project, use <project> (for example: http://app-server/f24d.../Banking_eng). If no Document Definition or data set name is specified, all the Document Definitions and data sets will be updated.

Managing hot folders

·list hotfolders <project> – displays detailed information about all the enabled hot folders.

·set hotfolder <project> Enabled/Disabled – enables or disables hot folder processing for a project. To display all the available projects, use 'view'.

Process diagnostics

The profiling system is designed for low-level monitoring of Processing Server and Processing Station internal processes. If profiling is enabled, the Processing Server will begin to collect statistics about its own and the Processinf Stations' internal processes. This function is disabled by default.

The Processing Server will save the collected data to the following folder in the file system: %ProgramData%\ABBYY\FlexiCapture\12.0\FlexiBr[Svc]\Profiling. The frequency with which the collected data is saved to disk is set by the following registry key: ProfilingManagerSaveWindowProfilingReportPeriod in HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]ABBYY\FlexiCapture\12.0\FlexiBr​ (in milliseconds; the default value is 3600000).

·reset total profiling report – resets the full profiling report. After this command has been used to clear the profiling report, the report will only include the time period after the command has been called.

·save total profiling report <path> – saves the full profiling report to the specified folder.

·save window profiling report <path> – saves the full profiling report for the specified period to the specified folder.

·set profiling disabled – disables profiling.

·set profiling enabled – enables profiling.


ABBYY FlexiCapture sample projects

To see how ABBYY FlexiCapture works and to better understand its features, you can use the sample projects included with the program. These ready-made projects contain set-up Document Definitions and document images for processing.

You can find the sample projects in %public%\ABBYY\FlexiCapture\12.0\Samples.

The Samples folder contains the following folders:

1.FlexiCapture - This folder contains the sample FlexiCapture projects.

2.FlexiLayoutStudio - This folder contains the sample FlexiLayout Studio projects. These sample projects illustrate the processing of semi-structured documents and should be opened in ABBYY FlexiLayout Studio. Detailed description for some of these projects is available in the FlexiLayout Studio help file (see the Tutorial and Tips and Tricks sections).

3.FormDesigner - This folder contains fixed forms developed in ABBYY FormDesigner. The *.fdd should be opened in ABBYY FormDesigner. These forms are used in the following sample FlexiCapture projects: Banking Card Application, Questionnaire.

4.Images - This folder contains scanned document images for the sample FlexiCapture projects.

Below follows a list of the sample FlexiCapture projects and their brief description.

A sample project involving documents of different types

The project folders contain sample FlexiCapture projects.

1. Single Entry Point

This project shows how documents of different types can be processed. No preliminary document sorting is required, fixed forms and semi-structured documents can be processed together. The Document Definitions used in this project are also used in the projects described below.

The project contains all types of documents Banking Card Applications, Invoices, Contracts, Letters, Prices.

Sample projects involving fixed forms

The project folders contain forms created in ABBYY FormDesigner and FlexiCapture projects.

2. Banking Card Application

This sample project illustrates the following capabilities:

·Automatic detection of fields on fixed forms (to see how autodetection works, delete all fields from the Document Definition and select Tools → Autodetect Objects by Type...)

·Support for documents with complex structures:

oMultipage documents (three-page applications are used in the sample project)

oWorking with document sections (in the sample project, each page is a separate section)

oDocument assembly rules

oAnnex processing

·Support for complex fields:

oWorking with tables on fixed forms (Opened Accounts table)

oRepeating field groups (Address and Requested Accounts groups)

·Data format checks (the formats for all numerical fields and date fields are specified)

·Customizing the data form.

·Export to multiple destinations.

·Editing out of confidential information (redaction).

3. Questionnaire

A detailed description of this sample project can be found in the user's guide. The project shows how to set up a Document Definition step by step. A number of simpler forms are used to illustrated the basic ABBYY FlexiCapture features. You can complete the questionnaire in this sample project, process it in ABBYY FlexiCapture and send the exported data to ABBYY.

Sample projects involving flexible forms

The project folders contain FlexiLayout Studio projects and FlexiCapture projects.

4. Invoice

This sample project illustrates the processing of semi-structured documents and illustrates the following capabilities:

·Variable number of pages in documents (from 1 to 3)

·Tables extending over multiple pages

·The use of an external keyword dictionary (a text file)

·A JScript rule is used to compare the sum in the Total field with the sum obtained by adding up the Total values from all table rows.

5. Prices

This sample project illustrates the processing of semi-structured documents and illustrates the following capabilities:

·Support for repeating groups. This sample project shows how repeating groups can be used to describe nested tables (tables with subheadings)

6. Letters&Contracts

This sample project illustrates the processing of unstructured documents from which 2 or 3 fields are captured. The project illustrates the following capabilities:

·Variable number of pages in documents (from 1 to 4)

·Setting up export to Searchable PDF.

Sample projects involving document sets

The project folders contain FlexiLayout projects.

7. Mortgage Document Set

This sample project illustrates the processing of documents sets. A set of mortgage application documents is used as an example. The following basic features are illustrated:

·Using standard assembly rules to assemble document sets.

·Using a summary section (see the section named "Document Set Summary" in the Document Definition named "Mortgage Document Set").

·Using links to an existing field (see the "Passport Number" and "State Wages" fields and the fields in the "Name Group" and "SSN Group" groups of the summary section).

·Using field comparison rules (see the fields in the "Name Group" and "SSN Group" groups of the summary section).

·Using a script rule to fill the value of the resulting field if certain fields contain identical values (see the "Name Result" and "SSN Result" fields in the summary section).

·Hiding sections on the data form.

·Exporting each document set in entirety to a PDF file (see the export profile named "Export each document set to PDF" in the Document Definitiion named "Mortgage Document Set").

·Exporting data from the summary section (see the export profile named "Export all document sets data to one file" of the Document Definition named "Mortgage Document Set").

8. Signatures, Stamps, Photos Comparison

This sample project illustrates comparison of signatures, stamps, and photos from different documents of a document set. The fields in question are placed in a summary section so that the Operator won't have to open every document in the document set.

The project contains two document sets — Signatures&Stamps Document Set and Photos Document Set. Each document set has several documents, some of which are shared by both projects.

To ensure the correct assembly of document sets, a separate batch type is used for each document set. For each batch type, a list of Document Definitions is specified, which includes both a Document Definition for the document set and Document Definitions for individual documents.

Only compared images are exported from each document set.


Supported recognition languages

FlexiCapture supports over 200 recognition languages. For languages marked with [image] , dictionaries are provided. For languages marked with [image] , ICR is available.

Abkhaz | Hani | Old German
Adyghe | Hausa | Old Italian
Afrikaans | Hawaiian | Old Slavonic
Agul | Hebrew | Old Spanish
Albanian | Hungarian | Ossetian
Altai | Icelandic | Papiamento
Arabic (Saudi Arabia) | Ido | Pinyin
Armenian (Eastern) | Indonesian | Polish
Armenian (Grabar) | Ingush | Portuguese
Armenian (Western) | Interlingua | Portuguese (Brazilian)
Avar | Irish | Quechua (Bolivia)
Aymara | Italian | Rhaeto-Romanic
Azeri (Cyrillic) | Japanese | Romanian
Azeri (Latin) | Japanese (Modern) | Romanian (Moldova)
Bashkir | Jingpo | Romany
Basque | Kabardian | Rundi
Belarusian | Kalmyk | Russian
Bemba | Karachay-balkar | Russian (Old Spelling)
Blackfoot | Karakalpak | Russian with accent
Breton | Kashubian | Rwanda
Bugotu | Kawa | Sami (Lappish)
Bulgarian | Kazakh | Samoan
Burmese | Khakass | Scottish Gaelic
Buryat | Khanty | Selkup
Catalan | Kikuyu | Serbian (Cyrillic)
Cebuano | Kirghiz | Serbian (Latin)
Chamorro | Kongo | Shona
Chechen | Korean | Slovak
Chinese Simplified | Korean (Hangul) | Slovenian
Chinese Traditional | Koryak | Somali
Chukchee | Kpelle | Sorbian
Chuvash | Kumyk | Sotho
Corsican | Kurdish | Spanish
Crimean Tatar | Lak | Sunda
Croatian | Latin | Swahili
Crow | Latvian | Swazi
Czech | Latvian Gothic | Swedish
Dakota | Lezgin | Tabasaran
Danish | Lithuanian | Tagalog
Dargwa | Luba | Tahitian
Dungan | Macedonian | Tajik
Dutch | Malagasy | Tatar
Dutch (Belgian) | Malay (Malaysian) | Thai
English | Malinke | Tok Pisin
Eskimo (Cyrillic) | Maltese | Tongan
Eskimo (Latin) | Mansi | Tswana
Esperanto | Maori | Tun
Estonian | Mari | Turkish
Even | Maya | Turkmen (Cyrillic)
Evenki | Miao | Turkmen (Latin)
Faroese | Minangkabau | Tuvinian
Farsi | Mohawk | Udmurt
Fijian | Mongol | Uighur (Cyrillic)
Finnish | Mordvin | Uighur (Latin)
French | Nahuatl | Ukrainian
Frisian | Nenets | Uzbek (Cyrillic)
Friulian | Nivkh | Uzbek (Latin)
Gagauz | Nogay | Vietnamese
Galician | Norwegian (Bokmal) | Welsh
Ganda | Norwegian (Nynorsk) | Wolof
Georgian | Nyanja | Xhosa
German | Occidental | Yakut
German (Luxembourg) | Occitan | Yiddish
German (New Spelling) | Ojibway | Zapotec
Greek | Old English | Zulu
Guarani | Old French |


Supported classifier languages

Text classification in FlexiCapture is available in the following languages:

·Armenian

·Azeri (Latin)

·Bashkir

·Bulgarian

·Catalan

·Chinese Simplified

·Chinese Traditional

·Croatian

·Czech

·Danish

·Dutch

·English

·Estonian

·Finnish

·French

·German

·Greek

·Hungarian

·Indonesian

·Italian

·Japanese.

·Kazakh

·Korean

·Latvian

·Lithuanian

·Norwegian (Bokmål)

·Norwegian (Nynorsk)

·Polish

·Portuguese

·Portuguese (Brazilian)

·Romanian

·Russian

·Slovak

·Slovenian

·Spanish

·Swedish

·Tatar

·Turkish

·Ukrainian.


Fonts required for correct rendering of characters of supported data types in the FormReader editor

Navigation: Appendix >

Return to chapter overview

Fonts for correct characters rendering

Fonts required for correct rendering of characters of supported languages in the ABBYY FlexiCapture editor:

Language | Font
With dictionary support
Armenian (eastern, western, Grabar) | Arial Unicode MS(2)
Tatar | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Without dictionary support
Abkhazian | Arial Unicode MS(2)
Adygei | Arial Unicode MS(2), Lucida Sans Unicode(3)
Aghul | Arial Unicode MS(2), Lucida Sans Unicode(3)
Altaic | Arial Unicode MS(2), Lucida Sans Unicode(3)
Avar | Arial Unicode MS(2), Lucida Sans Unicode(3)
Azerbaijani (Cyrillic), Azerbaijani (Latin) | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Bashkir | Arial Unicode MS(2), Palatino Linotype(2)
Buryat | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Chechen | Arial Unicode MS(2), Lucida Sans Unicode(3)
Chukchi | Arial Unicode MS(2), Lucida Sans Unicode(3)
Chuvash | Arial Unicode MS(2)
Dargin | Arial Unicode MS(2), Lucida Sans Unicode(3)
Dungan | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Gagauz | Arial Unicode MS(2)
Hausa | Arial Unicode MS(2), Lucida Sans Unicode(3)
Ingush | Arial Unicode MS(2), Lucida Sans Unicode(3)
Kabardian | Arial Unicode MS(2), Lucida Sans Unicode(3)
Kalmyk | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Karakalpak | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Kazakh | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Khakas | Arial Unicode MS(2)
Khanty | Arial Unicode MS(2)
Koryak | Arial Unicode MS(2), Lucida Sans Unicode(3)
Kyrgyz | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Lak | Arial Unicode MS(2), Lucida Sans Unicode(3)
Lezgin | Arial Unicode MS(2), Lucida Sans Unicode(3)
Mansi | Arial Unicode MS(2), Lucida Sans Unicode(3)
Mari | Arial Unicode MS(2)
Mongol | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Nenets | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Ossetic | Arial Unicode MS(2)
Russian (old spelling) | Arial Unicode MS(2), Palatino Linotype(2)
Tabassaran | Arial Unicode MS(2), Lucida Sans Unicode(3)
Tajik | Arial Unicode MS(2), Palatino Linotype(2)
Turkmen | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Tuvan | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Udmurt | Arial Unicode MS(2)
Uzbek (Cyrillic) | MS Core Fonts 2.82(1) (Arial, Courier New and Times New Roman)
Yakut | Arial Unicode MS(2)
Zulu | Arial Unicode MS(2), Lucida Sans Unicode(3)

(1)http://www.microsoft.com/

(2) MS Office 2000

(3) Windows NT 4.0


Supported text types

ABBYY FlexiCapture supports the following text types:

Text type | Description
Typographic, laser and ink-jet printers | Texts printed at a print shop, on a laser printer, or on an ink-jet printer.
Typewriter | Typewritten texts.
Matrix printer | Texts printed on a dot-matrix printer.
Index | A special set of characters that includes only digits written in ZIP-code style. They look as follows:
OCR-A | A monospaced font designed for Optical Character Recognition. Largely used by banks, credit card companies, and similar businesses. It may look as follows:
OCR-B | A font designed for Optical Character Recognition. It may look as follows:
MICR E-13B | A special set of numeric characters printed with special magnetic ink. MICR (Magnetic Ink Character Recognition) characters are found in a variety of places, including personal checks. It may look as follows:
MICR CMC-7 | A special MICR barcode font (CMC-7). It may look as follows:


Supported barcode types

ABBYY FlexiCapture supports the following barcode formats:

·Australia Post

·Aztec

·Codabar

·Codabar with checksum

·Code 128

·Code 32

·Code 39

·Code 39 with checksum

·Code 39 with asterisk

·Code 93

·DataMatrix

·EAN 13

·EAN 8

·IATA 25

·Industrial 25

·Intelligent Mail

·Interleaved 25

·Interleaved 25 with checksum

·Japan Post

·Matrix 25

·MaxiCode

·Patch Code

·PDF 417

·Postnet

·QRCode

oQR code (Version 1-40)

oMicro QR Code (Version M1-M4)

·UCC-128

·UPC A

·UPC E


Supported input formats

Show/Hide Hidden Text
Common office files
Document Type | Supported File Extensions
Text documents | *.doc, *.docx, *.rtf, *.htm/*.html, *.txt, *.odt
Spreadsheets | *.xls, *.xlsx, *.ods
Presentations | *.ppt, *.pptx, *.odp

note Note: Microsoft Office 2010 and earlier versions cannot be used to convert *.odt, *.ods and *.odp files.
Image files
Format | Supported File Extensions
Adobe PDF | *.pdf note Note: The visual quality of PDF files containing vector graphics may deteriorate because PDFs are rasterized and bitmap images are placed into output files.
DCX | *.dcx
DjVu | *.djvu; *.djv
GIF | *.gif
JBIG2 | *.jb2; *.jbig2
JPEG | *.jpg; *.jpeg
JPEG 2000 | *.jp2; *.j2k; *.jpf; *.jpx; *.jpc
Microsoft HD Photo | *.wdp; *.wmp; *.hdp
PCX | *.pcx
PNG | *.png
TIFF | *.tif; *.tiff note Note: TIFF files with alpha channels and JPEG compression are not supported.
WIC-compatible | *.ARW; *.CR2; *.CRW; *.dds; *.dng; *.ERF; *.ico; *.icon; *.KDC; *.MRW; *.NEF; *.NRW; *.ORF; *.PEF; *.RAF; *.RAW; *.RW2; *.RWL; *.SR2; *.SRW
Windows Bitmap | *.bmp; *.dib; *.rle
XPS | *.xps


Work_with_PDF.htm

Navigation: Appendix >

Return to chapter overview

Processing PDF files

Show/Hide Hidden Text

Importing and exporting PDF files with attachments

ABBYY FlexiCapturecan import PDF files with attachments. For instance, a PDF/A-3 file may contain a document image and an attached XML file containing standard field values. When the PDF file is imported, the attached file will be imported as an attachment.

PDF files with attachments can be exported using a script with the IExportImageSavingOptions object. The following types of PDF files can be exported:

·PDF

·PDF/A-3a

·PDF/A-3b

·PDF/A-3u

Code sample illustrating how to export a PDF/A file with an attachment

IExportImageSavingOptions opt = FCTools.NewImageSavingOptions();
opt.Format = "pdf-a";
opt.PdfAVersion = TPdfAVersion.PAV_3a;
opt.SaveAttachmentsToPdf=true;
Document.SaveAs("C:\\Script.pdf",opt);

Creating searchable PDF files

To create searchable PDF files, enable the Create searchable PDF option in export settings. For searchable PDF, search is performed throughout the whole text of the document: the text layer is formed both from verified field values and from document areas outside those fields. For areas outside fields, full-text recognition is performed. In the Search text field, specify where to search text: on all pages, on sections pages or on annexes pages.

Recognition language is defined the following way:

·For fields, recognition language is specified on the Data type tab of the field properties.

·For full-text recognition, the Document Definition language is used.

·For annexes pages, you can select a language (or several languages in the case of multi-language documents) that is different from the language specified in the Document Definition. For this, click Select... to the right of the Language field and select the appropriate languages. By default, the language of the Document Definition is used.


Export file formats

Show/Hide Hidden Text

Data export formats

Format

Description

Comment

XLS

Microsoft Office Excel Workbook

Supported versions:

·5.0/95 [image] Supported code pages

oWindows Tatar

oWindows Armenian

oWindows Bashkir

oMathematical symbols

oWindows Thai (874)

oJapanese (Shift-JIS)

oWindows Central Europe (1250)

oWindows Cyrillic (1251)

oWindows Western Europe (1252)

oWindows Greek (1253)

oChinese Simplified (GB2312)

oWindows Turkish (1254)

oWindows Hebrew (1255)

oKorean (Johab)

oWindows Arabic (1256)

oWindows Baltic (1257)

oWindows Vietnamese (1258)

oKorean

oChinese Traditional (Big5)

·97-2003

·97-2003 (compatible with 5.0/95)

XLSX

Microsoft Office Excel Workbook

None.

DBF

DBase file

Supported code pages

oDOS Multilingual Latin 1 (850)

oDOS Latin 2 (852)

oDOS Cyrillic (855)

oDOS Turkish (857)

oDOS United States (437)

oDOS Hebrew (862)

oDOS Russian (866)

oDOS Tatar

oDOS Modern Greek (869)

oDOS Armenian

oWindows Bashkir

oWindows Thai (874)

oArabic Transparent ASMO (720)

oJapanese (Shift-JIS)

oDOS Baltic (775)

oChinese Simplified (GB2312)

oWindows Vietnamese (1258)

oDOS Greek (737)

oKorean

oChinese Traditional (Big5)

XML

XML Document

Supported encodings:

·UTF-8 without BOM

·UTF-8

·UTF16 little endian

·UTF16 big endian

TXT

Plain text

Supported encodings for TXT and CSV:

·UTF-8 without BOM

·UTF-8

·UTF16 little endian

·UTF16 big endian

·ANSI [image] Supported code pages

oWindows Tatar

oWindows Armenian

oWindows Bashkir

oMathematical symbols

oWindows Thai (874)

oJapanese (Shift-JIS)

oWindows Central Europe (1250)

oWindows Cyrillic (1251)

oWindows Western Europe (1252)

oWindows Greek (1253)

oChinese Simplified (GB2312)

oWindows Turkish (1254)

oWindows Hebrew (1255)

oKorean (Johab)

oWindows Arabic (1256)

oWindows Baltic (1257)

oWindows Vietnamese (1258)

oKorean

oChinese Traditional (Big5)

·DOS [image] Supported code pages

oDOS Multilingual Latin 1 (850)

oDOS Latin 2 (852)

oDOS Cyrillic (855)

oDOS Turkish (857)

oDOS United States (437)

oDOS Hebrew (862)

oDOS Russian (866)

oDOS Tatar

oDOS Modern Greek (869)

oDOS Armenian

oWindows Bashkir

oWindows Thai (874)

oArabic Transparent ASMO (720)

oJapanese (Shift-JIS)

oDOS Baltic (775)

oChinese Simplified (GB2312)

oWindows Vietnamese (1258)

oDOS Greek (737)

oKorean

oChinese Traditional (Big5)

CSV

Comma Separated Values File

Image export formats

Format

Colors

Additional options

TIFF

Full color/
grayscale/
black-and-white

·Several compression schemes will be available if you select the TIFF format. To select a scheme, select Custom from the Quality drop-down list, and then select a compression scheme from the drop-down list that appears on the right.

oThe following options are available for color and grayscale images: Zip, Lzw, Packbits, Jpeg and None.

oThe following options are available for black-and-white images: CCITT4Fax, Zip, Lzw, Packbits and None.

·If you select the Jpeg scheme, you will also be able to select a quality setting between 1% and 100%.

JPEG

Full color/
grayscale

None.

PDF, PDF/A

Full color/
grayscale/
black-and-white

·Standard allows you to select the version of the format standard. By default, the version of the standard is detected automatically. For PDF/A the following standard versions are available: 1a, 1b, 2a, 2b, 2u, 3a, 3b, 3u.

·The Version drop-down list lets you select the format version. The Auto setting selects the version automatically and is enabled by default.

·Use MRC enables Mixed Raster Content compression, decreasing the size of the output files.

note Note: This option is only available for the Grayscale and Full color color types. When you use this option, the quality of fields with the Do not recognize option enabled may be reduced when they are exported.

·Fast Web View makes the first page in documents with multiple pages faster to load.

·Create searchable PDF For details, see the Creating searchable PDF files section of the Processing PDF files article.

·Enable tagged PDF adds tags to output PDF files (when the Create searchable PDF option is enabled).

BMP

Full color/
grayscale/
black-and-white

None.

JPEG2000

Full color/
grayscale

None.

PCX packbits

Grayscale/
black-and-white

None.

PNG

Full color/
grayscale/
black-and-white

None.


Date_format.htm

Navigation: Appendix >

Return to chapter overview

Date formats

Show/Hide Hidden Text

The format of dates (such as batch creation dates, event dates in the event log, and the license expiration date) in ABBYY FlexiCapture depends on:

·the region and language settings of the operating system,
or

·the user interface language of ABBYY FlexiCapture

You can change the region and language settings of your operating system using the options in the Clock, Language and Region group in the Control Panel. To change the user interface language in ABBYY FlexiCapture, select the desired language from the drop-down list in the upper right corner of the page.

warning Important! You can select either British (United Kingdom) or American (United States) English for the user interface. Note that the British UI uses the European day-month-year date format, while the American UI uses the month-day-year format.

In some parts of the UI, dates always appear in the universal year-month-day format regardless of the settings.

Details on dated events

License Manager

Date | Depends on region settings | Depends on UI language | Uses universal format
License expiration date | galochka |  |

Administration and Monitoring Console

Date | Depends on region settings | Depends on UI language | Uses universal format
Batch creation date |  | galochka |
Session start date and date of last session activity |  | galochka |
Event dates in event log |  | galochka |
Error dates in error log |  | galochka |
Dates in report filter settings |  | galochka |
Date of last log cleanup |  | galochka |
Dates in display filter settings |  | galochka |
Date of last update |  | galochka |
Date of request for permissions |  | galochka |

Web Scanning Station

Date | Depends on region settings | Depends on UI language | Uses universal format
Dates in registration parameters |  |  | galochka
Creation dates in batch view |  | galochka |
Dates in generated batch names |  |  | galochka

FrontOffice

Date | Depends on region settings | Depends on UI language | Uses universal format
Dates in registration parameters |  |  | galochka
Creation dates in the batch view |  | galochka |
Dates in generated batch names |  |  | galochka

Scanning Station

Date | Depends on region settings | Depends on UI language | Uses universal format
Dates in registration parameters |  |  | galochka
Dates in generated batch names |  |  | galochka
Batch export date in batch properties | galochka |  |

Project Setup Station

Date | Depends on region settings | Depends on UI language | Uses universal format
Date created in properties of document or page | galochka |  |
Event dates in event log | galochka |  |
Dates in batch filter | galochka |  |
Last updated date for FlexiLayout in FlexiLayout editor | galochka |  |
Dates in server project selection dialog box | galochka |  |
Date constraints in data type properties | galochka |  |
Batch creation dates | galochka |  |
Dates in names of exported files |  |  | galochka

Verification Station

Date | Depends on region settings | Depends on UI language | Uses universal format
Dates in batch filter | galochka |  |
Columns in queue view | galochka |  |
Dates in batch view. Batch creation dates | galochka |  |

Processing Server Monitor

Date | Depends on region settings | Depends on UI language | Uses universal format
Start and finish dates of tasks | galochka |  |
Event dates in event log | galochka |  |

Processing Station

Date | Depends on region settings | Depends on UI language | Uses universal format
Event dates in event log | galochka |  |


Alphabet used in regular expressions

Name | Conventional designation | Usage example
Any character | * | "c"*"t" allows such words as cat, cot, etc.
Letter | C | C"ot" allows such words as Rot, pot, cot, Dot, mot, etc.
Uppercase letter | A | A"ot" allows such words as Rot, Cot, Mot, Dot, etc.
Lowercase letter | a | a"ot" allows such words as rot, cot, mot, dot, etc.
Letter or number | X | X allows any standalone number or letter.
Number | N | N"th" allows such words as 5th, 4th, 6th, etc.
String | " " | "cot"
Or | | | "pl"("o"|"a")"t" allows words "plot" and "plat".
Character from group | [] | [tm]"ot" allows words "tot" and "mot".
Character not from group | [^] | [^t]"ot" allows words "cot", "lot", etc., but does not allow the word "tot".
Space (within group) | \s | [A\s] allows only the letter A or a space.
Any number of repetitions (applies to the expression or subexpression on the left) | {-} | [AB74]{-} allows any combinations of characters A, B, 7, 4 of any length.
Number of repetitions n | {n} | N{2}"th" allows such words as 25th, 84th, 11th, etc.
From n to m repetitions | {n-m} | N{1-3}"th" allows such words as 5th, 84th, 111th, etc.
From 0 to n repetitions | {-n} | N{-2}"th" allows such words as 84th, 5th, etc.
From n repetitions and more | {n-} | N{2-}"th" allows such words as 25th, 834th, 311th, 34576th, etc.
Subexpression | () |
Hyphen symbol | [\-] |
Slash symbol | [\\] |

Examples of regular expressions:

1.Postal code: [0-9]{6}
An sample value: "142172"

2.Zip code (USA): [0-9]{5}("-"[0-9]{4}){-1}
Sample values: "55416", "33701-4313"

3.Income: N{4-8}[,]N{2}
Sample values: "15000,00", "4499,00"

4.Month in the numerical form: ((|"0")[1-9])|("10")|("11")|("12")
Sample values: "4", "05", "12"

5.Fraction: ("-"|)([0-9]{1-})(|(("."|",")([0-9]{1-})))
Sample values: "1234,567", "0.99", "100,0", "-345.6788903"

6.E-mail: [A-Za-z0-9_]{1-}(("."|"-")[A-Za-z0-9_]{1-}){-3}"@"[A-Za-z0-9_]{1-}(("."|"-")[A-Za-z0-9_]{1-}){-4}"."([A-Za-z]{2-4}|"asia"|"museum"|"travel"|"example"|"localhost")
Sample values: "support@abbyy.com", "my-name@company.org.ru", "info@gallery.museum"


Third-party technologies

© 1984-2011 Adobe Systems Incorporated and its licensors. All rights reserved.

Protected by U.S. Patents 5,929,866; 5,943,063; 6,289,364; 6,563,502; 6,639,593; 6,754,382; Patents Pending.

Adobe, the Adobe logo, Acrobat, the Adobe PDF logo, Distiller and Reader are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.

Portions of this computer program are copyright © 2008 Celartem, Inc. All rights reserved.

Portions of this computer program are copyright © 2011 Caminova, Inc. All rights reserved.

Portions of this computer program are copyright © 2013 Cuminas, Inc. All rights reserved.

DjVu is protected by U.S. Patent No. 6,058,214. Foreign Patents Pending.

Powered by AT&T Labs Technology.

PixTools © 1994-2007 EMC Corporation. All rights reserved.

WIBU, CodeMeter, SmartShelter, SmartBind are registered trademarks of Wibu-Systems.

Portions of this software are copyright © 2012 University of New South Wales. All rights reserved.

© 2001-2006 Michael David Adams

© 1999-2000 Image Power, Inc.

© 1999-2000 The University of British Columbia

This software is based in part on the work of the Independent JPEG Group.

© 1991-2013 Unicode, Inc. All rights reserved.

The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc.

Portions of this software are copyright © 1996-2002, 2006 The FreeType Project (www.freetype.org). All rights reserved.

© ParaType, 2003

EMC2, EMC, Captiva, ISIS and PixTools are registered trademarks, and QuickScan is a trademark of EMC Corporation.

Kodak is a registered trademark of Eastman Kodak Company.

.NET, Access, Active Directory, ActiveX, Aero, Excel, Hyper-V, InfoPath, Internet Explorer, JScript, Microsoft, Office, Outlook, PowerPoint, SharePoint, Silverlight, SQL Azure, SQL Server, Visual Basic, Visual C++, Visual C#, Visual Studio, Windows, Windows Azure, Windows Power Shell, Windows Server, Windows Vista, Word are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Oracle and Java are registered trademarks of Oracle and/or its affiliates.

All other trademarks are the property of their respective owners.

The TWAIN Toolkit is distributed as is. The developer and distributors of the TWAIN Toolkit expressly disclaim all implied, express or statutory warranties including, without limitation, the implied warranties of merchantability, noninfringement of third party rights and fitness for a particular purpose. Neither the developers nor the distributors will be liable for damages, whether direct, indirect, special, incidental, or consequential, as a result of the reproduction, modification, distribution or other use of the TWAIN Toolkit.

JasPer License Version 2.0

© 2001-2006 Michael David Adams

© 1999-2000 Image Power, Inc.

© 1999-2000 The University of British Columbia

All rights reserved.

Permission is hereby granted, free of charge, to any person (the "User") obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

1.The above copyright notices and this permission notice (which includes the disclaimer below) shall be included in all copies or substantial portions of the Software.

2.The name of a copyright holder shall not be used to endorse or promote products derived from the Software without specific prior written permission.

THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES.


Glossary

Show/Hide Hidden Text

A

ABBYY FlexiCapture

A software solution for single-flow input of data from various document types structured (fixed forms), semi-structured (flexible forms and documents) and unstructured (free-format documents).

ABBYY FlexiLayout Studio

A program allowing you to create a FlexiLayout of the document structure, which can then be used for automatic document recognition.

ABBYY FormDesigner

ABBYY FormDesigner is used to design layouts of machine-readable forms. Once replicated and filled out, these forms can be processed with the ABBYY FlexiCapture automated form input system. Form layout design is an important stage, since the quality of the designed layout (its machine readability) determines the effectiveness of all subsequent processing stages: scanning, recognition, verification, and export.

ABBYY FlexiCapture for Invoices

An ABBYY FlexiCapture is an easy-to-use, intelligent software solution for processing invoices.

ADF

Automatic Document Feeder. A device for automatic document feeding that enables you to scan any number of documents without performing additional manual operations.

Administrator

A user of ABBYY FlexiCapture who is authorized to configure the program for document input: creating and editing Document Definitions and import profiles.

Alphabet

A set of characters used in the language being described.

Anchor

A static element in the form of a black square, rectangle, cross or corner intended for Document Definition matching.
Details...

Anchors are special elements of form design, which are used by the system to perform matching after scanning (eliminates skewing, compensates linear and nonlinear defects of scanning, calculates the location of blocks). The most reliable anchors are black squares that are normally located in the corners of a form. If no special anchors are present on the image, other static elements can be used to match the Document Definition: separators, i.e. vertical or horizontal lines, such as table lines, frames, etc., or clear static text, namely: form header, field signatures, explanatory information, etc. The option Use for Document Definition matching must be enabled for static elements used for Document Definition matching.

Anchor barcode

A static element representing a barcode that is not intended for data extraction. An anchor barcode can be used for Document Definition matching or identification.

Anchor text

A static element representing a text that is present on a blank form and is not intended for data extraction. This may be any explanatory text or header. Anchor text can be used for Document Definition matching or identification.

Angle

An anchor shaped as an angle.

Annex

Pages that do not contain fields, but are included in document assembly. No data is extracted from these pages, but they may be saved as images or PDF searchable files. See Creating Document Definitions for documents with annexes.

Assembly error

This error occurs when a document that was created during document assembly contains pages from other documents, when its own pages are in the wrong order, or when the values of key fields in the document's pages do not match.

Auto-learning

The ability of ABBYY FlexiCapture to automatically learn to detect new fields and identify document types.

B

Barcode

A machine-readable form element represented as alternating white and black bars of a certain length, which encode digital information. A barcode in a document may be used to extract information (barcode field) or to match and identify a Document Definition (anchor barcode).

Barcode field

A Document Definition field containing a barcode intended for recognition.

Barcode recognition

Conversion of a graphic barcode image to numbers or text.

Batch type

The property of a batch that defines how documents in the corresponding batches are to be processed. See Batch types.

Black-and-white line form

A form in which borders of information fields are formed by ordinary lines that do not disappear during scanning.

Black square

An anchor shaped as a black square.

Brightness

A threshold of light sensitivity that determines at which point the scanner detects grayscale halftones as white.

C

Checkmark

A machine-readable form element that is filled with a mark (tick, cross, dot, inked out, etc.) by the person filling out a form.

Checkmark field

A Document Definition field containing a checkmark.

Checkmark group

An element of a machine-readable form uniting several checkmarks located nearby. One or several checkmarks can be selected in a checkmark group.

Checkmark group field

A Document Definition field containing a checkmark group.

Classifier

A project created in FlexiLayout Studio and intended for preliminary identification of pages prior to applying Document Definitions as well as for selecting the matching FlexiLayout or layout alternative.

Classifier F-measure

A combined measure of precision and recall for document classification. It is expressed as a number between 0 and 1 or as a percentage between 0% and 100%.

F-measure for a category is calculated as (β^2 + 1) * P * R / (β^2 * P + R), where P is the precision for the category, R is the recall for the category, and β is a free parameter which determines the relative weighting of precision and recall for the given model. Maximum value = 1 (100%) when P = R = 1 (100%).

F-measure for a test or training batch is calculated as (β^2 + 1) * P * R / (β^2 * P + R), where P is the precision for the test or training batch, R is the recall for the test or training batch, and β is a free parameter which determines the relative weighting of precision and recall for the given model.

Code page

A table of values that describes the character set for a particular language.

Color background form

A form in which all information fields are white rectangles against a color background that disappears during scanning.

Contrast

Ratio between the brightness of the darkest and lightest areas on an image.

Control

A text, field or button element on the data form.For details, see Insert Control.

Corrected checkmark

A checkmark that was selected mistakenly and then inked out. If the option Allow corrections is enabled for the checkmark field, the program will recognize the inked out checkmark as unselected.

Cross

An anchor shaped as a cross.

Custom data type

User-defined data type. See Creating custom data types.

D

Database lookup

Matching recognized data against corresponding database records.

Data set

Data used for automated document checks. A data set may be stored as a table in ABBYY FlexiCapture and synchronized according to a schedule or retrieved from an external source.

Data type

A field attribute describing known constraints of possible field values. It is used during field recognition to reduce the number of possible recognition variants.
Details...

One of the field's characteristics is a data type: number, date, text, last name, given name, address, etc. A data type defines the set of words that can occur in the given field. Data type is an important recognition parameter that affects recognition quality. A correctly specified data type can significantly reduce the number of incorrectly recognized characters.

Description file

An auxiliary file that defines how a batch is formed when images are being added from a Hot Folder. For details see Description file.

Dictionary

A list of words used to determine a specific data type.
Details...

A dictionary is specified when creating a data type. As a result, the data type attached to a field determines the dictionary used during recognition and verification. In addition to the existing predetermined data types with ready dictionaries, the program allows you to attach data types created on the basis of custom dictionaries. You can type in dictionary data manually or load them from a file.

Document

A combination of one or several page images and data extracted from them.

Document batch

A combination of documents grouped by the user. A batch normally contains the stack of documents scanned in a single pass or imported from a particular folder. See Document batches.

Document class

A set of documents or pages that share several common characteristics.

Document data

Data captured after processing (recognition, verification and editing of recognition results) of document page images.

Document Definition

A Document Definition defines the principles of identification and processing of a particular type of document and contains:

·The document structure, i.e. a description of the allowable order of pages for documents of this type, which defines how documents should be assembled

·Definitions of document sections

·A list of rules that field data should satisfy

·The locations of fields and their signatures in the data window (data form view)

·Document export settings

·Document processing settings

Document Definition identification

A process of selecting the required Document Definition with the help of identifiers.

Document Definition matching

A process of selecting a Document Definition and matching its fields against an image.

Document Definition publication

Allowing access to a new Document Definition version once it has been edited. A published version participates in the processing of documents from work batches, while an unpublished, local version can participate only in the processing of Document Definitions from test batches. See Editing and publishing a Document Definition.

Document Definition Section

A component of a Document Definition. Corresponds to one or several pages containing a logically complete set of fields. Fields within one section can continue from one page to the next (for example, multipage tables), while field sets from various sections do not intersect.

A section definition can be flexible or fixed.

Document identification

The process of assigning documents to one of several predetermined document types.

Document set

A set of logically related documents that are used for a specific purpose. For instance, a business process may be initiated by a set of documents provided by an applicant consisting of a filled out application form and some accompanying documents. Depending on the information provided by the applicant on the application form, some of the accompanying documents may be optional while others must be enclosed with the application.

Document text

All of the text from the document that was captured from the document during preliminary recognition, before the FlexiLayout is applied. You may choose to save this text (requires additional space on the hard disk) so that it can be used during verification.

Document type

A number of documents that have several characteristics in common and play a specific role in business processes.

Some examples of document types are invoices, contracts and passports.

Document variant

A number of documents belonging to the same type that share several characteristics.

Examples of document variants include invoices from different vendors and credit statements from the same bank.

Dot-matrix printer

A type of recognizable text that represents a text printed with a dot-matrix printer.

dpi

Dots per inch. Number of dots per inch; a measurement unit of image resolution.

E

Entity

A field or a group of fields containing information that needs to be extracted by means of NLP technology. Examples of entities include: people, companies, places, amounts, and dates.

Environment variable

A string that is used to store text, e.g. system settings. Environment variables may be used to store database connection strings and variables that are used when specifying the names of exported files.

Error / warning

The error / warning occurs when data extracted from one or more fields does not satisfy rules that are applied during automatic checks or does not match the specified format. There are two different types of errors and warnings:

·single-field error / warning are generated by rules and formats that affect one fields;

·multi-field error / warning are generated by rules that affect multiple fields.

Explanatory text

A machine-readable form element that represents a descriptive text (form name, field names, explanations to fields, etc.).

Export

A process of transferring processed data to an external information system or file.

Export profile

A set of settings that determines what is done with processed data: the format of output files, the output path, export conditions, etc.

External database

A text file or an ODBC-compatible database that stores reference data. Reference data may include the possible values of captured fields or information required for capturing fields.

F

Field

A document element intended for data extraction. Fields may be simple (without an internal structure) or composite, such as the table field where each cell can be viewed as a separate subordinate field of the table. See Creating Document Definition fields.

Field region

An image region highlighted in the Document Definition and intended for data extraction.

Field verification

A verification mode whereby recognized characters are submitted for verification within the context of a field.
Details...

In the field verification mode, uncertain characters are checked within the context of the entire field. Fields with the option Send to field verification enabled are submitted for field verification. We recommend submitting for field verification those fields whose values range is known or can be determined easily. Examples of such fields are country or city names: we know what values this field can have.

Field with several instances

A field used to describe several objects of the same type (recurring objects). In essence, these multiple objects are one and the same field and share the same properties. Fields with several instances are used to avoid the need to create several identical fields. Fields with several instances are exported to separate files or database tables. See Fields with several instances.

Field with several regions

A field consisting of several regions on the image. Such regions may be located at a distance from one another and even on different pages. Values from all regions belonging to the same field are combined and exported together as one field. Normally used for objects located on several pages, such as large tables. See Fields with several regions.

Field without a region

A field detected in a Document Definition but not having a region on the image. See Fields without a region.

Fixed form

A document with fixed information fields whose formatting, number and layout are strictly defined and do not change from one document instance to another.

Fixed Document Definition

A definition of a document or its section designed for processing fixed forms. Fields in a fixed Document Definition have fixed locations.

FlexiLayout

Description of the semi-structured document structure. This description is designed with ABBYY FlexiLayout Studio and exported to ABBYY FlexiCapture. File format *.afl. FlexiLayout is a kind of instruction for detecting and identifying fields in a flexible form.

FlexiLayout variant

A FlexiLayout for a document variant that was either developed specifically for this document variant or was trained on this document variant. Used in conjunction with a generic FlexiLayout.

Flexible Document Definition

A definition of a document or its section designed for processing semi-structured documents. Created by attaching a FlexiLayout. Fields in such a Document Definition do not have fixed locations. They are detected with the help of a FlexiLayout. See Creating a Document Definition for semi-structured document processing.

Form

A document comprising one or several pages designed to be filled out by a person by hand or using any other printing technique.

Framed text

Type of text marking where a frame delimits the text.

Show...

Framed text over a comb

Type of text marking where text is delimited by a frame with a bottom boundary shaped as a comb.
Show...

G

Gray background form

A form in which all information fields are white rectangles against a gray background that disappears during scanning.

Group verification

A verification mode whereby identically recognized characters are submitted for verification in groups. Details...

Fields for which the option Send to group verification is enabled are submitted for group verification. We recommend submitting characters from number fields as well as checkmarks for group verification.

H

Handprinted text

A type of recognizable text that represents a text printed by hand in distinct type.

Hot folder

A folder on the hard drive of a local or remote computer, which is used for importing images. It is normally used for periodically recurring image uploads without the user's involvement. See Image import profiles.

I

Identifier

A static element used for certain selection of a Document Definition from among several Document Definitions with identical locations of anchors. The option Use for Document Definition identification must be enabled in the properties of such static elements.

Identity provider

A third-party system, such as Azure AD, OneLogin or Okta, that manages identity information and provides authentication services to its clients, enabling an end-user to access all authorized resources in his/her local area network by entering their credentials only once.

Ignored character

A character occurring inside words (for example, a bullet) or a soft hyphen character (tabulation, etc.) whose presence does not prevent the program from attributing the word to a recognizable data type.
Details...

These characters are excluded from words, i.e. the words are attributed to particular data type without these characters.

Image

An electronic image of a scanned page from a hardcopy document.

Image despeckling

Removal of noise from the image. Noise can appear during scanning, and it is recommended that it be removed to enable better data recognition. During despeckling, the program also removes background dots or boundary lines of raster forms.

Image import

A process of adding images to a batch for processing. Import can be performed by adding images from files, from a scanner or using import profiles. See Adding page images.

Image rotation

Rotation of an image around its center.

Import profile

A combination of settings used to add images to a batch: import source, image processing options, Hot Folder cleanup options, etc. See Image import profiles.

Incorrectly recognized character

Status automatically assigned to a character in the process of recognition if it has been recognized with a considerable degree of uncertainty.

Index field

A field whose value is used to index documents for sorting and search purposes. See Index fields.

Inverted image

An image with light-colored text against a dark background.

Invoice

A document that lists goods that have been supplied, their quantity, price, characteristics (such as color, weight, etc.), shipment conditions, and details of the parties. Invoices can be processed by means of a separate solution, ABBYY FlexiCapture for Invoices. See ABBYY FlexiCapture for Invoices.

ICR, Intelligent Character Recognition

This refers to technologies or systems designed for mass processing of documents filled with handprinted letters and numbers, i.e. recognition of handprinted characters.

K

Key field

A field that enables automatic checking of page assembly into documents. The values of key fields must be identical on all pages of the same document.

L

Language (local)

A field property that determines the writing language and relevant sets of regional parameters (such as the date or address writing style).

Layout

The location of fields on a document image. Layouts can be generated automatically or created manually. See also Reference layout.

Letters in frames

Type of text marking where every character is delimited by a frame; frames are not isolated from one another.
Show...

Letters in isolated frames

Type of text marking where every character is delimited by a frame; frames are isolated from one another.
Show...

Letters over a comb

Type of text marking where a "comb" delimits the text.
Show...

M

Machine-printed text

A type of recognizable text that has been printed using typographic equipment or a laser or ink-jet printer with a minimum resolution of 300 dpi.

Machine-readable form

A form designed especially for automated input. It contains work elements (anchors, barcodes, lines, etc.) that are required to process it successfully.

Manual entry field

A Document Definition field containing unrecognizable text (for example, text consisting of fused letters) that has to be entered from the keyboard.

MRC (Mixed Raster Content)

A compression method used for images that contain both text and raster fragments. The image is analyzed into fragments and an optimal compression algorithm is selected for each. This approach provides better compression ratios while maintaining the visual quality of images.

Monospaced text

Type of text marking where each letter is located within a frame of the same height and width, but the frame border disappears during scanning.

Multipage document

A document made up of several pages.

Multitenancy

A feature allowing several independent users to use ABBYY FlexiCapture. The data of each tenant is completely isolated from other tenants and the system allocates a portion of its resources to each tenant.

N

NER (Named Entity Recognition)

An information extraction task that seeks to locate and classify named entity mentions in unstructured text.

NLP (Natural Language Processing)

A subfield of artificial intelligence and computational linguistics that studies computer analysis and synthesis of natural languages. One application of NLP is information extraction. Other uses of NLP include machine translation, chatbots, document classification, and sentiment analysis.

NLP model

A mechanism that determines what entities and segments should be extracted form texts and how. The subject area and the extraction algorithm are selected when training an NLP model.

O

OCR (Optical Character Recognition)

Optical recognition of printed texts.

OMR (Optical Mark Recognition)

This technology enables ABBYY FlexiCapture to both recognize ordinary marks (ticks, crosses, etc.) on forms with a high degree of certainty and to correctly identify marks that were made by mistake and then inked out.

Operator

A user of ABBYY FlexiCapture who is tasked with document entry: adding images, performing recognition and verification, exporting recognized data.

Operator role

The property of a user account in ABBYY FlexiCapture, which determines what data are accessible to the user and what actions can be performed on these data. See Operating a configured project.

Overlay

The process of combining a scan of a filled-out form with an image of a blank example of the same form in the Document Definition editor.

P

Page

Image of a paper document page and results of its processing.

Page layout

A scheme showing the location of fields on an image.

Page orientation

Page location relative to the standard alignment: top to bottom, left to right. Page orientation can be determined automatically during page image recognition; to this end ABBYY FlexiCapture allows you to specify possible orientations.

Picture

An element of a machine-readable form that is not subject to recognition but intended for export in the form of a graphic object (for example, a file).

Picture field

A Document Definition field containing a picture.

Precision

A characteristic that lets the user evaluate the automatic classification quality. It is calculated by dividing the number of correctly identified class A documents by the total number of all documents identified as class A (both correctly and incorrectly).

Prerecognition

Full-text recognition of document images to facilitate field detection by means of a Document Definition.

Processing power

The average number of pages, documents or batches processed during a specific period of time.

Processing stage

A workflow stage where certain actions are performed on a document or batch (either automatically or by an Operator). See Processing stages and queues.

Prohibited character

A character that you are certain will not occur in the data being recognized.
Details...

Specifying such characters may considerably increase the speed and quality of recognition. For example, when recognizing texts with only uppercase letters, specify all lowercase letters as prohibited characters.

Project

A project is a single environment uniting the document batches and settings required to process them, such as Document Definitions, import profiles, etc. See Creating a project.

Q

Queue

Documents grouped into tasks and/or batches, waiting to be processed at a certain processing stage. See Processing stages and queues.

R

Raster form

A form in which information fields are represented as white rectangles against a gray background consisting of raster lines or rectangles delimited by raster lines.

Raster line

A line consisting of equally spaced dots.

Recall

A characteristic that lets the user evaluate the automatic classification quality. It is calculated by dividing the number of correctly identified class A documents by the total number of all class A documents.

Recognition

A process of matching image elements against specific characters.

Recognition

Language that ABBYY FlexiCapture bases on when recognizing.

Reference classes

A reference class is a class that has been assigned to a document by an expert during manual classification. Both a section of a document, as well as a document variant, can be a reference class.

Reference layout

A user-created layout that is used as a reference for automatically created layouts. This comparison serves to evaluate how well the program detects field regions.

Regular expression

Description of the structure of a word or any entered value using a special language. The program allows you to specify not just the set of allowable characters, but also the structure of field contents. You can describe the structure with a regular expression when setting constraints for a text field or when creating a custom data type. See Alphabet used in regular expressions.

Resolution

Image parameter. Resolution is measured in dots per inch (dpi).

Result classes

A result class is a class that has been assigned to a document during an automatic classification.

Rule validation

An automatic check of recognized data against preset rules. See Rule validation.

Rules

Certain conditions imposed on data in fields and automatically checked by the program. See Rule validation.

S

Scanning

A process of getting an electronic image of a paper form using a scanner.

Segment

A text fragment consisting of one or more paragraphs that contains data that needs to be extracted. A segment can also be a field that needs to be extracted (for example, conditions for terminating an agreement).

Segmentation

The process of identifying segments. Segmentation precedes information extraction and is useful in the case of large documents, as it narrows down a search for entities to specific text fragments.

Section

A logically distinct part of a document that contains a set of extractable fields. Sections are used for various purposes during the recognition process, such as assembling documents from pages. Sections can include a single page or multiple pages and can be fixed or flexible. See Creating Document Definitions for multipage documents.

Semi-structured document

Document containing a set of information fields whose design, number and layout may vary significantly in different instances of the document. See What types of documents can be processed with ABBYY FlexiCapture.

Separator

A machine-readable form element representing a vertical or horizontal line.

Service field

A field that does not have a region on the document image. The values of service fields are determined automatically based on data from the source indicated in their properties. See Service Fields.

Set of allowable characters

A set of characters occurring in the data type being recognized.
Details...

This set is determined by the data type. That is, the type of data attached to a field determines the set of characters used during recognition.

In addition to selecting characters included in this set, you may configure additional parameters restricting this set. For example, you may specify:

·Characters that you know will not occur when a given field is recognized prohibited characters (for example, you may specify all lowercase letters as prohibited for a field where only uppercase characters may occur).

·Characters that may occur inside words without affecting their verification ignored characters (for example, hyphens, stress marks, etc.).

Simple text

A type of text marking where text is inserted in a block without any delimiters.

Single-flow data input

Automated data extraction from analog (printed) and digital (scanned image) documents.

Single-flow document input

Automated conversion of hardcopy documents into electronic form.

SLA (service level agreement)

An agreement governing the provision of IT services. In ABBYY FlexiCapture 12, an SLA agreement governs the deadlines for processing batches.

Static elements

Unrecognizable elements intended for Document Definition matching and identification. Such elements are: anchors, anchor text, separators, anchor barcodes.

Summary section

The summary section is a Document Definition section that displays of all the main fields in a document set. This makes it much easier for Operators to review documents in a set because they will be able to see all of the errors and low-confidence data in one place and only open the documents that need to be reviewed instead of opening each document.

T

Table

Data arranged in a two-dimensional grid that is not necessarily visible. The program processes tables consisting of columns with same-type data and repeating rows.

Table field

A Document Definition field containing a table. It is a composite field, with every table column representing a set of fields of the same type: text, checkmarks, barcodes or pictures.

Task

A set of documents from the same batch to be processed together. Depending on the project settings and the processing stage, a task may contain different numbers of documents. If a processing stage requires a batch to be processed in its entirety, the whole batch is included in the task. When verification tasks are formed automatically, each task contains 10 documents (if a batch contains fewer than 10 non-verified documents, they are all processed as one task).

Tenant

An isolated instance of ABBYY FlexiCapture that can be used independently from other users.

Test batches

Document batches designed for Document Definition testing and configuration. Local copies of document batches are used to process test batches. See Document batches.

Text field

A machine-readable form element designed for text entry when filling out a form.

Text field marking

A graphic element delimiting a text field: frame, comb, line.

Text marking

The design of a page region intended for text input. See samples of text formatting in the Entry field topic.

Text orientation

Direction of text in a field relative to the page.

Text recognition (OCR, ICR)

Conversion of a graphic image to text.

Text sample

A file containing samples of all alphabet characters.

Training [Document Definition]

A feature in ABBYY FlexiCapture for Invoices that allows users to train the program to capture data from specific kinds of invoices. Training improves the quality of data capture and can be done either when setting up the program or while processing invoices.

Training batches

A batch of documents used for training and testing a Document Definition for a specific document variant. Training a Document Definition on a training batch creates a FlexiLayout variant. See also document batch, document variant, FlexiLayout variant.

Typewriter

A type of recognizable text that represents a text printed with a typewriter.

U

Underlined text

Type of text marking where underlining delimits the text.
Show...

User dictionary

An auxiliary dictionary created by the user which contains words not included in the built-in dictionaries. Built-in dictionaries can be supplemented with a user dictionary to improve the quality of data capture. Typically, a user dictionary will contain specialized terms, abbreviations, company names, etc.

Unrecognizable region

An image region excluded from recognition. An unrecognizable region is required to exclude a region with explanatory text or picture that complicates field recognition. See Excluding a region from recognition.

Unstructured document

A document containing information presented in a free form. Examples of such documents are contracts, letters, orders, graphs. See Creating Document Definitions for unstructured and semi-structured documents.

V

Vendor

A legal or physical person that sells goods or services. Vendors issue invoices for their goods and services. Data from invoices can be captured by means of ABBYY FlexiCapture for Invoices.

Verification

Verification consists in checking that the data have been recognized, pages have been assembled into documents correctly, and rules returned no errors. Verification is done on the Data Verification Station (where recognition accuracy is verified) and on the Verification Station (where all types of checks can be performed). See Verification.

W

Work batches

Document batches intended for data input. Only published Document Definitions are used for processing work batches. See Document batches.

Writing style

A manner of writing that is specific to a particular group. For example, the American manner of writing numbers.
Details...

This option is used for configuring the writing style of handprinted letters in forms. The choice of a writing style depends on the area where form processing takes place (Russia, Germany, the Czech Republic, the USA, etc.).

X

XFD

XML Form Definition (*.xfd) a special file format of a form designed with ABBYY FormDesigner. An XML Form Definition format file is used to create Document Definitions in ABBYY FlexiCapture.


Technical support

Should you have any questions about using ABBYY FlexiCapture, please consult the detailed description of functionality in the Help Topics and User Guide supplied with ABBYY FlexiCapture. You may also browse the technical support section on our Website www.abbyy.com where you may find an answer to your question.

To provide expert advice, our technical support service requires the following information:

·Last name, first name, patronymic

·Organization name

·Phone number (fax, e-mail address)

·Serial number of your installation package

·Build (see Help → About ABBYY FlexiCapture)

note Note: To find out the current version of the web station and the server, click the ABBYY logo in the bottom right corner of the page.

·General description of the problem with the full error message text (if available)

·PC and processor type

·Windows OS version

·Other information you consider important


How to buy ABBYY FlexiCapture

To submit a purchase order for ABBYY FlexiCapture or ask any related questions, please contact regional offices of ABBYY.


End-User License Agreement (EULA)

ABBYY® FlexiCapture®

Important! Read the following terms carefully before installing, copying and/or otherwise using ABBYY® FlexiCapture® (hereinafter referred to as “the SOFTWARE”). Installing, copying or otherwise using the SOFTWARE indicates Your acceptance of these terms.

This End-User License Agreement (hereinafter referred to as the "EULA") is a legal agreement between You, the end user, who obtained or is using the SOFTWARE, on the one hand and ABBYY, on the other.

This EULA comes into effect when You demonstrate Your consent to be bound by its terms by selecting the “I accept the terms of the license agreement” button followed by selecting the “Next” button and installing the SOFTWARE, or when You install, copy or start using the SOFTWARE in any manner. Any such act is deemed to demonstrate Your acknowledgment that You have read this EULA, that You understand it and agree to be bound by its terms. If You do not agree to the terms of this EULA, do not use the SOFTWARE and disable, remove it from Your system, and destroy any copies of the SOFTWARE in Your possession. This EULA is binding for the entire period that You use the SOFTWARE unless otherwise stated in this EULA or in a separate written agreement with ABBYY.

The SOFTWARE is protected by copyright laws and international treaty provisions and some portions are protected by patent and trade secret laws. The SOFTWARE is licensed to You under this EULA, not sold to You. You agree that this EULA is enforceable like any written negotiated agreement signed by You. This EULA is enforceable against You.

If a separate written agreement with regard to the SOFTWARE has been concluded with ABBYY, then, in the event of any discrepancy between that agreement and this EULA, the terms of the separate agreement shall prevail over any inconsistent term in this EULA. Any terms and conditions contained in Your purchase orders or other documents shall not modify this EULA or expand ABBYY’s obligations hereunder. The EULA may be available in different languages. There may be inconsistencies or differences in interpretation between the English version of the EULA and those EULAs made available in other languages. For the sake of uniformity and to avoid any ambiguity, the English version of the EULA shall govern in all disputes, claims or proceedings to interpret, enforce or otherwise relating to the EULA.

Definitions

"ABBYY" means

ABBYY USA Software House Inc., registered at 890 Hillview Court, Suite 300, Milpitas, California, 95035, USA, when article 15.1 of this EULA applies;

ABBYY Japan Co., Ltd., registered at 2-5-14 Shin-Yokohama, Kohoku-ku, Yokohama-shi, Kanagawa-ken 222-0033, Japan, when article 15.2 of this EULA applies;

ABBYY Europe GmbH, registered at Landsberger Str. 300, 80687 Munich, Germany, when article 15.3 of this EULA applies;

ABBYY UK Ltd., registered at Centrum House, 36 Station Road, Egham, Surrey, TW20 9LF, United Kingdom, when article 15.4 of this EULA applies;

ABBYY PTY Ltd., registered at Citigroup Building’, Level 13, 2-26 Park Street, Sydney NSW 2000, Australia, when article 15.5 of this EULA applies;

ABBYY Production LLC, registered at ul. Otradnaya dom 2B, korpus 6, office 14, 127273, Moscow, Russia, when article 15.6 of this EULA applies;

and ABBYY Solutions Ltd., registered at Michail Karaoli 2, Egkomi CY 2404, Nicosia, Cyprus, in all other cases.

“ABBYY Partner” means an entity or individual that is authorized by ABBYY to resell and distribute licensed copies of the SOFTWARE to End Users, either directly or through one or more sub-resellers or sub-distributors.

“Computer” means a specific physical device or virtual machine that may consist of one or more CPU (central processing unit) cores and running a specified operating system. Any changes to the configuration or composition of the Computer could result in the Computer being treated as a different Computer for licensing purposes.

“Intellectual Property Rights” means all intellectual and industrial property rights and includes rights to (i) inventions, discoveries, and letters patent, including applications therefor, reissues thereof, and continuation and continuations in part; (ii) copyrights; (iii) designs and industrial designs; (iv) trademarks, service marks, trade dress and similar rights; (v) know-how, trade secrets, and confidential information; (vi) integrated circuit topography rights and rights in mask works; and (vii) other proprietary rights.

“License” means the non-exclusive limited right granted to You by ABBYY to install and use the functionality of the SOFTWARE in accordance with the terms and conditions of this EULA.

“SOFTWARE” means ABBYY FlexiCapture including any and all of the software components embedded in it or made available online or in other ways, including, but not limited to, executable, help, demo, sample, and other files; libraries, databases, samples, associated media (images, photos, animations, audio components, video components, music, etc.), printed materials, and other software components.

“Station” means a part of the SOFTWARE, that can be installed as a separate SOFTWARE application, or as a thin browser-based client, or as a mobile app, and solves one or more tasks constituting the functionality of the SOFTWARE.

“You”, “Your” and “End User” refer to and include any person and/or any entity that obtained this SOFTWARE for his/her or its own use and not for purposes of further resale and any actual user of the SOFTWARE.

1. License Grant

1.1 Subject to the terms and conditions of this EULA, ABBYY grants to You a limited, non-exclusive License to install and use the functionality of the SOFTWARE subject to all restrictions (limitations) and the scope of the License as may be provided by, this EULA, the software and/or hardware license keys provided by ABBYY (“License Key”), the SOFTWARE, and/or a separate written agreement between You and ABBYY or an ABBYY Partner, and/or the documentation accompanying the purchase. In this case, the separate written agreement between You and the ABBYY Partner may not exceed the scope of the license granted and restrictions specified in this EULA and/or in the separate agreement with ABBYY, and/or impose additional duties on ABBYY. The ABBYY Partner’s documentation accompanying the purchase of the SOFTWARE may not contradict the terms of the EULA, the separate agreement with ABBYY and ABBYY’s written instruments concerning the terms of use and/or purchase of the SOFTWARE.

All of the provisions stated herein apply to both the SOFTWARE as a whole and to all of its separate components and end-user documentation with the exception of the third party software included in the SOFTWARE, which is covered by its own license terms as specified in article 14. Any issue with respect to the scope of Your License shall be construed in favour of the restrictions on the scope of Your License. Restrictions on Your use of the SOFTWARE and the scope of Your License may include, but are not limited to, the following:

1.1.1. Number of Stations. The types of Stations and permitted number of their installations may be limited.

1.1.2. Processing volume. The number of volume units (e.g. pages, words, symbols) that may be processed with the SOFTWARE may be limited in one or more ways, such as limitations on the number of volume units that may be processed within particular time periods, such as monthly or annually, or on the overall number of volume units that may be processed. The size of a page or other volume unit may also be limited.

1.1.3 Duration. Use of the SOFTWARE may be limited to a specific period of time, and the SOFTWARE may not be used after the expiration of such time period.

1.1.4 If You licensed the SOFTWARE on a subscription basis, Your rights to use the SOFTWARE are limited to the subscription period. After the expiration of Your subscription period, the functionality of the SOFTWARE will be no longer available until You make a payment to extend Your subscription period. You may extend Your subscription period at any time during the subscription period. If You extend Your subscription period, you may continue using the SOFTWARE until the end of Your extended subscription period.

Additional terms and conditions of use of the SOFTWARE on a subscription basis may be set forth in a separate agreement between You and ABBYY or an ABBYY Partner, which you shall accept before obtaining (purchasing) the SOFTWARE on a subscription basis.

1.1.5 Features, Add-ons, and Custom Components. The use of particular features, add-ons, and/or custom components of the SOFTWARE may be limited by License Key and/or written agreement between You and ABBYY or an ABBYY Partner, and/or the documentation accompanying the purchase.

1.1.6 Processing Power. The number of CPU (central processing unit) cores of the Computers which can be utilized by the SOFTWARE may be limited by License Key and/or written agreement between You and ABBYY or an ABBYY Partner, and/or the documentation accompanying the purchase.

1.2 All rights not expressly granted to You by the EULA are reserved by ABBYY. This EULA does not grant You any rights in connection with any trademarks of ABBYY.

1.3 If Article 15.6 applies and You are a natural person, You may use the SOFTWARE worldwide. If You are an entity, You can obtain (purchase) the SOFTWARE in the countries listed in the Article 15.6. only if You or Your branch and/or representative offices are registered in these countries, unless otherwise agreed in a separate written agreement between You and ABBYY. The employees of the entity or of its branch and representative offices may use the SOFTWARE worldwide, provided the SOFTWARE has been obtained and installed in the country where the entity or its branch and representative offices are registered.

1.4. Any use of the SOFTWARE or its component parts outside of or in contravention of the terms and conditions of this EULA shall constitute a breach of ABBYY’s and/or third parties’ Intellectual Property Rights and shall give cause for the revocation of all rights to use the SOFTWARE granted to You under this EULA.

1.5 If You deploy or use the SOFTWARE in a virtual environment, including, without limitation, by means of VMware, Citrix or ghosting, the access to or use of the SOFTWARE may in no way exceed the restrictions on the SOFTWARE, or the scope of the License that has been granted. For instance, one and the same License Key may not be used to permit use or access to the SOFTWARE in a virtual environment by a number of Computers that is greater than the number of Computers for which a License has been properly obtained, nor may the SOFTWARE be used to process more than the total number of pages that has been permitted.

1.7 If You use the SOFTWARE by means of a Web browser, You may simultaneously access the SOFTWARE by as many stationsas permitted by the scope of Your License and specified in the License Key.

1.8 You may receive the SOFTWARE on more than one medium (multiple-media SOFTWARE), including downloads over the Internet. Regardless of the quantity or type of media You receive, You are only licensed to use the SOFTWARE in accordance with the scope of Your License.

2. Limitations of Use

2.1 All terms of use and limitations governing the use of the SOFTWARE are stated in this EULA, unless additional terms of use or limitations are stipulated in a separate written agreement between You and ABBYY or an ABBYY Partner or in other documentation accompanying the SOFTWARE, provided that the ABBYY Partner’s agreement and documentation may not impose additional duties on ABBYY.

2.2 You may not perform or make it possible for other persons to perform any activities included in the list below:

2.2.1 Reverse engineer, disassemble, decompile (i.e. reproduce and transform the object code into source code) or otherwise attempt to derive the source code for the SOFTWARE or any part, except, and only to the extent, that such activity is expressly permitted by applicable law notwithstanding this limitation. If applicable law prohibits the restriction of such activities, any information so discovered must not be disclosed to third parties except as such disclosure is required by law and such information must be promptly disclosed to ABBYY. All such information shall be deemed to be confidential and proprietary information of ABBYY.

2.2.2 Modify, adapt (including any changes for the purpose of enabling the SOFTWARE to run on Your hardware), or make any changes to the object code of the SOFTWARE, applications and databases contained in the SOFTWARE other than those provided for by the SOFTWARE and described in the documentation.

2.2.3 Correct errors in the SOFTWARE or translate the SOFTWARE without the prior written consent of ABBYY.

2.2.4 Rent, lease, sublicense, assign or transfer any rights granted to You by this EULA and other rights related to the SOFTWARE to any other person or authorize all or any portion of the SOFTWARE to be copied onto other Computers (except as described in article 2.5) unless otherwise authorized in writing by ABBYY.

2.2.5 Make it possible for any person not entitled to use the SOFTWARE to access and/or use the SOFTWARE, including without limitation in a multi-user system, virtual environment, or via the Internet.

2.2.6 Remove, change or obscure any copyright, trademark or patent notices that appear on the SOFTWARE as delivered to You.

2.3 You may not use the SOFTWARE to provide paid or free services based on the SOFTWARE functionality (including recognition, conversion, document capture and classification) and/or to provide the results or access to the results acquired through the use of the SOFTWARE as a part of another service that has the SOFTWARE functionality (including recognition, conversion, document capture and classification) as its component to any third party unless You have entered into a separate written agreement with ABBYY.

2.4 You may not bypass the SOFTWARE’s user interface that is provided with the SOFTWARE, or use the SOFTWARE in aggregate with any other software unless you have entered into a separate written agreement with ABBYY.

2.5 You may only make a one-time permanent transfer of this SOFTWARE directly to another end user. If You are an entity, such a transfer requires written approval by ABBYY. Such transfer must include all of the SOFTWARE (including all copies, component parts, the media and printed materials, and any updates) and this EULA. Such transfer may not be by way of consignment or any other indirect transfer. The transferee of such one-time transfer must agree to comply with the terms of this EULA, including the obligation to not further transfer this EULA and SOFTWARE. You must uninstall the SOFTWARE from Your Computer or from Your local area network in the event of such SOFTWARE transfer.

3. Pre-release, Trial or Demo SOFTWARE

3.1 If the SOFTWARE You have received with this License is a pre-commercial release or Beta-Release Software, provided for a trial or for demonstration, verification or testing purposes, has limited or less than full functionality, labeled “Not for Resale”, “Trial”, “Demo” or was provided at no charge (“Restricted Software”), then this article 3 shall apply until such time that You obtain (purchase) a License for the full version of the SOFTWARE. To the extent that any provision in this is in conflict with any other term or condition in this EULA, this article shall supersede such other term(s) and condition(s) with respect to the Restricted Software, but only to the extent necessary to resolve the conflict.

3.2 THE RESTRICTED SOFTWARE IS PROVIDED TO YOU “AS IS” AND WITHOUT WARRANTY OR INDEMNITY (EXPRESS, IMPLIED OR STATUTORY) OF ANY KIND. THE RESTRICTED SOFTWARE DOES NOT REPRESENT FINAL SOFTWARE FROM ABBYY, AND MAY CONTAIN BUGS, ERRORS AND OTHER PROBLEMS THAT COULD CAUSE SYSTEM OR OTHER FAILURES AND DATA LOSS. TO THE GREATEST EXTENT ALLOWABLE UNDER APPLICABLE LAWS, NO WARRANTY SHALL APPLY TO THE RESTRICTED SOFTWARE, AND FOR CLARITY YOU ACKNOWLEDGE THAT ABBYY DISCLAIMS ANY WARRANTY OR LIABILITY OBLIGATIONS TO YOU OF ANY KIND INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NON-INFRINGEMENT, QUIET ENJOYMENT, AND FITNESS FOR A PARTICULAR PURPOSE. WHERE LIABILITY CANNOT BE EXCLUDED BUT MAY BE LIMITED, ABBYY’S TOTAL LIABILITY AND THAT OF ITS PARTNERS SHALL BE LIMITED TO THE SUM OF FIFTY UNITED STATES DOLLARS (U.S. $50) OR THE TOTAL AMOUNT YOU PAID FOR THE SOFTWARE, WHICHEVER IS GREATER.

3.3 Restricted Software may have limited functionality, such as having functionality for a limited period of time, and upon expiration of permitted functionality (“time-out”), Your access and ability to use the Restricted Software may be disabled. Upon a time-out, Your rights under the EULA shall terminate, unless You obtain a new License from ABBYY.

3.4 Restricted Software for which there has not been a commercial release.

3.4.1 Restricted Software for which there has not been a commercial release constitutes the Confidential Information of ABBYY.

3.4.2 As to Restricted Software for which there has not been a commercial release, ABBYY does not promise or guarantee, has no express or implied obligation, and You acknowledge that ABBYY has not promised or guaranteed, that such software will be further developed, or that a commercial version will be announced or made available in the future. ABBYY may not introduce a software product similar to or compatible with such software. Accordingly, You acknowledge that any use, research or development that You perform regarding such software is done entirely at Your own risk.

3.4.3 You agree to provide feedback to ABBYY regarding testing and use of the Restricted Software, including error or bug reports (“Feedback”), and to entirely transfer and grant to ABBYY all rights in such Feedback, including without limitation, the rights to use, publish and disseminate the Feedback. All Feedback constitutes the confidential information of ABBYY.

3.4.4 Confidentiality of Restricted Software for which there has not been a commercial release and its Results:

You agree not to disclose accompanying written, oral or electronic information divulged to You by ABBYY related to the Restricted Software for which there has not been a commercial release. Any information about the quality of such Restricted Software or the quality of the results acquired through the use of such Restricted Software, Feedback, and any information about bugs, errors and other problems discovered by You in the Restricted Software for which there has not been a commercial release are the confidential information of ABBYY.

3.4.5 You shall not disclose confidential information. The term “disclose” means to display, describe, copy, lease, loan, rent, assign, transfer or provide access, over a network or otherwise, to confidential information reproduced in any form, including oral communications, to any third party.

3.4.6 You shall take all reasonable steps to prevent the disclosure of confidential information and to keep it confidential.

3.4.7 You shall promptly inform ABBYY if You become aware of any disclosure of confidential information. If You are in breach of the terms and conditions set forth in articles 3.4.4-3.4.6 above, You shall compensate ABBYY for any loss resulting from such breach.

3.4.8 Upon receipt of a later version of Restricted Software or a commercial release of such software, whether as a stand-alone product or as part of a larger product, You agree to return or destroy all earlier versions of the Restricted Software received from ABBYY.

3.4.9 If You have been provided the Restricted Software pursuant to a separate written agreement, Your use of the SOFTWARE is also governed by such agreement. To the extent that any term or condition of a separate written agreement, such as the Mutual Non-Disclosure Agreement, are in conflict with any term or condition of this EULA, a separate written agreement shall supersede such other term(s) and condition(s) with respect to the SOFTWARE, but only to the extent necessary to resolve the conflict.

4. Not-for-resale SOFTWARE

4.1 If the SOFTWARE is labeled "Not for Resale" or "NFR," then, notwithstanding other articles of this EULA, You may only use such SOFTWARE for demonstration, verification or testing purposes.

5. Updates

5.1 If the SOFTWARE is labeled as an update, You must own a license for the previous version of the SOFTWARE identified by ABBYY as being eligible for this update in order to use the SOFTWARE.

5.2 The SOFTWARE labeled as an update replaces and/or supplements the product that formed the basis for Your eligibility for the update.

5.3 You may only use the resulting updated product in accordance with the terms of the EULA supplied with the update.

5.4 You acknowledge that any obligation ABBYY may have to support the version of the SOFTWARE being updated shall end upon the availability of the update.

6. Technical Support and Maintenance

6.1 You may be provided with ABBYY technical support and/or maintenance related to the SOFTWARE ("Support Services") subject to conditions of the current ABBYY support policy; however, You may be entitled to a different level of Support Services than is stated in the ABBYY support policy in accordance with a written agreement executed with ABBYY with respect to such Support Services. Also You may be entitled to certain support services by an ABBYY Partner in accordance with an agreement between You and the ABBYY Partner with respect to such support services under the stipulation that the ABBYY Partner’s agreement may not impose additional duties on ABBYY.

6.2 General terms and conditions of the ABBYY support policy are published on the ABBYY Web site www.abbyy.com. ABBYY reserves the right to change the support policy at any time without any prior notice.

6.3 In addition to the general terms and conditions, ABBYY may have specific support policies in specific regions which may be regulated by separate agreements.

6.4 Any supplementary software code and any SOFTWARE component provided to You as part of Support Services is to be considered a part of the SOFTWARE and subject to the terms and conditions of this EULA.

6.5 To be eligible for Support Services,You shall have a valid Support and Maintenance Agreement. If You have no valid Support and Maintenance Agreement, ABBYY reserves the right to withhold delivery of Support Services.

7. Ownership.

7.1 No title to any of ABBYY’s Intellectual Property Rights (including the SOFTWARE and any ABBYY patents, trademarks, or copyrights) is transferred to You. You shall not, in any way, during or after the term of the Agreement, make any use of or claim any right to any name, logo, trademark, pattern, or design owned by ABBYY, or any name, logo, trademark, pattern, or design resembling them.

7.2 No title to any of Your Intellectual Property Rights (including the application and any of Your patents, trademarks, or copyrights) is transferred to ABBYY.

7.3 The SOFTWARE contains valuable trade secrets and confidential information belonging to ABBYY and third parties and is protected by copyright laws, including, without limitation, by United States Copyright Law, laws of Russian Federation, international treaty provisions, and the applicable laws of the country in which it is being used or obtained.

7.4 All title and rights in and to the content that is not contained in the SOFTWARE, but may be accessible through the use of the SOFTWARE, are the property of the respective content owners and may be protected by applicable copyright or other intellectual property laws and international treaties. This EULA does not grant You any Intellectual Property Rights.

8. Limited Warranty: Disclaimers

8.1 If required by the legislation of the country in which You obtained (purchased) the SOFTWARE, ABBYY warrants that the media on which the SOFTWARE is furnished will be free from defects in materials and workmanship under normal use only and only for the minimal guarantee term determined by the legislation of the country in which You obtained (purchased) the SOFTWARE starting from the date You obtained (purchased) the SOFTWARE. If the SOFTWARE was obtained (purchased) in the countries enumerated in article 15.6. this period will constitute thirty (30) days starting from the date You obtained (purchased) the SOFTWARE.

8.2 EXCEPT AS EXPRESSLY PROVIDED IN THIS ARTICLE 8 (LIMITED WARRANTY, DISCLAIMERS), AND EXCEPT FOR ANY WARRANTY, CONDITION, REPRESENTATION, OR TERM TO THE EXTENT TO WHICH THE SAME CANNOT OR MAY NOT BE EXCLUDED OR LIMITED BY LAW APPLICABLE TO YOU IN YOUR JURISDICTION, THE SOFTWARE, (INCLUDING ANY THIRD PARTY SOFTWARE CONTAINED THEREIN), INCLUDING, WITHOUT LIMITATION, ANY SOFTWARE DOCUMENTATION, UPGRADES AND UPDATES IS BEING DELIVERED TO YOU “AS IS” AND ABBYY MAKES NO WARRANTIES, CONDITIONS, REPRESENTATIONS OR TERMS (EXPRESS OR IMPLIED WHETHER BY STATUTE, COMMON LAW, CUSTOM, USAGE OR OTHERWISE) AS TO ANY MATTER, INCLUDING WITHOUT LIMITATION ANY WARRANTIES OF NON-INFRINGEMENT OF THIRD PARTY RIGHTS, MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY, OR FITNESS FOR ANY PARTICULAR PURPOSE, OR THAT THE SOFTWARE WILL CARRY NO ERRORS, MEET YOUR REQUIREMENTS, OR THAT THE SOFTWARE WILL FUNCTION PROPERLY WHEN USED IN CONJUNCTION WITH ANY OTHER SOFTWARE OR HARDWARE. ABBYY DOES NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULT YOU MAY OBTAIN BY USING THE SOFTWARE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE LIES WITH YOU. FURTHERMORE ABBYY MAKES NO WARRANTIES FOR ANY THIRD PARTY SOFTWARE PRODUCTS WHICH MAY BE SUPPLIED WITHIN THE SOFTWARE.

9. Limitation of Liability

9.1 IN NO EVENT WILL ABBYY BE LIABLE TO YOU FOR ANY DAMAGES, BUSINESS INTERRUPTION, LOSS OF DATA OR INFORMATION OF ANY KIND, BUSINESS OR OTHERWISE, CLAIMS OR COSTS WHATSOEVER, OR ANY CONSEQUENTIAL, INDIRECT, INCIDENTAL, SPECIAL OR PUNITIVE DAMAGES, OR ANY LOST PROFITS OR LOST REVENUE RESULTING FROM AND/OR RELATING TO THE USE OF THE SOFTWARE, OR DAMAGES CAUSED BY POSSIBLE ERRORS OR MISPRINTS IN THE SOFTWARE, EVEN IF ABBYY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS, OR FOR ANY CLAIM BY ANY THIRD PARTY. THE FOREGOING LIMITATIONS AND EXCLUSIONS APPLY TO THE EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION. ABBYY’S SOLE AND AGGREGATE LIABILITY UNDER OR IN CONNECTION WITH THE SOFTWARE SHALL BE LIMITED TO THE PURCHASE PRICE ORIGINALLY PAID FOR THE SOFTWARE, IF ANY.

10. Warranty Exclusion and Limitations for Users Residing in Germany or Austria

10.1 If You obtained Your copy of the SOFTWARE in Germany or Austria, and You usually reside in such country, then, in accordance with German law, ABBYY warrants that the SOFTWARE provides the functionalities set forth in its documentation included in the SOFTWARE (the "agreed upon functionalities") for the limited warranty period following receipt of the SOFTWARE copy when used on the recommended hardware configuration. As used in this article, "limited warranty period" means two (2) years if You are a consumer, and one (1) year if not. Non-substantial variation from the agreed upon functionalities shall not be considered and does not establish any warranty rights. This limited warranty does not apply to the SOFTWARE provided to You free of charge, for example, updates, pre-release versions, "Trial" versions, product samples, "Not for resale" ("NFR") copies of the SOFTWARE, or to SOFTWARE that has been altered by You, to the extent such alterations caused a defect. To make a warranty claim, during the limited warranty period You must return, at our expense, the SOFTWARE and proof of purchase to the location where You obtained it. If the functionalities of the SOFTWARE vary substantially from the agreed upon functionalities, ABBYY is entitled (by way of re-performance and at its own discretion) to repair or replace the SOFTWARE. If this fails, You are entitled to a reduction of the purchase price (reduction) or to cancel the purchase agreement (rescission). For further warranty information, please contact ABBYY Europe GmbH, Landsberger Str. 300, 80687 Munich, tel.: +49 89 69 3333-0, e-mail: support@abbyy.com.

10.2 If You obtained Your copy of the SOFTWARE in Germany or Austria, and You usually reside in such country, then:

10.2.1 Subject to the provisions in article 10.2.2, ABBYY’s statutory liability for damages shall be limited as follows: (i) ABBYY shall be liable only up to the amount of damages as typically foreseeable at the time of entering into the purchase agreement in respect of damages caused by a slightly negligent breach of a material contractual obligation and (ii) ABBYY shall not be liable for damages caused by a slightly negligent breach of a non-material contractual obligation.

10.2.2 The limitation of liability set forth in article 10.2.1 shall not apply to any mandatory statutory liability, in particular, to liability under the German Product Liability Act, liability for assuming a specific guarantee or liability for culpably caused personal injuries.

10.2.3 You are required to take all reasonable measures to avoid and reduce damages, in particular to make backup copies of the SOFTWARE and Your Computer data subject to the provisions of this EULA.

11. Warranty Exclusion and Limitations for Users Residing in Australia

11.1 If you obtained Your copy of the SOFTWARE in Australia, and You usually reside in such country then:

11.1.1 ABBYY’s goods come with guarantees that cannot be excluded under the Australian Consumer Law. You are entitled to a replacement or refund for a major failure and for compensation for any other reasonably foreseeable loss or damage. You are also entitled to have the goods repaired or replaced if the goods fail to be of acceptable quality and the failure does not amount to a major failure.

11.1.2 Where ABBYY provides any additional express warranty or warranties with the SOFTWARE, the benefits given to you by such warranty or warranties are in addition to and do not replace your other rights and remedies under the Australian Consumer Law. To make a warranty claim, You must return, at Your expense, the SOFTWARE and proof of purchase to the location where You obtained it, or, where return is not possible, make the SOFTWARE available for inspection by ABBYY or its representative. No claim will be valid under the warranty unless the SOFTWARE has been tested and deemed defective by ABBYY pursuant to the terms of the warranty. If the SOFTWARE is determined to be defective (in the discretion of ABBYY), ABBYY is entitled (at its own discretion) to repair or replace the SOFTWARE. For further warranty information, please contact ABBYY PTY Ltd.: ‘Citigroup Building’ Level 13, 2 Park Street, SYDNEY NSW 2000 Australia, tel.: +61 (02) 9004 7401; e-mail: support@abbyy.com.

11.1.3 Subject to Your rights arising under the Competition and Consumer Act 2010 (Cth) or other similar consumer legislation, You agree that ABBYY will not be liable in respect of any claim by You (whether contractual, tortious, statutory or otherwise) for any direct, special, incidental, indirect or consequential damages or injury including, but not limited to, any loss of profits, contracts, revenue or data arising out of or in connection with the provision of the SOFTWARE or the provision of any other goods or services under this EULA or any other written agreement executed between You and ABBYY or an ABBYY Partner and whether as a result of any breach or default by ABBYY or any negligence of ABBYY. The maximum liability of ABBYY and that of its Partners under this EULA and any other written agreement executed between You and ABBYY or an ABBYY Partner for any and all breaches, and any negligence in relation to such agreements, will be limited to the sum of fifty United States Dollars (U.S. $50) or the total amount You paid for the SOFTWARE, whichever is greater.

11.1.4 If the Competition and Consumer Act 2010 (Cth) (or analogous legislation) applies and permits the limitation of liability for breach of warranty implied by statute, the liability of ABBYY is limited, at the option of ABBYY, to:

11.1.4.1 In the case of goods, any one or more of the following: (i) the replacement of the goods or the supply of equivalent goods; (ii) the repair of the goods; (iii) the payment of the cost of replacing the goods or of acquiring equivalent goods; or (iv) the payment of the cost of having the goods repaired; and

11.1.4.2 In the case of services: (i) the supplying of the services again; (ii) or the payment of the cost of having the services supplied again.

11.1.5 Any of the terms and conditions of this EULA which limit or exclude any term, condition or warranty, express or implied, or the liability of ABBYY will apply to the extent permitted by Australian law and will not be construed as excluding, qualifying or limiting Your statutory rights or remedies arising by virtue of the breach of any implied term of this EULA where such exclusion, qualification or limitation would be prohibited by statute.

11.1.6 If You are a consumer (as defined in the Competition and Consumer Act 2010 (Cth)), then nothing in this EULA restricts, limits or modifies Your rights or remedies against ABBYY for the failure of a statutory guarantee under the Australian Consumer Law where such restriction, limitation or modification would be prohibited by the Competition and Consumer Act 2010 (Cth).

12. Additional Limitations for SOFTWARE obtained in the USA

Government Use. The Licensed Software and related documentation are "Commercial Items", as that term is defined at 48 C.F.R. §2.101, consisting of "Commercial Computer Software" and "Commercial Computer Software Documentation", as such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R. §227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished rights reserved under the copyright laws of the United States.

13. Export rules

You agree that You shall not export or re-export the SOFTWARE in violation of any export provisions in the laws of the country in which this SOFTWARE was purchased or otherwise acquired. In addition, You represent and warrant that You are not prohibited under applicable laws from receiving the SOFTWARE.

14. Third-party software

14.1 Embedded Fonts. Font programs are subject to copyright, and the copyright owner may impose conditions under which a font program can be used. One of the conditions may be that you need a licensed copy of the font program to embed the font into a PDF file. In no event shall ABBYY be liable for any damages arising out of or in connection with your use of embedded fonts.

14.2 Datalogics Software and Adobe Products

14.2.1 Copyright 2000 - 2012 Datalogics, Inc.

Copyright 1984 - 2012 Adobe Systems Incorporated and its licensors. All rights reserved.

14.2.2 The term " Datalogics Software and Adobe Products" means Datalogics Software and third party products (including Adobe Products) and related documentation, and any upgrades, modified versions, updates, additions, and copies thereof.

14.2.3 You acknowledge and agree that third party licensors are the owners of certain proprietary information and intellectual property rights included in the Host Products and the Documentation. Such third party licensors are third party beneficiaries entitled to enforce ABBYY’s rights and your obligations hereunder and to seek appropriate legal and equitable remedies, including but not limited to, damages and injunctive relief, for your breach of such obligations.

14.2.4 License Grant and Restrictions. ABBYY grants you a non-exclusive right to use the Datalogics Software and Adobe Products under the terms of this EULA. You may make one backup copy of the Datalogics Software and Adobe Products, provided the backup copy is not installed or used on any computer.

14.2.5 Intellectual Property Rights. The Datalogics Software and Adobe Products incorporated into the SOFTWARE are owned by Datalogics, Adobe and third parties and their suppliers, and their structure, organization and code are the valuable trade secrets of Datalogics, Adobe and third parties and their suppliers. The Datalogics Software and Adobe Products are also protected by United States Copyright law and International Treaty provisions. You may not copy the Datalogics Software and Adobe Products, except as provided in this EULA. Any copies that you are permitted to make pursuant to this EULA must contain the same copyright and other proprietary notices that appear on or in the Datalogics Software and Adobe Products. You agree not to modify, adapt, translate, reverse engineer, decompile, disassemble or otherwise attempt to discover the source code of the Datalogics Software and Adobe Products. Except as stated above, this EULA does not grant you any intellectual property rights in the Datalogics Software and Adobe Products.

14.2.6 Font License. You may embed copies of the font software into your electronic documents for purpose of printing, viewing and editing the document. No other embedding rights are implied or permitted under this license.

14.2.7 Warranty. ABBYY AND ITS SUPPLIERS DO NOT AND CANNOT WARRANT THE PERFORMANCE RESULTS YOU MAY OBTAIN BY USING THE SOFTWARE.

14.2.8 Export Rules. You agree that the Datalogics Software and Adobe Products will not be shipped, transferred or exported into any country or used in any manner prohibited by the United States Export Administration Act or any other export laws, restrictions or regulations (collectively the “Export Laws”). In addition, if the Datalogics Software and Adobe Products are identified as export-controlled items under the Export Laws, you represent and warrant that you are not a citizen, or otherwise located within, an embargoed nation and that you are not otherwise prohibited under the Export Laws from receiving the Datalogics Software and Adobe Products. All rights to use the Datalogics Software and Adobe Products are granted on condition that such rights are forfeited if you fail to comply with the terms of this EULA.

14.2.9 Governing Law. This EULA will not be governed by the conflict of law rules of any jurisdiction or the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded.

14.2.10 General Provisions. This EULA shall not prejudice the statutory rights of any party dealing as a consumer.

14.2.11 Trademarks. Trademarks appearing herein are either registered trademarks or trademarks of their respective owners in the United States and/or other countries.

14.3 Pixtran (pixtools)

14.3.1 Distribution of any Application shall be pursuant to a written end-user license which

a. grants the end-user only a right to use the Application,

b. protects EMC’s and EMC’s licensors’ intellectual property rights in the Software under all legal theories applicable to the geography where the Application is to be used,

c. provides proper attribution of copyrights to EMC and its licensors, and

d. makes no representations or warranties on behalf of EMC to such end- users. All rights not expressly granted herein are reserved by EMC.

14.4 Cuminas DjVu 3

14.4.1 Portions of this computer program are copyright © 2008 Celartem, Inc. All rights reserved. Portions of this computer program are copyright © 2011 Caminova, Inc. All rights reserved. Portions of this computer program are copyright © 2013 Cuminas, Inc. All rights reserved. DjVu is protected by U.S. Patent No. 6,058,214. Foreign Patents Pending. Powered by AT&T Labs Technology..

14.4.2 You, as the End-User, have the right to use DjVu SDK as part of the SOFTWARE for the entire period of such SOFTWARE copyright or for another lesser term of use, stated in the EULA.

14.4.3 You may not perform or make it possible for other persons to perform reverse engineer, disassemble, decompile (i.e. reproduce and transform the object code into source code) or otherwise attempt to derive the source code for the SOFTWARE or any part, except, and only to the extent, that such activity is expressly permitted by applicable law notwithstanding this limitation. If applicable law prohibits the restriction of such activities, any information so discovered must not be disclosed to third parties with the exception that such disclosure is required by law and such information must be promptly disclosed to ABBYY. All such information shall be deemed to be confidential and proprietary information of ABBYY.

14.4.4 ABBYY MAKES NO WARRANTIES, CONDITIONS, REPRESENTATIONS OR TERMS (EXPRESS OR IMPLIED WHETHER BY STATUTE, COMMON LAW, CUSTOM, USAGE OR OTHERWISE) AS TO ANY MATTER, INCLUDING WITHOUT LIMITATION NON-INFRINGEMENT OF THIRD PARTY RIGHTS, MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY, OR FITNESS FOR ANY PARTICULAR PURPOSE, OR THAT THE SOFTWARE WILL CARRY NO ERRORS, MEET YOUR REQUIREMENTS, OR THAT THE SOFTWARE WILL FUNCTION PROPERLY WHEN USED IN CONJUNCTION WITH ANY OTHER SOFTWARE OR HARDWARE. ABBYY DOES NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULT YOU MAY OBTAIN BY USING THE SOFTWARE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE LIES WITH YOU. FUTHERMORE ABBYY MAKES NO WARRANTIES FOR ANY THIRD PARTY SOFTWARE PRODUCTS WHICH MAY BE SUPPLIED WITHIN THE SOFTWARE.

14.4.5 IN NO EVENT WILL ABBYY BE LIABLE TO YOU FOR ANY DAMAGES, BUSINESS INTERRUPTION, LOSS OF DATA OR INFORMATION OF ANY KIND, BUSINESS OR OTHERWISE, CLAIMS OR COSTS WHATSOEVER, OR ANY CONSEQUENTIAL, INDIRECT, INCIDENTAL DAMAGE, OR ANY LOST PROFITS OR LOST SAVINGS RESULTING FROM AND/OR RELATING TO THE USE OF THE SOFTWARE, OR DAMAGES CAUSED BY POSSIBLE ERRORS OR MISPRINTS IN THE SOFTWARE, EVEN IF AN ABBYY REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS, OR FOR ANY CLAIM BY ANY THIRD PARTY. THE FOREGOING LIMITATIONS AND EXCLUSIONS APPLY TO THE EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION. ABBYY’S SOLE AND AGGREGATE LIABILITY UNDER OR IN CONNECTION WITH THIS EULA SHALL BE LIMITED TO THE PURCHASE PRICE ORIGINALLY PAID FOR THE SOFTWARE, IF ANY.

14.4.6 Limitations for SOFTWARE obtained at the USA.

14.4.6.1 Government Use. If use is made of the SOFTWARE by the United States Government or any US Government agency, the following additional terms shall apply: (1) Restricted Computer Software, as defined in the Rights in Data-General clause at Federal Acquisition Regulations 52.227-14; and (2) any use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (с)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013.

14.4.6.2 Export rules. You agree that You shall not export or re-export the SOFTWARE in violation of any export provisions in the laws of the country in which this SOFTWARE was purchased or otherwise acquired. In addition, You represent and warrant that You are not prohibited under applicable laws from receiving the SOFTWARE.

14.4.7 Third-Party Code:

14.4.7.1 Oniguruma Copyright © 2002-2006 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

14.4.7.2 THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

14.4.7.3 MD5 A portion of this software is derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm. Mersenne Twister Copyright © 2006,2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima University. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the Hiroshima University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

14.4.7.4 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

14.5 WIBU SDK

14.5.1 WIBU, CodeMeter, SmartShelter, SmartBind are registered trademarks of Wibu-Systems.

14.5.2 German export regulations apply in the event of an export of Wibu-Systems products.

14.6 HDPhotoDPK

14.6.1 The technologies of Microsoft Corporation or their parts (hereinafter referred to as the "Microsoft Technologies") listed hereof are used in the SOFTWARE. The Microsoft Technologies are distributed under the Microsoft Software License Terms accompanying the Microsoft Technologies.

14.6.2 Technologies of Microsoft Corporation used in the SOFTWARE:

14.6.2.1 MICROSOFT HD PHOTO 1.O DEVICE PORTING KIT (A.K.A. MICROSOFT WINDOWS MEDIA PHOTO 1.0 DEVICE PORTING KIT)

14.6.3 © 2005-2006 Microsoft Corporation. All rights reserved. Microsoft is either registered trademark or trademark of Microsoft Corporation in the United States and/or other countries.

14.6.4 The Microsoft Technologies are licensed, not sold. This EULA only gives You some rights to use the Microsoft Technologies. Microsoft reserves all other rights. Unless applicable law gives You more rights despite this limitation, You may use the Microsoft Technologies only as expressly permitted in the Microsoft Software License Terms and in this EULA. In doing so, You must comply with any technical limitations in the Microsoft Technologies that only allow You to use it in certain ways. You may not:

14.6.4.1 use the Microsoft Technologies for any other purpose than the one intended. The Microsoft Technologies’ purpose is for the implementation of HD Photo encoders and/or decoders in XML Paper Specification products that comply with and support the HD Photo 1.0 file format (a.k.a. the Windows Media Photo 1.0 file format) as defined in the specification(s) provided in the Microsoft Technologies.

14.6.4.2 publish the Microsoft Technologies for others to copy;

14.6.4.3 rent, lease or lend the Microsoft Technologies;

14.6.4.4 transfer the Microsoft Technologies or this Microsoft Software License Terms to any third party other than as expressly permitted thereunder.

14.6.4.5 Export restrictions. The Microsoft Technologies are subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the Microsoft Technologies. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting

14.7 Microsoft Visual C++ 2015 Runtime Library, Microsoft Visual C++ 2015 OMP Library

14.7.1. The technologies of Microsoft Corporation used in the SOFTWARE:

- Microsoft Visual C++ 2015 Runtime Library

- Microsoft Visual C++ 2015 OMP Library

© Microsoft Corporation. All rights reserved. Microsoft and Visual Studio are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

14.7.2. The Microsoft Technologies are licensed, not sold. The Microsoft Software License Terms and this EULA only give You some rights to use the Microsoft Technologies. Microsoft reserves all other rights. Unless applicable law gives You more rights despite this limitation, You may use the Microsoft Technologies only as expressly permitted in the Microsoft Software License Terms and in this EULA. In doing so, You must comply with any technical limitations in the Microsoft Technologies that only allow You to use it in certain ways. For more information, see www.microsoft.com/licensing/userights. You may not:
• work around any technical limitations in the Microsoft Technologies;
• reverse engineer, decompile or disassemble the Microsoft Technologies, or otherwise attempt to derive the source code for the software except, and solely to the extent: (i) permitted by applicable law, despite this limitation; or (ii) required to debug changes to any libraries licensed under the GNU Lesser General Public License which are included with and linked to by the Microsoft Technologies;
• remove, minimize, block or modify any notices of Microsoft or its suppliers in the Microsoft Technologies;
• use the Microsoft Technologies in any way that is against the law;
• share, publish, rent or lease the Microsoft Technologies, or provide the Microsoft Technologies as a stand-alone hosted solution for others to use.

14.7.3. Export restrictions. Microsoft technologies, online services, professional services and related technology are subject to U.S. export jurisdiction. You must comply with all applicable international and national, laws including the U.S. Export Administration Regulations, the International Traffic in Arms Regulations, Office of Foreign Assets Control sanctions programs, and end-user, end use and destination restrictions by the U.S. and other governments related to Microsoft products, services and technologies. For additional information, see www.microsoft.com/exporting.

14.8 Mapifolders

14.8.1. To support the Microsoft Outlook integration, the technologies of Microsoft Corporation or their parts (hereinafter referred to as the "Microsoft Technologies") are used. The Microsoft Technologies are distributed under the Microsoft Software License Terms accompanying the Microsoft Technologies.

14.8.2. Technologies of Microsoft Corporation used in the SOFTWARE:

MICROSOFT Outlook 2010: MAPI Header Files

© 2009-2010 Microsoft Corporation. All rights reserved. Microsoft is either registered trademark or trademark of Microsoft Corporation in the United States and/or other countries.

14.8.3. The Microsoft Technologies are licensed, not sold. The Microsoft Software License Terms and this EULA only give You some rights to use the Microsoft Technologies. Microsoft reserves all other rights. Unless applicable law gives You more rights despite this limitation, You may use the Microsoft Technologies only as expressly permitted in the Microsoft Software License Terms and in this EULA. In doing so, You must comply with any technical limitations in the Microsoft Technologies that only allow You to use it in certain ways. You may not:

work around any technical limitations in the Microsoft Technologies;

reverse engineer, decompile or disassemble the Microsoft Technologies, except and only to the extent that applicable law expressly permits, despite this limitation;

make more copies of the Microsoft Technologies than specified in the Microsoft Software License Terms and this EULA or allowed by applicable law, despite this limitation;

publish the Microsoft Technologies for others to copy; rent, lease or lend the Microsoft Technologies; or use the Microsoft Technologies for commercial software hosting services. 14.8.4. Export restrictions. The Microsoft Technologies are subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the Microsoft Technologies. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting

14.9 Intel® Parallel Studio XE Composer Edition for C++

The Materials of the Software Intel® Parallel Studio XE Composer Edition for C++ (hereinafter - Materials) are not designed, intended, or authorized for use in any type of a system or application in which the failure of the Materials could create a situation where personal injury or death may occur (e.g., medical systems, life sustaining or lifesaving systems). Should You use the Materials for any such unintended or unauthorized use, You hereby indemnify, defend, and hold Intel and its officers, subsidiaries and affiliates harmless against all claims, costs, damages, expenses, and reasonable attorney fees arising out of, directly or indirectly, such use and any claim of product liability, personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that Intel was negligent regarding the design or manufacture of the Materials.

14.10. Microsoft Outlook 2010 SDK

14.10.1. To support the Microsoft Outlook integration, the technologies of Microsoft Corporation or their parts (hereinafter referred to as the "Microsoft Technologies") listed in paragraph 2 are used. The Microsoft Technologies are distributed under the Microsoft Software License Terms accompanying the Microsoft Technologies.

14.10.2. Technologies of Microsoft Corporation used in the SOFTWARE:

MICROSOFT Outlook 2010: MAPI Header Files

© 2009-2010 Microsoft Corporation. All rights reserved. Microsoft is either registered trademark or trademark of Microsoft Corporation in the United States and/or other countries.

14.10.3. The Microsoft Technologies are licensed, not sold. The Microsoft Software License Terms and this EULA only give You some rights to use the Microsoft Technologies. Microsoft reserves all other rights. Unless applicable law gives You more rights despite this limitation, You may use the Microsoft Technologies only as expressly permitted in the Microsoft Software License Terms and in this EULA. In doing so, You must comply with any technical limitations in the Microsoft Technologies that only allow You to use it in certain ways. You may not:

work around any technical limitations in the Microsoft Technologies;

reverse engineer, decompile or disassemble the Microsoft Technologies, except and only to the extent that applicable law expressly permits, despite this limitation;

make more copies of the Microsoft Technologies than specified in the Microsoft Software License Terms and this EULA or allowed by applicable law, despite this limitation;

publish the Microsoft Technologies for others to copy;

rent, lease or lend the Microsoft Technologies; or

use the Microsoft Technologies for commercial software hosting services.

14.10.4. Export restrictions. The Microsoft Technologies are subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the Microsoft Technologies. These laws include restrictions on destinations, end users and end use. For additional information, see

www.microsoft.com/exporting

15. Governing Law

15.1 If the SOFTWARE was obtained in the United States, Canada, Mexico, Belize, Costa Rica, El Salvador, Guatemala, Honduras, Montserrat, Nicaragua, Panama, Turks and Caicos Islands, Virgin Islands, or Taiwan, this EULA shall be governed by and construed in accordance with the laws of the State of California, United States of America. With respect to any dispute which may arise in connection with this EULA and/or this SOFTWARE, You consent to the exclusive jurisdiction and venue of the federal and/or state courts in the county of Santa Clara in the state of California. For the avoidance of doubt if the SOFTWARE was obtained in the United States, You obtained (purchased) the SOFTWARE from ABBYY USA Software House, Inc.

15.2 If the SOFTWARE was obtained in Japan, this EULA shall be governed by and construed in accordance with the laws of Japan and the parties accept the exclusive jurisdiction of the Tokyo District Court of Japan.

15.3 If the SOFTWARE was obtained in Austria, Belgium, Bulgaria, Croatia, the Czech Republic, Denmark, Finland, France, Hungary, Italy, Germany, Luxembourg, the Netherlands, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, Latvia, Lithuania, Estonia or any other member state of the European Union, that is not directly mentioned in article 15.4 of this EULA, or in Switzerland, Norway, Iceland or Liechtenstein, Albania, Bosnia and Herzegovina, Georgia, Iraq, Israel, the Republic of North Macedonia, Turkey, Serbia, Montenegro, Moldova and Ukraine this EULA shall be governed by and construed in accordance with the substantive law of Germany. The courts of Munich shall have exclusive jurisdiction over all disputes relating to this EULA.

15.4 If the SOFTWARE was obtained in the United Kingdom of Great Britain and Northern Ireland, the Republic of Ireland, the Cayman Islands, Gibraltar, Guernsey, the Isle of Man, Jersey, and the British Virgin Islands this EULA shall be governed by and construed in accordance with the Laws of England and Wales and the parties accept the exclusive jurisdiction of the courts of England and Wales.

15.5 If the SOFTWARE was obtained in Australia, New Zealand, Papua New Guinea, Christmas Island, Cocos (Keeling) Islands, Cook Islands, Fiji, Niue, Norfolk Island, Tokelau this EULA shall be governed by and construed in accordance with the Laws of the State of New South Wales, Australia and the parties accept the exclusive jurisdiction of the State and Federal Courts in the State of New South Wales.

15.6 If the SOFTWARE was obtained in Russia, Belarus, Kazakhstan, or any other country of the CIS, except for Moldova this EULA shall be governed by and construed in accordance with the substantive law in force in the Russian Federation.

15.7 If article 15.6 applies and You are an entity or a sole proprietor (a person who is in business by himself/herself without the use of a company structure or partners and bears alone full responsibility for the actions of the business) the Arbitrazh Court of Moscow, the Russian Federation, shall have exclusive jurisdiction over all disputes relating to this EULA. If article 15.6 applies and You are an individual person, the Butyrsky District Court of Moscow, the Russian Federation, shall have exclusive jurisdiction over all disputes relating to this EULA.

15.8 In the cases described in articles 15.1 - 15.6, this EULA will not be governed by the conflict of law rules of any jurisdiction or the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded.

15.9 If the SOFTWARE was obtained (purchased) in a country other than the countries specified in articles 15.1 - 15.6, this EULA shall be governed by and construed in accordance with the substantive law of the country in which You obtained (purchased) the SOFTWARE.

16. Termination

16.1 Unless otherwise agreed with ABBYY in a separate written agreement or except as otherwise provided by the EULA or the documentation for the SOFTWARE, this EULA is effective in perpetuity from the date which You first demonstrate Your acceptance as provided at the beginning of the EULA or as long as it is permitted under applicable law. To the extent that applicable law requires the statement of an expiration period for this EULA, this EULA will last as long as permitted, but in any event, at least as long as the duration of the SOFTWARE copyright and in this case shall automatically expire without further notice when such time period elapses.

16.2 Without prejudice to any other rights, ABBYY may terminate this EULA if You fail to comply with the terms and conditions of this EULA. In such an event, You must destroy all copies of the SOFTWARE, all of its component parts and remove the SOFTWARE from Your Computers.

16.3 You may terminate this EULA by destroying all copies of the SOFTWARE, all of its component parts and removing the SOFTWARE.

16.4 Such termination does not relieve You of Your obligation to pay for the SOFTWARE. The Definitions and articles 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 and article 3.4.4 shall survive the termination or expiration of this EULA, howsoever caused, but this shall not imply or create any continued right to use the SOFTWARE after termination or expiration of this EULA.

17. Miscellaneous

17.1 In the course of activation, installation, operation, registration and/or technical support and maintenance of the SOFTWARE You may be asked to provide ABBYY with certain personal information (such as but not limited to Your name, company name (if applicable), email address, phone number) and technical information (such as but not limited to characteristics of Your hardware, third party software, Serial number of Your SOFTWARE). You may choose not to provide us with Your personal and/or technical information, in which case You may not be able in the future to obtain technical support or maintenance of the SOFTWARE available to ABBYY customers who provide their personal and/or technical information, if provision of personal and/or technical information is essential to provide You with technical support or maintenance of the SOFTWARE or is a requirement of such technical support or maintenance of the SOFTWARE and it does not contradict applicable law. For example, to provide you with technical support, ABBYY needs to process your email or phone number to communicate with you. You agree that Your personal and/or technical information may be processed (including but not limited to collected and/or otherwise used) by ABBYY and/or its affiliates or ABBYY Partners in compliance with applicable law provided that the confidentiality of the data and data security is maintained if it is required by applicable law. To know more about personal data processing, please see Privacy Policy located at http://www.abbyy.com/privacy.

17.2 You acknowledge that the SOFTWARE may have periodic Internet connection with an ABBYY server to check the status of the SOFTWARE or download additional content, information or components. Such information can be used for security (e.g. fraud prevention) and statistical (e.g. billing and analytical) purposes. ABBYY will take reasonable steps with the goal that no personal information about You or Your Computer will be transferred during such connections.

17.3 ABBYY may send You e-mails containing product and company news, information about special offers, advices on product usage and other product and company-related information provided You consent to receive such information. You may remove Your e-mail address from ABBYY’s mailing list at any time by clicking on the unsubscribe link located at the bottom of each email.

17.4 If any claims or lawsuits are brought against You in connection with Your use of the SOFTWARE, You shall inform ABBYY in writing about them promptly and whenever practicable within three (3) business days from the moment You learn of them. You shall take all necessary actions to enable ABBYY to take part in the proceedings or hearings of or take over the defense of said claims or lawsuits in court or arbitration, and shall provide ABBYY with Your full cooperation and all information ABBYY deems useful or necessary for the defense of settlement of the corresponding claims or lawsuits, promptly upon (and whenever practicable no later than seven (7) days from the moment of) the receipt of an inquiry from ABBYY.

17.5 Unless otherwise agreed by the parties, the Software licensed under this EULA requires the payment of consideration. Consideration under this EULA is the price of the License established by ABBYY or an ABBYY Partner and payable in accordance with the payment procedures established by them, or may be included in value of equipment or hardware obtained by You or is part of the consideration payable by You for the full version of the SOFTWARE.

17.6 If any part of this EULA is found void or unenforceable, it will not affect the validity of the balance of the EULA, which shall remain valid and enforceable according to its terms.


Creating an ABBYY FlexiCapture backup

Show/Hide Hidden Text

ABBYY FlexiCapture stores data in a database and in a file storage. The data stored in the database must always match the data stored in the file storage, otherwise you may not be able to recover cleanly from an unexpected crash. Possible consequences of mismatched data are:

·partial loss of data

·inability to resume processing from where it stopped

These consequences may be avoided by creating a system backup as described below.

Backing up your system

warning Important! The steps below should not be carried out at heavy system loads, as they will take too much time to complete.

To back up your system:

1.For the Application Server, set the FileRemovingDisabled key to true. This will prevent old files from being deleted from the file storage. Wait at least five minutes for your changes to take effect.

2.Create a backup copy of the database using the backup tools indicated by the manufacturer.

3.Using a backup utility like nnBackup, create a backup copy of the data stored in the file storage.

4.Set the FileRemovingDisabled key to false. Now the system will delete any old files when batches are deleted.

How to back up your system using a Windows PowerShell script

# Change Application Server settings to stop deleting old files from file storage

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site/FlexiCapture12/Server' -filter "appSettings" -name "." -value @{key='FileRemovingDisabled';value='false'}

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site/FlexiCapture12/Server' -filter "appSettings/add[@key='FileRemovingDisabled']" -name "value" -value "true"

# Timer for setting to apply

Start-Sleep 5 # in seconds

# Back up SQL databases

$backupFolder = 'D:\SQLBackUps'

$user = 'user'

$pass = 'password'

$inst = 'SQL_Server_Instance_Name'

$db = 'DB_Name'

$file = "$backupFolder\${db}.bak"

$secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force

$cred = New-Object System.Management.Automation.PSCredential ($user, $secpasswd)

Backup-SqlDatabase -ServerInstance $inst -Database $db -Credential $cred -BackupFile $file -Initialize

# Back up file storage

C:\Windows\System32\wbadmin.exe start backup -backuptarget:f: -include:d:\filestorage -quiet -vssCopy

# Change Application Server settings to resume deleting old files from file storage

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site/FlexiCapture12/Server' -filter "appSettings/add[@key='FileRemovingDisabled']" -name "value" -value "false"

note Note: This example uses the Windows wbadmin command to back up the file storage.

Restoring your system

To restore your system after a crash:

1.Prepare the computers for installation and install the system. First, install the external components, then the servers and the stations.

2.Connect your license key or activate your software license.

3.Restore the database on the server.

4.Restore the file storage.

5.Open the Administration and Monitoring Console and establish a connection to the existing database. Then provide the path to the restored database and the path to the restored file storage.

note Note: To migrate the system, administrative privileges are required. It is recommended that all system migration operations are performed by the person who created the database. If migration operations are performed by another person, make sure that this person has permissions to connect to the new server and to access the database on the server.


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _


Working with tasks, batches, and documents

The Operator of a Verification Station can get a task manually by clicking the Get Task button or command, or he may receive a task tacitly as a consequence of some other actions performed on documents related to the task.

Getting a task manually

A Verification Operator can get a task manually by clicking the Get Task button on the toolbar or by clicking the Get Task command on the Task menu. In the Batches view, the command applies to the selected batches. In the Details view, the command applies to the selected documents. Once the task is completed, the program will automatically switch to the Batches view.

Receiving a task as a result of modifying a document

A Verification Operator may receive a task when he starts modifying a document or documents. Modifications that may procure a task for a verification Operator include editing a document, moving or deleting document pages, and recognizing a document.

When a Verification Operator starts modifying documents, the program will check if they are part of a task. If the documents are part of a task assigned to another Operator, modification is canceled and a corresponding notification message is displayed to the Verification Operator. If the documents are part of one and the same task not assigned to another Operator, further processing will be determined by the current stage of the task:

·A task that is currently at the Exceptions or Processed stage will be tacitly received by the Verification Operator. Once the Verification Operator finishes modifying the documents, the task will be released and sent back to its original stage. All the changes made to the documents will be saved.

·For a task that is currently at any stage other than the Exceptions or Processed stages, a warning message is displayed saying that the task is currently at the <QueueName> stage and asking the Verification Operator if he wants to interfere with the processing currently underway. If the Verification Operator clicks Yes, the task is sent to the Exceptions stage. If the Verification Operator clicks No, modification is canceled.

If the documents are part of different tasks not assigned to another Operator, a warning message is displayed asking the Verification Operator if he wants to interfere with the processing currently underway. If the Verification Operator clicks Yes, another warning message is displayed saying that a new task will be created from several other tasks. If the Verification Operator agrees, a new task will be created at the Exceptions stage, the documents will be modified, and the task will remain at the Exceptions stage. All the changes made to the documents will be saved.

warning Important! The icons of documents that are part of some tasks are displayed in gray.

note Note: If the Verification Operator processes one document at a time and all documents in the batch are currently at different processing stages and one of the documents is locked by a task, the Verification Operator will not be able to modify the other documents.


Manual import of images

If required, images can be added into the batch manually on the Verification Station (by the Senior Verification Operator) or on the Project Setup Station. Images are added in batch viewing mode. Open the batch into which you want to add images or simply select this batch in the list.

The following methods are available for adding images into the batch:

·Loading previously saved image files

·Scanning documents

·Importing images by using one of the previously created image import profiles (see Image import profiles)

To add the images, right-click the batch and select the corresponding menu item from the shortcut menu.

Adding images from file

To load images from file, select the Load Images menu item or use the Ctrl+O shortcut. In the dialog box that opens, select the required image files and configure the image import options:

·Create new document new documents will be created for the added images

·Add to current document images will be added to the current, highlighted document.

·You can also select image pre-processing options. Click the Image Processing Settings... button and select the desired options in the dialog box that appears. For details, see Image pre-processing options.

By default document separation and image processing are performed according to the settings specified for the batch type.

Scanning images

To add images from a scanner, select the Scan Images... menu item. Choose a scanner, configure scanning options and scan images.

Adding images with the help of import profiles

If the Administrator has configured import profiles, their names will be shown in the menu of the import button. To start importing images, you only need to select an item with the name of one of the import profiles.

After you select Import Images... the Select Import Profile dialog box opens. Select the import profile from the list and click the Import button to start importing images.