Подсказки контейнера цикла Forex служб SSIS - PullRequest
0 голосов
/ 20 ноября 2018

Я раньше не использовал контейнер цикла foreach, и мне нужна некоторая помощь в этом.

У меня есть пакет служб SSIS, который на данный момент выполняет некоторые функции (импорт из базы данных Excel, некоторые слияния, некоторые объединения).

По сути, в конце я заканчиваю таблицей, содержащей следующие поля (измененные):

Invoice number
Container number
Item number
Item price
item duty
(...)

Мне нужно, чтобы он выполнял некоторые специфические SQL (объединения, вставки формул ...) для каждого счета-фактуры и экспортируйте его в файл Excel с именем файла = номер счета-фактуры.

Я думал о получении select distinct ROW_NUmber () (...),[Invoice_number] from [invoicetable] и получении итерации по номеру row_number и делаю то, что мне нужно для этого.

Я думал о том, чтобы, возможно, получить это в цикле SQL для создания # temp1, # temp2, ..., а затем экспортировать все #temp по отдельности и затем удалить их.

Яищу идеи наиболее эффективного способа сделать это.

Должен сказать, что я пробовал T-SQL, чтобы получить файлы для экспорта с использованием cmd, но я продолжаю получать ошибки, пытаясь создать файлы.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я закончил тем, что отказался от контейнера цикла foreach.Поскольку данные, вводимые в мои таблицы, были файлом Excel, у меня было так много проблем с преобразованием типов данных в середине, что в цикле ничего не работало.Я не мог заставить его перебрать счет-фактуру «число / имя».

В итоге я посмотрел на C # как на опцию и сумел зациклить его, но не смог заставить его зацикливаться внутри цикла изначально, посленекоторые пробные ошибки мне удалось получить результат, который мне был нужен, и теперь этот процесс запускает то, что предыдущий БА создавал с 4 макросами, в пакете служб SSIS, сокращая время работы с 1800 минут до 3.

Код C # находится здесь:

C # Переменная петля вывода файла Excel

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

Я бы сделал это, используя Execute SQL Task, чтобы заполнить переменную объекта всеми номерами счетов в вашей таблице.

Затем получим foreach loop, который перебирает эту переменную объекта и начинается сзадача сценария, которая использует значение номера счета-фактуры, чтобы задать имя целевого файла Excel, а также сгенерировать команду SQL исходного компонента вашего потока данных для SELECT из таблицы WHERE InvoiceNumber={the current invoice number in the loop}.

Каждыйитерация цикла выберет один счет и отправит его в один файл Excel с соответствующим именем.Затем перейдите к следующему номеру счета.

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