Значения переменных хранятся вне SSIS - PullRequest
3 голосов
/ 17 мая 2019

Это просто вопрос служб SSIS для опытных программистов.У меня есть таблица sql, которая содержит clientid, clientname, Filename, Ftplocationfolderpath, filelocationfolderpath

Эта таблица содержит уникальную запись для каждого из моих клиентов.По мере роста моего списка клиентов я добавляю новую строку в таблицу sql для этого клиента.

У меня такой вопрос: могу ли я использовать значения в моей таблице sql и как-то ссылаться на каждую из них в переменных моего пакета служб SSIS на основе идентификатора клиента?

Причина таблицы sql заключается в том, чтоиногда мы получаем запрос на изменение доставки или имени файла, который мы отправляем извне.Мы хотели бы иметь возможность динамически изменять эти вещи на лету в таблице SQL вместо того, чтобы каждый раз экспортировать пакет и вручную изменять его, а затем повторно импортировать пакет.У каждого клиента есть свой собственный пакет служб SSIS

, дайте мне знать, если это возможно .. Я буду признателен за любые идеи

Ответы [ 2 ]

2 голосов
/ 17 мая 2019

Да, это возможно. Есть два способа приблизиться к этому, и это зависит от того, как работа выполняется. Во-первых, если вы работаете за одного клиента для одного запуска задания или если вы работаете за нескольких клиентов для одного запуска задания.

В любом случае вы будете использовать задачу «Выполнение SQL» для извлечения данных из базы данных и назначения их вашим переменным.

  1. Вы работаете за одного клиента . Это довольно просто. В наборе результатов выберите параметр для Одиночная строка , отобразите результат одной строки в переменные пакета и продолжите обработку.
  2. Вы работаете для нескольких клиентов . В наборе результатов выберите Полный набор результатов и присвойте результат одной переменной пакета типа Object - дайте ему значимое имя, например ObjectRs . Затем вы добавите перечислитель ForEachLoop:
    • Тип: Foreach ADO Enumerator
    • Переменная источника объекта ADO: Выберите ObjectRs .
    • Режим перечисления: Строки во всех таблицах (только для набора данных ADO.NET)

В сопоставлениях переменных сопоставьте все столбцы в их последовательном порядке с переменными пакета. Это эффективно преобразует пакет в последовательность отдельных транзакций, которые зацикливаются.

0 голосов
/ 17 мая 2019

Да.
Я предполагаю, что вы запускаете свой пакет один раз для каждого клиента или используете какой-то цикл.
В начале кода "для каждого клиента" считывайте все необходимые значения из базы данных в переменные службы SSIS и используйте ихпеременные, чтобы определить, что вам нужно.Вы не должны жестко кодировать конкретную информацию клиента в пакете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...