Обработка однотипных файлов из директории
Задача
Обработать однотипные файлы, расположенные в одной директории, и получить общий результат обработки. Другими словами, требуется выполнить одну и ту же операцию над файлами директории.
Исходные данные
Перед тем как приступить к решению задачи, ознакомимся с исходными данными — рядом файлов Excel одинаковой структуры, расположенных на сетевом диске в одной директории.
Сценарий решения задачи
Задача по обработке файлов из директории будет включать в себя два этапа:
- Этап №1 — создание вспомогательного процесса (подпроцесса), выполняющего обработку одного типового файла, будет включать шаги:
- Создание параметра процесса типа "Файл".
- Преобразование входящего файла из Excel.
- Загрузка данных в Колибри.
- Передача результата обработки файла в основной процесс.
- Этап №2 — создание основного процесса, выполняющего последовательный запуск вспомогательного процесса для каждого файла из директории, будет включать шаги:
- Получение файлов из директории.
- Обработка каждого файла подпроцессом.
- Просмотр результатов вспомогательного процесса.
Основной процесс будет перебирать файлы из директории и передавать их во вспомогательный процесс, в котором каждый файл поочередно будет обработан, данные из него будут записаны в Колибри, а результат вставки передан в основной процесс, в котором можно будет просмотреть объединенный результат по всем файлам.
Замечание
Для передачи файла из основного процесса во вспомогательный, во вспомогательном процессе обязательно должен быть создан параметра процесса типа "Файл", который должен быть присоединен к узлу, обрабатывающему файлы (поток байт).
Используемые узлы
Директория
Цикл по элементам
Преобразовать из Excel
Вставка строк Колибри
Результат выполнения
В процессе будет использован параметр процесса типа "Файл".
Построение и настройка процессов
Этап №1. Создание вспомогательного процесса по обработке одного файла
- Создадим и сохраним новый процесс.
- Создадим параметр процесса типа "Файл".
- Для записи данных файла формата Excel в базу Колибри, сначала необходимо выполнить преобразование данных из формате Excel в таблицу с данными.
Для этого добавим узел Преобразовать из Excel и настроим свойства.
- Для передачи в узел "Преобразовать из Excel" входящего файла присоединим параметр к входному порту узла.
- Для загрузки данных в Колибри добавим узел Вставка строк Колибри и соединим его входной порт с выходным портом узла "Преобразовать из Excel".
- Настроим свойства узла "Вставка строк Колибри".
- Для передачи результатов вставки в основной процесс добавим узел Результат выполнения и соединим его входной порт с выходным портом узла "Вставка строк Колибри".
- Выполним проверку процесса, при наличии ошибок исправим их.
Этап №2. Создание основного процесса, запускающего вспомогательный процесс
- Создадим и сохраним новый процесс.
- Для получения файлов из директории добавим узел Директория, настроим его свойства. Для обработки только файлов формата Excel, установим шаблон имени файла
*.xls?
.
- Для передачи файлов из директории во вспомогательный процесс добавим узел Цикл по элементам.
- У узла Цикл по элементам укажем название "Цикл по элементам (файлам Excel)" и настроим его свойства, выбрав из списка процессов созданный ранее вспомогательный процесс.
- После указания подпроцесса, в котором создан параметра процесса типа "Файл", у узла "Цикл по элементам (файлам Excel)" автоматически был добавлен входной порт, на которой необходимо подать выходные данные узла "Директория".
- Ввиду того, что в подпроцессе был добавлен узел "Результат выполнения" в основном процессе у узла "Цикл по элементам (файлам Excel)" автоматически был добавлен выходной порт, который позволит просмотреть и использовать дальше в процессе объединенные результаты вставки строк из двух файлов директории.
- Выполним проверку процесса, при наличии ошибок исправим их.
- Запустим процесс с сохранением. В журнале отмечено два запуска подпроцесса, для каждого файла из директории.
- Просмотрим результат выполнения узла "Цикл по элементам (файлам Excel)", в котором объединены данные, загруженные в Колибри из двух файлов.