2009-08-26 8 views
1

Наше приложение использует службы отчетов SQL Server и позволяет пользователям добавлять настраиваемые фильтры в отчеты. Мы делаем это, изменяя RDL, а затем загружая измененный RDL на сервер для создания нового отчета. Проблема в том, что после того, как отчет запускается один раз, он больше не нужен; это действительно просто временный отчет. Очевидно, это в конечном итоге приведет к появлению множества временных отчетов. Нам нужен способ их очистки.Очистка временных отчетов SSRS

Мы уже думали о внешних методах, таких как создание службы или задание для периодического удаления отчетов, и это, вероятно, то, что мы закончим, если мы не сможем что-то улучшить. Нам интересно, действительно ли SSRS обеспечивает лучший способ сделать это? Мы подумали о попытке каким-то образом использовать кешированный экземпляр, срок действия которого истекает, но, похоже, работает только на исполняемый экземпляр отчета, а не на сам отчет. Насколько я могу судить, нет возможности установить срок действия отчета. Есть ли какой-то другой способ заставить нас SSRS очистить нас?

Сразу же удаление отчета не является вариантом, потому что наше выполнение является асинхронным.

ответ

2

Встроенный, ничего. Но писать что-то очень легко.

Попробуйте выполнить процесс, который запрашивает ваш каталог отчетов для тех, кто старше получаса (или так). Вы даже можете присоединиться к ReportServerTempDB, чтобы узнать, есть ли у них активный сеанс (в этом случае вы игнорируете их немного дольше).

После того как вы их нашли, вы легко можете воспользоваться этим интерфейсом веб-службы и удалить их из каталога.

Но ... Я бы посмотрел на лучший способ предоставления настраиваемого фильтра, используя код. Конечно, вы можете предоставить фильтр в качестве параметра и использовать код VB в отчете, чтобы преобразовать то, что пользователь предоставляет, в то, что может быть оценено для каждой строки.

Rob

+0

Хороший совет по проверке активной сессии во временном БД. Что касается использования встроенного кода в отчете, это хорошая мысль, но, вероятно, не будет работать для нашего сценария. Требование, которое у нас есть, - это очень легко для наших конечных пользователей разрабатывать собственные собственные отчеты. Требование, чтобы они писали код для своих отчетов, вероятно, не будут летать. Я также задаюсь вопросом, каково влияние производительности на код, оценивающий каждую строку. –

Смежные вопросы