Пакет SSISDB ошибается, говорит, что переменная не существует - PullRequest
1 голос
/ 18 июня 2019

У меня есть пакет служб SSIS, который записывает CSV-файлы из базы данных, копирует их в несколько мест и затем отправляет сообщение об успешной отправке по электронной почте.Процесс:

  1. Извлечение общего местоположения файла из базы данных в переменную, @[User::varSQLCSVOutputFolder]
  2. Цикл по списку записей базы данных:
    • Создание локального CSVдля каждого.
    • Скопируйте локальный файл в папку в @ [User :: varSQLCSVOutputFolder]
  3. Отправьте электронное письмо с MessageSource, определенным в @ [User: varEmailBody].
@[User::varEmailBody] = "Files successfully saved to " + @[User::varCNNTargetCSVFolder]

@[User::varCNNTargetCSVFolder] = @[User::varSQLCSVOutputFolder]

@[User::varSQLCSVOutputFolder] загружается из базы данных, значение = \\server.domain.com\TEST\Output Files AM

(для подтверждения, @[User::varCNNTargetCSVFolder] это просто проход)

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

Ошибка: произошла ошибка со следующим сообщением об ошибке:

Failed to lock variable "Files successfully saved to
\\server.domain.com\TEST\Output Files AM"  for read access with error
0xC0010001 The variable cannot be found.  This occurs when an attempt
is made to retrieve a variable from the  Variables collection on a
container during execution of the package, and  the variable is not
there.  The variable name may have changed or the variable is not
being created.

Я подумал, что это может бытьстранная проблема с выходом из обратной косой черты, но я попытался использовать REPLACE() в выражении, не повезло.Я использую базовую переменную @[User::varSQLCSVOutputFolder] несколько раз, но у меня установлены прецедентные ограничения, поэтому не должно быть совпадений .... есть ли другие возможности?Кажется, что он читает CONTENT моей переменной как ИМЯ переменной.

1 Ответ

1 голос
/ 18 июня 2019

Хорошо, это было весело.Итак, у меня было выражение, определенное для MessageSource, НО, я выбрал MessageSourceType как переменную, а не прямой ввод.См. Ниже для потомков.

Problem!

Message Source is expression

...