SSIS ForEach из перечислителя переменных, список, созданный с помощью C # - объект в переменной не содержит перечислителя - PullRequest
0 голосов
/ 30 ноября 2018

Я потратил силы на рефакторинг пакета SSIS, который копирует кучу файлов журнала в папку в нашей сети, проверяет все файлы в папке назначения, а затем удаляет все, которые устарели после нашей политики хранения.Кажется, что все должно работать, но с ошибкой выше.

Структура: переменная dailyFilesToDelete типа Object, заполняемая задачей скрипта внутри цикла ForEach File.Я упростил свой код, добавив один файл, который я создал, чтобы протестировать этот новый пакет и попытаться найти суть проблемы.

var fileListDelete = new List<string>();
fileListDelete.Add(@"Q:\xpcttvcpc_live_Full_201912050000.bak");
Dts.Variables["dailyFilesToDelete"].Value = fileListDelete.GetEnumerator();
Dts.TaskResult = (int)ScriptResults.Success;

Следующим шагом является цикл по каждому элементу, который не работает.

Enumerator: Foreach From Variable Enumerator

Переменная Enumerator: User :: dailyFilesToDelete

Отображение переменной: User :: deleteFileName

Я подозреваю, что проблема связана скак я передаю свой список строк в dailyFilesToDelete.Сначала я передавал сам список, и как только я увидел ошибку «переменная не содержит перечислителя», я был уверен, что добавление вызова GetEnumerator исправит это.

1 Ответ

0 голосов
/ 30 ноября 2018

Я полагаю, что ваша проблема заключается в присвоении результата перечислителя переменной.Попробуйте это так же, как

Dts.Variables["dailyFilesToDelete"].Value = fileListDelete;

За кулисами перечислитель SSIS Foreach вызовет метод Enumerator, чтобы волшебство произошло.

...