2013-12-13 4 views
0

Я работаю над пакетом SSIS 2012. Внутри цикла foreachfile существует переменная «User :: Filename», довольно стандартная переменная для этой конструкции. На более позднем этапе внутри цикла я перемещаю файл в каталог архива. Затем я хочу переименовать его. Я сопоставляю свойство «Destination» с новым именем, которое имеет формат «» + «YYYYMMDDHHMMSS» + @ [User :: Filename].Ссылка на переменную

Когда я нажимаю «Evaluate Expression» во время разработки, конечно, он работает, за исключением того, что Filename имеет значение null, поэтому не отображается. Я также установил проверку задержки на значение true.

Когда я запускаю пакет, он терпит неудачу, потому что он не может найти ни источник, ни файл назначения (источник установлен таким же образом ... + @ [User :: Filename].) В сообщении об ошибке, он показывает точно ту же строку, что и я, когда я ударил «Evaluate Expression» во время разработки.

Почему он не показывает имя файла?

+0

Знаете ли вы содержимое переменной в точке отказа? – Metaphor

+0

Не знаю, как это узнать ... –

ответ

0

Задайте задачу сценария в контейнере цикла с помощью этого кода.

public void Main() 
{ 
     bool success = false; 
     string fName = Dts.Variables["User::Filename"].Value.ToString(); 
     Dts.Events.FireInformation(1, "File Loop", fName, "", 0, ref success); 

     Dts.TaskResult = (int)ScriptResults.Success; 
} 

Затем посмотрите в окне вывода для распечатанного списка.