Позвольте мне предварить это словами, что я все еще новичок, когда дело доходит до SSIS.Я пытаюсь заменить текущий процесс MS Access, который имеет 13 запросов, которые создаются в Excel и отправляются по электронной почте в список пользователей.
Мой пакет служб SSIS должен получить имя отчета, список рассылки электронной почты, данные отчета, создать файл csv, а затем отправить электронное письмо для каждого из них.
Я создал следующее в SQL Server:
- таблица с отчетами - у каждого есть ReportId
- таблица с адресами электронной почты пользователей
- таблица соединений, которая связывает пользователя с каждым отчетом
- Создает сохраненный процесс, когда я передаю ReportId, и он возвращает список рассылки электронной почты, а также некоторые подробности отчета для использования при отправке моих писем
- Создает сохраненный процесс, который я передаю ReportIdк.В ответ я получу любое из значений для этого отчета.Каждый отчет имеет свой запрос, который возвращает разные столбцы данных.
Я также пытался создать пакет служб SSIS, который выполняет следующие действия:
- с использованием
Execute SQL Task
получите список активных идентификаторов отчетов - a
Foreach Container Loop
, установленный на ADO Enumerator
для циклического просмотра каждого идентификатора отчета - и
Execute SQL Task
, который будет возвращать мои данные отчета и список рассылки электронной почты для каждогоидентификатор отчета.
Затем я попытался поместить Data Flow Task
внутри цикла и запустить свой сохраненный процесс, чтобы вернуть данные отчета для каждого идентификатора отчета, но я получаю сообщение об ошибке:
Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred.
Error code: 0x80040E55. An OLE DB record is available.
Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E55 Description: "Column does not exist.".
Я предполагаю, что это ошибка, потому что мои столбцы не совпадают в каждом отчете.Если это так, то есть ли у вас какие-либо предложения о том, как действовать?
Какие шаги я должен использовать в своем пакете служб SSIS для просмотра каждого отчета?Нужно ли создавать отдельный пакет служб SSIS для запуска каждого отчета?
Если я могу запустить это в одном пакете, нужно ли мне создавать диспетчер соединений с плоскими файлами для каждого из моих отчетов csv, которые я генерирую?