Я пытаюсь создать поток данных в SSIS, чтобы помочь мне загрузить файл по FTP, и у меня возникли проблемы. Имя файла должно быть динамическим, в формате filename_mmddyy.xls. Поэтому каждый день он применяет дату и загружает новый файл.SSIS - Динамическое имя файла для FTP-компонента
я был в состоянии сделать так, чтобы файл сохранить правильно в потоке данных со следующим выражением:
@[User::path]+
Right("0"+(DT_STR,4,1252)DatePart("m",getdate()),2)+
Right("0"+(DT_STR,4,1252)DatePart("d",getdate()),2)+
Right("0"+(DT_STR,4,1252)DatePart("yyyy",getdate()),2)+
".xls"
FTP-компонент, однако, не будет принимать это как выражение для LocalPath , Я попытался перезаписать мою переменную User :: path внутри компонента Script в моем исходном потоке данных, но это тоже не сработало.
Я знаю, что я пропустил что-то все просто, но я долго смотрел на него, и это просто не пришло ко мне.
Спасибо!
EDIT
Итак, после того, как дурачиться на другой день, вот что я придумал:
Я сделал свою первоначальную задачу создать свой плоский файл. Боковое замечание, мой поставщик действительно нуждался в истинном excel xls, а не в csv, поэтому мне пришлось назначить пункт подключения к файлу, который затем потребовал от меня сделать статический файл на моем сервере.
Затем я использовал задачу сценария (C#), чтобы скопировать статический файл в файл с динамическим именем. Конечно, я должен оставить исходный файл, потому что место назначения excel должно быть там.
Наконец, я сделал другое подключение к файлу и использовал вышеуказанное выражение в качестве строки подключения. Затем у меня задача FTP использовать подключение к файлу в качестве файла для загрузки.
Я собираюсь попробовать и обрезать все это немного. Я думаю, что я могу избежать использования задачи сценария и вместо этого использовать задачу файловой системы для копирования и использования подключения к файлу, чтобы помочь с динамическим именем пути.
Подводя итог, я узнал следующее: В SSIS, когда он говорит «PathIsVariable», то, что вы помещаете в это текстовое поле, принимается как переменная. Поэтому, если я помещаю @ [User :: path], он разрешает «C: \ pathonmydrive». Затем SSIS ищет переменную с именем THAT, то есть C: \ pathonmydrive, чтобы найти файл. Это немного контр-интуитив, но теперь, когда я знаю, я могу избежать этой ловушки.
Просто сделал ответ, объясняющий, как правильно установить переменную с помощью компонента сценария. Возможно, это не так, где ваша проблема. Я передавал файлы с помощью FTP-компонентов и динамических соединителей файлов и видел некоторые ... «причуды» с SSIS. Просто дайте мне знать, если он не работает, и я буду рад помочь диагностировать проблему. – cfrag