Флаги условий

Ветвление и разбиение инициируется флагом условий, устанавливаемым при запуске правила.

В случае ветвления используйте действие Task_RaiseCondition, чтобы установить флаг условий задачи.

Для разбиения используйте действие SplitBatch, чтобы установить флаг условий задачи косвенным образом.

Ветвление

Ветвление использует два связанных действия: Task_NumberOfSplits и Task_RaiseCondition.

  • Требуется действие Task_NumberOfSplits, задающее число заданий, которым отправляется пакет до возвращения в главный Рабочий поток (почти всегда это значение 1).
  • Действие Task_RaiseCondition устанавливает флаг условий, который определяет, что происходит после выполнения профиля задачи. Например, функция Batch Route To Fixup выполняется только в том случае, если CheckAllIntegrity возвращает значение false. Действие Task_RaiseCondition задает индекс группы (почти всегда 0) и значение индекса условия. Например, у задачи Profiler может быть одно условие, поэтому индекс для этого условия - 0.

Пакет может направлен заданию Fixup, чтобы оператор мог исправить ошибку целостности документов.

Напоминание: Ветвь не возникает, пока не выполнен профиль текущей задачи.

Разбиение

Действие SplitBatch (Разбить пакет) реализует разбиение пакета, а также выставляет флаг условий.
Библиотека Действие Описание
Выделить SplitBatch Создает один или несколько дочерних пакетов, основанных на значении заданной переменной на уровне документов.
Внимание: Действие SplitBatch надо запускать на уровне пакетов.

В отличие от действия ветвления, действие SplitBatch не требует индекса условия. Подразумеваемый индекс условия - всегда 0 (первое условие). Например, у задачи с профилем может быть три определенных условия, и действие SplitBatch всегда использует первое из условий, которое и представляет собой условие разбиения.

Действие SplitBatch использует переменную на уровне документов, заданную параметром действия. Это действие определяет, будет ли документ разбиваться по дочерним пакетам или останется в родительском пакете. В этом примере вы используете переменную документа с именем Split.
SplitBatch("@D.Split")
В этом примере любой документ, у которого есть переменная Split с любым назначенным значением, попадает в дочерний пакет. Более того, значение переменной Split определяет, в какой дочерний пакет идет этот документ. Поэтому документ с <V n="Split">1</V> идет в дочерний пакет 1, а документ с <V n="Split">2</V> - в дочерний пакет 2.
Внимание: Эти значения - не обязательно числовые. Кроме этого, если значение этой переменной одинаково для всех документов, получается один дочерний пакет.

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