- Introducing ABBYY FlexiCapture
ABBYY FlexiCapture architecture
- System requirements
- ABBYY FlexiCapture servers
- ABBYY FlexiCapture stations
- Processing stages and queues
Using scripts in ABBYY FlexiCapture
- Specifics of scripts written in .Net languages
- External assemblies
- Script editor
- Object model
Scripts for customizing processing stages
Types of scripts
- 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
- Batch created
- Batch deleted
- Batch parameter change
- Batch structure change (page added/page deleted/document added/document deleted)
- Pages moved
- Batch opened/closed
- Batch integrity check
- Document parameter changed
- Document state changed
- Export completed
- Script that is run after rule checks
- Before matching
- Field verification request
- Sample scripts
- Internal names of recognition languages
- Types of scripts
Scripts for processing interface events
- On Document Closed
- On Project Closed
- On Activate Document
- On Field Control Activate
- On Return From Task
- On User Command
- On Field Control Deactivate
- On Closing Document
- On Task Close
- On Closing Project
- On Region Change
- On Task Window Mode Changed
- On Open Document
- On Task Window Create
- On Task Reject
- On Region Control Draw
- On Task Send To Stage
- On Text Field Validating
- Event handlers
- User script for Web Verification Station
Application Programming Interface (API)
- About the ABBYY FlexiCapture Application Server Web Services API
- Using the Web Services API of the ABBYY FlexiCapture Application Server
- Batch types
- Licensing tickets
- Document Definitions
- Processing requests to the Application Server
- Working with files
- API Methods
- Web Services Mobile API
Web Services for user account management
- Data types
- User management
- Group management
- Tenant management
- Managing permissions
- Examples of API Use
- Integrating Web Stations into third-party systems
- Configuring additional settings and customizing Web Stations
- About ABBYY FlexiCapture Custom Reports
- Creating custom reports
- Processing of objects
- Access control
- Event Log
- Examples of custom reports
- 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
- Protecting Document Definitions and additional modules
- Third-party technologies
- Technical support
- End-User License Agreement (EULA)
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.
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: Script objects cannot be used after completion of the script because of indeterminate object behavior.
Note: For debugging scripts written in ABBYY FlexiCapture script editor, the MessageBox method can be used.
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: For scripts written in .Net languages, functions from global modules are called by their names without using prefixes.
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:
- Place your RTL text into a user script message or an environment variable.
- 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:
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.
Important! Script execution timeout applies for scripts written in JScript and VBScript only.
Important! To change timeouts for scripts executed under the NetworkService, you need to modify the registry branch for the corresponding user profile.
The object model is compatible with scripts created in earlier versions of ABBYY FlexiCapture.