Подписки на основе данных SSRS - Ошибка: не удалось отобразить подотчет.

Использование SSRS 2014 Enterprise.

У меня есть подписка на данные, которая должна генерировать около 500 отчетов в виде файлов PDF.

Эти отчеты состоят из основного отчета и двух подчиненных отчетов. Если я просматриваю отчет через веб-портал, он работает отлично. Главный отчет принимает один параметр, который также передается во вложенные отчеты, этот параметр является данными, полученными из запроса к базе данных.

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

Ошибка: не удалось показать вложенный отчет

Журнал выполнения SSRS не содержит ничего полезного, только следующее:

ОШИБКА: выброс исключения Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:, Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: исключение типа «Microsoft.ReportingServices.ReportProcessing.ReportProcessingException»;


person Neil P    schedule 23.03.2016    source источник
comment
Может быть, дело в безопасности, работа выполняется с правильными привилегиями?   -  person Chuck    schedule 23.03.2016
comment
Другие задания могут без проблем вызывать одни и те же сохраненные процессы, и общий источник данных является общим для них.   -  person Neil P    schedule 23.03.2016
comment
Хорошо, может быть, взгляните на средство просмотра событий на этом сервере и посмотрите, сможете ли вы получить какие-либо полезные сообщения об ошибках.   -  person Chuck    schedule 23.03.2016
comment
Хороший крик, я не думал об этом! Единственное, что я вижу, это ошибки, связанные с коннектором Terradata, который мы не используем. В Интернете это кажется стандартным поведением для SQL Server.   -  person Neil P    schedule 23.03.2016
comment
Спасибо, у меня есть отчет, похожий на ваш: один мастер с двумя сабами работает нормально, но когда он передается, скажем, 100 чисел, он останавливается и, в конечном итоге, истекает. Мы запускаем его только раз в год, и мне нужно переписать его, чтобы удалить подотчеты. Я думаю, что это единственный способ ускорить его.   -  person Chuck    schedule 23.03.2016
comment
Странно то, что это создает 500 отчетов примерно за минуту. Это похоже на то, что он даже не пытается запустить сохраненные процедуры для захвата данных.   -  person Neil P    schedule 23.03.2016
comment
В конфигурации сервера отчетов для этого отчета он должен смотреть на моментальный снимок выполнения, у нас есть один отчет, запуск которого занимает много времени, мы должны повторно генерировать моментальный снимок выполнения в 2:00 каждую ночь, что ускоряет отчет. Если в отчете используется моментальный снимок выполнения, убедитесь, что его создает задание. Еще несколько идей.   -  person Chuck    schedule 23.03.2016
comment
Он установлен на Всегда запускать этот отчет с самыми последними данными и не использовать кеш. и я не устанавливал никаких параметров моментального снимка, поэтому, по-видимому, его никогда не следует использовать. Я в тупике!   -  person Neil P    schedule 23.03.2016
comment
Привет, Нил, у меня тоже нет идей. Прости за это.   -  person Chuck    schedule 23.03.2016


Ответы (1)


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

Запустив только содержимое подотчета через подписку, управляемую данными, я обнаружил следующее:

При запуске из подписки задание зависало, но записывала следующее в журнал SSRS ReportServerService (в папке программных файлов SSRS)

ОШИБКА: выброс Microsoft.ReportingServices.Diagnostics.Utilities.HasUserProfileDependenciesException:, Microsoft.ReportingServices.Diagnostics.Utilities.HasUserProfileDependenciesException: отчет «/ REPORTNAME» или общий набор данных не может быть запущен без зависимостей профиля пользователя и не может быть запущен без изменений .;

Эта ошибка означает, что в отчете было что-то, что зависело от пользователя.

Подотчет использовал следующий параметр для входа в таблицу трассировки:

[&UserID]

Замена этого значения на значение, не зависящее от пользователя, позволило запустить подписку.

person Neil P    schedule 30.03.2016