База знаний

Номер статьи: 1285 | Категория: Настройка проекта | Тип: Вопрос/Ответ | Последнее обновление: 20.08.2013

Обработчики событий для настройки стадий обработки

Файлы для скачивания

Описание

Как могут использоваться Обработчики событий в проектах FlexiCapture? В чем заключаются их отличия от скриптов других типов? Как создать скрипты для обработки событий?

Решение

FlexiCapture 10 позволяет создавать обработчики для событий пакета, документа и поля, т.е. писать скрипты, которые будут вызываться для элемента, если произойдет то или иное событие.

Основное отличие таких обработчиков от других типов скриптов, используемых в FlexiCapture 10 для кастомизации процесса обработки документов, заключается в том, что они не привязаны к какой-либо конкретной стадии обработки. Скрипт обработки события будет выполняться всегда, когда происходит соответствующее событие. Т.е. если написан скрипт для события Перед удалением страницы он выполнится и в случае, если какую-либо страницу удалит оператор на этапе Верификации, и в случае, если страница будет, например, удалена на стадии Исключений. Таким образом, скрипты такого типа целесообразно использовать тогда, когда нужно выполнять определенные действия каждый раз при наступлении некоторого события.

Использование скриптов обработки событий дает дополнительные возможности для настройки сложных сценариев обработки. К примеру, скрипт для обработки события Запрос на верификацию поля дает возможность определить, какие поля не попадут на контекстную верификацию. Добавив скрипт Перед наложением определений документа, можно управлять тем, какие определения накладываются на очередную страницу, задавать порядок наложения разделов и определений. С помощью данного скрипта можно ускорить наложение определения документа, если известно, какие разделы нужно накладывать, например:

Скрипт позволяет отключить распознавание документов после наложения определений документа. Для этого нужно присвоить параметру IMatchingInfo.NeedRecognition значение false. Это может потребоваться, если значения полей будут вводиться вручную.

Возможно также пометить страницу как страницу-приложение без распознавания. Для этого нужно указать пустой список разделов и присвоить параметру IMatchingInfo.ForceMatch значение true.

Как создавать скрипты для обработки событий

Все обработчики событий хранятся в типе пакета.

Настроить их можно на закладке Обработчики событий свойств типа пакета (для типа пакета По умолчанию обработчики событий настраиваются на соответствующей закладке в свойствах проекта). Чтобы добавить скрипт обработки какого-либо события, необходимо выбрать интересующее событие в списке и нажать кнопку Редактировать скрипт…

Если одна и та же процедура будет использоваться в нескольких обработчиках, во избежание дублирования кода она может быть вынесена в глобальный модуль Events (выбрать в выпадающем списке на панели инструментов редактора скриптов).

В скриптах обработки событий допускается использование методов и классов из внешних сборок. Для этого они должны быть подключены на закладке .Net references свойств типа пакета (или свойств проекта для типа пакетов По умолчанию). Подробнее о поддержке .Net в FlexiCapture 10 см. в этой статье.

FlexiCapture 10 позволяет создавать скрипты обработки для следующих событий:

1)     События пакета

2)     События документа

3)     События поля

Подробнее о каждом событии можно почитать в справке: Приложения → Использование скриптов в ABBYY FlexiCapture 10 → Использование скриптов для настройки стадий обработки → Типы скриптов → Обработчики событий.

Стоит отдельно отметить, что практически из всех данных скриптов недоступны внутренние поля документов и страниц. Таким образом, скрипты обработки событий не позволяют изменять эти данные. Если есть такая необходимость, то нужно использовать скриптовую стадию обработки. Исключениями являются события Перед перемещением страниц и После изменения состояния документа. Из скриптов обработки этих событий могут быть изменены внутренние данные (поля, свойства) целевого документа (это может быть нужно в том случае, если в документе есть вычисляемые поля).

В архиве EventHandlers.rar можно найти 2 примера использования скриптов для обработки событий:

 

525 считают это полезным.
Была ли эта информация вам полезна?