База знаний

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

Расширенная маршрутизация. Условия перехода

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

Описание

Как условия перехода помогают настроить процесс обработки? Как добавить скрипты маршрутизации?

Решение

Задание условий перехода позволяет настраивать сложные сценарии обработки, к примеру, когда документы переходят на ту или иную стадию в зависимости от результата их обработки на предыдущем этапе. Наиболее распространенный пример использования – это настройка перехода на стадию верификации только тех документов, для которых процент неуверенно распознанных символов превышает определенный порог.

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

1)     Условия входа

На данной закладке можно указать, когда документы будут попадать на данную стадию. Эта настройка доступна для всех типов стадий обработки, за исключением стадий Exceptions и ProcessedПоскольку все документы, которые в процессе обработки по какой-либо причине были отправлены на стадию Исключений (Exceptions), всегда должны туда попадать; аналогично и для документов, обработка которых закончена (стадия Processed).
Как видно на скриншоте, существует 3 возможности: «Документы попадают на стадию:

Очевидно, что если для некоторой стадии выбрана опция «всегда», то все документы, приходящие на эту стадию согласно настроенной маршрутизации, будут обработаны в рамках текущей стадии.

Если для стадии выбрана опция «никогда», то документы будут просто пропускать данную стадию и переходить на следующий этап, согласно настроенной маршрутизации. Данные настройки могут применяться, к примеру, для стадии пересканирования (Rescanning), куда документы могут попасть будучи «принудительно» отправленными, например, оператором верификации.

Если для стадии выбрана опция «при определенных условиях», то возможность обработки документа на данной стадии будет определяться путем проверки некоторых правил. Если правило не выполняется, то документ переходит на следующую стадию согласно схеме маршрутизации. К примеру, такие правила обычно всегда задаются для стадии верификации данных (Data Verification): перед переходом на этап для каждого документа выполняется проверка, есть ли в нем требующие верификации символы, ошибки правил; если ответ отрицательный – стадия пропускается. Такие правила по умолчанию добавлены для стадий верификации и верификации данных. О типах правил и работе с ними будет рассказано ниже.

Если для стадии выбрана опция «никогда» или «при определенных условиях», то в списке стадий, которые участвуют в процессе маршрутизации, возле названия этой стадии отображается синий кружок:

 

В данном примере для стадии пересканирования (Rescanning) отмечена опция «никогда», а для стадии верификации (Verification) – «при условиях».

2)    Пути выхода

На данной закладке можно указать способ определения следующей стадии для документа. Данная настройка доступна для всех типов стадий обработки, за исключением Exceptions, Rescanning и Processed.
Стадия Processed не предполагает дальнейшей обработки документов; после стадии Пересканирования (Rescanning) документы, вновь добавленные в пакет, должны быть распознаны, поэтому следующей стадией всегда является Recognition; а на стадии Exceptions оператор сам решает на какой этап следует отправить пакет).

Как видно на скриншоте, существует 2 варианта определения следующей стадии:

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

 

Такой вариант выбора следующей стадии может использоваться, например,  в сложных сценариях, когда обработка в какой-то момент распараллеливается, но в итоге все документы должны оказаться на одной и той же стадии. Настройки для подобного примера отображены на скриншоте ниже: документы поступают на различные стадии распознавания в зависимости от их класса, но затем все попадают на этап верификации. Для стадии Recognition Others переход на станцию Verification настроен вышеописанным образом.

 

Также для стадии может быть задан список тех этапов, на которые документы должны будут перейти в случае выполнения некоторых условий:

 

Первоначально выполняется проверка именно этих условий. В случае, когда ни одно из условий не выполнено, программа определяет на какую стадию отправить документы, используя заданный пользователем вариант (согласно схеме маршрутизации или определенная пользователем стадия).

По умолчанию для каждого этапа в такой список добавлена стадия исключений (Exceptions). Для нее настроено правило, согласно которому, если на текущей стадии задание НЕ было обработано успешно, пакет отправляется в исключения.

Чтобы добавить стадию в этот список, необходимо нажать на кнопку Стадия… (Stage…), далее в открывшемся диалоговом окне из выпадающего списка выбрать нужную стадию и  задать необходимые правила:

 

Стадии можно редактировать, удалять, а также менять порядок их следования в списке. Порядок стадий в списке определяет последовательность проверки соответствующих им правил (правила проверяются «сверху вниз»).

Чтобы создать условия перехода на выбранную стадию, необходимо создать правило, нажав кнопку Правило… (Rule…).
После создания правила можно редактировать, удалять, а также менять порядок следования нескольких правил в списке. Порядок правил определяет последовательность их проверки. Правила могут быть объединены в группы. Подробнее о типах правил и групп будет рассказано ниже.

Правила маршрутизации.

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

Стандартные правила позволяют задать простые условия, согласно которым переход на стадию будет осуществляться в результате их выполнения/невыполнения. В качестве таких условий может выступать успешное выполнение задания на стадии, отсутствие ошибок сборки документа и др. При создании правила необходимо выбрать нужное условие из предложенного списка.  Именно с помощью такого правила реализован вышеописанный переход на стадию исключений.

С помощью скриптов маршрутизации можно задать сложные условия перехода, использующие значения полей и регистрационных параметров документа или пакета и т.п. Скрипт работает для каждого документа в отдельности, поэтому соседние документы «подсмотреть» нельзя. Например, можно создать скрипт, который будет допускать на стадию только те документы, для которых выставлен соответствующий регистрационный параметр.

Начиная с 4-ого релиза, для того чтобы пояснить причину перехода пакета на стадию, из скрипта маршрутизации к пакету может быть добавлен комментарий. При этом никакие другие данные пакета с помощью этого скрипта изменены быть не могут. К примеру, нельзя добавлять регистрационные параметры, изменять значения полей и др. Данные пакета при необходимости могут быть изменены на скриптовой стадии. Если в ходе выполнения скрипта маршрутизации происходит ошибка, то документы отправляются на этап исключений.

Можно создавать не только отдельные правила, но и объединять их в группы. Для каждой группы правил задается условие выполнения: если выполнено, по крайней мере, одно правило из группы, или если выполнены все правила. Возможность объединения правил в группы упрощает описание условий перехода между стадиями. Вместо того чтобы создавать одно громоздкое правило, можно создать группу из нескольких простых. В подобной группе проще проследить структуру (особенно в случае хорошего наименования правил) и ее легче редактировать.

Например, при переходе на стадию Верификации (Verification) нужно выполнить целый ряд проверок: посмотреть, есть ли требующие верификации символы и поля, ошибки правил и сборки. Логично в таком случае создать отдельное правило для каждой проверки, а затем объединить их в одну группу. Данная группа будет считаться выполненной, если выполнено хотя бы одно из входящих в ее состав правил:

Подробнее о расширенной маршрутизации см. статью.

В архиве RoutingScripts.rar находятся 2 примера проектов FC:

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