Russian (Русский) - Change language

Использование скриптов в ABBYY FlexiCapture

В данном разделе описано использование скриптов для настройки этапа обработки и для настройки интерфейса станций в ABBYY FlexiCapture.

Поддерживаемые языки

ABBYY FlexiCapture поддерживает написание скриптов на следующих языках: C#.Net, VisualBasic.Net, JScript.Net, JScript ®, JScript.Compact и VBScript.

Особенности .Net скриптов

Особенности использования

В языке VBScript нулевой параметр передается с ключевым словом "Me", в языке JScript для передачи нулевого параметра используется ключевое слово "this". В .Net скриптах нулевой параметр передается как обычный параметр.

Для каждого типа скрипта заведомо известны права на все параметры скрипта. Эти права определяют подмножество методов, доступных из скриптов. При обращении к методам объектов права на возвращаемые объекты всегда наследуются из исходного объекта, за некоторыми исключениями, описанными в комментарии к соответствующим методам.

Замечание. Объекты скрипта не должны использоваться после завершения скрипта, так как в этом случае поведение объекта становится неопределенным.

Замечание. Для отладки скриптов, написанных в редакторе скрипта в ABBYY FlexiCapture, можно использовать метод MessageBox.

Пользовательские функции

Редактор скрипта позволяет создавать собственные функции и процедуры и вызывать их в дальнейшем из кода скрипта.

Для создания пользовательской функции можно воспользоваться одним из предложенных способов:

  • с помощью Visual Studio собрать библиотеку *.dll и подключить ее к проекту FlexiCapture (подробнее см. Внешние сборки);
  • записать функцию в глобальный модуль, доступный из редактора кода скрипта (для этого следует в выпадающем списке на панели инструментов редактора скриптов выбрать доступный глобальный модуль: Модуль для правил, Модуль для экспорта, Events или NonInteractiveProcessor.)

Для вызова функции из глобального модуля следует воспользоваться скриптом экспорта. Также глобальный модуль правил доступен из Редактора определения документа, меню Определение документа → Скриптовые модули → Экспорт....

Особенности использования

Все функции внутри одного модуля должны быть написаны на одном языке. Основной код скрипта может быть написан на языке, отличном от используемого в соответствующем глобальном модуле.

Из скриптовых языков JScript ®, JScript.Compact и VBScript можно вызвать глобальную функцию, написанную на любом из этих языков. Например, можно из кода правила на VBScript вызывать функцию из глобального модуля, написанного на JScript.

Из скриптов, написанных на языках .Net, можно вызывать глобальные функции, также написанные на языках .Net (C#.Net, VisualBasic.Net или JScript.Net).

Для обращения к функциям глобальных модулей нужно использовать префиксы Rules, Export, Events и NonInteractiveProcessor соответственно. Например, функция DoSomething из модуля Модуль для правил вызывается следующим образом: Rules.DoSomething ().

Замечание. Для скриптов на языках .Net вызов функций глобальных модулей осуществляется без использования префикса.

Таймаут на выполнение скрипта

По умолчанию заданы следующие таймауты – 10 секунд для скриптов правил и 30 секунд для скриптов экспорта.

Для изменения значения таймаута необходимо задать новое значение в следующей ветви реестра:

HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller\ScriptSupport\DefaultScriptTimeout

Значение таймаута в реестре задается в миллисекундах. Если скрипт выполняется дольше, чем заданный таймаут, то его выполнение будет прервано и возникнет ошибка "Таймаут выполнения скрипта". Для скриптов, являющихся частью задачи импорт, распознавания, или экспорта, аналогичное сообщение будет записано в лог.

Внимание! Таймаут на выполнение скрипта действует только для скриптов, написанных на языках JScript и VBScript.

Внимание! Если скрипт выполняется под сервисом NetworkService, то для изменения значения таймаута нужно вносить изменения в ветвь реестра соответствующего профиля.

Объектная модель

Объектная модель совместима со скриптами, созданными в предыдущих версиях ABBYY FlexiCapture.

Подробнее об используемой объектной модели

10/9/2020 8:50:47 AM


Please leave your feedback about this article