Подробную информацию о фильтрах в целом см. в разделе Описание фильтров.
Используйте этот фильтр, если триггер получает неструктурированные данные, например документы и отчеты, экспортированные из устаревшей системы, перехваченный обмен данными между устройствами и захваченный поток печати. Фильтр позволяет извлекать отдельные поля, поля в повторяющихся подобластях и даже пары имя-значение
.
Примеры структурированных текстовых данных см. в разделах Устаревшие данные, Составной CSV и Двоичные файлы.
![]() |
Задание структуры
Для настройки фильтра можно использовать следующие элементы:
-
Поле. Задает местоположение данных поля между началом поля и концом поля. Предусмотрены различные способы задания местоположения поля от жесткого программирования положения до относительного размещения. Необходимо сопоставить заданные поля с соответствующими переменными в действии Использовать фильтр данных. Дополнительные сведения см. в разделе Задание полей.
-
Подобласть. Задает местоположение повторяющихся данных. Каждая подобласть задает как минимум один блок данных, который содержит данные для этикеток. Можно задать подобласти внутри подобластей, что позволяет задавать сложные структуры. Можно задать поля в каждом блоке данных. Необходимо сопоставить заданные поля с соответствующими переменными в действии. Для каждой подобласти Automation задает новый уровень заполнителя в действии «Использовать фильтр данных», позволяя сопоставить переменные с полями этого уровня. Дополнительные сведения см. в разделе Задание подобластей.
-
Область задания. Задает местоположение повторяющихся данных, содержащих пары
имя-значение
. Automation одновременно считывает имена полей и их значения. Automation также автоматически выполняет сопоставление с переменными. Эта функция позволяет настроить фильтр для работы с изменяющимся входными данными, чтобы не пришлось каждый раз выполнять операции вручную. Область задания можно определить на корневом уровне документа или внутри подобласти. Дополнительные сведения см. в разделе Настройка областей задания.
Раздел «Предпросмотр данных» упрощает процесс настройки. При каждом изменении конфигурации на панели предварительного просмотра выделяется результат применения заданного правила фильтра. Можно увидеть, какие элементы данных извлекаются каждым правилом.
Поля можно задать на корневом уровне как поля документа. Поля можно задать внутри блока данных. Внутри области задания можно определить пары имя-значение
.
![]() |
Общие
В этом разделе задаются общие свойства фильтра неструктурированных данных.
-
Имя. Задает имя фильтра. Используйте описательное имя, которое указывает роль фильтра в конфигурации. Имя можно изменить в любое время.
-
Описание. Позволяет описать назначение фильтра. В этом поле можно вкратце объяснить, что делает фильтр.
-
Кодирование. Задает кодировку данных, с которыми работает фильтр.
-
Игнорировать пустые строки в блоках данных. Не выдавать ошибки, если фильтр извлекает из блоков данных пустые значения полей.
Создав поле, необходимо задать его имя и правила для извлечения значений поля из данных. При выполнении фильтра к входным данным применяются правила извлечения, которые присваивают результат полю.
![]() |
Свойства поля
-
Имя. Уникальное имя поля.
-
Поле содержит бинарные данные. Указывает на то, что поле содержит двоичные данные. Не включайте этот параметр, если не ожидаете получения двоичных данных.
Начало поля
-
Положение в документе. Жестко заданное положение в данных, которое определяет начальную/конечную точку. Положение отсчитывается от левого верхнего угла. Символ, находящийся в заданной позиции, добавляется в извлеченные данные.
-
Конец документа. Начальная/конечная точка находится в конце документа. Можно также задать смещение от конца документа на указанное количестве строк и/или символов.
-
Найти строку с начала документа. Положение искомой строки определяет начальную/конечную точку. После того как Automation находит строку, следующий символ определяет начальную/конечную точку. Искомая строка не включается в извлеченные данные. По умолчанию поиск выполняется с учетом регистра.
-
Начать поиск с абсолютной позиции. Для более точной настройки поиска можно указать смещение начальной позиции относительно начала данных (положение 1,1). Эта функция позволяет пропустить начальную часть данных при поиске.
-
Случай. Указывает интересующее вас вхождение строки поиска. Используйте этот параметр, если не хотите устанавливать начальную/конечную позицию после нахождения первой строки.
-
Смещение относительно строки. Определяет положительное или отрицательное смещение относительно конца искомой строки.
Пример 6. Пример
Можно задать смещение таким образом, чтобы включить искомую строку в извлекаемые данные.
-
Конец поля
-
Положение в документе. Жестко заданное положение в данных, которое определяет начальную/конечную точку. Положение отсчитывается от левого верхнего угла. Символ, находящийся в заданной позиции, добавляется в извлеченные данные.
-
Конец документа. Начальная/конечная точка находится в конце документа. Можно также задать смещение от конца документа на указанное количестве строк и/или символов.
-
Найти строку с начала документа. Положение искомой строки определяет начальную/конечную точку. После того как Automation находит строку, следующий символ определяет начальную/конечную точку. Искомая строка не включается в извлеченные данные. По умолчанию поиск выполняется с учетом регистра.
-
Начать поиск с абсолютной позиции. Для более точной настройки поиска можно указать смещение начальной позиции относительно начала данных (положение 1,1). Эта функция позволяет пропустить начальную часть данных при поиске.
-
Случай. Указывает интересующее вас вхождение строки поиска. Используйте этот параметр, если не хотите устанавливать начальную/конечную позицию после нахождения первой строки.
-
Смещение относительно строки. Определяет положительное или отрицательное смещение относительно конца искомой строки.
Пример 7. Пример
Можно задать смещение таким образом, чтобы включить искомую строку в извлекаемые данные.
-
-
Найти строку после начала поля. Начальная/конечная точка определяется положением искомой строки в параметре Найти строку с начала документа, однако поиск начинается после начальной позиции поля/области, а не с начала данных.
-
Длина. Определяет длину данных, выраженную в строках и/или символах. Указанное количество строк и/или символов будет извлечено от начальной позиции.
-
Конец строки. Извлечение данных от начальной позиции до конца той же строки. Можно задать отрицательное смещение относительно конца строки.
Параметры форматирования
В этом разделе задаются функции обработки строк, которые применяются к выбранным переменным или полям. Можно выбрать одну или несколько функций. Эти функции применяются в том же порядке, в котором они выбраны в пользовательском интерфейсе — сверху вниз.
-
Удалить пробелы в начале: удаляет все пробелы (десятичный код ASCII 32) в начале строки.
-
Удалить пробелы в конце: удаляет все пробелы (десятичный код ASCII 32) вконце строки.
-
Удалить открывающий и закрывающий символы: удаляет первое вхождение выбранных открывающих и закрывающих символов, найденных в строке.
Пример 8. Пример
Если в качестве открывающего символа используется «{», а в качестве закрывающего символа используется «}», входная строка
{{selection}}
преобразуется в{selection}
.
-
Найти и заменить: выполняет стандартную функцию поиска и замены по предоставленным значениям параметров Образец и Заменить на. Можно использовать регулярные выражения.
Примечание
Существует несколько реализаций регулярных выражений. В для регулярных выражений используется синтаксис .NET Framework. Дополнительные сведения см. в статье базы знаний.
-
Заменять непечатные символы пробелами: заменяет все непечатаемые символы в строке символом «пробел» (десятичный код ASCII 32). Непечатаемые символы — это символы с десятичными кодами ASCII в диапазоне 0–31 и 127–159.
-
Удалить непечатные символы: удаляет из строки все непечатаемые символы. Непечатаемые символы — это символы с десятичными кодами ASCII в диапазоне 0–31 и 127–159.
-
Декодировать специальные символы: декодирует недоступные на клавиатуре символы (или управляющие коды), такие как возврат каретки или перевод строки. использует определенную нотацию для кодирования таких символов в удобочитаемой форме, например <CR> для возврата каретки и <LF> для перевода строки. Дополнительные сведения см. в разделе Ввод специальных символов (управляющих кодов).
Эта функция преобразует специальные символы с синтаксисом в фактические двоичные символы.
Пример 9. Пример
При получении последовательности данных <CR><LF> использует их как простую строку из 8 символов. Включите этот параметр, чтобы интерпретировать и использовать полученные данные как два двоичных символа
CR
(возврат каретки — код ASCII равен 13) иLF
(перевод — код ASCII равен 10).
-
Найти и удалить все до. Поиск предоставленной строки и удаление всех символов с начала данных до начала строки. Найденная строка также может быть удалена.
-
Найти и удалить все после: поиск предоставленной строки и удаление всех символов, следующих после конца строки и до конца данных. Найденная строка также может быть удалена.
-
Изменение регистра: применяет для всех знаков в строках верхний или нижний регистр.
Подобласть — это раздел данных, который включает несколько блоков данных, определяемых одним и тем же правилом извлечения. Каждый блок данных предоставляет данные для одной этикетки.
Все блоки данных должны определяться одним и тем же правилом конфигурации. Каждый блок данных может содержать другую подобласть. Можно задать неограниченное количество вложенных подобластей в родительских подобластях.
Если фильтр содержит определение подобласти, действие Использовать фильтр данных отображает подобласти с вложенными заполнителями. Все действия, вложенные в такие заполнители, выполняются только для блоков данных на этом уровне. Возможна печать разных этикеток с данными из разных подобластей.
![]() |
Настройка подобласти
Для задания подобласти используются правила, аналогичные правилам для отдельных полей. Каждая подобласть определяется следующими параметрами.
-
Имя подобласти. Задает имя подобласти.
-
Блоки данных. Задает определение блоков данных в подобласти. Каждая подобласть содержит как минимум один блок данных. Каждый блок данных предоставляет данные для одной этикетки.
-
Каждый блок содержит фиксированное количество строк. Указывает на то, что каждый блок данных в подобласти содержит заданное фиксированное количество строк. Используйте этот параметр, если знаете, что каждый блок данных содержит одинаковое количество строк.
-
Блоки начинаются со строки. Указывает на то, что блоки данных начинаются с заданной строки. Все содержимое, расположенное между двумя указанными строками, представляет отдельный блок данных. Содержимое между последней строкой и концом данных представляет последний блок данных.
-
Блоки заканчиваются строкой. Указывает на то, что блоки данных заканчиваются заданной строкой. Все содержимое, расположенное между двумя указанными строками, представляет отдельный блок данных. Содержимое между началом данных и первой строкой представляет первый блок данных.
-
Блоки разделены строкой. Указывает на то, что блоки данных разделены выбранной строкой символов. Все содержимое, расположенное между двумя выбранными строками, представляет отдельный блок данных.
-
-
Начало первого блока данных. Задает начальную позицию первого блока данных. Одновременно с этим параметр задает начальную позицию подобласти. Обычно начальная позиция также является началом полученных данных. Параметры конфигурации совпадают с параметрами конфигурации полей. Дополнительные сведения см. в разделе Задание полей.
-
Конец последнего блока данных. Задает конечную позицию последнего блока данных. Одновременно с этим параметр задает конечную позицию подобласти. Обычно конечная позиция находится в конце полученных данных. Параметры конфигурации совпадают с параметрами конфигурации полей. Дополнительные сведения см. в разделе Задание полей.
Настройка полей внутри подобласти
Для настройки полей внутри подобласти используются те же параметры, что и для полей, заданных на корневом уровне. Дополнительные сведения см. в разделе Задание полей.
Примечание
Номера строк полей обозначают положение в блоке данных, а не положение во входных данных.
Предпросмотр данных
В этом разделе представлен предварительный просмотр определения поля. Если выбран заданный элемент, его размещение выделяется в окне предпросмотра данных.
-
Имя файла предварительного просмотра. Задает файл с образцами данных, которые будут обрабатываться фильтром. Файл предварительного просмотра копируется из определения фильтра. Если изменить имя файла предпросмотра, сохраняется новое имя файла.
-
Открыть. Выбор другого файла, к которому требуется применить правила фильтра.
-
Обновить. Повторное применение правил фильтра к содержимому файла предварительного просмотра с указанным именем. Automation обновляет раздел «Предпросмотр данных», отображая результат применения.
Фильтр неструктурированных данных автоматически выявляет поля и их значения в полученных данных. Это позволяет не сопоставлять переменные с полями вручную.
Динамическая структура оказывается полезной, если триггер получает данные с изменяющейся структурой. В этом случае основная структура данных остается неизменной (например, поля разделяются запятой) или сохраняет ту же структуру, но изменяется порядок и/или количество полей. Могут появиться новые поля или некоторые из старых полей могут быть удалены. Благодаря включению параметра Динамическая структура фильтр автоматически определяет структуру полученного файла. В то же время фильтр считывает имена и значения полей (пары имя:значение
) из данных. Это позволяет не сопоставлять переменные с полями вручную.
Действие Использовать фильтр данных не предлагает никаких параметров сопоставления, потому что оно выполняет сопоставление динамически. Вам даже не нужно задавать переменные этикетки в конфигурации триггера. Действие присваивает значения полей переменным этикетки с тем же именем, не требуя импортировать переменные из этикетки. Однако это правило применяется только к действию Печать этикетки. Чтобы использовать значения полей в любом другом действии, необходимо задать переменные в триггере, сохранив при этом автоматическое сопоставление переменных с полями.
Примечание
Если у поля во входных данных нет соответствующей переменной этикетки, это не является ошибкой. просто игнорирует отсутствующие переменные, не выдавая никаких предупреждений.
![]() |
Настройка области задания
Процедура настройки области задания аналогична процедуре настройки подобласти. Дополнительные сведения см. в разделе Задание подобластей. Область задания можно определить на коневом уровне данных, чтобы она использовалась только один раз. Ее также можно настроить внутри подобласти, чтобы она выполнялась для каждого блока данных в подобласти.
Настройка полей в области задания
При создании области задания фильтр автоматически создает два заполнителя. Эти два заполнителя задают пару имя:значение
.
-
Имя переменной. Задает поле, содержимое которого используется в качестве имени переменной (компонент
имя
в паре). Настройте поле, используя такую же процедуру, как для полей документа. Дополнительные сведения см. в разделе Задание полей. -
Значение переменной. Задает поле, содержимое которого используется в качестве значения переменной (компонент
значение
в паре). Настройте поле, используя такую же процедуру, как для полей документа. Дополнительные сведения см. в разделе Задание полей.
Пример
Область между ^XA и ^XZ является областью задания. Каждая строка в области задания предоставляет пару имя:значение
. Имя определено как значение между 6м символом строки и знаком равенства. Значение определено как значение между знаком равенства и концом строки с отрицательным смещением в три символа.
^XA ^FD01DonationHR=G095605 3412625^FS ^FD02DonationBC=DG0956053412625^FS ^FD03HospitalNoHR=HN060241^FS ^FD04HospitalNoBC=060241^FS ^FD05Surname=Hawley^FS ^FD07Forename=Annie^FS ^FD09Product=Blood^FS ^FD10PatientBlGp=O Rh +ve^FS ^FD11DoB=27 June 1947^FS ^FD12DateReqd=25 Dec 2012^FS ^XZ