Вам когда-нибудь приходилось экспортировать файлы отчетов и источники данных в SQL Server? В предыдущей статье я рассказывал о том, как экспортировать файлы отчетов с помощью пакета SSIS. Однако, одним из ограничений этого решения было то, что оно экспортировало только файлы отчетов, но не источники данных. В этой статье я предоставлю обновленное решение и покажу вам, как экспортировать как файлы отчетов, так и источники данных.
Переменные
Давайте начнем с описания переменных, которые были добавлены в пакет SSIS:
- FileExportExtension: Эта переменная указывает расширение XML-файла, который будет создан. Например, “RDL” для файлов отчетов и “RDS” для источников данных.
Задача сценария
Затем внесем некоторые изменения в задачу сценария в пакете SSIS. Откройте задачу сценария и добавьте новую созданную переменную в список переменных только для чтения. Это позволит сценарию получить доступ к значению переменной.
Теперь изменим сам сценарий. Замените существующий код в подпрограмме Main на следующий:
Public Sub Main()
' Добавьте свой код здесь
My.Computer.FileSystem.WriteAllText(Dts.Variables("ReportExportPath").Value + Dts.Variables("ReportName").Value + "." + Dts.Variables("FileExportExtension").Value, Dts.Variables("ReportXML").Value.ToString, False)
Dts.TaskResult = ScriptResults.Success
End Sub
В этом коде вы можете видеть, что мы используем новую добавленную переменную для указания пути к файлу и расширения для экспортированного XML-файла.
Путь к источнику отчета
Важно отметить использование переменной ReportSourcePath. Эта переменная должна быть установлена на соответствующий путь, содержащий источники данных в таблице Catalog. Например, если ваши источники данных находятся в папке с названием “Источники данных”, установите значение ReportSourcePath на “/Источники данных/”. Убедитесь, что указанный путь ведет к источникам данных, которые вы хотите экспортировать.
Дополнительная гибкость
Если вам нужна еще большая гибкость при экспорте различных типов частей отчета, вы можете рассмотреть изменение “Задачи выполнения SQL”, которая запускает поток в этом пакете. Добавив еще одну переменную для обозначения типа части отчета, вы можете изменить запрос для извлечения конкретных типов частей отчета. Это изменение позволит вам экспортировать не только файлы отчетов и источники данных, но также части отчета, такие как общие наборы данных или части отчета.
Внесение этих предложенных изменений позволит вам иметь больше гибкости в возможности экспортировать различные файлы, связанные с отчетностью. Например, теперь вы можете экспортировать файл RDS, что невозможно сделать через Менеджер отчетов. Этот экспортированный XML-файл затем может быть импортирован на другой сервер при необходимости.
Следите за обновлениями о том, как достичь той же функциональности с использованием T-SQL, а также за дополнительными улучшениями пакета, чтобы обеспечить еще большую гибкость.
Спасибо за чтение!