Я пытаюсь архивировать набор файлов из исходного пути в путь к архиву, как только я закончил выполнение некоторых элементов задачи потока данных. Внутри контейнера Loop Container у меня есть: Script Задача → Задача потока данных → Выполнение задачи SQL → Задача файловой системы
У меня есть переменная пользователя, установленная в элементе "Имя и расширение" в настройках коллекции в контейнере циклов Foreach. Эта переменная называется "имя_файла" и используется как в задаче Script (используется для анализа информации из файла и выполнения задачи SQL Execute), так и в задаче потока данных в диспетчере соединений с плоскими файлами, которая, в свою очередь, используемый элементом Flat File Source. Затем я разбираю файл и вставляю данные в базу данных. Все работает так, как должно, пока не дойду до задачи файловой системы (FST).
Я бы хотел, чтобы файл был перемещен в папку архива после завершения его вставки.
Используя несколько ссылок в Интернете (здесь, здесь и здесь) Я добавил различные переменные, которые либо жестко закодированы, либо получены из массирования других переменных.
В любом случае происходит то, что на FST я получаю ошибки, такие как "недопустимые символы в пути" или "неизвестный путь".
Если я попытаюсь массировать приведенные выше примеры, чтобы соответствовать моей структуре файловой системы, теперь я получаю сообщение об ошибке на этапе "Плоский файл источника" в "Задаче потока данных", заявив, что не может найти указанный файл. Это вызвано тем, что
a) не может найти путь к файлу, потому что не указан путь к файлу, просто filname.ext
b) не может проанализировать переменную, содержащую полный путь к исходному файлу (@FullSourcePathFileName
, значение которого установлено на @[User::SourcePath]
+ @[User::fileName]
)
Я тестировал другие различные модификации, в том числе и то, что было в первом примере, который я опубликовал (тем не менее, что на самом деле никто не выполняет задачу потока данных, поэтому я просто добавил шаг с плоским файлом без адресата) и получил тот же набор ошибок. Я затрудняюсь здесь и хотел бы получить информацию о том, как решить эту проблему.
EDIT:
Кажется, что он продолжает терпеть неудачу на FullArchivePathFileName
- он никогда не оценивает выражение, даже если у меня установлено значение "Истина". Все еще запутано, почему он не оценивает это. Поэтому я сделал свое выражение так же, как FullSourcePathFileName
и подтвердил, что для параметра EvaluateAsExpression установлено значение True. Он по-прежнему не оценивает эту переменную. Переменная FullSourcePathFileName
оценивается просто отлично.