Назад | Перейти на главную страницу

Причины появления «Источник отчета не может быть получен из объекта состояния».

Разместил это и на SO, но решил, что это скорее проблема конфигурации сервера, поэтому я надеюсь, что кто-то знает, что здесь происходит.

У меня есть устаревшая система с сервером CMS, настроенным для создания отчетов Crystal Reports из одной базы данных. Пользователи будут вводить необходимые параметры во внешнем приложении, которое затем передает их в CMS для создания отчета на странице CrystalReportViewer.jsp. Заголовки отчетов, отображаемые как в консоли CMC, так и в InfoView, следующие:

PersonnelDetailsA
PersonnelDetailsB
PersonnelDetailsC

После недавнего обновления приложения (которое вообще не касалось функциональности Crystal Report) пользователи сообщили, что им не удалось создать отчет для PersonnelDetailsB (A и C работали нормально). Заявленное сообщение об ошибке, которое они получили, было

Report source could not be retrieved from the state object

После некоторого поиска в Google и проб и ошибок в нашей настройке разработки я понял, что ошибка была вызвана тем, что CMS не смогла найти запрошенный отчет, поэтому моя непосредственная и фактически единственная гипотеза заключалась в том, что имя отчета мое приложение передало CMS ошибалась (только так мне удалось воспроизвести ошибку). Итак, я пошел и проверил его в продукте InfoView.

Оказывается, я был совершенно неправ. Все названия отчетов верны.

Насколько я знаю, с установкой CMS в продакшн ничего не изменилось. Отчеты работали нормально до обновления нашего приложения, и я убедился, что мы не вносили никаких изменений в наше приложение, которые могли бы повлиять на функциональность Crystal Report. Фактически, все отчеты отлично работают в нашей настройке разработки. Однако что-то явно пошло не так, когда мы развернулись в производственной среде. Все 3 отчета находятся в одной папке, но один из них не может быть найден, даже если указано правильное имя отчета.

Что мне здесь не хватает? Каким другим способом CMS может выдать эту конкретную ошибку, помимо невозможности найти рассматриваемый отчет?