SimpleExport преобразует индексные файлы CSV, TSV и IDX в XML, HTML или другой текстовый формат по шаблону XSLT, сопоставляет столбцы с полями целевой системы и одновременно обрабатывает связанные документы: копирует, перемещает, оставляет на месте либо встраивает их в XML как Base64.
Рабочее окно строится вокруг одного задания преобразования. Пользователь указывает индексный файл, путь результата, папку связанных изображений и XSLT-шаблон, затем задаёт имена и типы полей, разделитель и переменные, от которых зависит структура выходных каталогов и содержимое создаваемого файла.
Настройку можно проверить интерактивным запуском, сохранить в файле задания SEJ и повторять без ручного ввода. Для потоковой обработки предусмотрены маски файлов, несколько источников, добавление данных к существующему результату, журнал операций, запуск из командной строки и обработка по расписанию через службу Windows.
Скачать SimpleExport
- Редактирование PDF
- Русский интерфейс
- Просто новичкам
- Только Windows
- Автоматизация платная
- Нужны знания XSLT
Как устроено преобразование данных
SimpleExport решает задачу, которая возникает между системой захвата документов и хранилищем: первая выдаёт таблицу индексных значений и пути к файлам, а второе ожидает собственный XML, BIF или иной структурированный пакет. Программа читает строки разделённого файла, разбирает колонки, формирует внутреннее представление данных и передаёт его XSLT-шаблону. Именно шаблон определяет имена узлов, вложенность, служебные атрибуты, форматирование значений и расположение ссылок на документы. Благодаря этому одна и та же таблица может быть подготовлена для разных систем без изменения исходного экспорта.
Важная особенность процесса состоит в совместной обработке метаданных и связанных файлов. В индексной строке один столбец обозначается как IMAGEPATH и хранит полный либо относительный путь к изображению, PDF или другому документу. Во время преобразования программа может перенести этот файл в каталог назначения, сделать копию, оставить его там, где он находится, или закодировать содержимое в Base64 и поместить непосредственно в создаваемый XML. Поэтому результат представляет собой не только таблицу полей, но и согласованный пакет, где ссылки соответствуют фактическому расположению документов.
XSLT применяется после разбора разделённого текста, поэтому автору шаблона не требуется вручную писать парсер CSV. Он работает с уже структурированными элементами и сосредоточивается на схеме целевого формата. Такой подход особенно удобен при миграции из архивов сканирования: имена колонок и порядок полей описываются в задании, а логика формирования Datagroup, BIF, DII или собственного XML хранится отдельно. При изменении требований можно заменить шаблон, не перестраивая процедуру выгрузки из исходной системы.

Главное окно и порядок заполнения
Верхняя группа Input содержит четыре ключевых пути. Поле Index File указывает источник индексных данных; Output File задаёт создаваемый файл или шаблон пути к нему; Image Folder определяет базовый каталог для связанных документов; XSLT File выбирает таблицу стилей преобразования. Рядом с каждым путём расположена кнопка Browse, поэтому при ручной настройке необязательно вводить длинные каталоги с клавиатуры. Ниже находятся две строки Fields, выбор разделителя, кнопка Run и таблица Variables.
Заполнять форму удобнее сверху вниз. Сначала выбирают небольшой тестовый индексный файл, в котором есть две-три типичные записи. Затем задают выходной путь в отдельной временной папке, чтобы первая проверка не затронула рабочий архив. После выбора XSLT-шаблона открывают диалог Fields и сверяют количество колонок. Лишь когда поля распознаны правильно, настраивают переменные и правила обращения с файлами. Такой порядок быстро отделяет ошибки чтения CSV от ошибок логики XSLT.
Строка состояния в нижней части окна показывает путь к открытому файлу задания и имя используемого шаблона. Она помогает заметить, что оператор редактирует не тот SEJ-файл, особенно когда для нескольких подразделений созданы похожие конфигурации. Перед запуском полезно проверить не только видимые значения, но и меню Options: параметры добавления, резервного копирования, удаления обработанных индексов и дубликатов сохраняются вместе с заданием и способны существенно изменить итог обработки.

Подготовка индексного файла
CSV, TSV и IDX
Источником служит текстовый файл, где одна строка соответствует одному документу, а значения разделены одинаковым символом. На практике это CSV с запятыми, TSV с табуляцией или журнал IDX, сформированный системой захвата. Расширение само по себе не определяет способ чтения: решающими являются фактический разделитель, порядок колонок и наличие кавычек. Поэтому файл с расширением CSV, но с точкой с запятой между значениями, надо настраивать как файл с точкой с запятой, а не полагаться на название.
В поле Index File разрешены маски. Например, маска для всех IDX-файлов в каталоге позволяет обработать несколько завершённых партий одним запуском. Несколько отдельных источников можно перечислить через вертикальную черту. Это полезно, когда журналы формируются в разных подпапках или когда в один пакет требуется включить несколько конкретных файлов. При этом все перечисленные источники должны иметь совместимую структуру колонок, иначе единая схема Field Names и Field Types не сможет корректно описать каждую строку.
Для тестирования лучше создать копию реального индексного файла и оставить в ней записи с русскими буквами, датами, пустыми значениями, длинными путями и кавычками внутри текста. Если преобразование проходит только на упрощённом примере, проблема может проявиться уже на рабочей партии. Проверка крайних случаев заранее показывает, как XSLT обрабатывает отсутствующее поле, как целевая система воспринимает дату и не нарушает ли разделитель текстовое значение.
Разделитель и кавычки
Параметр Delimiter задаёт символ между полями. Список позволяет выбрать распространённый вариант, но допускает и собственное значение. Кавычки вокруг текстовых полей распознаются автоматически, поэтому запятая внутри заключённого в кавычки названия не должна считаться новой колонкой. Однако автоматическое распознавание не исправляет повреждённый CSV: незакрытая кавычка или неодинаковое число разделителей в строках приведёт к смещению полей и требует исправления источника.
Если после нажатия Fields в первой колонке отображается целая строка, почти всегда выбран неверный разделитель. Если, наоборот, одно текстовое значение распалось на две колонки, следует проверить кавычки в исходном файле и соответствие символа-разделителя. Табуляция нередко выглядит как несколько пробелов, поэтому её лучше проверять в редакторе, который показывает непечатаемые знаки. После изменения Delimiter диалог Fields нужно открыть снова, чтобы убедиться, что разбор действительно изменился.

Строка заголовков
Пункт Skip Header Row исключает первую строку каждого входного файла. Его включают, когда в CSV первая строка содержит названия колонок, а не данные документа. Если заголовка нет, включённый параметр silently потеряет первую запись партии. Обратная ошибка тоже заметна: при выключенном параметре заголовки попадут в результат как фиктивный документ, а IMAGEPATH может содержать буквальное слово имени колонки и вызвать ошибку поиска файла.
При использовании маски настройка применяется к каждому найденному файлу. Следовательно, смешивать источники, где часть файлов имеет заголовок, а часть нет, нельзя без предварительного выравнивания. Надёжнее договориться об одном формате экспорта или разделить обработку на два задания. Это особенно важно для ночной автоматизации, где диалог с предупреждением не виден оператору, а ошибочная первая строка может повторяться во всех партиях.
Сопоставление колонок и типов
Две строки Field Names и Field Types описывают входной файл позиционно. Значения разделяются вертикальной чертой и должны идти в том же порядке, что и колонки источника. Если в CSV шесть колонок, в обеих строках должно быть шесть элементов. Перестановка имени без перестановки типа меняет смысл данных: номер счёта может оказаться датой, а путь к документу — обычным текстом. Поэтому ручное редактирование длинных строк лучше заменять диалогом Fields.
Кнопка Fields читает пример входной строки и показывает три колонки: исходные значения, назначенные имена и выбираемые типы. Пользователь видит данные рядом с настройкой, что снижает риск ошибиться в позиции. Имена можно вводить в текстовые поля, типы выбираются из раскрывающихся списков. Команда Save переносит схему в основное окно, Clear очищает настройки, а Close закрывает диалог без дополнительных изменений.

Обычные типы Text, Number и Date
Text подходит для идентификаторов, названий, адресов и любых значений, которые целевая система должна хранить как строку. Number используют там, где предполагаются числовые сравнения, а Date — для дат и времени с последующим диапазонным поиском. Назначение типа влияет прежде всего на формируемые метаданные и ожидания шаблона. Оно не превращает произвольную строку в корректное число или дату, поэтому формат входного значения должен соответствовать правилам целевой системы.
Коды с ведущими нулями следует оставлять текстом. Если номер дела 000184 объявить числом, целевое хранилище может сохранить его как 184, и поиск по напечатанному коду перестанет работать. Аналогично, строка 2026-08 может быть периодом, а не датой. Тип выбирают по назначению поля, а не по тому, что значение состоит из цифр. Для дат желательно заранее использовать единый однозначный формат и проверить результат на машине с теми же региональными настройками, где будет выполняться автоматизация.
IMAGEPATH, PAGECOUNT, BATCHID и SKIP
IMAGEPATH — обязательный специальный смысл для колонки, содержащей путь к связанному документу. Путь может быть абсолютным либо относительным. При относительном значении программа ищет файл относительно каталога индексного файла или указанной базовой папки. Без правильно назначенного IMAGEPATH метаданные могут преобразоваться, но документ не будет найден, скопирован или встроен. При нескольких файловых колонках шаблон и схема задания должны явно учитывать, какая из них является основным документом.
PAGECOUNT сообщает число страниц файла. Это значение требуется не для чтения самого документа, а для форматов назначения, где количество страниц хранится в индексной записи. BATCHID отмечает идентификатор партии, который обычно не используется как поисковое поле и может быть пропущен шаблоном. SKIP применяют к лишней колонке: она остаётся в исходном файле, но не импортируется для поиска. Такой вариант безопаснее, чем удалять колонку из экспорта и рисковать нарушить совместимость с другими потребителями.
Специальные имена и типы следует задавать согласованно. Если колонка названа IMAGEPATH, но получила тип Text, логика работы со связанным файлом может не сработать так, как ожидается. В демонстрационном примере схема содержит последовательность ACCOUNT, CUSTOMER, NAME, IMAGEPATH, PAGECOUNT и BATCHID, а типы повторяют её смысл. При поиске ошибки полезно сравнить обе строки символ за символом и убедиться, что число элементов одинаково.
Выходной файл и XSLT-шаблон
Что задаёт Output File
Output File может быть конкретным XML или BIF-файлом, а также путём с переменными, из которых создаются подпапки и имена результатов. Для формата PaperVision используется datagrp.xml, размещаемый в каталоге номера datagroup. В путь можно подставлять значения пользовательских переменных, например идентификатор компании и последовательный номер. Это позволяет одному заданию раскладывать результаты по структуре, которую ожидает импортёр, без ручного создания каждого каталога.
Перед рабочим запуском нужно определить, будет ли новый результат заменять старый, дополнять его или создаваться отдельно для каждой партии. Параметр Append Automatically добавляет данные к существующему выходному файлу. Параметр Backup Source File сохраняет предыдущий результат с расширением BAK перед изменением. Такая резервная копия особенно важна при повторной загрузке: ошибочный XSLT или неверный фильтр может иначе заменить корректный XML, а восстановить его по исходным индексам получится не всегда быстро.
Роль XSLT
В XSLT File выбирается таблица стилей, которая получает разобранные записи и формирует требуемую структуру. Шаблон отвечает за корневые элементы, вложенность документов, повторяющиеся узлы, атрибуты, константы, преобразование дат и условный вывод. SimpleExport не является визуальным конструктором XSLT: готовый файл можно выбрать и использовать, но сложную логику приходится редактировать как код в подходящем XML-редакторе. Поэтому перед внедрением желательно иметь тестовый набор входа и эталонный результат.
Встроенные шаблоны предназначены для распространённых систем управления документами, включая PaperVision и ImageSilo, ViewWise, Laserfiche, DocuBase и формат DII для Concordance. Наличие шаблона сокращает стартовую настройку, но не гарантирует совпадение с конкретной конфигурацией репозитория. Идентификаторы проекта, названия полей, ограничения длины и правила каталогов всё равно требуется сверить с администратором целевой системы.
Для собственного формата практично разделять неизменяемую структуру и параметры. Названия элементов, циклы по документам и условия остаются в XSLT, а идентификаторы проекта, имя компании, максимальное число полей и номер партии выносятся в Variables. Тогда один шаблон можно применять в нескольких заданиях, меняя только значения в таблице. Это уменьшает количество почти одинаковых XSLT-файлов и упрощает проверку изменений.
Пользовательские переменные
Таблица Variables хранит пары Name и Value. Кнопка с плюсом добавляет строку, кнопка с крестом удаляет выбранную. Значение редактируется через пункт EDIT в раскрывающемся списке: открывается отдельное окно, куда вводят текст и подтверждают его. Переменные могут подставляться в выходной путь и использоваться XSLT как дополнительные метаданные или условия. В примере заданы CompanyID, CompanyName, MaxFields, Number, ProjectID и ProjectName.
Имена переменных должны совпадать с обращениями в XSLT и с обозначениями в пути Output File. Опечатка не всегда вызывает понятное сообщение: подстановка может остаться пустой, каталог получится не тем или шаблон создаст элемент без значения. Поэтому при передаче задания другому сотруднику полезно хранить рядом краткое описание каждой переменной и допустимого формата. Числовой вид значения в таблице не означает автоматическую проверку диапазона; ограничение должен контролировать шаблон или целевая система.
При изменении переменной важно сохранять задание, иначе следующий запуск из ярлыка или службы использует старое значение из SEJ. Для повторяющихся проектов удобно открыть готовый SEJ, изменить только идентификатор и выходной каталог, затем выполнить Save As под новым именем. Если же конфигурация должна служить исходной основой для многих заданий, её сохраняют через Save As Template, чтобы новые SEJ создавались из SET без случайного изменения эталона.

Работа со связанными файлами
Copy, Move, Leave и Base64
В подменю Source Files выбирается одно из четырёх действий. Copy помещает копию документа в каталог назначения и сохраняет исходник. Move переносит файл и удаляет его из прежнего места после успешной операции. Leave не копирует и не перемещает документ, поэтому выходные данные должны ссылаться на существующее расположение. Convert To base64 читает файл, кодирует его и включает содержимое в XML, не создавая отдельной копии в каталоге результата.
Для первой настройки безопаснее Copy. Этот режим позволяет сравнить результат и исходную партию, не рискуя потерять документы. Move выбирают только после того, как проверены права, свободное место, политика дубликатов и процедура восстановления. Leave подходит, когда репозиторий импортирует документы по доступному сетевому пути или когда их перенос выполняет другой процесс. Base64 удобен для формата, который принимает единый XML-пакет, но резко увеличивает размер результата и требования к памяти импортёра.

Полные и относительные пути
Если IMAGEPATH содержит полный путь, Image Folder обычно не нужен. Если в поле записано только имя файла или относительная подпапка, Image Folder задаёт корень, от которого строится фактический путь. Например, значение \Subfolder\FileName.TIF требует базового каталога, внутри которого существует указанная структура. Параметр Alternate File Folder выполняет сходную роль при запуске из командной строки и позволяет временно заменить расположение документов, не меняя индексный файл.
Пути с пробелами работают при правильном сохранении задания, а в командной строке их необходимо заключать в кавычки. Сетевые диски, назначенные буквой в интерактивном сеансе, могут быть недоступны службе Windows. Для автоматической обработки надёжнее использовать UNC-путь и учётную запись службы с правами чтения источника и записи в назначение. Если ручной запуск успешен, а служба не находит файлы, различие контекста доступа проверяют одним из первых.
Структуру относительных каталогов можно использовать для формирования иерархии в ViewWise. Путь вида \Folder1\Folder2\Folder3\FileName.TIF передаёт уровни, которые могут стать cabinet, drawer и folder. Этот сценарий требует стабильной глубины и однозначных имён. Лишний уровень или разделитель в исходной строке изменит назначение документа, поэтому структуру следует валидировать до массовой загрузки.
Дубликаты и повторная обработка
Подменю Duplicates содержит Overwrite, Save Both и Prompt. Overwrite заменяет существующий файл без вопроса. Save Both добавляет к имени последовательный суффикс вида -0001, -0002 и сохраняет обе версии. Prompt показывает диалог и позволяет заменить, пропустить или отменить обработку. Выбор должен соответствовать смыслу повторной записи: исправленный скан часто заменяет прежний файл, а новая часть многоэтапного документа должна сохраняться рядом.
Save Both полезен при накоплении документов с одинаковыми индексными полями. В PaperVision такие файлы могут появиться как несколько строк с одинаковой метаинформацией, после чего их объединяют функцией Merge. Это не универсальное слияние страниц внутри SimpleExport; программа лишь предотвращает конфликт имён и передаёт обе записи. Если целевая система не умеет объединять или различать такие элементы, лучше заранее формировать уникальное имя в XSLT либо в исходном экспорте.
Prompt подходит для ручного контроля небольших партий, но блокирует полностью автоматический процесс. Если служба встретит дубликат и ожидает ответа, очередь может остановиться незаметно для оператора. Для фоновой работы выбирают детерминированное правило Overwrite или Save Both и включают журнал. Одновременно надо решить, удалять ли обработанные индексные файлы: преждевременное удаление усложнит повторный запуск после ошибки на стороне репозитория.

Запуск одного преобразования
Кнопка Run и команда Convert File выполняют текущее задание. При первой проверке желательно выключить Silent Mode, не удалять обработанный индекс и не использовать Move. После завершения сравнивают количество входных строк с количеством созданных записей, проверяют существование каждого связанного файла и открывают XML в валидаторе. Если целевая система предоставляет тестовый импорт, пакет сначала загружают туда, а не в рабочий репозиторий.
Параметр Prompt When Finished выводит сообщение об успешном окончании партии. Он удобен при ручной работе, но по умолчанию отключён, чтобы фоновый процесс не ожидал закрытия диалога. Silent Mode закрывает окно после завершения задания. В сочетании с ярлыком или внешним сценарием это позволяет запускать преобразование без оставшегося окна, однако диагностика при ошибке становится зависимой от журнала.
Проверка результата должна охватывать не только синтаксис XML. Следует убедиться, что даты интерпретированы верно, ведущие нули сохранились, русские символы не искажены, пустые поля представлены ожидаемым способом, а подставленные переменные относятся к нужному проекту. Для Base64 сравнивают размер и контрольную сумму восстановленного файла. Для Copy и Move проверяют, что путь в выходных данных совпадает с фактическим именем после разрешения дубликатов.
Файлы заданий SEJ и шаблоны SET
SEJ сохраняет пути входа и выхода, схему полей, разделитель, переменные и параметры меню. Команда New создаёт новое задание из SET-шаблона, Open открывает сохранённое, Save записывает изменения в текущий файл, Save As создаёт копию под другим именем. Такое разделение удобно для эксплуатации: один SEJ соответствует конкретному потоку документов, а SET служит основой для однотипных потоков.
Имена файлов заданий стоит делать содержательными: указывать систему назначения, тип документов и среду, например тестовую или рабочую. Хранение нескольких SEJ с названием sample приводит к ошибочным запускам, особенно из планировщика. Папку конфигураций желательно защищать от случайной записи, но оставить служебной учётной записи право чтения. Резервная копия должна включать SEJ, SET, XSLT и описание переменных, иначе восстановление только одного файла задания не вернёт всю логику.
При переносе конфигурации на другой компьютер абсолютные пути почти наверняка потребуют изменения. Нужно проверить XSLT File, Image Folder, Output File и все значения Variables, содержащие каталоги. После переноса выполняют ручной тест с копиями документов, а затем уже включают автоматический режим. Использовать старый SEJ без проверки опасно: он может записать результат в доступный, но неправильный сетевой каталог.

Параметры меню Options
Append Automatically добавляет новые записи в существующий выходной файл. Этот режим подходит для накопительного datagrp.xml, но требует XSLT, который корректно работает с уже созданной структурой. Если шаблон рассчитан на создание полного документа с нуля, простое добавление может дать несколько корневых элементов или нарушить закрывающие теги. Перед включением параметра нужно проверить именно повторный запуск, а не только создание первого файла.
Backup Source File сохраняет существующий выходной файл с расширением BAK. Название пункта может сбивать с толку: речь идёт о резервировании файла результата перед изменением. При накопительном сценарии BAK становится быстрым способом отката к предыдущему состоянию. Следует контролировать, перезаписывается ли старая резервная копия при каждом запуске, и при необходимости дополнительно архивировать результаты по времени внешним средством.
Remove Processed Index Files удаляет индексные файлы после обработки и предотвращает повторное чтение маской. Этот параметр включают только после стабильного тестирования. Сам факт создания XML не всегда означает, что пакет принят целевой системой, поэтому в критичном процессе лучше сначала перемещать исходные индексы в архивный каталог внешним сценарием после подтверждения импорта. Если удаление всё же выполняет SimpleExport, журнал и резервное копирование должны позволять доказать, какие партии были обработаны.
Enable Processing Log создаёт журнал в общей папке данных Simple Software. Для Windows 7, Vista и более новых систем семейства путь начинается с ProgramData; старые конфигурации использовали общий Application Data. Журнал нужен для автоматизации, где сообщения интерфейса не видны. Его следует включать на этапе внедрения и периодически проверять объём: бесконтрольное накопление текстовых файлов способно занять системный диск.

Автоматическая обработка
Проверка каталога каждую минуту
Команда Start Automatic Processing запускает периодическую проверку примерно раз в минуту, а Stop Automatic Processing останавливает её. Вместе с маской Index File это образует простую очередь: система захвата помещает новый индекс в наблюдаемый каталог, SimpleExport находит его, создаёт результат и при необходимости удаляет обработанный индекс. Чтобы программа не схватила файл в момент записи, источник должен сначала формировать его под временным именем, а после закрытия атомарно переименовывать в маску очереди.
Автоматический каталог следует разделять на вход, результат, архив и ошибки. Если выходной XML создаётся в той же папке и подходит под входную маску, возможна повторная обработка собственных файлов. Нельзя также направлять Move в каталог, откуда другой процесс ещё читает документы. Чёткая схема папок и права только на необходимые операции снижают риск циклов, удаления и гонок между программами.
Служба Windows
Install Service регистрирует обработчик как службу. Подменю Service Control позволяет запустить, остановить, перезапустить или удалить службу. Этот режим не зависит от открытого пользовательского окна и подходит для постоянного потока. Перед установкой задание должно быть сохранено, пути доступны служебной учётной записи, а все интерактивные запросы устранены выбором фиксированных правил дубликатов и отключением завершающих диалогов.
Перезапуск службы применяют после изменения конфигурации или для восстановления зависшего процесса. Если пункты Stop и Restart неактивны, служба, вероятно, не запущена; если неактивен Start, она уже работает. Удаление службы прекращает системный запуск, но не удаляет SEJ и XSLT. Для диагностики сначала проверяют журнал SimpleExport, затем журнал событий Windows и права доступа к сетевым ресурсам.

Ограничения автоматизации
Командная строка и фоновая служба доступны после активации расширенных возможностей. Интерактивное создание шаблонов, разовое преобразование и Base64 остаются доступными без них. Это важно при выборе режима: для редкой миграции можно подготовить и запускать задания вручную, а круглосуточный обмен между сканированием и репозиторием требует лицензии, которая разрешает unattended processing.
Даже при лицензированной автоматизации программа не заменяет полноценный диспетчер очередей. В интерфейсе нет визуального графа зависимостей, централизованного мониторинга нескольких серверов и сложных ветвлений по ошибкам. Надёжность строится на простых папках, стабильном XSLT, журналировании и внешнем контроле появления результата. Для сотен разнородных потоков лучше рассмотреть ETL-платформу, а SimpleExport оставить там, где требуется прямое и предсказуемое преобразование индексных файлов.
Запуск из командной строки
Командная строка предназначена для автоматического преобразования IDX и CSV, прежде всего в XML Datagroup. Обычно достаточно параметра /c с путём к сохранённому SEJ, потому что имена и типы полей задаются именно в конфигурации. Параметр /f временно указывает другой входной файл, /a — альтернативную папку связанных документов, /m переводит запуск в ручной режим и запрещает немедленную unattended-обработку.
Значения с пробелами заключаются в кавычки. Типовая команда передаёт SEJ, конкретный индекс и каталог изображений. В настройке PostProc системы захвата можно использовать переменные текущего журнала и выходной папки, чтобы после завершения сканирования автоматически запустить SimpleExport для этой партии. Критично формировать уникальное имя индексного файла, иначе новая партия перезапишет предыдущую или будет дважды добавлена к одному результату.
Код завершения и наличие выходного файла следует контролировать внешним сценарием. Silent Mode закрывает окно, но сам по себе не уведомляет администратора о неверных данных. Практичный wrapper записывает время запуска, имя SEJ и входного файла, ждёт завершения процесса, проверяет появление результата и только затем перемещает индекс в архив. При сбое исходник остаётся в каталоге ошибок для повторной обработки после исправления.
Типовые рабочие сценарии
Передача партии сканов в PaperVision или ImageSilo
Система захвата создаёт IDX или CSV, где для каждого документа записаны поля поиска, путь к файлу и число страниц. В SimpleExport назначают IMAGEPATH, PAGECOUNT и BATCHID, выбирают шаблон Datagroup, задают CompanyID, ProjectID и номер группы в Variables. Output File строят так, чтобы datagrp.xml оказался в ожидаемой подпапке. Документы копируют в каталог импорта, а после тестового запуска проверяют, что количество элементов XML соответствует строкам индекса.
Для накопительного импорта включают Append Automatically и резервную копию. Если документ с тем же именем может появиться повторно, заранее выбирают Overwrite или Save Both. Prompt не подходит для службы. После успешного импорта внешний процесс должен архивировать исходный IDX и журнал, чтобы можно было воспроизвести состав партии. Удаление входа сразу после преобразования допустимо только при наличии другого надёжного архива.
Формирование ViewWise BIF
Для ViewWise выходным результатом служит BIF, а относительная структура пути может задавать cabinet, drawer и folder. Входные документы должны лежать в предсказуемой иерархии, а IMAGEPATH сохранять нужные сегменты. XSLT-шаблон формирует строковую структуру BIF и подставляет индексные значения в порядке, который ожидает проект. Перед массовой загрузкой проверяют документ с каждым вариантом глубины каталога и с символами, допустимыми в именах Windows, но нежелательными в целевой системе.
Если файловая структура не должна определять хранилище, пути лучше нормализовать заранее и передавать cabinet, drawer и folder отдельными колонками. Тогда изменение расположения исходных изображений не меняет классификацию. SimpleExport не вычисляет бизнес-иерархию сам: он использует значения файла и правила XSLT, поэтому неоднозначные соглашения об именах надо устранить до преобразования.
Конвертация обычного CSV в XML, HTML или текст
Программа применима и без системы сканирования. Любой разделённый файл можно преобразовать в XML, HTML или форматированный текст, если XSLT описывает результат. Колонку пути к документу всё равно требуется учесть, когда с записью связан файл; для чисто табличных данных шаблон может обходиться без операции копирования. Пользователь получает повторяемое задание, которое одинаково преобразует новые выгрузки с той же структурой.
Для HTML шаблон формирует разметку таблицы, заголовки и представление пустых значений. Для текстового формата XSLT выводит строки с нужными разделителями и служебными блоками. При этом SimpleExport не редактирует содержимое PDF и не извлекает текст из документов: он преобразует индексные данные и управляет файлами по указанным путям. Это различие важно, чтобы не ожидать от него OCR, объединения страниц или визуальной правки PDF.
Встраивание документа в Base64
Режим Base64 нужен, когда принимающая система ожидает бинарное содержимое внутри XML. XSLT размещает закодированную строку в соответствующем элементе, а отдельный файл не копируется. Перед внедрением проверяют максимальный размер XML у импортёра, доступную память и время разбора. Base64 увеличивает объём по сравнению с исходными байтами, поэтому партия из крупных многостраничных PDF может стать неудобной для передачи и диагностики.
Тест включает обратное декодирование одного документа и сравнение контрольной суммы с оригиналом. Если суммы различаются, проверяют, не обрезает ли шаблон строку, не вставляет ли переносы в недопустимом месте и не ограничивает ли целевая система длину поля. Для больших файлов часто практичнее Copy с внешней ссылкой, а Base64 оставить для небольших вложений или формата, где единый пакет является обязательным.
Проверка XSLT и качества результата
Разрабатывать шаблон удобнее поэтапно. Сначала выводят простой XML, где каждая входная колонка видна под собственным именем. Затем добавляют вложенность целевой схемы, переменные и условные элементы. В конце подключают обработку файлов и каталоги. Такой порядок позволяет локализовать ошибку: если простой вывод неверен, проблема в разделителе или сопоставлении; если он верен, а итоговая схема нет, искать нужно в XSLT.
Эталонный набор должен содержать хотя бы один обычный документ, запись с пустым необязательным полем, значение с разделителем внутри кавычек, длинное имя, дату на границе месяца, число с ведущими нулями и дубликат имени файла. Для каждой записи заранее фиксируют ожидаемый XML и действие с файлом. После изменения шаблона выполняют регрессионный тест всего набора, а не одного удобного примера.
XML проверяют на well-formed структуру и, если доступна XSD, на соответствие схеме. Затем выполняют пробный импорт в целевую систему. Валидный XML может быть семантически неверным: поле Customer окажется в ProjectName, дата загрузится как текст, а путь укажет на недоступный сервер. Поэтому окончательным критерием является поиск и открытие документа после импорта, а не только отсутствие синтаксической ошибки.
Диагностика распространённых проблем
Поля сдвинуты или имеют неверное количество
Когда Field dialog показывает одну колонку вместо нескольких, проверяют Delimiter. Когда колонок слишком много, ищут неэкранированный разделитель внутри текста или незакрытые кавычки. Если проблема возникает только на отдельных строках, сравнивают число разделителей в корректной и ошибочной записи. SimpleExport ожидает одинаковую структуру, поэтому строку с дополнительной колонкой нельзя надёжно исправить одной схемой Field Names.
Заголовок, попавший как данные, устраняется включением Skip Header Row. Исчезнувшая первая запись, наоборот, означает, что параметр включён для файла без заголовка. При маске проверяют каждый источник: один файл с иной структурой способен создать впечатление случайной ошибки. Для разных форматов создают отдельные SEJ, даже если целевой XML одинаков.
Связанный файл не найден
Сначала смотрят фактическое значение IMAGEPATH и определяют, полный оно содержит путь или относительный. Для относительного пути проверяют Image Folder и Alternate File Folder. Затем убеждаются, что специальный тип назначен правильной колонке и имя файла совпадает с регистром и расширением. Windows обычно не различает регистр, но сетевое хранилище или последующий импортёр может различать.
Если ручной запуск находит документ, а служба нет, проверяют права учётной записи службы и сетевой путь. Буква диска, подключённая пользователем, может отсутствовать в служебном сеансе. UNC-путь и явные права на чтение и запись обычно устраняют расхождение. Для Move дополнительно нужны права удаления в источнике; их отсутствие может оставить файл на месте даже при созданном результате.
Результат перезаписывается или повреждается при добавлении
Неожиданная замена связана с Overwrite либо одинаковым Output File для нескольких партий. Нежелательное накопление вызывается Append Automatically. При повреждении XML после второго запуска проверяют, поддерживает ли XSLT добавление к существующему документу. Параметр Backup Source File позволяет сравнить предыдущий файл с новым и увидеть место, где нарушилась структура.
Несколько параллельных запусков не должны писать в один и тот же результат. Если две службы или два задания открывают общий datagrp.xml, возможна гонка и потеря части записей. Потоки разделяют по папкам или уникальным номерам, а объединение выполняют контролируемо после завершения. Последовательный суффикс дубликатов решает конфликт имён документов, но не конфликт одновременной записи в один XML.
Неверные даты, числа и кодировка
Дата может импортироваться неверно из-за неоднозначного порядка дня и месяца. Используют однозначный формат и проверяют его в XSLT. Идентификаторы с ведущими нулями объявляют Text. Если русские символы искажены, сравнивают кодировку входного файла, выходную декларацию XML и кодировку, которую выдаёт XSLT. Простая смена шрифта проблему не исправляет, потому что искажение происходит на уровне байтов и объявления encoding.
При формировании HTML также задают корректную метаинформацию кодировки в шаблоне. Для текстового выхода нужно знать, ожидает ли получатель UTF-8 или системную кодовую страницу. Программа применяет XSLT, но совместимость с конкретным импортёром зависит от того, что объявлено и фактически записано. Проверку проводят в шестнадцатеричном или специализированном редакторе, а не только в Блокноте, который может автоматически угадывать кодировку.
Служба не запускается или не обрабатывает очередь
Проверяют, установлен ли сервис, доступен ли пункт Start и сохранён ли SEJ. Затем включают Processing Log и смотрят общую папку данных. Если журнал не появляется, исследуют журнал событий Windows и права на каталог программы. Если журнал есть, но входы не обнаруживаются, проверяют маску, расширение, Skip Header Row и то, что файл полностью закрыт источником до появления в очереди.
При изменении задания службу перезапускают, чтобы она перечитала параметры. Интерактивные опции Prompt When Finished и Prompt для дубликатов отключают. Silent Mode влияет на закрытие окна, но не заменяет правила ошибки. Для постоянного контроля внешний монитор может проверять возраст самого старого входного файла и уведомлять администратора, если очередь не уменьшается.
Безопасная эксплуатация
Наиболее рискованные параметры — Move, Overwrite и Remove Processed Index Files. Каждый из них необратимо изменяет состояние источника или назначения. Внедрение начинают с Copy, Save Both и сохранения индексов. После нескольких успешно импортированных партий правила ужесточают только при необходимости. Рабочая папка должна резервироваться независимо от BAK, потому что BAK защищает один выходной файл, а не все документы и конфигурации.
XSLT и SEJ следует считать исполняемой конфигурацией. Изменение одного условия способно направить документы в другой проект или удалить ожидаемые элементы. Доступ на запись дают ограниченному кругу сотрудников, изменения фиксируют в системе контроля версий или хотя бы в архиве с датой. Перед публикацией новой конфигурации сравнивают файл с предыдущим и выполняют регрессионный набор.
Журнал не должен содержать больше персональных данных, чем необходимо. Если пути и имена файлов включают сведения о клиентах, доступ к логам ограничивают так же, как к исходным документам. При передаче журнала в поддержку удаляют или маскируют чувствительные значения, оставляя структуру ошибки. Автоматическое удаление старых логов настраивают после определения срока хранения и требований аудита.
Совместимость и требования среды
Для работы требуется Windows с 64-разрядным процессором и платформой .NET 4.5.2; на странице загрузки указаны Windows 11, 10, 8 и 7, а также серверные выпуски от Windows Server 2008 R2 до Windows Server 2019. Минимально заявлены процессор 2 ГГц и 4 ГБ оперативной памяти. Полный набор компонентов занимает заметно больше места, чем одно задание, поэтому на сервере дополнительно резервируют место для временных XML, Base64 и журналов.
Практическая нагрузка определяется не числом полей, а размером связанных файлов и режимом обращения с ними. Copy и Move зависят от скорости диска и сети; Base64 создаёт крупный XML и повышает расход памяти; Append работает с уже существующим результатом. Для больших партий тестируют время на данных сопоставимого объёма и следят за свободным местом в источнике, назначении и ProgramData.
Шаблоны и задания можно хранить на сетевом ресурсе, но отказ сети тогда остановит обработку. Критичные XSLT лучше размещать локально и синхронизировать контролируемо, а входы и результаты — на отказоустойчивом хранилище. После обновления Windows или .NET выполняют контрольный запуск, особенно если процесс использует службу и старые сетевые протоколы.
Сравнение SimpleExport с аналогами
| Программа | Лучше подходит для | Главное ограничение |
|---|---|---|
| SimpleExport | Преобразования CSV, TSV и IDX по XSLT вместе с переносом связанных документов | Сложные шаблоны требуют знания XSLT |
| Altova MapForce | Визуального сопоставления XML, JSON, баз данных, flat files, EDI и Excel | Для автоматического запуска нужен отдельный серверный компонент |
| Easy Data Transform | Интерактивной очистки, объединения и преобразования табличных данных без программирования | Не ориентирован на перенос файлов по IMAGEPATH |
| Pentaho Data Integration | Многошаговых ETL-процессов с базами, облаками, расписаниями и оркестрацией | Сложнее развернуть для одной конвертации |
| Oxygen XML Editor | Разработки, отладки и проверки XSLT, XML, XQuery и схем | Нет готового потока копирования документов из индекса |
SimpleExport выбирают, когда источник уже отдаёт разделённый индекс, целевая система принимает XML или текст, а связанные изображения нужно перенести синхронно с метаданными. MapForce удобнее для визуальных any-to-any mapping и множества корпоративных форматов. Easy Data Transform быстрее осваивается для очистки таблиц. Pentaho оправдан при большом ETL-конвейере с несколькими источниками и зависимостями. Oxygen лучше использовать рядом с SimpleExport для разработки и отладки XSLT, а не вместо файлового конвейера.
Когда SimpleExport подходит лучше всего
Программа особенно уместна в стабильном процессе, где структура входных колонок редко меняется, а требования репозитория формализованы. Один раз подготовленный SEJ и XSLT затем применяются к сотням одинаковых партий. Небольшое число параметров облегчает аудит: можно точно показать, какой индекс, шаблон, каталог и режим файлов использовались. Для миграции старого архива это часто важнее визуального конструктора.
Она также полезна как переходный слой между несовместимыми продуктами. Система сканирования не обязана знать формат PaperVision, ViewWise или собственного архива; достаточно выгрузить CSV и документы. XSLT превращает универсальный набор в требуемый пакет. При замене репозитория меняется шаблон и выходной путь, а процедура захвата остаётся прежней.
Менее удачный сценарий — постоянно меняющиеся JSON API, сложные соединения с базами, потоковые данные и ветвление по десяткам условий. Здесь потребуется ETL или интеграционная платформа. SimpleExport не предоставляет визуальный мониторинг распределённых потоков, но остаётся понятным инструментом для конкретной задачи преобразования и доставки файлов.
Практический план внедрения
- Получить спецификацию целевого XML, BIF или текстового формата и пример успешно импортируемого пакета.
- Сформировать небольшой индексный файл с обычными и граничными значениями, включая дубликат и относительный путь.
- Настроить Delimiter, Skip Header Row, Field Names и Field Types; отдельно проверить IMAGEPATH, PAGECOUNT и BATCHID.
- Выбрать или разработать XSLT, вынести изменяемые идентификаторы в Variables и создать временный Output File.
- Запустить преобразование в режиме Copy без удаления индексов, проверить XML, файлы и пробный импорт.
- Добавить правила дубликатов, резервирование результата и журнал; повторить тест на второй партии.
- Сохранить SEJ и SET, задокументировать переменные, пути, права и порядок восстановления.
- Только после успешных тестов включить командную строку, автоматическую проверку или службу и внешний мониторинг очереди.
После внедрения контроль не заканчивается. Изменение экспорта системы захвата, добавление новой колонки или обновление схемы репозитория может нарушить позиционное сопоставление. Поэтому владелец процесса должен получать уведомления об изменениях и повторять тестовый набор. Самая частая причина скрытой ошибки — не сбой программы, а незаметно изменившаяся структура входного файла.
Режимы запуска и доступность функций
При первом открытии отображается окно выбора между демонстрацией полного набора и свободным режимом. Разовое интерактивное преобразование, создание собственных экспортных скриптов, применение XSLT, готовые шаблоны и кодирование файлов в Base64 доступны для обычной ручной работы. Ограничение касается двух функций, которые превращают настройку в непрерывный серверный процесс: запуска из командной строки и фоновой службы. Поэтому перед покупкой лицензии можно полностью построить схему, проверить XML и убедиться, что целевая система принимает результат.
Демонстрационный режим открывает автоматизацию на ограниченный период, чтобы проверить сценарий в реальной среде. После окончания испытания ручные функции не исчезают: пользователь может продолжить запускать задания через интерфейс. Такое разделение удобно для разовой миграции, но его нужно учитывать при проектировании ночной очереди. Если конфигурация зависит от вызова PostProc или от службы, окончательное тестирование должно включать именно активированный режим, а не только нажатие Run.
Окно активации принимает серийный номер, умеет проверить соединение с сервером и поддерживает офлайн-процедуру. Функция Transfer освобождает лицензию для переноса на другой компьютер. Перед заменой оборудования важно не удалять старую систему, пока перенос не выполнен, иначе потребуется обращение в поддержку. Сетевой фильтр или прокси может блокировать автоматическую регистрацию; в таком случае используют Offline Activation и сохраняют полученные файлы подтверждения вместе с документацией процесса.

Меню Help и сведения для диагностики
Команда View Manual открывает руководство, где перечислены параметры задания и ключи командной строки. Activate/Transfer License возвращает к экрану регистрации, Visit SimpleIndex.com открывает сайт разработчика, а About SimpleExport показывает сведения о сборке. Номер из About полезен не для повседневной работы, а для технической поддержки: при одинаковом SEJ разные установки могут вести себя по-разному из-за исправлений или компонентов среды.
При обращении в поддержку следует приложить минимальный воспроизводимый набор: обезличенный индекс с одной проблемной строкой, SEJ, XSLT, фрагмент журнала и описание ожидаемого результата. Сам документ можно заменить небольшим тестовым файлом, если проблема связана с путём, а не с его содержимым. Такой комплект позволяет проверить разбор колонок, переменные и шаблон без доступа к рабочему архиву.
Не стоит отправлять только снимок сообщения об ошибке. Большинство сбоев возникает из-за сочетания параметров, которое видно лишь в SEJ и входной строке. Перед передачей нужно проверить, что тестовый набор действительно воспроизводит проблему на отдельной папке. Если после обезличивания ошибка исчезла, значит важен конкретный символ, длина значения, кодировка или структура пути — это уже полезная диагностическая информация.

Пример настройки для счетов и актов
Предположим, система сканирования создаёт CSV с колонками Account, Customer, DocumentDate, FilePath, Pages и Batch. В диалоге Fields им назначают имена ACCOUNT, CUSTOMER, DATE, IMAGEPATH, PAGECOUNT и BATCHID. ACCOUNT оставляют типом Text, чтобы сохранить ведущие нули; CUSTOMER также задают как Text; DATE получает Date; три служебные колонки — соответствующие специальные типы. Если первая строка CSV содержит названия, включают Skip Header Row.
В XSLT описывают узел документа, элементы счёта и клиента, дату, путь или встроенное содержимое. Идентификаторы компании и проекта выносят в Variables. Для первого прогона выбирают Copy, Save Both и отдельную тестовую папку. После Run проверяют, что число элементов документа равно числу строк без заголовка, а каждый путь в XML указывает на реально скопированный файл. Затем пакет загружают в тестовый проект репозитория и выполняют поиск по счёту, клиенту и диапазону дат.
Второй тест должен имитировать повторную партию: один файл имеет прежнее имя, одна запись содержит пустого клиента, а ещё одна — запятую внутри названия. Так проверяются кавычки, политика дубликатов и обработка необязательных полей. Только после успешного повторного прогона включают Append Automatically. Если результат должен быть отдельным для каждой партии, вместо Append используют переменную номера в пути Output File.
Формирование уникальных имён и каталогов
Конфликт имён лучше предотвращать до пункта Duplicates. В XSLT или источнике можно строить имя из номера проекта, идентификатора документа и номера страницы. Оно должно оставаться допустимым для Windows и целевого репозитория. Символы, запрещённые в файловых именах, заменяют безопасным знаком, а длину ограничивают с учётом полного пути. Слишком длинный путь может корректно отображаться в индексе, но не копироваться файловой системой.
Переменные в Output File позволяют разделить результаты по компании, проекту и партии. Например, идентификатор компании становится первым уровнем, номер проекта — вторым, а Number — каталогом текущей группы. Удобно, когда значение Number генерирует внешний процесс и гарантирует уникальность. Если оператор вводит его вручную, нужно исключить повтор и неправильный формат, потому что SimpleExport не ведёт центральный счётчик для нескольких компьютеров.
Каталоги не следует создавать на основе свободного текста клиента без нормализации. Пробелы, точки на конце, национальные символы и одинаковые названия могут вызвать несогласованность. Для пути используют короткий стабильный код, а читаемое имя сохраняют в метаданных. Такой подход упрощает перенос между файловыми системами и не связывает физическое расположение с возможным переименованием клиента.
Разработка собственного XSLT
Начальный шаблон должен явно задавать метод вывода, кодировку и правила отступов. Затем он проходит по каждой входной записи и создаёт элементы в схеме назначения. Значения выводят через безопасные XSLT-инструкции, чтобы амперсанд, угловые скобки и кавычки экранировались как XML, а не разрушали документ. Ручная конкатенация XML-тегов строками повышает риск получить синтаксически неверный результат.
Условия применяют к действительно необязательным элементам. Если пустое поле должно отсутствовать, XSLT проверяет длину после нормализации пробелов. Если схема требует элемент всегда, выводится пустой узел или установленное значение по умолчанию. Это решение принимают по спецификации импортёра: два XML могут быть одинаково well-formed, но только один соответствует его бизнес-правилам.
Для дат и чисел избегают преобразований, зависящих от региональных настроек. Лучше получить однозначную строку от источника и вывести её в требуемом формате. Если преобразование необходимо, его покрывают тестами на начало года, конец месяца и пустое значение. Для длинных кодов не используют числовую арифметику. XSLT должен сохранять идентификатор как строку, даже если он содержит только цифры.
Параметры проекта передают через Variables, а не зашивают в нескольких местах шаблона. Тогда проверка перед запуском сводится к таблице значений. Неизменяемые константы, связанные со схемой, остаются в XSLT. Такое разделение предотвращает ситуацию, когда оператор меняет ProjectID, но забывает изменить похожий идентификатор внутри пути или другого шаблонного узла.
Тестирование добавления к существующему XML
Append Automatically требует отдельного сценария испытаний. Сначала создают результат из партии A и сохраняют его копию. Затем запускают партию B, где нет повторов, и проверяют, что старые записи сохранились, новые добавились, а документ остался валидным. Третий запуск повторяет одну запись из A и проверяет выбранную политику дубликатов. Наконец, имитируют сбой на середине и оценивают, можно ли восстановиться из BAK без ручной правки.
Если XSLT формирует один завершённый XML, простое текстовое добавление перед закрывающим тегом должно быть предусмотрено самим процессом. Нельзя предполагать, что любой шаблон автоматически совместим с Append. Признаками неправильной схемы будут второй XML-заголовок, несколько корневых элементов или новые записи после закрывающего тега. Такой файл может выглядеть заполненным, но импортёр отвергнет его целиком.
Для высоких требований к целостности безопаснее создавать отдельный файл каждой партии и объединять их контролируемым процессом. Тогда повторный запуск не изменяет ранее принятый пакет, а идентификатор партии однозначно связывает индекс, XML, документы и журнал. Append оправдан, когда формат назначения прямо рассчитан на накопительный файл и разработан надёжный механизм резервирования.
Производительность на больших партиях
Время обработки складывается из чтения индекса, выполнения XSLT и файловых операций. Для небольших CSV преобразование метаданных обычно занимает меньшую долю, чем копирование гигабайтов PDF и TIFF по сети. Поэтому ускорение XSLT не решит проблему медленного хранилища. Перед оптимизацией измеряют отдельно время создания XML и передачи файлов, а также смотрят загрузку диска, сети и антивирусного фильтра.
Маска на тысячи индексных файлов увеличивает время обхода и усложняет восстановление. Практичнее подавать партии умеренного размера и архивировать завершённые входы. Base64 не только увеличивает XML, но и вынуждает держать крупные строки в памяти; для документов в сотни мегабайт этот режим следует проверять особенно внимательно. Copy может удваивать требуемое дисковое пространство до завершения импорта.
Параллельный запуск допустим только для независимых каталогов и результатов. Два процесса не должны перемещать один файл, удалять один индекс или дописывать общий XML. Если производительности одного потока недостаточно, очередь разделяют по проектам либо партиям и назначают каждому собственный SEJ и Output File. Масштабирование через несколько копий без такого разделения создаёт гонки, которые трудно увидеть в журнале.
Восстановление после сбоя
Процедуру восстановления проектируют до включения Move и удаления индексов. Для каждой партии должны сохраняться исходный индекс, копия XSLT и SEJ, журнал, список файлов и контрольный факт приёма репозиторием. Если сбой произошёл до импорта, пакет формируют заново. Если часть документов уже принята, используют идентификатор партии и политику дубликатов, чтобы повтор не создал неразличимые записи.
BAK возвращает предыдущее состояние накопительного выходного файла, но не восстанавливает перемещённые документы. Для них нужен отдельный резервный источник. При Move целесообразно сначала копировать в промежуточный каталог, проверять контрольные суммы, а удаление исходника выполнять после подтверждения. Если процесс критичен, эту двухфазную схему реализует внешний сценарий, а в SimpleExport оставляют Copy.
После аварии не следует сразу повторно запускать маску на всей папке. Сначала фиксируют содержимое очереди, отделяют файлы, которые могли быть обработаны, и сравнивают журнал с выходными пакетами. Затем повторяют одну партию в тестовом назначении. Такой порядок предотвращает лавинообразное создание дубликатов и сохраняет доказательства причины сбоя.
Контрольные критерии готового задания
- Количество разобранных колонок одинаково для всех тестовых строк и соответствует обеим строкам Fields.
- IMAGEPATH находит документ при ручном запуске и из контекста службы.
- Выходной файл проходит синтаксическую и схемную проверку, если схема доступна.
- Пробный импорт создаёт ожидаемые поисковые поля, дату, число страниц и связь с документом.
- Повторный запуск ведёт себя предсказуемо при совпадении имён и идентичной записи.
- Резервирование, журнал и архив входов позволяют восстановить партию без обращения к исходному сканированию.
- Ни одна фоновая операция не требует диалога Prompt или подтверждения завершения.
- Служебная учётная запись имеет только необходимые права на чтение, запись и, при Move, удаление.
Задание считается готовым не после первого успешного XML, а после прохождения повторного, ошибочного и восстановительного сценариев. Такая проверка занимает больше времени, но защищает от скрытых потерь при автоматизации. Простая конфигурация SimpleExport становится надёжной именно благодаря дисциплине вокруг входных файлов, шаблонов и подтверждения импорта.
Ответы на частые вопросы
Можно ли использовать файл с точкой с запятой или другим разделителем?
Да. В Delimiter можно указать используемый символ, а кавычки распознаются автоматически. После выбора следует открыть Fields и убедиться, что каждая строка разбилась на ожидаемое число колонок. Нестандартный разделитель должен быть одинаковым во всех файлах одного задания.
Обязательно ли писать XSLT самостоятельно?
Для поддерживаемых систем можно начать с готового шаблона. Собственный формат или изменённая схема потребуют правки XSLT. SimpleExport помогает разобрать CSV и передать структурированные данные, но не проектирует целевой XML автоматически. Разрабатывать и отлаживать шаблон удобнее в специализированном XML-редакторе.
Можно ли обработать сразу несколько индексных файлов?
Да. Поле Index File поддерживает маски, а отдельные пути можно перечислить через вертикальную черту. Все файлы должны иметь одинаковый порядок колонок и одинаковую строку заголовка. Для автоматической очереди важно удалять или архивировать успешно обработанные индексы, чтобы маска не читала их повторно.
Что произойдёт с исходными PDF и TIFF?
Поведение определяется Source Files. Copy сохраняет оригинал и создаёт копию, Move переносит и удаляет исходник, Leave ничего не перемещает, Convert To base64 встраивает байты в XML. Для испытаний выбирают Copy. Перед Move обязательно проверяют резервную копию и права удаления.
Почему документ импортировался без ведущих нулей?
Вероятнее всего, код был объявлен как Number. Для идентификаторов, где нули значимы, выбирают Text и проверяют, что XSLT не выполняет числовое преобразование. Исправление типа после импорта не вернёт потерянные нули автоматически; пакет нужно сформировать заново из исходных данных.
Можно ли запускать задание после завершения сканирования?
Да. Система захвата может вызвать SimpleExport.exe с параметрами /c, /f и /a, передав текущий SEJ, индексный файл и каталог документов. Путь с пробелами заключают в кавычки. Для каждой партии используют уникальное имя индекса, а внешний сценарий контролирует завершение и наличие результата.
Где искать журнал обработки?
При включённом Enable Processing Log файл создаётся в общей папке данных Simple Software. В современных системах это каталог под ProgramData. Для автоматической службы журнал является основным источником диагностики, поэтому учётная запись должна иметь право записи, а администратор — регулярно проверять ошибки и размер файлов.
Подходит ли SimpleExport для редактирования PDF?
Нет. Программа не меняет страницы, текст, изображения и аннотации PDF. Она преобразует индексные метаданные и выполняет файловые операции со связанными документами. Для правки содержимого нужен PDF-редактор, а SimpleExport используют после сканирования или экспорта, когда требуется подготовить пакет для другой системы.
Итоговый рабочий подход
Надёжная конфигурация SimpleExport начинается не с автоматизации, а с точного описания входной строки и целевого пакета. Разделитель, порядок полей и IMAGEPATH должны быть проверены на реальных данных; XSLT — на эталонном XML; файловые действия — на копиях. После этого SEJ превращает ручную настройку в воспроизводимую операцию, а переменные позволяют применять один шаблон к нескольким проектам.
Для постоянного потока важны детерминированные правила: уникальные имена партий, отдельные каталоги, фиксированное поведение дубликатов, резервирование результата, журнал и служебная учётная запись с минимальными правами. Командная строка и служба ускоряют работу только тогда, когда интерактивные вопросы и неоднозначные входы уже устранены. В таком режиме программа выполняет узкую задачу прозрачно: читает индекс, формирует требуемую структуру и доставляет связанные документы туда, где их ожидает репозиторий.